diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/bandali-dired.el | 53 | ||||
| -rw-r--r-- | lisp/bandali-ebdb.el | 53 | ||||
| -rw-r--r-- | lisp/bandali-erc.el | 141 | ||||
| -rw-r--r-- | lisp/bandali-eshell.el | 65 | ||||
| -rw-r--r-- | lisp/bandali-gnus.el | 719 | ||||
| -rw-r--r-- | lisp/bandali-ibuffer.el | 139 | ||||
| -rw-r--r-- | lisp/bandali-ivy.el | 61 | ||||
| -rw-r--r-- | lisp/bandali-message.el | 133 | ||||
| -rw-r--r-- | lisp/bandali-org.el | 122 | ||||
| -rw-r--r-- | lisp/bandali-theme.el | 39 | ||||
| -rw-r--r-- | lisp/bandali-yasnippet.el | 26 | 
11 files changed, 739 insertions, 812 deletions
diff --git a/lisp/bandali-dired.el b/lisp/bandali-dired.el index c4ab6ff..394715d 100644 --- a/lisp/bandali-dired.el +++ b/lisp/bandali-dired.el @@ -24,17 +24,13 @@  ;;; Code: -(use-package ls-lisp -  :custom (ls-lisp-dirs-first t)) - -(use-package dired -  :config -  (setq dired-dwim-target t -        dired-listing-switches "-alh" -        ls-lisp-use-insert-directory-program nil) +(with-eval-after-load 'dired +  (csetq dired-dwim-target t +         dired-listing-switches "-alh" +         ls-lisp-dirs-first t +         ls-lisp-use-insert-directory-program nil)    (declare-function dired-dwim-target-directory "dired-aux") -    ;; easily diff 2 marked files    ;; https://oremacs.com/2017/03/18/dired-ediff/    (defun dired-ediff-files () @@ -59,25 +55,28 @@                          (set-window-configuration wnd))))          (error "no more than 2 files should be marked")))) +  ;; local key bindings +  (define-key dired-mode-map (kbd "b") #'dired-up-directory) +  (define-key dired-mode-map (kbd "E") #'dired-ediff-files) +  (define-key dired-mode-map (kbd "e") #'dired-toggle-read-only) +  (define-key dired-mode-map (kbd "\\") #'dired-hide-details-mode) +  (define-key dired-mode-map (kbd "z") +    (lambda () +      (interactive) +      (b/dired-start-process "zathura"))) +    (require 'dired-x) -  (setq dired-guess-shell-alist-user -        '(("\\.pdf\\'"  "evince" "zathura" "okular") -          ("\\.doc\\'"  "libreoffice") -          ("\\.docx\\'" "libreoffice") -          ("\\.ppt\\'"  "libreoffice") -          ("\\.pptx\\'" "libreoffice") -          ("\\.xls\\'"  "libreoffice") -          ("\\.xlsx\\'" "libreoffice") -          ("\\.flac\\'" "mpv"))) -  :bind (:map dired-mode-map -              ("b"  . dired-up-directory) -              ("E"  . dired-ediff-files) -              ("e"  . dired-toggle-read-only) -              ("\\" . dired-hide-details-mode) -              ("z"  . (lambda () -                        (interactive) -                        (b/dired-start-process "zathura")))) -  :hook (dired-mode . dired-hide-details-mode)) +  (csetq dired-guess-shell-alist-user +         '(("\\.pdf\\'"  "evince" "zathura" "okular") +           ("\\.doc\\'"  "libreoffice") +           ("\\.docx\\'" "libreoffice") +           ("\\.ppt\\'"  "libreoffice") +           ("\\.pptx\\'" "libreoffice") +           ("\\.xls\\'"  "libreoffice") +           ("\\.xlsx\\'" "libreoffice") +           ("\\.flac\\'" "mpv")))) +;; hooks +(add-hook 'dired-mode-hook #'dired-hide-details-mode)  (provide 'bandali-dired)  ;;; bandali-dired.el ends here diff --git a/lisp/bandali-ebdb.el b/lisp/bandali-ebdb.el index a7315c4..4d21978 100644 --- a/lisp/bandali-ebdb.el +++ b/lisp/bandali-ebdb.el @@ -24,48 +24,29 @@  ;;; Code: -(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 'gnus +  (require 'ebdb) +  (csetq ebdb-sources (b/var "ebdb"))    (with-eval-after-load 'swiper -    (add-to-list 'swiper-font-lock-exclude 'ebdb-mode t))) +    (add-to-list 'swiper-font-lock-exclude #'ebdb-mode t)) +  ;; local key bindings +  (define-key gnus-group-mode-map (kbd "e") #'ebdb)) -(use-package ebdb-com -  :after ebdb) +(with-eval-after-load 'ebdb +  (with-eval-after-load 'ebdb-complete +    ;; (csetq ebdb-complete-mail 'capf) +    (ebdb-complete-enable)) -(use-package ebdb-complete -  :after ebdb -  :config -  ;; (setq ebdb-complete-mail 'capf) -  (ebdb-complete-enable)) +  (require 'ebdb-message) +   +  (require 'ebdb-gnus) +  (csetq ebdb-gnus-window-size 0.3) -(use-package ebdb-message -  :demand -  :after ebdb) +  (require 'ebdb-mua) +  (csetq ebdb-mua-pop-up t)) -;; (use-package company-ebdb -;;   :config +;; (with-eval-after-load 'company-ebdb  ;;   (defun company-ebdb--post-complete (_) nil)) -(use-package ebdb-gnus -  :demand -  :after ebdb -  :custom -  (ebdb-gnus-window-size 0.3)) - -(use-package ebdb-mua -  :demand -  :after ebdb -  :custom (ebdb-mua-pop-up t)) - -;; (use-package ebdb-message -;;   :after ebdb) - -;; (use-package ebdb-vcard -;;   :after ebdb) -  (provide 'bandali-ebdb)  ;;; bandali-ebdb.el ends here diff --git a/lisp/bandali-erc.el b/lisp/bandali-erc.el index 89ec6a0..0166140 100644 --- a/lisp/bandali-erc.el +++ b/lisp/bandali-erc.el @@ -24,20 +24,19 @@  ;;; Code: -(use-package erc -  :bind ("C-c w e" . erc-switch-to-buffer-other-window) -  :custom -  (erc-auto-query 'bury) -  (erc-autojoin-domain-only nil) -  (erc-format-nick-function 'erc-format-@nick) -  (erc-join-buffer 'bury) -  (erc-lurker-hide-list '("JOIN" "PART" "QUIT")) -  (erc-nick "bandali") -  (erc-prompt "erc>") -  (erc-rename-buffers t) -  (erc-server-reconnect-attempts 5) -  (erc-server-reconnect-timeout 3) -  :config +(with-eval-after-load 'erc +  (csetq +   erc-auto-query 'bury +   erc-autojoin-domain-only nil +   erc-format-nick-function 'erc-format-@nick +   erc-join-buffer 'bury +   erc-lurker-hide-list '("JOIN" "PART" "QUIT") +   erc-nick "bandali" +   erc-prompt "erc>" +   erc-rename-buffers t +   erc-server-reconnect-attempts 5 +   erc-server-reconnect-timeout 3) +    (declare-function erc-message "erc-backend"                      (message-command line &optional force))    (declare-function erc-default-target "erc") @@ -57,72 +56,62 @@    (add-to-list 'erc-modules 'smiley)    (add-to-list 'erc-modules 'spelling)    (declare-function erc-update-modules "erc") -  (erc-update-modules)) - -(use-package erc-fill -  :after erc -  :custom -  (erc-fill-column 77) -  (erc-fill-function 'erc-fill-static) -  (erc-fill-static-center 18)) - -(use-package erc-match -  :disabled -  :after erc -  :config -  (set-face-attribute -   'erc-pal-face nil -   :foreground 'unspecified -   :weight 'unspecified -   ;; :inherit 'font-lock-string-face -   ;; :background (face-attribute 'font-lock-string-face :background) -   :background "#ffffed") -  :custom -  (erc-pal-highlight-type 'message) -  (erc-pals -   '("aindilis" "blackbeard" "bremner" "brettgilio" "civodul" "dto" -     "ggoes" "jrasata" "jxself" "mplsCorwin" "quiliro" "rindolf" "rwp" -     "sachac" "technomancy"))) - -(use-package erc-pcomplete -  :after erc -  :custom -  (erc-pcomplete-nick-postfix ", ")) - -(use-package erc-track -  :after erc -  :bind (("C-c a e t d" . erc-track-disable) -         ("C-c a e t e" . erc-track-enable) -         ("C-c a e M-a" . erc-track-switch-buffer-other-window) -         :map erc-mode-map -         ("M-a" . erc-track-switch-buffer)) -  :custom -  (erc-track-enable-keybindings nil) -  (erc-track-exclude-types '("JOIN" "MODE" "NICK" "PART" "QUIT" -                             "324" "329" "332" "333" "353" "477")) -  (erc-track-position-in-mode-line t) -  (erc-track-priority-faces-only 'all) -  (erc-track-shorten-function nil) -  (erc-track-showcount t)) - -(use-package erc-hl-nicks -  :after erc) - -(use-package znc -  :bind (("C-c a e e" . znc-erc) -         ("C-c a e a" . znc-all)) -  :config +  (erc-update-modules) + +  ;; erc-fill +  (csetq +   erc-fill-column 77 +   erc-fill-function 'erc-fill-static +   erc-fill-static-center 18) + +  ;; erc-match +  ;; (csetq +  ;;  erc-pal-highlight-type 'message +  ;;  erc-pals +  ;;  '("aindilis" "blackbeard" "bremner" "brettgilio" "civodul" "dto" +  ;;    "ggoes" "jrasata" "jxself" "mplsCorwin" "quiliro" "rindolf" "rwp" +  ;;    "sachac" "technomancy")) +  ;; (with-eval-after-load 'erc-match +  ;;   (set-face-attribute +  ;;    'erc-pal-face nil +  ;;    :foreground 'unspecified +  ;;    :weight 'unspecified +  ;;    ;; :inherit 'font-lock-string-face +  ;;    ;; :background (face-attribute 'font-lock-string-face :background) +  ;;    :background "#ffffed")) + +  ;; erc-pcomplete +  (csetq erc-pcomplete-nick-postfix ", ") + +  ;; erc-track +  (csetq +   erc-track-enable-keybindings nil +   erc-track-exclude-types '("JOIN" "MODE" "NICK" "PART" "QUIT" +                             "324" "329" "332" "333" "353" "477") +   erc-track-position-in-mode-line t +   erc-track-priority-faces-only 'all +   erc-track-shorten-function nil +   erc-track-showcount t) + +  ;; key bindings +  (global-set-key (kbd "C-c w e") #'erc-switch-to-buffer-other-window) +  (define-key erc-mode-map (kbd "M-a") #'erc-track-switch-buffer)) + +(with-eval-after-load 'znc    (let ((pwd (let ((auth (auth-source-search :host "znca")))                 (cond                  ((null auth) (error "Couldn't find znca's authinfo"))                  (t (funcall (plist-get (car auth) :secret))))))) -    (setq znc-servers -          `(("znc.emacsconf.org" 6697 t -             ((freenode "bandali/freenode" ,pwd))) -            ("znc.emacsconf.org" 6697 t -             ((oftc "bandali/oftc" ,pwd))) -            ("znc.emacsconf.org" 6697 t -             ((tildechat "bandali/tildechat" ,pwd))))))) +    (csetq znc-servers +           `(("znc.emacsconf.org" 6697 t +              ((freenode "bandali/freenode" ,pwd))) +             ("znc.emacsconf.org" 6697 t +              ((oftc "bandali/oftc" ,pwd))) +             ("znc.emacsconf.org" 6697 t +              ((tildechat "bandali/tildechat" ,pwd))))))) +;; global key bindings +(global-set-key (kbd "C-c a e e") #'znc-erc) +(global-set-key (kbd "C-c a e a") #'znc-all)  (provide 'bandali-erc)  ;;; bandali-erc.el ends here diff --git a/lisp/bandali-eshell.el b/lisp/bandali-eshell.el index 099cbb3..5a83c6d 100644 --- a/lisp/bandali-eshell.el +++ b/lisp/bandali-eshell.el @@ -24,10 +24,23 @@  ;;; Code: -(use-package eshell -  :commands eshell -  :bind ("C-c a s e" . eshell) -  :config +(with-eval-after-load 'eshell +  (csetq +   eshell-hist-ignoredups t +   eshell-input-filter #'eshell-input-filter-initial-space +   eshell-prompt-regexp "\\(.*\n\\)*[$#] " +   eshell-prompt-function +   (lambda () +     (concat +      (propertize (format "%s@%s:" (user-login-name) (system-name)) +                  'face 'default) +      (propertize (abbreviate-file-name default-directory) +                  'face 'font-lock-comment-face) +      (propertize "\n" 'face 'default) +      (if (= (user-uid) 0) +          (propertize "#" 'face 'red) +        (propertize "$" 'face 'default)) +      (propertize " " 'face 'default))))    (eval-when-compile      (defvar eshell-prompt-regexp)      (declare-function eshell-life-is-too-much "esh-mode") @@ -38,13 +51,11 @@      (if (and (eolp) (looking-back eshell-prompt-regexp nil))          (eshell-life-is-too-much)        (delete-char arg))) -    (defun b/eshell-clear ()      (interactive)      (let ((inhibit-read-only t))        (erase-buffer))      (eshell-send-input)) -    (defun b/eshell-setup ()      (make-local-variable 'company-idle-delay)      (defvar company-idle-delay) @@ -52,33 +63,21 @@        (defvar eshell-mode-map)        (defvar eshell-hist-mode-map))      (setq company-idle-delay nil) -    (bind-keys :map eshell-mode-map -               ("C-d"   . b/eshell-quit-or-delete-char) -               ("C-S-l" . b/eshell-clear) -               ("M-r"   . counsel-esh-history) -               ;; ([tab]   . company-complete) -               :map eshell-hist-mode-map -               ("M-r" . counsel-esh-history))) - -  (setq -   eshell-prompt-regexp "\\(.*\n\\)*[$#] " -   eshell-prompt-function -   (lambda () -     (concat -      (propertize (format "%s@%s:" (user-login-name) (system-name)) -                  'face 'default) -      (propertize (abbreviate-file-name default-directory) -                  'face 'font-lock-comment-face) -      (propertize "\n" 'face 'default) -      (if (= (user-uid) 0) -          (propertize "#" 'face 'red) -        (propertize "$" 'face 'default)) -      (propertize " " 'face 'default)))) - -  :hook (eshell-mode . b/eshell-setup) -  :custom -  (eshell-hist-ignoredups t) -  (eshell-input-filter 'eshell-input-filter-initial-space)) +    ;; local key bindings +    (define-key eshell-mode-map (kbd "C-d") +      #'b/eshell-quit-or-delete-char) +    (define-key eshell-mode-map (kbd "C-S-l") +      #'b/eshell-clear) +    (define-key eshell-mode-map (kbd "M-r") +      #'counsel-esh-history) +    ;; (define-key eshell-mode-map [tab] +    ;;   #'company-complete) +    (define-key eshell-hist-mode-map (kbd "M-r") +      #'counsel-esh-history))) +;; global key bindings +(global-set-key (kbd "C-c a s e") #'eshell) +;; hooks +(add-hook 'eshell-mode-hook #'b/eshell-setup)  (provide 'bandali-eshell)  ;;; bandali-eshell.el ends here diff --git a/lisp/bandali-gnus.el b/lisp/bandali-gnus.el index 0c5dc97..4aa41ab 100644 --- a/lisp/bandali-gnus.el +++ b/lisp/bandali-gnus.el @@ -40,256 +40,250 @@  (declare-function article-make-date-line "gnus-art" (date type)) -(setq - mail-user-agent   'gnus-user-agent - read-mail-command 'gnus) - -(use-package gnus -  :bind (("s-m"     . gnus-plugged) -         ("s-M"     . gnus-unplugged) -         ("C-c a m" . gnus-plugged) -         ("C-c a M" . gnus-unplugged)) -  :init -  (setq -   gnus-select-method '(nnnil "") -   gnus-secondary-select-methods -   '((nnimap "shemshak" -             (nnimap-stream plain) -             (nnimap-address "127.0.0.1") -             (nnimap-server-port 143) -             (nnimap-authenticator plain) -             (nnimap-user "bandali@shemshak.local")) -     (nnimap "gnu" -             (nnimap-stream plain) -             (nnimap-address "127.0.0.1") -             (nnimap-server-port 143) -             (nnimap-authenticator plain) -             (nnimap-user "bandali@gnu.local") -             (nnimap-inbox "INBOX") -             (nnimap-split-methods 'nnimap-split-fancy) -             (nnimap-split-fancy (| -                                  ;; (: gnus-registry-split-fancy-with-parent) -                                  ;; (: gnus-group-split-fancy "INBOX" t "INBOX") -                                  ;; keep debbugs emails in INBOX -                                  (list ".*<\\(.*\\)\\.debbugs\\.gnu\\.org>.*" "INBOX") -                                  ;; gnu -                                  (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1") -                                  ;; gnus -                                  (list ".*<\\(.*\\)\\.gnus\\.org>.*" "l.\\1") -                                  ;; libreplanet -                                  (list ".*<\\(.*\\)\\.libreplanet\\.org>.*" "l.\\1") -                                  ;; iana (e.g. tz-announce) -                                  (list ".*<\\(.*\\)\\.iana\\.org>.*" "l.\\1") -                                  ;; orbitalfox (e.g. gemini) -                                  (list ".*<\\(.*\\)\\.lists\\.orbitalfox\\.eu>.*" "l.\\1") -                                  ;; *.lists.sr.ht, omitting one dot if present -                                  ;;    add more \\.?\\([^.]*\\) if needed -                                  (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists\\.sr\\.ht>.*" "l.~\\1.\\2\\3") -                                  ;; webmasters -                                  (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters") -                                  ;; other -                                  (list ".*atreus.freelists.org" "l.atreus") -                                  (list ".*deepspec.lists.cs.princeton.edu" "l.deepspec") -                                  ;; (list ".*haskell-art.we.lurk.org" "l.haskell.art") ;d -                                  (list ".*haskell-cafe.haskell.org" "l.haskell-cafe") -                                  ;; (list ".*notmuch.notmuchmail.org" "l.notmuch") ;u -                                  (list ".*dev.lists.parabola.nu" "l.parabola-dev") -                                  ;; ---------------------------------- -                                  ;; legend: (u)nsubscribed | (d)ead -                                  ;; ---------------------------------- -                                  ;; spam -                                  ("X-Spam_action" "reject" "Junk") -                                  ;; otherwise, leave mail in INBOX -                                  "INBOX"))) -     (nnimap "uwaterloo" -             (nnimap-stream plain) -             (nnimap-address "127.0.0.1") -             (nnimap-server-port 143) -             (nnimap-authenticator plain) -             (nnimap-user "abandali@uwaterloo.local") -             (nnimap-inbox "INBOX") -             (nnimap-split-methods 'nnimap-split-fancy) -             (nnimap-split-fancy (| -                                  ;; (: gnus-registry-split-fancy-with-parent) -                                  ;; se212-f19 -                                  ("subject" "SE\\s-?212" "course.se212-f19") -                                  (from "SE\\s-?212" "course.se212-f19") -                                  ;; catch-all -                                  "INBOX"))) -     (nnimap "csc" -             (nnimap-stream plain) -             (nnimap-address "127.0.0.1") -             (nnimap-server-port 143) -             (nnimap-authenticator plain) -             (nnimap-user "abandali@csclub.uwaterloo.local") -             (nnimap-inbox "INBOX") -             (nnimap-split-methods 'nnimap-split-fancy) -             (nnimap-split-fancy (| -                                  ;; cron reports and other messages from root -                                  (from "root@\\(.*\\.\\)?csclub\\.uwaterloo\\.ca" "INBOX") -                                  ;; spam -                                  ("X-Spam-Flag" "YES" "Junk") -                                  ;; catch-all -                                  "INBOX"))) -     (nnimap "sfl" -             (nnimap-stream tls) -             (nnimap-address "mail.savoirfairelinux.com") -             (nnimap-user "amin.bandali"))) -   gnus-message-archive-group "nnimap+gnu:INBOX" -   gnus-parameters -   '(("l\\.atreus" -      (to-address . "atreus@freelists.org") -      (to-list    . "atreus@freelists.org")) -     ("l\\.deepspec" -      (to-address . "deepspec@lists.cs.princeton.edu") -      (to-list    . "deepspec@lists.cs.princeton.edu") -      (list-identifier . "\\[deepspec\\]")) -     ("l\\.emacs-devel" -      (to-address . "emacs-devel@gnu.org") -      (to-list    . "emacs-devel@gnu.org")) -     ("l\\.help-gnu-emacs" -      (to-address . "help-gnu-emacs@gnu.org") -      (to-list    . "help-gnu-emacs@gnu.org")) -     ("l\\.info-gnu-emacs" -      (to-address . "info-gnu-emacs@gnu.org") -      (to-list    . "info-gnu-emacs@gnu.org")) -     ("l\\.emacs-orgmode" -      (to-address . "emacs-orgmode@gnu.org") -      (to-list    . "emacs-orgmode@gnu.org") -      (list-identifier . "\\[O\\]")) -     ("l\\.emacs-tangents" -      (to-address . "emacs-tangents@gnu.org") -      (to-list    . "emacs-tangents@gnu.org")) -     ("l\\.emacsconf-committee" -      (to-address . "emacsconf-committee@gnu.org") -      (to-list    . "emacsconf-committee@gnu.org")) -     ("l\\.emacsconf-discuss" -      (to-address . "emacsconf-discuss@gnu.org") -      (to-list    . "emacsconf-discuss@gnu.org")) -     ("l\\.emacsconf-org" -      (to-address . "emacsconf-org@gnu.org") -      (to-list    . "emacsconf-org@gnu.org")) -     ("l\\.emacsconf-org-private" -      (to-address . "emacsconf-org-private@gnu.org") -      (to-list    . "emacsconf-org-private@gnu.org")) -     ("l\\.emacsconf-register" -      (to-address . "emacsconf-register@gnu.org") -      (to-list    . "emacsconf-register@gnu.org")) -     ("l\\.emacsconf-submit" -      (to-address . "emacsconf-submit@gnu.org") -      (to-list    . "emacsconf-submit@gnu.org")) -     ("l\\.fencepost-users" -      (to-address . "fencepost-users@gnu.org") -      (to-list    . "fencepost-users@gnu.org") -      (list-identifier . "\\[Fencepost-users\\]")) -     ("l\\.gnewsense-art" -      (to-address . "gnewsense-art@nongnu.org") -      (to-list    . "gnewsense-art@nongnu.org") -      (list-identifier . "\\[gNewSense-art\\]")) -     ("l\\.gnewsense-dev" -      (to-address . "gnewsense-dev@nongnu.org") -      (to-list    . "gnewsense-dev@nongnu.org") -      (list-identifier . "\\[Gnewsense-dev\\]")) -     ("l\\.gnewsense-users" -      (to-address . "gnewsense-users@nongnu.org") -      (to-list    . "gnewsense-users@nongnu.org") -      (list-identifier . "\\[gNewSense-users\\]")) -     ("l\\.gnunet-developers" -      (to-address . "gnunet-developers@gnu.org") -      (to-list    . "gnunet-developers@gnu.org") -      (list-identifier . "\\[GNUnet-developers\\]")) -     ("l\\.help-gnunet" -      (to-address . "help-gnunet@gnu.org") -      (to-list    . "help-gnunet@gnu.org") -      (list-identifier . "\\[Help-gnunet\\]")) -     ("l\\.bug-gnuzilla" -      (to-address . "bug-gnuzilla@gnu.org") -      (to-list    . "bug-gnuzilla@gnu.org") -      (list-identifier . "\\[Bug-gnuzilla\\]")) -     ("l\\.gnuzilla-dev" -      (to-address . "gnuzilla-dev@gnu.org") -      (to-list    . "gnuzilla-dev@gnu.org") -      (list-identifier . "\\[Gnuzilla-dev\\]")) -     ("l\\.guile-devel" -      (to-address . "guile-devel@gnu.org") -      (to-list    . "guile-devel@gnu.org")) -     ("l\\.guile-user" -      (to-address . "guile-user@gnu.org") -      (to-list    . "guile-user@gnu.org")) -     ("l\\.guix-devel" -      (to-address . "guix-devel@gnu.org") -      (to-list    . "guix-devel@gnu.org")) -     ("l\\.help-guix" -      (to-address . "help-guix@gnu.org") -      (to-list    . "help-guix@gnu.org")) -     ("l\\.info-guix" -      (to-address . "info-guix@gnu.org") -      (to-list    . "info-guix@gnu.org")) -     ("l\\.savannah-hackers-public" -      (to-address . "savannah-hackers-public@gnu.org") -      (to-list    . "savannah-hackers-public@gnu.org")) -     ("l\\.savannah-users" -      (to-address . "savannah-users@gnu.org") -      (to-list    . "savannah-users@gnu.org")) -     ("l\\.www-commits" -      (to-address . "www-commits@gnu.org") -      (to-list    . "www-commits@gnu.org")) -     ("l\\.www-discuss" -      (to-address . "www-discuss@gnu.org") -      (to-list    . "www-discuss@gnu.org")) -     ("l\\.haskell-art" -      (to-address . "haskell-art@we.lurk.org") -      (to-list    . "haskell-art@we.lurk.org") -      (list-identifier . "\\[haskell-art\\]")) -     ("l\\.haskell-cafe" -      (to-address . "haskell-cafe@haskell.org") -      (to-list    . "haskell-cafe@haskell.org") -      (list-identifier . "\\[Haskell-cafe\\]")) -     ("l\\.notmuch" -      (to-address . "notmuch@notmuchmail.org") -      (to-list    . "notmuch@notmuchmail.org")) -     ("l\\.parabola-dev" -      (to-address . "dev@lists.parabola.nu") -      (to-list    . "dev@lists.parabola.nu") -      (list-identifier . "\\[Dev\\]")) -     ("l\\.~bandali\\.public-inbox" -      (to-address . "~bandali/public-inbox@lists.sr.ht") -      (to-list    . "~bandali/public-inbox@lists.sr.ht")) -     ("l\\.~sircmpwn\\.free-writers-club" -      (to-address . "~sircmpwn/free-writers-club@lists.sr.ht") -      (to-list    . "~sircmpwn/free-writers-club@lists.sr.ht")) -     ("l\\.~sircmpwn\\.srht-admins" -      (to-address . "~sircmpwn/sr.ht-admins@lists.sr.ht") -      (to-list    . "~sircmpwn/sr.ht-admins@lists.sr.ht")) -     ("l\\.~sircmpwn\\.srht-announce" -      (to-address . "~sircmpwn/sr.ht-announce@lists.sr.ht") -      (to-list    . "~sircmpwn/sr.ht-announce@lists.sr.ht")) -     ("l\\.~sircmpwn\\.srht-dev" -      (to-address . "~sircmpwn/sr.ht-dev@lists.sr.ht") -      (to-list    . "~sircmpwn/sr.ht-dev@lists.sr.ht")) -     ("l\\.~sircmpwn\\.srht-discuss" -      (to-address . "~sircmpwn/sr.ht-discuss@lists.sr.ht") -      (to-list    . "~sircmpwn/sr.ht-discuss@lists.sr.ht")) -     ("webmasters" -      (to-address . "webmasters@gnu.org") -      (to-list    . "webmasters@gnu.org")) -     ("gnu.*" -      (gcc-self . t)) -     ("l\\." -      (subscribed . t)) -     ("nnimap\\+uwaterloo:.*" -      (gcc-self . t))) -   ;; nnimap-record-commands t -   gnus-large-newsgroup  50 -   gnus-home-directory   (b/var "gnus/") -   gnus-directory        (concat gnus-home-directory "news/") -   message-directory     (concat gnus-home-directory "mail/") -   nndraft-directory     (concat gnus-home-directory "drafts/") -   gnus-save-newsrc-file nil -   gnus-read-newsrc-file nil -   gnus-interactive-exit nil -   gnus-gcc-mark-as-read t) -  :config +(csetq + mail-user-agent 'gnus-user-agent + read-mail-command 'gnus + + gnus-select-method '(nnnil "") + gnus-secondary-select-methods + '((nnimap "shemshak" +           (nnimap-stream plain) +           (nnimap-address "127.0.0.1") +           (nnimap-server-port 143) +           (nnimap-authenticator plain) +           (nnimap-user "bandali@shemshak.local")) +   (nnimap "gnu" +           (nnimap-stream plain) +           (nnimap-address "127.0.0.1") +           (nnimap-server-port 143) +           (nnimap-authenticator plain) +           (nnimap-user "bandali@gnu.local") +           (nnimap-inbox "INBOX") +           (nnimap-split-methods 'nnimap-split-fancy) +           (nnimap-split-fancy (| +                                ;; (: gnus-registry-split-fancy-with-parent) +                                ;; (: gnus-group-split-fancy "INBOX" t "INBOX") +                                ;; keep debbugs emails in INBOX +                                (list ".*<\\(.*\\)\\.debbugs\\.gnu\\.org>.*" "INBOX") +                                ;; gnu +                                (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1") +                                ;; gnus +                                (list ".*<\\(.*\\)\\.gnus\\.org>.*" "l.\\1") +                                ;; libreplanet +                                (list ".*<\\(.*\\)\\.libreplanet\\.org>.*" "l.\\1") +                                ;; iana (e.g. tz-announce) +                                (list ".*<\\(.*\\)\\.iana\\.org>.*" "l.\\1") +                                ;; orbitalfox (e.g. gemini) +                                (list ".*<\\(.*\\)\\.lists\\.orbitalfox\\.eu>.*" "l.\\1") +                                ;; *.lists.sr.ht, omitting one dot if present +                                ;;    add more \\.?\\([^.]*\\) if needed +                                (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists\\.sr\\.ht>.*" "l.~\\1.\\2\\3") +                                ;; webmasters +                                (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters") +                                ;; other +                                (list ".*atreus.freelists.org" "l.atreus") +                                (list ".*deepspec.lists.cs.princeton.edu" "l.deepspec") +                                ;; (list ".*haskell-art.we.lurk.org" "l.haskell.art") ;d +                                (list ".*haskell-cafe.haskell.org" "l.haskell-cafe") +                                ;; (list ".*notmuch.notmuchmail.org" "l.notmuch") ;u +                                (list ".*dev.lists.parabola.nu" "l.parabola-dev") +                                ;; ---------------------------------- +                                ;; legend: (u)nsubscribed | (d)ead +                                ;; ---------------------------------- +                                ;; spam +                                ("X-Spam_action" "reject" "Junk") +                                ;; otherwise, leave mail in INBOX +                                "INBOX"))) +   (nnimap "uwaterloo" +           (nnimap-stream plain) +           (nnimap-address "127.0.0.1") +           (nnimap-server-port 143) +           (nnimap-authenticator plain) +           (nnimap-user "abandali@uwaterloo.local") +           (nnimap-inbox "INBOX") +           (nnimap-split-methods 'nnimap-split-fancy) +           (nnimap-split-fancy (| +                                ;; (: gnus-registry-split-fancy-with-parent) +                                ;; se212-f19 +                                ("subject" "SE\\s-?212" "course.se212-f19") +                                (from "SE\\s-?212" "course.se212-f19") +                                ;; catch-all +                                "INBOX"))) +   (nnimap "csc" +           (nnimap-stream plain) +           (nnimap-address "127.0.0.1") +           (nnimap-server-port 143) +           (nnimap-authenticator plain) +           (nnimap-user "abandali@csclub.uwaterloo.local") +           (nnimap-inbox "INBOX") +           (nnimap-split-methods 'nnimap-split-fancy) +           (nnimap-split-fancy (| +                                ;; cron reports and other messages from root +                                (from "root@\\(.*\\.\\)?csclub\\.uwaterloo\\.ca" "INBOX") +                                ;; spam +                                ("X-Spam-Flag" "YES" "Junk") +                                ;; catch-all +                                "INBOX"))) +   (nnimap "sfl" +           (nnimap-stream tls) +           (nnimap-address "mail.savoirfairelinux.com") +           (nnimap-user "amin.bandali"))) + gnus-message-archive-group "nnimap+gnu:INBOX" + gnus-parameters + '(("l\\.atreus" +    (to-address . "atreus@freelists.org") +    (to-list    . "atreus@freelists.org")) +   ("l\\.deepspec" +    (to-address . "deepspec@lists.cs.princeton.edu") +    (to-list    . "deepspec@lists.cs.princeton.edu") +    (list-identifier . "\\[deepspec\\]")) +   ("l\\.emacs-devel" +    (to-address . "emacs-devel@gnu.org") +    (to-list    . "emacs-devel@gnu.org")) +   ("l\\.help-gnu-emacs" +    (to-address . "help-gnu-emacs@gnu.org") +    (to-list    . "help-gnu-emacs@gnu.org")) +   ("l\\.info-gnu-emacs" +    (to-address . "info-gnu-emacs@gnu.org") +    (to-list    . "info-gnu-emacs@gnu.org")) +   ("l\\.emacs-orgmode" +    (to-address . "emacs-orgmode@gnu.org") +    (to-list    . "emacs-orgmode@gnu.org") +    (list-identifier . "\\[O\\]")) +   ("l\\.emacs-tangents" +    (to-address . "emacs-tangents@gnu.org") +    (to-list    . "emacs-tangents@gnu.org")) +   ("l\\.emacsconf-committee" +    (to-address . "emacsconf-committee@gnu.org") +    (to-list    . "emacsconf-committee@gnu.org")) +   ("l\\.emacsconf-discuss" +    (to-address . "emacsconf-discuss@gnu.org") +    (to-list    . "emacsconf-discuss@gnu.org")) +   ("l\\.emacsconf-org" +    (to-address . "emacsconf-org@gnu.org") +    (to-list    . "emacsconf-org@gnu.org")) +   ("l\\.emacsconf-org-private" +    (to-address . "emacsconf-org-private@gnu.org") +    (to-list    . "emacsconf-org-private@gnu.org")) +   ("l\\.emacsconf-register" +    (to-address . "emacsconf-register@gnu.org") +    (to-list    . "emacsconf-register@gnu.org")) +   ("l\\.emacsconf-submit" +    (to-address . "emacsconf-submit@gnu.org") +    (to-list    . "emacsconf-submit@gnu.org")) +   ("l\\.fencepost-users" +    (to-address . "fencepost-users@gnu.org") +    (to-list    . "fencepost-users@gnu.org") +    (list-identifier . "\\[Fencepost-users\\]")) +   ("l\\.gnewsense-art" +    (to-address . "gnewsense-art@nongnu.org") +    (to-list    . "gnewsense-art@nongnu.org") +    (list-identifier . "\\[gNewSense-art\\]")) +   ("l\\.gnewsense-dev" +    (to-address . "gnewsense-dev@nongnu.org") +    (to-list    . "gnewsense-dev@nongnu.org") +    (list-identifier . "\\[Gnewsense-dev\\]")) +   ("l\\.gnewsense-users" +    (to-address . "gnewsense-users@nongnu.org") +    (to-list    . "gnewsense-users@nongnu.org") +    (list-identifier . "\\[gNewSense-users\\]")) +   ("l\\.gnunet-developers" +    (to-address . "gnunet-developers@gnu.org") +    (to-list    . "gnunet-developers@gnu.org") +    (list-identifier . "\\[GNUnet-developers\\]")) +   ("l\\.help-gnunet" +    (to-address . "help-gnunet@gnu.org") +    (to-list    . "help-gnunet@gnu.org") +    (list-identifier . "\\[Help-gnunet\\]")) +   ("l\\.bug-gnuzilla" +    (to-address . "bug-gnuzilla@gnu.org") +    (to-list    . "bug-gnuzilla@gnu.org") +    (list-identifier . "\\[Bug-gnuzilla\\]")) +   ("l\\.gnuzilla-dev" +    (to-address . "gnuzilla-dev@gnu.org") +    (to-list    . "gnuzilla-dev@gnu.org") +    (list-identifier . "\\[Gnuzilla-dev\\]")) +   ("l\\.guile-devel" +    (to-address . "guile-devel@gnu.org") +    (to-list    . "guile-devel@gnu.org")) +   ("l\\.guile-user" +    (to-address . "guile-user@gnu.org") +    (to-list    . "guile-user@gnu.org")) +   ("l\\.guix-devel" +    (to-address . "guix-devel@gnu.org") +    (to-list    . "guix-devel@gnu.org")) +   ("l\\.help-guix" +    (to-address . "help-guix@gnu.org") +    (to-list    . "help-guix@gnu.org")) +   ("l\\.info-guix" +    (to-address . "info-guix@gnu.org") +    (to-list    . "info-guix@gnu.org")) +   ("l\\.savannah-hackers-public" +    (to-address . "savannah-hackers-public@gnu.org") +    (to-list    . "savannah-hackers-public@gnu.org")) +   ("l\\.savannah-users" +    (to-address . "savannah-users@gnu.org") +    (to-list    . "savannah-users@gnu.org")) +   ("l\\.www-commits" +    (to-address . "www-commits@gnu.org") +    (to-list    . "www-commits@gnu.org")) +   ("l\\.www-discuss" +    (to-address . "www-discuss@gnu.org") +    (to-list    . "www-discuss@gnu.org")) +   ("l\\.haskell-art" +    (to-address . "haskell-art@we.lurk.org") +    (to-list    . "haskell-art@we.lurk.org") +    (list-identifier . "\\[haskell-art\\]")) +   ("l\\.haskell-cafe" +    (to-address . "haskell-cafe@haskell.org") +    (to-list    . "haskell-cafe@haskell.org") +    (list-identifier . "\\[Haskell-cafe\\]")) +   ("l\\.notmuch" +    (to-address . "notmuch@notmuchmail.org") +    (to-list    . "notmuch@notmuchmail.org")) +   ("l\\.parabola-dev" +    (to-address . "dev@lists.parabola.nu") +    (to-list    . "dev@lists.parabola.nu") +    (list-identifier . "\\[Dev\\]")) +   ("l\\.~bandali\\.public-inbox" +    (to-address . "~bandali/public-inbox@lists.sr.ht") +    (to-list    . "~bandali/public-inbox@lists.sr.ht")) +   ("l\\.~sircmpwn\\.free-writers-club" +    (to-address . "~sircmpwn/free-writers-club@lists.sr.ht") +    (to-list    . "~sircmpwn/free-writers-club@lists.sr.ht")) +   ("l\\.~sircmpwn\\.srht-admins" +    (to-address . "~sircmpwn/sr.ht-admins@lists.sr.ht") +    (to-list    . "~sircmpwn/sr.ht-admins@lists.sr.ht")) +   ("l\\.~sircmpwn\\.srht-announce" +    (to-address . "~sircmpwn/sr.ht-announce@lists.sr.ht") +    (to-list    . "~sircmpwn/sr.ht-announce@lists.sr.ht")) +   ("l\\.~sircmpwn\\.srht-dev" +    (to-address . "~sircmpwn/sr.ht-dev@lists.sr.ht") +    (to-list    . "~sircmpwn/sr.ht-dev@lists.sr.ht")) +   ("l\\.~sircmpwn\\.srht-discuss" +    (to-address . "~sircmpwn/sr.ht-discuss@lists.sr.ht") +    (to-list    . "~sircmpwn/sr.ht-discuss@lists.sr.ht")) +   ("webmasters" +    (to-address . "webmasters@gnu.org") +    (to-list    . "webmasters@gnu.org")) +   ("gnu.*" +    (gcc-self . t)) +   ("l\\." +    (subscribed . t)) +   ("nnimap\\+uwaterloo:.*" +    (gcc-self . t))) + ;; nnimap-record-commands t + gnus-large-newsgroup  50 + gnus-home-directory   (b/var "gnus/") + gnus-directory        (concat gnus-home-directory "news/") + message-directory     (concat gnus-home-directory "mail/") + nndraft-directory     (concat gnus-home-directory "drafts/") + gnus-save-newsrc-file nil + gnus-read-newsrc-file nil + gnus-interactive-exit nil + gnus-gcc-mark-as-read t) + +(with-eval-after-load 'gnus    (when (version< emacs-version "27")      (with-eval-after-load 'nnmail        (add-to-list @@ -306,11 +300,19 @@    ;; (gnus-registry-initialize)    (with-eval-after-load 'recentf -    (add-to-list 'recentf-exclude gnus-home-directory))) +    (add-to-list 'recentf-exclude gnus-home-directory)) + +  ;; hooks +  (add-hook 'gnus-group-mode-hook #'gnus-topic-mode) +  (add-hook 'gnus-group-mode-hook #'gnus-agent-mode)) +;; global key bindings +(global-set-key (kbd "s-m") #'gnus-plugged) +(global-set-key (kbd "s-M") #'gnus-unplugged) +(global-set-key (kbd "C-c a m") #'gnus-plugged) +(global-set-key (kbd "C-c a M") #'gnus-unplugged) -(use-package gnus-art -  :config -  (setq +(with-eval-after-load 'gnus-art +  (csetq     gnus-buttonized-mime-types '("multipart/\\(signed\\|encrypted\\)")     gnus-sorted-header-list '("^From:"                               "^X-RT-Originator" @@ -355,31 +357,30 @@                       (string-match " (.+" combined-lapsed)                       (match-string 0 combined-lapsed))))        (concat local lapsed)))) -  (bind-keys -   :map gnus-article-mode-map -   ("M-L" . org-store-link))) - -(use-package gnus-sum -  :bind (:map gnus-summary-mode-map -              :prefix-map b/gnus-summary-prefix-map -              :prefix "v" -              ("r" . gnus-summary-reply) -              ("w" . gnus-summary-wide-reply) -              ("v" . gnus-summary-show-raw-article)) -  :config -  (bind-keys -   :map gnus-summary-mode-map -   ("M-L" . org-store-link)) -  :hook (gnus-summary-mode . b/no-mouse-autoselect-window) -  :custom -  (gnus-thread-sort-functions '(gnus-thread-sort-by-number -                                gnus-thread-sort-by-subject -                                gnus-thread-sort-by-date))) - -(use-package gnus-msg -  :init -  (defvar b/sfl-p nil) -  :config +  ;; local key bindings +  (define-key gnus-article-mode-map (kbd "M-L") #'org-store-link)) + +(with-eval-after-load 'gnus-sum +  (csetq gnus-thread-sort-functions '(gnus-thread-sort-by-number +                                      gnus-thread-sort-by-subject +                                      gnus-thread-sort-by-date)) +  ;; local key bindings +  (define-key gnus-summary-mode-map (kbd "M-L") #'org-store-link) +  (defvar b/gnus-summary-prefix-map) +  (define-prefix-command 'b/gnus-summary-prefix-map) +  (define-key gnus-summary-mode-map (kbd "v") +    'b/gnus-summary-prefix-map) +  (define-key b/gnus-summary-prefix-map (kbd "r") +    #'gnus-summary-reply) +  (define-key b/gnus-summary-prefix-map (kbd "w") +    #'gnus-summary-wide-reply) +  (define-key b/gnus-summary-prefix-map (kbd "v") +    #'gnus-summary-show-raw-article)) +;; hooks +(add-hook 'gnus-summary-mode-hook #'b/no-mouse-autoselect-window) + +(defvar b/sfl-p nil) +(with-eval-after-load 'gnus-msg    (defvar b/shemshak-signature "Amin Bandali  https://shemshak.org/~bandali")    (defvar b/uwaterloo-signature "Amin Bandali, MMath @@ -391,103 +392,89 @@ Computer Science Club, University of Waterloo")  Free Software Consultant  Savoir-faire Linux  GNU Jami: bandali") -  (setq gnus-message-replysign t -        gnus-posting-styles -        '((".*" -           (address "bandali@gnu.org")) -          ("nnimap\\+gnu:l\\..*" -           (signature nil)) -          ("nnimap\\+gnu:.*" -           (organization "GNU")) -          ((header "subject" "ThankCRM") -           (to "webmasters-comment@gnu.org") -           (body "") -           (eval (setq b/message-cite-say-hi nil))) -          ("nnimap\\+shemshak:.*" -           (address "amin@shemshak.org") -           (body "\nBest,\n") -           (signature b/shemshak-signature) -           (gcc "nnimap+shemshak:Sent") -           (eval (setq b/message-cite-say-hi t))) -          ("nnimap\\+uwaterloo:.*" -           (address "bandali@uwaterloo.ca") -           (body "\nBest,\n") -           (signature b/uwaterloo-signature)) -          ("nnimap\\+uwaterloo:INBOX" -           (gcc "\"nnimap+uwaterloo:Sent Items\"")) -          ("nnimap\\+csc:.*" -           (address "bandali@csclub.uwaterloo.ca") -           (signature b/csc-signature) -           (gcc "nnimap+csc:Sent")) -          ("nnimap\\+sfl:.*" -           (address "amin.bandali@savoirfairelinux.com") -           (signature b/sfl-signature) -           (gcc "nnimap+sfl:Sent") -           (eval (setq-local b/sfl-p t))))) -  :hook (gnus-message-setup . (lambda () -                                (unless (or (mml-secure-is-encrypted-p) -                                            b/sfl-p) -                                  (mml-secure-message-sign))))) - -(use-package gnus-topic -  :hook (gnus-group-mode . gnus-topic-mode) -  :config (setq gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n")) - -(use-package gnus-agent -  :config -  (setq gnus-agent-synchronize-flags 'ask) -  :hook (gnus-group-mode . gnus-agent-mode)) - -(use-package gnus-group -  :config -  (setq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)")) +  (csetq +   gnus-message-replysign t +   gnus-posting-styles +   '((".*" +      (address "bandali@gnu.org")) +     ("nnimap\\+gnu:l\\..*" +      (signature nil)) +     ("nnimap\\+gnu:.*" +      (organization "GNU")) +     ((header "subject" "ThankCRM") +      (to "webmasters-comment@gnu.org") +      (body "") +      (eval (setq b/message-cite-say-hi nil))) +     ("nnimap\\+shemshak:.*" +      (address "amin@shemshak.org") +      (body "\nBest,\n") +      (signature b/shemshak-signature) +      (gcc "nnimap+shemshak:Sent") +      (eval (setq b/message-cite-say-hi t))) +     ("nnimap\\+uwaterloo:.*" +      (address "bandali@uwaterloo.ca") +      (body "\nBest,\n") +      (signature b/uwaterloo-signature)) +     ("nnimap\\+uwaterloo:INBOX" +      (gcc "\"nnimap+uwaterloo:Sent Items\"")) +     ("nnimap\\+csc:.*" +      (address "bandali@csclub.uwaterloo.ca") +      (signature b/csc-signature) +      (gcc "nnimap+csc:Sent")) +     ("nnimap\\+sfl:.*" +      (address "amin.bandali@savoirfairelinux.com") +      (signature b/sfl-signature) +      (gcc "nnimap+sfl:Sent") +      (eval (setq-local b/sfl-p t)))))) +;; hooks +(with-eval-after-load 'gnus +  (add-hook 'gnus-message-setup-hook +            (lambda () +              (unless (or (mml-secure-is-encrypted-p) +                          b/sfl-p) +                (mml-secure-message-sign))))) + +(with-eval-after-load 'gnus-topic +  (csetq gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n")) + +(with-eval-after-load 'gnus-agent +  (csetq gnus-agent-synchronize-flags 'ask)) + +(with-eval-after-load 'gnus-group +  (csetq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)"))  (comment    ;; problematic with ebdb's popup, *EBDB-Gnus* -  (use-package gnus-win -    :config -    (setq gnus-use-full-window nil))) +  (with-eval-after-load 'gnus-win +    (csetq gnus-use-full-window nil))) -(use-package gnus-dired -  :commands gnus-dired-mode -  :init +(with-eval-after-load 'gnus-dired    (add-hook 'dired-mode-hook 'gnus-dired-mode))  (comment -  (use-package gnus-utils -    :custom -    (gnus-completing-read-function 'gnus-ido-completing-read))) - -(use-package mm-decode -  :config -  (setq mm-discouraged-alternatives '("text/html" "text/richtext") -        mm-decrypt-option 'known -        mm-verify-option 'known)) - -(use-package mm-uu -  :config +  (with-eval-after-load 'gnus-utils +    (csetq gnus-completing-read-function 'gnus-ido-completing-read))) + +(with-eval-after-load 'mm-decode +  (csetq mm-discouraged-alternatives '("text/html" "text/richtext") +         mm-decrypt-option 'known +         mm-verify-option 'known)) + +(with-eval-after-load 'mm-uu    (when (version< "27" emacs-version)      (set-face-attribute 'mm-uu-extract nil :extend t))    (when (version< emacs-version "27") -    (setq mm-uu-diff-groups-regexp -          "\\(gmane\\|gnu\\|l\\)\\..*\\(diff\\|commit\\|cvs\\|bug\\|dev\\)"))) - -(use-package mml) - -(use-package mml-sec -  :custom -  (mml-secure-openpgp-encrypt-to-self t) -  (mml-secure-openpgp-sign-with-sender t)) - -(use-package gnus-article-treat-patch -  :disabled -  :demand -  :load-path "lisp/" -  :config -  ;; note: be sure to customize faces with `:foreground "white"' when -  ;; using a theme with a white/light background :) -  (setq ft/gnus-article-patch-conditions -        '("^@@ -[0-9]+,[0-9]+ \\+[0-9]+,[0-9]+ @@"))) +    (csetq mm-uu-diff-groups-regexp "."))) + +(with-eval-after-load 'mml-sec +  (csetq mml-secure-openpgp-encrypt-to-self t +         mml-secure-openpgp-sign-with-sender t)) + +;; (require 'gnus-article-treat-patch) +;; ;; note: be sure to customize faces with `:foreground "white"' when +;; ;; using a theme with a white/light background :) +;; (setq ft/gnus-article-patch-conditions +;;       '("^@@ -[0-9]+,[0-9]+ \\+[0-9]+,[0-9]+ @@"))  (provide 'bandali-gnus)  ;;; bandali-gnus.el ends here diff --git a/lisp/bandali-ibuffer.el b/lisp/bandali-ibuffer.el index bf42def..7cd4331 100644 --- a/lisp/bandali-ibuffer.el +++ b/lisp/bandali-ibuffer.el @@ -24,15 +24,62 @@  ;;; Code: -(use-package ibuffer -  :bind -  (("C-x C-b" . ibuffer) -   :map ibuffer-mode-map -   ("P"   . ibuffer-backward-filter-group) -   ("N"   . ibuffer-forward-filter-group) -   ("M-p" . ibuffer-do-print) -   ("M-n" . ibuffer-do-shell-command-pipe-replace)) -  :config +(csetq + ibuffer-saved-filter-groups + '(("default" +    ("dired" (mode . dired-mode)) +    ("org"   (mode . org-mode)) +    ("gnus" +     (or +      (mode . gnus-group-mode) +      (mode . gnus-summary-mode) +      (mode . gnus-article-mode) +      (mode . message-mode))) +    ("web" +     (or +      (mode . mhtml-mode) +      (mode . css-mode) +      (mode . scss-mode) +      (mode . js2-mode))) +    ("shell" +     (or +      (mode . eshell-mode) +      (mode . shell-mode) +      (mode . term-mode))) +    ("programming" +     (or +      (mode . python-mode) +      (mode . c-mode) +      (mode . c++-mode) +      (mode . java-mode) +      (mode . emacs-lisp-mode) +      (mode . scheme-mode) +      (mode . haskell-mode) +      (mode . lean-mode) +      ;; (mode . go-mode) +      (mode . alloy-mode))) +    ("tex" +     (or +      (mode . bibtex-mode) +      (mode . latex-mode))) +    ("emacs" +     (or +      (name . "^\\*scratch\\*$") +      (name . "^\\*Messages\\*$"))) +    ("exwm" (mode . exwm-mode)) +    ("erc" (mode . erc-mode)))) + ibuffer-formats + '((mark modified read-only locked " " +         (name 72 72 :left :elide) +         " " +         (size-h 9 -1 :right) +         " " +         (mode 16 16 :left :elide) +         " " filename-and-process) +   (mark " " +         (name 16 -1) +         " " filename))) +(with-eval-after-load 'ibuffer    ;; Use human readable Size column instead of original one    (define-ibuffer-column size-h      (:name "Size" :inline t) @@ -41,65 +88,23 @@       ((> (buffer-size) 100000) (format "%7.0fk" (/ (buffer-size) 1000.0)))       ((> (buffer-size) 1000) (format "%7.1fk" (/ (buffer-size) 1000.0)))       (t (format "%8d" (buffer-size))))) -  (declare-function ibuffer-switch-to-saved-filter-groups "ibuf-ext" + +  ;; local key bindings +  (define-key ibuffer-mode-map (kbd "P") +    #'ibuffer-backward-filter-group) +  (define-key ibuffer-mode-map (kbd "N") +    #'ibuffer-forward-filter-group) +  (define-key ibuffer-mode-map (kbd "M-p") +    #'ibuffer-do-print) +  (define-key ibuffer-mode-map (kbd "M-n") +    #'ibuffer-do-shell-command-pipe-replace)) +;; global key bindings +(global-set-key (kbd "C-x C-b") #'ibuffer) +;; hooks +(declare-function ibuffer-switch-to-saved-filter-groups "ibuf-ext"                      (name)) -  :custom -  (ibuffer-saved-filter-groups -   '(("default" -      ("dired" (mode . dired-mode)) -      ("org"   (mode . org-mode)) -      ("gnus" -       (or -        (mode . gnus-group-mode) -        (mode . gnus-summary-mode) -        (mode . gnus-article-mode) -        ;; not really, but... -        (mode . message-mode))) -      ("web" -       (or -        (mode . mhtml-mode) -        (mode . css-mode) -        (mode . scss-mode) -        (mode . js2-mode))) -      ("shell" -       (or -        (mode . eshell-mode) -        (mode . shell-mode) -        (mode . term-mode))) -      ("programming" -       (or -        (mode . python-mode) -        (mode . c-mode) -        (mode . c++-mode) -        (mode . java-mode) -        (mode . emacs-lisp-mode) -        (mode . scheme-mode) -        (mode . haskell-mode) -        (mode . lean-mode) -        ;; (mode . go-mode) -        (mode . alloy-mode))) -      ("tex" -       (or -        (mode . bibtex-mode) -        (mode . latex-mode))) -      ("emacs" -       (or -        (name . "^\\*scratch\\*$") -        (name . "^\\*Messages\\*$"))) -      ("exwm" (mode . exwm-mode)) -      ("erc" (mode . erc-mode))))) -  (ibuffer-formats -   '((mark modified read-only locked " " -           (name 72 72 :left :elide) -           " " -           (size-h 9 -1 :right) -           " " -           (mode 16 16 :left :elide) -           " " filename-and-process) -     (mark " " -           (name 16 -1) -           " " filename))) -  :hook (ibuffer . (lambda () (ibuffer-switch-to-saved-filter-groups "default")))) +(add-hook 'ibuffer-hook +          (lambda () (ibuffer-switch-to-saved-filter-groups "default")))  (provide 'bandali-ibuffer)  ;;; bandali-ibuffer.el ends here diff --git a/lisp/bandali-ivy.el b/lisp/bandali-ivy.el index 3a67cf1..973323a 100644 --- a/lisp/bandali-ivy.el +++ b/lisp/bandali-ivy.el @@ -24,20 +24,14 @@  ;;; Code: -(use-package ivy -  :defer 0.3 -  :bind -  (:map ivy-minibuffer-map -   ([escape] . keyboard-escape-quit) -   ([S-up]   . ivy-previous-history-element) -   ([S-down] . ivy-next-history-element) -   ("DEL"    . ivy-backward-delete-char)) -  :config -  (setq ivy-wrap t -        ;; ivy-height 14 -        ivy-use-virtual-buffers t -        ivy-virtual-abbreviate 'abbreviate -        ivy-count-format "%d/%d ") +(run-with-idle-timer 0.3 nil #'require 'ivy) +(with-eval-after-load 'ivy +  ;; ivy +  (csetq ivy-wrap t +         ;; ivy-height 14 +         ivy-use-virtual-buffers t +         ivy-virtual-abbreviate 'abbreviate +         ivy-count-format "%d/%d ")    (defvar b/ivy-ignore-buffer-modes      '(;; dired-mode @@ -52,24 +46,29 @@ This function is intended for use with `ivy-ignore-buffers'."             (mode (and buf (buffer-local-value 'major-mode buf))))        (and mode             (apply #'provided-mode-derived-p mode b/ivy-ignore-buffer-modes)))) -  (add-to-list 'ivy-ignore-buffers 'b/ivy-ignore-buffer-p) - -  (ivy-mode 1)) - -(use-package swiper -  :demand -  :after ivy -  :bind (("C-S-s" . swiper-isearch))) - -(use-package counsel -  :demand -  :after ivy -  :bind (("C-c f r" . counsel-recentf) -         :map minibuffer-local-map -         ("C-r" . counsel-minibuffer-history)) -  :config +  (add-to-list 'ivy-ignore-buffers #'b/ivy-ignore-buffer-p) + +  (define-key ivy-minibuffer-map [escape] #'keyboard-escape-quit) +  (define-key ivy-minibuffer-map [S-up] +    #'ivy-previous-history-element) +  (define-key ivy-minibuffer-map [S-down] +    #'ivy-next-history-element) +  (define-key ivy-minibuffer-map (kbd "DEL") +    #'ivy-backward-delete-char) + +  (ivy-mode 1) + +  ;; swiper +  (require 'swiper) +  (global-set-key (kbd "C-S-s") #'swiper-isearch) + +  ;; counsel +  (require 'counsel)    (counsel-mode 1) -  (defalias 'locate #'counsel-locate)) +  (defalias 'locate #'counsel-locate) +  (global-set-key (kbd "C-c f r") #'counsel-recentf) +  (define-key minibuffer-local-map +    (kbd "C-r") #'counsel-minibuffer-history))  (provide 'bandali-ivy)  ;;; bandali-ivy.el ends here diff --git a/lisp/bandali-message.el b/lisp/bandali-message.el index 7d8edf4..e7e43f8 100644 --- a/lisp/bandali-message.el +++ b/lisp/bandali-message.el @@ -24,9 +24,8 @@  ;;; Code: -(use-package message -  :bind (:map message-mode-map ("<C-return>" . b/insert-asterism)) -  :config +(with-eval-after-load 'message +  ;; :bind (:map message-mode-map ("<C-return>" . b/insert-asterism))    ;; redefine for a simplified In-Reply-To header    ;; (see https://todo.sr.ht/~sircmpwn/lists.sr.ht/67)    (defun message-make-in-reply-to () @@ -50,7 +49,9 @@             (concat "Hi %F,\n\n" b/message-cite-style-format)           b/message-cite-style-format)))      "Citation style based on Mozilla Thunderbird's. Use with message-cite-style.") -  (setq ;; message-cite-style 'message-cite-style-bandali +  (csetq +   message-elide-ellipsis "[...]\n" +   ;; message-cite-style 'message-cite-style-bandali     message-citation-line-format "%N writes:\n"     message-citation-line-function 'message-insert-formatted-citation-line     message-kill-buffer-on-exit t @@ -59,73 +60,81 @@     message-subscribed-address-functions     '(gnus-find-subscribed-addresses)     message-dont-reply-to-names -   "\\(\\(amin@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|bandali@fsf\\.org\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\)") +   "\\(\\(amin@shemshak\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|bandali@fsf\\.org\\|\\(a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca\\)\\|amin\\.bandali@savoirfairelinux\\.com\\)")    ;; (require 'company-ebdb) -  :hook (;; (message-setup . mml-secure-message-sign-pgpmime) -         (message-mode . flyspell-mode) -         (message-mode . (lambda () -                           ;; (setq-local fill-column b/fill-column -                           ;;             message-fill-column b/fill-column) -                           (eval-when-compile (defvar company-idle-delay)) -                           (make-local-variable 'company-idle-delay) -                           (setq company-idle-delay 0.2)))) -  ;; :custom-face -  ;; (message-header-subject ((t (:foreground "#111" :weight semi-bold)))) -  ;; (message-header-to      ((t (:foreground "#111" :weight normal)))) -  ;; (message-header-cc      ((t (:foreground "#333" :weight normal)))) -  :custom -  (message-elide-ellipsis "[...]\n")) - -(use-package footnote -  :after message -  :config -  ;; (setq footnote-start-tag "" -  ;;       footnote-end-tag   "" -  ;;       footnote-style     'unicode) -  (when (featurep 'which-key) -    (which-key-add-major-mode-key-based-replacements 'message-mode -      "C-c f n" "footnote")) -  :bind -  (:map message-mode-map -        :prefix-map b/footnote-prefix-map -        :prefix "C-c f n" -        ("a" . footnote-add-footnote) -        ("b" . footnote-back-to-message) -        ("c" . footnote-cycle-style) -        ("d" . footnote-delete-footnote) -        ("g" . footnote-goto-footnote) -        ("r" . footnote-renumber-footnotes) -        ("s" . footnote-set-style))) +  ;; (custom-set-faces +  ;;  '(message-header-subject +  ;;    ((t (:foreground "#111" :weight semi-bold)))) +  ;;  '(message-header-to +  ;;    ((t (:foreground "#111" :weight normal)))) +  ;;  '(message-header-cc +  ;;    ((t (:foreground "#333" :weight normal)))) + +  ;; footnote +  (with-eval-after-load 'footnote +    ;; (csetq footnote-start-tag "" +    ;;        footnote-end-tag   "" +    ;;        footnote-style     'unicode) +    (when (featurep 'which-key) +      (which-key-add-major-mode-key-based-replacements 'message-mode +        "C-c f n" "footnote"))) + +  ;; orgalist +  (add-hook 'message-mode-hook +            (lambda () +              ;; work around incompatibility between +              ;; orgalist and yasnippet +              (yas-minor-mode -1) +              (orgalist-mode 1) +              (yas-minor-mode 1))) + +  ;; local key bindings +  (defvar b/footnote-prefix-map) +  (define-prefix-command 'b/footnote-prefix-map) +  (define-key message-mode-map (kbd "C-c f n") +    'b/footnote-prefix-map) +  (define-key b/footnote-prefix-map (kbd "a") +    #'footnote-add-footnote) +  (define-key b/footnote-prefix-map (kbd "b") +    #'footnote-back-to-message) +  (define-key b/footnote-prefix-map (kbd "c") +    #'footnote-cycle-style) +  (define-key b/footnote-prefix-map (kbd "d") +    #'footnote-delete-footnote) +  (define-key b/footnote-prefix-map (kbd "g") +    #'footnote-goto-footnote) +  (define-key b/footnote-prefix-map (kbd "r") +    #'footnote-renumber-footnotes) +  (define-key b/footnote-prefix-map (kbd "s") +    #'footnote-set-style)) +;; hooks +;; (add-hook 'message-setup-hook #'mml-secure-message-sign-pgpmime) +(add-hook 'message-mode-hook #'flyspell-mode) +(add-hook 'message-mode-hook +          (lambda () +            ;; (setq-local fill-column b/fill-column +            ;;             message-fill-column b/fill-column) +            (eval-when-compile (defvar company-idle-delay)) +            (make-local-variable 'company-idle-delay) +            (setq company-idle-delay 0.2)))  (comment -  (use-package message-x -    :custom -    (message-x-completion-alist -     (quote -      (("\\([rR]esent-\\|[rR]eply-\\)?[tT]o:\\|[bB]?[cC][cC]:" . gnus-harvest-find-address) +  (with-eval-after-load 'message-x +    (csetq +     message-x-completion-alist +     '(("\\([rR]esent-\\|[rR]eply-\\)?[tT]o:\\|[bB]?[cC][cC]:" +        . gnus-harvest-find-address)         ((if              (boundp               (quote message-newgroups-header-regexp))              message-newgroups-header-regexp message-newsgroups-header-regexp) -        . message-expand-group)))))) +        . message-expand-group)))))  (comment -  (use-package gnus-harvest -    :commands gnus-harvest-install -    :demand -    :config -    (if (featurep 'message-x) -        (gnus-harvest-install 'message-x) -      (gnus-harvest-install)))) - -(use-package orgalist -  :after message -  :hook (message-mode . (lambda () -                          ;; work around incompatibility between -                          ;; orgalist and yasnippet -                          (yas-minor-mode -1) -                          (orgalist-mode 1) -                          (yas-minor-mode 1)))) +  (require 'gnus-harvest) +  (if (featurep 'message-x) +      (gnus-harvest-install 'message-x) +    (gnus-harvest-install)))  (provide 'bandali-message)  ;;; bandali-message.el ends here diff --git a/lisp/bandali-org.el b/lisp/bandali-org.el index a9ab750..ed2a3bd 100644 --- a/lisp/bandali-org.el +++ b/lisp/bandali-org.el @@ -24,66 +24,42 @@  ;;; Code: -(use-package org -  :config -  (setq org-src-tab-acts-natively t -        org-src-preserve-indentation nil -        org-edit-src-content-indentation 0 -        org-link-email-description-format "Email %c: %s" ; %.30s -        org-highlight-latex-and-related '(entities) -        org-use-speed-commands t -        org-startup-folded 'content -        org-catch-invisible-edits 'show-and-error -        org-log-done 'time) +(with-eval-after-load 'org +  (csetq org-src-tab-acts-natively t +         org-src-preserve-indentation nil +         org-edit-src-content-indentation 0 +         org-link-email-description-format "Email %c: %s" ; %.30s +         org-highlight-latex-and-related '(entities) +         org-use-speed-commands t +         org-startup-folded 'content +         org-catch-invisible-edits 'show-and-error +         org-log-done 'time +         org-pretty-entities t +         org-agenda-files '("~/usr/org/todos/personal.org" +                            "~/usr/org/todos/habits.org" +                            "~/src/git/masters-thesis/todo.org") +         org-agenda-start-on-weekday 0 +         org-agenda-time-leading-zero t +         org-habit-graph-column 44 +         org-latex-packages-alist '(("" "listings") ("" "color")))    (add-to-list 'org-structure-template-alist '("L" . "src emacs-lisp") t)    (add-to-list 'org-modules 'org-habit) -  :bind -  (("C-c a o a" . org-agenda) -   :map org-mode-map -   ("M-L" . org-insert-last-stored-link) -   ("M-O" . org-toggle-link-display)) -  :hook ((org-mode . org-indent-mode) -         (org-mode . auto-fill-mode) -         (org-mode . flyspell-mode)) -  :custom -  (org-pretty-entities t) -  (org-agenda-files '("~/usr/org/todos/personal.org" -                      "~/usr/org/todos/habits.org" -                      "~/src/git/masters-thesis/todo.org")) -  (org-agenda-start-on-weekday 0) -  (org-agenda-time-leading-zero t) -  (org-habit-graph-column 44) -  (org-latex-packages-alist '(("" "listings") ("" "color"))) -  :custom-face -  '(org-block-begin-line ((t (:foreground "#5a5b5a" :background "#1d1f21")))) -  '(org-block ((t (:background "#1d1f21")))) -  '(org-latex-and-related ((t (:foreground "#b294bb"))))) - -(use-package ox-latex -  :after ox -  :config -  (setq org-latex-listings 'listings -        ;; org-latex-prefer-user-labels t -        ) -  (add-to-list 'org-latex-classes -               '("IEEEtran" "\\documentclass[11pt]{IEEEtran}" -                 ("\\section{%s}"       . "\\section*{%s}") -                 ("\\subsection{%s}"    . "\\subsection*{%s}") -                 ("\\subsubsection{%s}" . "\\subsubsection*{%s}") -                 ("\\paragraph{%s}"     . "\\paragraph*{%s}") -                 ("\\subparagraph{%s}"  . "\\subparagraph*{%s}")) -               t) -  (require 'ox-beamer)) - -(use-package ox-extra -  :config -  (declare-function ox-extras-activate "ox-extra" (extras)) -  (ox-extras-activate '(latex-header-blocks ignore-headlines))) - -;; asynchronous tangle, using emacs-async to asynchronously tangle an -;; org file.  closely inspired by -;; https://github.com/dieggsy/dotfiles/tree/cc10edf7701958eff1cd94d4081da544d882a28c/emacs.d#dotfiles -(with-eval-after-load 'org +  (custom-set-faces +   '(org-block-begin-line +     ((t (:foreground "#5a5b5a" :background "#1d1f21")))) +   '(org-block ((t (:background "#1d1f21")))) +   '(org-latex-and-related ((t (:foreground "#b294bb"))))) +  ;; local key bindings +  (define-key org-mode-map (kbd "M-L") #'org-insert-last-stored-link) +  (define-key org-mode-map (kbd "M-O") #'org-toggle-link-display) +  ;; hooks +  (add-hook 'org-mode-hook #'org-indent-mode) +  (add-hook 'org-mode-hook #'auto-fill-mode) +  (add-hook 'org-mode-hook #'flyspell-mode) + +  ;; asynchronous tangle, using emacs-async to asynchronously tangle an +  ;; org file.  closely inspired by +  ;; https://github.com/dieggsy/dotfiles/tree/cc10edf7701958eff1cd94d4081da544d882a28c/emacs.d#dotfiles    (defvar b/show-async-tangle-results nil      "Keep *emacs* async buffers around for later inspection.") @@ -113,14 +89,30 @@                                       (float-time (time-subtract (current-time)                                                                  ',file-tangle-start-time)))                             "")) -              (message "Tangling %s failed" ,file-nodir)))))))) - -(add-to-list - 'safe-local-variable-values - '(eval add-hook 'after-save-hook #'b/async-babel-tangle 'append 'local)) +              (message "Tangling %s failed" ,file-nodir))))))) +  (add-to-list +   'safe-local-variable-values +   '(eval add-hook 'after-save-hook #'b/async-babel-tangle 'append 'local))) +;; global key bindings +(global-set-key (kbd "C-c a o a") #'org-agenda) + +(with-eval-after-load 'ox-latex +  (csetq org-latex-listings 'listings +         ;; org-latex-prefer-user-labels t +         ) +  (add-to-list 'org-latex-classes +               '("IEEEtran" "\\documentclass[11pt]{IEEEtran}" +                 ("\\section{%s}"       . "\\section*{%s}") +                 ("\\subsection{%s}"    . "\\subsection*{%s}") +                 ("\\subsubsection{%s}" . "\\subsubsection*{%s}") +                 ("\\paragraph{%s}"     . "\\paragraph*{%s}") +                 ("\\subparagraph{%s}"  . "\\subparagraph*{%s}")) +               t) +  (require 'ox-beamer)) -(use-package org-tanglesync -  :hook (org-mode . org-tanglesync-mode)) +(with-eval-after-load 'ox-extra   +  (declare-function ox-extras-activate "ox-extra" (extras)) +  (ox-extras-activate '(latex-header-blocks ignore-headlines)))  (provide 'bandali-org)  ;;; bandali-org.el ends here diff --git a/lisp/bandali-theme.el b/lisp/bandali-theme.el index 13be391..7706bcc 100644 --- a/lisp/bandali-theme.el +++ b/lisp/bandali-theme.el @@ -24,24 +24,18 @@  ;;; Code: -(use-package refinery-theme -  :demand -  :config -  (load-theme 'refinery t)) - -(use-package smart-mode-line -  :commands (sml/apply-theme) -  :demand -  :config -  ;; thanks, but no thnaks; don't make fixed-width fills. -  (defun sml/fill-for-buffer-identification () "") -  (setq sml/theme 'respectful) -  (sml/setup) -  (smart-mode-line-enable)) - -(use-package minions -  :demand -  :config (minions-mode)) +(require 'refinery-theme) +(load-theme 'refinery t) + +(require 'smart-mode-line) +;; thanks, but no thanks; don't make fixed-width fills. +(defun sml/fill-for-buffer-identification nil "") +(setq sml/theme 'respectful) +(sml/setup) +(smart-mode-line-enable) + +(require 'minions) +(minions-mode)  (defvar b/org-mode-font-lock-keywords    '(("[ \t]*\\(#\\+\\(BEGIN\\|END\\|begin\\|end\\)_\\(\\S-+\\)\\)[ \t]*\\([^\n:]*\\)" @@ -72,9 +66,9 @@    "Go dark."    (interactive)    (mapc #'disable-theme custom-enabled-themes) -  (load-theme 'tango-dark t) +  (load-theme 'refinery-dark t)    (when (featurep 'smart-mode-line) -    (sml/apply-theme 'automatic)) +    (sml/apply-theme 'dark))    (font-lock-add-keywords     'org-mode b/org-mode-font-lock-keywords t)    (when (featurep 'erc-hl-nicks) @@ -82,9 +76,8 @@    (when (featurep 'exwm-systemtray)      (exwm-systemtray--refresh))) -(bind-keys - ("C-c t d" . b/lights-off) - ("C-c t l" . b/lights-on)) +(global-set-key (kbd "C-c t d") #'b/lights-off) +(global-set-key (kbd "C-c t l") #'b/lights-on)  (provide 'bandali-theme)  ;;; bandali-theme.el ends here diff --git a/lisp/bandali-yasnippet.el b/lisp/bandali-yasnippet.el deleted file mode 100644 index 6cdbc7a..0000000 --- a/lisp/bandali-yasnippet.el +++ /dev/null @@ -1,26 +0,0 @@ -(use-package yasnippet -  :defer 0.6 -  :config -  (declare-function yas-reload-all -                    "yasnippet" (&optional no-jit interactive)) -  (declare-function yas-maybe-expand-abbrev-key-filter -                    "yasnippet" (cmd)) - -  (defconst yas-verbosity-cur yas-verbosity) -  (setq yas-verbosity 2) -  (add-to-list 'yas-snippet-dirs "~/src/git/guix/etc/snippets" t) -  (yas-reload-all) -  (setq yas-verbosity yas-verbosity-cur) - -  (defun b/yas-maybe-expand-abbrev-key-filter (cmd) -    (when (and (yas-maybe-expand-abbrev-key-filter cmd) -               (not (bound-and-true-p git-commit-mode))) -      cmd)) -  (defconst b/yas-maybe-expand -    '(menu-item "" yas-expand :filter b/yas-maybe-expand-abbrev-key-filter)) -  (define-key yas-minor-mode-map -    (kbd "SPC") b/yas-maybe-expand) - -  (yas-global-mode)) - -(provide 'bandali-yasnippet)  | 
