emacs: update straight.el and packages
[~bandali/configs] / .emacs.d / init.el
index 4f286c0..f2d78f8 100644 (file)
   (previous-line)
   (insert "\n\f\n;;; "))
 
+(defvar b/fill-column 47
+  "My custom `fill-column'.")
+
+(defconst b/asterism "* * *")
+
 (defun b/insert-asterism ()
+  "Insert a centred asterism."
   (interactive)
-  (insert "\n\n                                 * * *\n\n"))
+  (insert
+   (concat
+    "\n\n"
+    (make-string (floor (/ (- b/fill-column (length b/asterism)) 2))
+                 ?\s)
+    b/asterism
+    "\n\n")))
 
 (defun b/no-mouse-autoselect-window ()
   "Conveniently disable `focus-follows-mouse'.
@@ -281,9 +293,6 @@ For disabling the behaviour for certain buffers and/or modes."
 
 ;;;; C-level customizations
 
-(defvar b/fill-column 47
-  "My custom `fill-column'.")
-
 (setq
  ;; minibuffer
  enable-recursive-minibuffers t
@@ -304,9 +313,7 @@ For disabling the behaviour for certain buffers and/or modes."
  scroll-conservatively 10
  scroll-preserve-screen-position 1
  ;; focus follows mouse
- mouse-autoselect-window t
- ;; custom fill-column
- fill-column b/fill-column)
+ mouse-autoselect-window t)
 
 (setq-default
  ;; always use space for indentation
@@ -1319,7 +1326,8 @@ This function is intended for use with `ivy-ignore-buffers'."
 
 (use-feature text-mode
   :bind (:map text-mode-map ("C-*" . b/insert-asterism))
-  :hook (text-mode . indicate-buffer-boundaries-left))
+  :hook ((text-mode . indicate-buffer-boundaries-left)
+         (text-mode . flyspell-mode)))
 
 (use-feature conf-mode
   :mode "\\.*rc$")
@@ -1467,7 +1475,9 @@ This function is intended for use with `ivy-ignore-buffers'."
   (b/setq-every 2
     web-mode-code-indent-offset
     web-mode-css-indent-offset
-    web-mode-markup-indent-offset))
+    web-mode-markup-indent-offset)
+  :custom
+  (web-mode-enable-auto-indentation nil))
 
 (use-package emmet-mode
   :after (:any web-mode css-mode sgml-mode)
@@ -1681,10 +1691,10 @@ This function is intended for use with `ivy-ignore-buffers'."
     ;; prefixes for global prefixes and minor modes
     "C-c @"   "outline"
     "C-c !"   "flycheck"
-    "C-c 8"   "typo"
-    "C-c 8 -" "typo/dashes"
-    "C-c 8 <" "typo/left-brackets"
-    "C-c 8 >" "typo/right-brackets"
+    ;; "C-c 8"   "typo"
+    ;; "C-c 8 -" "typo/dashes"
+    ;; "C-c 8 <" "typo/left-brackets"
+    ;; "C-c 8 >" "typo/right-brackets"
     "C-x RET" "coding system"
     "C-x 8"   "unicode"
     "C-x @"   "event modifiers"
@@ -1742,7 +1752,7 @@ This function is intended for use with `ivy-ignore-buffers'."
 (use-package crux            ; results in Waiting for git... [2 times]
   :defer 0.4
   :bind (("C-c d"   . crux-duplicate-current-line-or-region)
-         ("C-c D"   . crux-duplicate-and-comment-current-line-or-region)
+         ("C-c M-d" . crux-duplicate-and-comment-current-line-or-region)
          ("C-c f C" . crux-copy-file-preserve-attributes)
          ("C-c f D" . crux-delete-file-and-buffer)
          ("C-c f R" . crux-rename-file-and-buffer)
@@ -1839,12 +1849,19 @@ This function is intended for use with `ivy-ignore-buffers'."
 
 ;; easily type pretty quotes & other typography, like ‘’“”-–—«»‹›
 (use-package typo
+  :disabled
   :defer 0.5
   :config
   (typo-global-mode 1)
   :hook (((text-mode erc-mode web-mode) . typo-mode)
          (tex-mode                      . (lambda ()(typo-mode -1)))))
 
+(use-feature electric
+  :disabled
+  :demand
+  :config
+  (electric-quote-mode))
+
 ;; highlight TODOs in buffers
 (use-package hl-todo
   :defer 0.5
@@ -1973,7 +1990,24 @@ This function is intended for use with `ivy-ignore-buffers'."
   :straight (debbugs
              :host github
              :repo "emacs-straight/debbugs"
-             :files (:defaults "Debbugs.wsdl")))
+             :files (:defaults "Debbugs.wsdl"))
+  :bind
+  (("C-c D d" . debbugs-gnu)
+   ("C-c D e" .
+    (lambda ()
+      (interactive)
+      (setq debbugs-gnu-current-suppress t)
+      (debbugs-gnu debbugs-gnu-default-severities '("emacs"))))
+   ("C-c D g" .
+    (lambda ()
+      (interactive)
+      (setq debbugs-gnu-current-suppress t)
+      (debbugs-gnu debbugs-gnu-default-severities '("gnuzilla"))))
+   ("C-c D G" .
+    (lambda ()
+      (interactive)
+      (setq debbugs-gnu-current-suppress t)
+      (debbugs-gnu debbugs-gnu-default-severities '("guix"))))))
 
 (use-package org-ref
   :init
@@ -2121,6 +2155,12 @@ This function is intended for use with `ivy-ignore-buffers'."
   :custom
   (debpaste-paste-is-hidden t))
 
+(use-package scpaste
+  :disabled
+  :config
+  (setq scpaste-http-destination "https://p.bndl.org"
+        scpaste-scp-destination "nix:/var/www/p.bndl.org"))
+
 \f
 ;;; Email (with Gnus)
 
@@ -2335,7 +2375,7 @@ This function is intended for use with `ivy-ignore-buffers'."
       (to-list    . "webmasters@gnu.org"))
      ("gnu.*"
       (gcc-self . t))
-     ("gnu\\."
+     ("l\\."
       (subscribed . t))
      ("nnimap\\+uw:.*"
       (gcc-self . t)))
@@ -2469,8 +2509,9 @@ https://csclub.uwaterloo.ca/~abandali")
            (address "bandali@csclub.uwaterloo.ca")
            (signature b/csc-signature)
            (gcc "nnimap+csc:Sent"))))
-  ;; :hook (gnus-message-setup . mml-secure-message-sign)
-  )
+  :hook (gnus-message-setup . (lambda ()
+                                (unless (mml-secure-is-encrypted-p)
+                                  (mml-secure-message-sign)))))
 
 (use-feature gnus-topic
   :hook (gnus-group-mode . gnus-topic-mode)
@@ -2594,6 +2635,7 @@ https://csclub.uwaterloo.ca/~abandali")
         ("s" . footnote-set-style)))
 
 (use-package bbdb
+  :disabled
   :demand
   :after gnus
   :bind (:map gnus-group-mode-map ("e" . bbdb))
@@ -2603,49 +2645,47 @@ https://csclub.uwaterloo.ca/~abandali")
   (bbdb-complete-mail-allow-cycling t)
   (bbdb-user-mail-address-re message-dont-reply-to-names))
 
-(comment
-  (use-package ebdb
-    :demand
-    :after gnus
-    :bind (:map gnus-group-mode-map ("e" . ebdb))
-    :config
-    (setq ebdb-sources (b/var "ebdb"))
-    (with-eval-after-load 'swiper
-      (add-to-list 'swiper-font-lock-exclude 'ebdb-mode t)))
+(use-package ebdb
+  :demand
+  :after gnus
+  :bind (:map gnus-group-mode-map ("e" . ebdb))
+  :config
+  (setq ebdb-sources (b/var "ebdb"))
+  (with-eval-after-load 'swiper
+    (add-to-list 'swiper-font-lock-exclude 'ebdb-mode t)))
 
-  (use-feature ebdb-com
-    :after ebdb)
+(use-feature ebdb-com
+  :after ebdb)
 
-  (use-feature ebdb-complete
-    :after ebdb
-    :config
-    ;; (setq ebdb-complete-mail 'capf)
-    (ebdb-complete-enable))
+(use-feature ebdb-complete
+  :after ebdb
+  :config
+  ;; (setq ebdb-complete-mail 'capf)
+  (ebdb-complete-enable))
 
-  (use-feature ebdb-message
-    :demand
-    :after ebdb)
+(use-feature ebdb-message
+  :demand
+  :after ebdb)
 
-  ;; (use-package company-ebdb
-  ;;   :config
-  ;;   (defun company-ebdb--post-complete (_) nil))
+;; (use-package company-ebdb
+;;   :config
+;;   (defun company-ebdb--post-complete (_) nil))
 
-  (use-feature ebdb-gnus
-    :after ebdb
-    :custom
-    (ebdb-gnus-window-size 0.3))
+(use-feature ebdb-gnus
+  :after ebdb
+  :custom
+  (ebdb-gnus-window-size 0.3))
 
-  (use-feature ebdb-mua
-    :demand
-    :after ebdb
-    :custom (ebdb-mua-pop-up t))
+(use-feature ebdb-mua
+  :demand
+  :after ebdb
+  :custom (ebdb-mua-pop-up t))
 
-  ;; (use-package ebdb-message
-  ;;   :after ebdb)
+;; (use-package ebdb-message
+;;   :after ebdb)
 
-  ;; (use-package ebdb-vcard
-  ;;   :after ebdb)
-  )
+;; (use-package ebdb-vcard
+;;   :after ebdb)
 
 (use-package message-x)