emacs: use conf-mode .*rc files, but use sh-mode for .bashrc
[~bandali/configs] / .emacs.d / init.el
index 2138b89..d135772 100644 (file)
@@ -947,6 +947,12 @@ For disabling the behaviour for certain buffers and/or modes."
   :hook ((text-mode . indicate-buffer-boundaries-left)
          (text-mode . abbrev-mode)))
 
+(use-feature conf-mode
+  :mode "\\.*rc$")
+
+(use-feature sh-mode
+  :mode "\\.bashrc$")
+
 (use-package company
   :defer 0.6
   :bind
@@ -1524,6 +1530,47 @@ For disabling the behaviour for certain buffers and/or modes."
             (nnimap-server-port 143)
             (nnimap-authenticator plain)
             (nnimap-user "amin@bndl.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")
+                                 ;; gnu
+                                 (list ".*emacs-devel.gnu.org" "l.gnu.emacs.devel")
+                                 (list ".*help-gnu-emacs.gnu.org" "l.gnu.emacs.help")
+                                 (list ".*info-gnu-emacs.gnu.org" "l.gnu.emacs.info")
+                                 (list ".*emacs-orgmode.gnu.org" "l.gnu.emacs.orgmode")
+                                 (list ".*emacsconf-discuss.gnu.org" "l.gnu.emacsconf.discuss")
+                                 (list ".*fencepost-users.gnu.org" "l.gnu.fencepost.users")
+                                 (list ".*gnunet-developers.gnu.org" "l.gnu.gnunet.developers")
+                                 (list ".*help-gnunet.gnu.org" "l.gnu.gnunet.help")
+                                 (list ".*bug-gnuzilla.gnu.org" "l.gnu.gnuzilla.bug")
+                                 (list ".*gnuzilla-dev.gnu.org" "l.gnu.gnuzilla.dev")
+                                 (list ".*guile-devel.gnu.org" "l.gnu.guile.devel")
+                                 (list ".*guix-devel.gnu.org" "l.gnu.guix.devel")
+                                 (list ".*info-guix.gnu.org" "l.gnu.guix.info")
+                                 (list ".*www-commits.gnu.org" "l.gnu.www.commits")
+                                 (list ".*www-discuss.gnu.org" "l.gnu.www.discuss")
+                                 ;; haskell
+                                 (list ".*haskell-art.we.lurk.org" "l.haskell.art")
+                                 (list ".*haskell-cafe.haskell.org" "l.haskell.cafe")
+                                 ;; other
+                                 (list ".*deepspec.lists.cs.princeton.edu" "l.deepspec")
+                                 (list ".*notmuch.notmuchmail.org" "l.notmuch")
+                                 (list ".*dev.lists.parabola.nu" "l.parabola.dev")
+                                 ;; *@lists.sr.ht
+                                 (list ".*~bandali/public-inbox@lists.sr.ht" "l.~bandali.public-inbox")
+                                 (list ".*~sircmpwn/sr.ht-admins@lists.sr.ht" "l.~sircmpwn.srht.admins")
+                                 (list ".*~sircmpwn/sr.ht-announce@lists.sr.ht" "l.~sircmpwn.srht.announce")
+                                 (list ".*~sircmpwn/sr.ht-dev@lists.sr.ht" "l.~sircmpwn.srht.dev")
+                                 (list ".*~sircmpwn/sr.ht-discuss@lists.sr.ht" "l.~sircmpwn.srht.discuss")
+                                 "INBOX")))
      (nnimap "uw"
              (nnimap-stream plain)
              (nnimap-address "127.0.0.1")
@@ -1538,82 +1585,94 @@ For disabling the behaviour for certain buffers and/or modes."
              (nnimap-user "abandali@csc.uw.local")))
    gnus-message-archive-group "nnimap+amin:Sent"
    gnus-parameters
-   '(("gnu\\.deepspec"
+   '(("l\\.deepspec"
       (to-address . "deepspec@lists.cs.princeton.edu")
       (to-list    . "deepspec@lists.cs.princeton.edu")
       (list-identifier . "\\[deepspec\\]"))
-     ("gnu\\.emacs-devel"
+     ("l\\.gnu\\.emacs\\.devel"
       (to-address . "emacs-devel@gnu.org")
       (to-list    . "emacs-devel@gnu.org"))
-     ("gnu\\.emacs-orgmode"
+     ("l\\.gnu\\.emacs\\.help"
+      (to-address . "help-gnu-emacs@gnu.org")
+      (to-list    . "help-gnu-emacs@gnu.org"))
+     ("l\\.gnu\\.emacs\\.info"
+      (to-address . "info-gnu-emacs@gnu.org")
+      (to-list    . "info-gnu-emacs@gnu.org"))
+     ("l\\.gnu\\.emacs\\.orgmode"
       (to-address . "emacs-orgmode@gnu.org")
       (to-list    . "emacs-orgmode@gnu.org")
       (list-identifier . "\\[O\\]"))
-     ("gnu\\.emacsconf-discuss"
+     ("l\\.gnu\\.emacsconf\\.discuss"
       (to-address . "emacsconf-discuss@gnu.org")
       (to-list    . "emacsconf-discuss@gnu.org"))
-     ("gnu\\.fencepost-users"
+     ("l\\.gnu\\.fencepost\\.users"
       (to-address . "fencepost-users@gnu.org")
       (to-list    . "fencepost-users@gnu.org")
       (list-identifier . "\\[Fencepost-users\\]"))
-     ("gnu\\.gnunet-developers"
+     ("l\\.gnu\\.gnunet\\.developers"
       (to-address . "gnunet-developers@gnu.org")
       (to-list    . "gnunet-developers@gnu.org")
       (list-identifier . "\\[GNUnet-developers\\]"))
-     ("gnu\\.guile-devel"
+     ("l\\.gnu\\.gnunet\\.help"
+      (to-address . "help-gnunet@gnu.org")
+      (to-list    . "help-gnunet@gnu.org")
+      (list-identifier . "\\[Help-gnunet\\]"))
+     ("l\\.gnu\\.gnuzilla\\.bug"
+      (to-address . "bug-gnuzilla@gnu.org")
+      (to-list    . "bug-gnuzilla@gnu.org")
+      (list-identifier . "\\[Bug-gnuzilla\\]"))
+     ("l\\.gnu\\.gnuzilla\\.dev"
+      (to-address . "gnuzilla-dev@gnu.org")
+      (to-list    . "gnuzilla-dev@gnu.org")
+      (list-identifier . "\\[Gnuzilla-dev\\]"))
+     ("l\\.gnu\\.guile\\.devel"
       (to-address . "guile-devel@gnu.org")
       (to-list    . "guile-devel@gnu.org"))
-     ("gnu\\.guix-devel"
+     ("l\\.gnu\\.guix\\.devel"
       (to-address . "guix-devel@gnu.org")
       (to-list    . "guix-devel@gnu.org"))
-     ("gnu\\.haskell-art"
+     ("l\\.gnu\\.guix\\.info"
+      (to-address . "info-guix@gnu.org")
+      (to-list    . "info-guix@gnu.org"))
+     ("l\\.gnu\\.www\\.commits"
+      (to-address . "www-commits@gnu.org")
+      (to-list    . "www-commits@gnu.org"))
+     ("l\\.gnu\\.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\\]"))
-     ("gnu\\.haskell-cafe"
+     ("l\\.haskell\\.cafe"
       (to-address . "haskell-cafe@haskell.org")
       (to-list    . "haskell-cafe@haskell.org")
       (list-identifier . "\\[Haskell-cafe\\]"))
-     ("gnu\\.help-gnu-emacs"
-      (to-address . "help-gnu-emacs@gnu.org")
-      (to-list    . "help-gnu-emacs@gnu.org"))
-     ("gnu\\.info-gnu-emacs"
-      (to-address . "info-gnu-emacs@gnu.org")
-      (to-list    . "info-gnu-emacs@gnu.org"))
-     ("gnu\\.info-guix"
-      (to-address . "info-guix@gnu.org")
-      (to-list    . "info-guix@gnu.org"))
-     ("gnu\\.notmuch"
+     ("l\\.notmuch"
       (to-address . "notmuch@notmuchmail.org")
       (to-list    . "notmuch@notmuchmail.org"))
-     ("gnu\\.parabola-dev"
+     ("l\\.parabola\\.dev"
       (to-address . "dev@lists.parabola.nu")
       (to-list    . "dev@lists.parabola.nu")
       (list-identifier . "\\[Dev\\]"))
-     ("gnu\\.webmasters"
-      (to-address . "webmasters@gnu.org")
-      (to-list    . "webmasters@gnu.org"))
-     ("gnu\\.www-commits"
-      (to-address . "www-commits@gnu.org")
-      (to-list    . "www-commits@gnu.org"))
-     ("gnu\\.www-discuss"
-      (to-address . "www-discuss@gnu.org")
-      (to-list    . "www-discuss@gnu.org"))
-     ("gnu\\.~bandali\\.public-inbox"
+     ("l\\.~bandali\\.public-inbox"
       (to-address . "~bandali/public-inbox@lists.sr.ht")
       (to-list    . "~bandali/public-inbox@lists.sr.ht"))
-     ("gnu\\.~sircmpwn\\.srht-admins"
+     ("l\\.~sircmpwn\\.srht\\.admins"
       (to-address . "~sircmpwn/sr.ht-admins@lists.sr.ht")
       (to-list    . "~sircmpwn/sr.ht-admins@lists.sr.ht"))
-     ("gnu\\.~sircmpwn\\.srht-announce"
+     ("l\\.~sircmpwn\\.srht\\.announce"
       (to-address . "~sircmpwn/sr.ht-announce@lists.sr.ht")
       (to-list    . "~sircmpwn/sr.ht-announce@lists.sr.ht"))
-     ("gnu\\.~sircmpwn\\.srht-dev"
+     ("l\\.~sircmpwn\\.srht\\.dev"
       (to-address . "~sircmpwn/sr.ht-dev@lists.sr.ht")
       (to-list    . "~sircmpwn/sr.ht-dev@lists.sr.ht"))
-     ("gnu\\.~sircmpwn\\.srht-discuss"
+     ("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))
      ("gnu\\."
@@ -1634,6 +1693,8 @@ For disabling the behaviour for certain buffers and/or modes."
   (require 'ebdb-mua)
   (require 'ebdb-gnus)
 
+  (gnus-registry-initialize)
+
   (with-eval-after-load 'recentf
     (add-to-list 'recentf-exclude gnus-home-directory)))
 
@@ -1693,13 +1754,13 @@ https://csclub.uwaterloo.ca/~abandali/")
            (address "amin@bndl.org")
            (body "\nBest,\n")
            (eval (setq a/message-cite-say-hi t)))
-          ("gnu.*"
+          ("nnimap\\+gnu:.*"
            (address "bandali@gnu.org")
            (signature a/gnu-signature)
            (eval (set (make-local-variable 'message-user-fqdn) "fencepost.gnu.org")))
           ((header "subject" "ThankCRM")
            (to "webmasters-comment@gnu.org")
-           (body "Added  to 2019supporters.html.\n\nMoving to campaigns.\n\n-amin\n")
+           (body "Added  to 2019supporters.html.\n\nMoving to campaigns.\n")
            (eval (setq a/message-cite-say-hi nil)))
           ("nnimap\\+uw:.*"
            (address "abandali@uwaterloo.ca")