X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/d39234b9cad8e19828b2b05735e5b11c75d6e0ec..440013b1eceaae3e25b250e06b031bf73296cbfc:/.emacs.d/init.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 8036cf2..f2d78f8 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -266,9 +266,21 @@ (previous-line) (insert "\n \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'. @@ -543,12 +555,13 @@ For disabling the behaviour for certain buffers and/or modes." ;; for back and forward mouse keys ("" . previous-buffer) ("" . previous-buffer) - ("" . previous-buffer) + ;; ("" . previous-buffer) ("" . next-buffer) ("" . next-buffer) - ("" . next-buffer) - ("" . kill-this-buffer) - ("" . switch-to-buffer)) + ;; ("" . next-buffer) + ;; ("" . kill-this-buffer) + ;; ("" . switch-to-buffer) + ) (bind-keys :prefix-map b/straight-prefix-map @@ -1019,9 +1032,10 @@ This function is intended for use with `ivy-ignore-buffers'." (ivy-mode 1) :custom-face + (ivy-minibuffer-match-face-1 ((t (:background "#eeeeee")))) (ivy-minibuffer-match-face-2 ((t (:background "#e7e7e7" :weight bold)))) - (ivy-minibuffer-match-face-3 ((t (:background "#bbbbff" :weight semi-bold)))) - (ivy-minibuffer-match-face-4 ((t (:background "#ffbbff" :weight semi-bold)))) + (ivy-minibuffer-match-face-3 ((t (:background "light goldenrod" :weight semi-bold)))) + (ivy-minibuffer-match-face-4 ((t (:background "misty rose" :weight semi-bold)))) (ivy-current-match ((((class color) (background light)) :background "#d7d7d7" :foreground "black") (((class color) (background dark)) @@ -1030,16 +1044,14 @@ This function is intended for use with `ivy-ignore-buffers'." (use-package swiper :demand :after ivy - :bind (("C-s" . swiper-isearch) - ("C-r" . swiper-isearch-backward) - ("C-S-s" . swiper-isearch))) + :bind (("C-S-s" . swiper-isearch))) (use-package counsel - :bind (;; ([remap execute-extended-command] . counsel-M-x) - ;; ([remap find-file] . counsel-find-file) - ("C-c f r" . counsel-recentf) + :demand + :after ivy + :bind (("C-c f r" . counsel-recentf) :map minibuffer-local-map - ("C-r" . counsel-minibuffer-history)) + ("C-r" . counsel-minibuffer-history)) :config (counsel-mode 1) (defalias 'locate #'counsel-locate)) @@ -1087,7 +1099,8 @@ This function is intended for use with `ivy-ignore-buffers'." ("C-S-l" . b/eshell-clear) ("M-r" . counsel-esh-history) ;; ([tab] . company-complete) - )) + :map eshell-hist-mode-map + ("M-r" . counsel-esh-history))) :hook (eshell-mode . b/eshell-setup) :custom @@ -1313,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$") @@ -1461,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) @@ -1675,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" @@ -1736,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) @@ -1777,7 +1793,7 @@ This function is intended for use with `ivy-ignore-buffers'." (advice-add 'magit-branch-and-checkout :after #'my-projectile-invalidate-cache))) :custom - ;; (projectile-completion-system 'ivy) + (projectile-completion-system 'ivy) (projectile-mode-line-prefix " proj")) (use-package helpful @@ -1833,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 @@ -1967,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 @@ -2115,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")) + ;;; Email (with Gnus) @@ -2155,6 +2201,8 @@ This function is intended for use with `ivy-ignore-buffers'." ;; (: gnus-group-split-fancy "INBOX" t "INBOX") ;; gnu (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1") + ;; gnus + (list ".*<\\(.*\\)\\.gnus\\.org>.*" "l.\\1") ;; *.lists.sr.ht, omitting one dot if present ;; add more \\.?\\([^.]*\\) if needed (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists.sr.ht>.*" "l.~\\1.\\2\\3") @@ -2327,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))) @@ -2461,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) @@ -2549,8 +2598,8 @@ https://csclub.uwaterloo.ca/~abandali") :hook (;; (message-setup . mml-secure-message-sign-pgpmime) (message-mode . flyspell-mode) (message-mode . (lambda () - ;; (setq fill-column 65 - ;; message-fill-column 65) + (setq-local fill-column b/fill-column + message-fill-column b/fill-column) (make-local-variable 'company-idle-delay) (setq company-idle-delay 0.2)))) ;; :custom-face @@ -2585,6 +2634,17 @@ https://csclub.uwaterloo.ca/~abandali") ("r" . footnote-renumber-footnotes) ("s" . footnote-set-style))) +(use-package bbdb + :disabled + :demand + :after gnus + :bind (:map gnus-group-mode-map ("e" . bbdb)) + :config + (bbdb-initialize 'gnus 'message) + :custom + (bbdb-complete-mail-allow-cycling t) + (bbdb-user-mail-address-re message-dont-reply-to-names)) + (use-package ebdb :demand :after gnus @@ -2701,7 +2761,7 @@ https://csclub.uwaterloo.ca/~abandali") (use-feature erc-pcomplete :after erc :custom - (erc-pcomplete-nick-postfix ",")) + (erc-pcomplete-nick-postfix ", ")) (use-feature erc-track :after erc