* .config/git/config: Add f alias for fetch.
[~bandali/configs] / .emacs.d / lisp / bandali-gnus.el
index 5007abd..c2249a2 100644 (file)
@@ -1,6 +1,6 @@
 ;;; bandali-gnus.el --- bandali's Gnus setup         -*- lexical-binding: t; -*-
 
 ;;; bandali-gnus.el --- bandali's Gnus setup         -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2018-2021  Amin Bandali
+;; Copyright (C) 2018-2022  Amin Bandali
 
 ;; Author: Amin Bandali <bandali@gnu.org>
 ;; Keywords: mail, news
 
 ;; Author: Amin Bandali <bandali@gnu.org>
 ;; Keywords: mail, news
@@ -40,7 +40,7 @@
 
 (declare-function article-make-date-line "gnus-art" (date type))
 
 
 (declare-function article-make-date-line "gnus-art" (date type))
 
-(csetq
+(setq
  mail-user-agent 'gnus-user-agent
  read-mail-command 'gnus
 
  mail-user-agent 'gnus-user-agent
  read-mail-command 'gnus
 
  `(,@(cond
       ((string= (system-name) "langa")
        '((nnimap
  `(,@(cond
       ((string= (system-name) "langa")
        '((nnimap
+          "kelar"
+          (nnimap-stream plain)
+          (nnimap-address "127.0.0.1")
+          (nnimap-server-port 143)
+          (nnimap-authenticator plain)
+          (nnimap-user "bandali@kelar.local"))
+         (nnimap
           "shemshak"
           (nnimap-stream plain)
           (nnimap-address "127.0.0.1")
           "shemshak"
           (nnimap-stream plain)
           (nnimap-address "127.0.0.1")
            (|
             ;; (: gnus-registry-split-fancy-with-parent)
             ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
            (|
             ;; (: gnus-registry-split-fancy-with-parent)
             ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
+            ;; spam
+            ("X-Spam_action" "reject" "Junk")
             ;; keep debbugs emails in INBOX
             (list ".*<\\(.*\\)\\.debbugs\\.gnu\\.org>.*" "INBOX")
             ;; list moderation emails
             (from ".+-\\(owner\\|bounces\\)@\\(non\\)?gnu\\.org" "listmod")
             ;; gnu
             (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1")
             ;; keep debbugs emails in INBOX
             (list ".*<\\(.*\\)\\.debbugs\\.gnu\\.org>.*" "INBOX")
             ;; list moderation emails
             (from ".+-\\(owner\\|bounces\\)@\\(non\\)?gnu\\.org" "listmod")
             ;; gnu
             (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1")
+            ;; fsf
+            (list ".*<\\(.*\\)\\.fsf\\.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")
             ;; gnus
             (list ".*<\\(.*\\)\\.gnus\\.org>.*" "l.\\1")
             ;; libreplanet
             (list ".*<\\(.*\\)\\.libreplanet\\.org>.*" "l.\\1")
             ;; iana (e.g. tz-announce)
             (list ".*<\\(.*\\)\\.iana\\.org>.*" "l.\\1")
+            ;; mailop
+            (list ".*<\\(.*\\)\\.mailop\\.org>.*" "l.\\1")
+            ;; sdlu
+            (list ".*<\\(.*\\)\\.spammers\\.dontlike\\.us>.*" "l.sdlu")
+            ;; bitfolk
+            (from ".*@\\(.+\\)?bitfolk\\.com>.*" "bitfolk")
             ;; haskell
             (list ".*<\\(.*\\)\\.haskell\\.org>.*" "l.\\1")
             ;; *.lists.sr.ht, omitting one dot if present
             ;; haskell
             (list ".*<\\(.*\\)\\.haskell\\.org>.*" "l.\\1")
             ;; *.lists.sr.ht, omitting one dot if present
             ;; ----------------------------------
             ;; legend: (u)nsubscribed | (d)ead
             ;; ----------------------------------
             ;; ----------------------------------
             ;; legend: (u)nsubscribed | (d)ead
             ;; ----------------------------------
-            ;; spam
-            ("X-Spam_action" "reject" "Junk")
             ;; otherwise, leave mail in INBOX
             "INBOX")))
          (nnimap
             ;; otherwise, leave mail in INBOX
             "INBOX")))
          (nnimap
     (gcc-self . t)))
  ;; nnimap-record-commands t
  ;; gnus-large-newsgroup  50
     (gcc-self . t)))
  ;; nnimap-record-commands t
  ;; gnus-large-newsgroup  50
+ ;; gnus-process-mark-toggle t
  gnus-home-directory   (b/var "gnus/")
  gnus-directory        (concat gnus-home-directory "news/")
  message-directory     (concat gnus-home-directory "mail/")
  gnus-home-directory   (b/var "gnus/")
  gnus-directory        (concat gnus-home-directory "news/")
  message-directory     (concat gnus-home-directory "mail/")
   (add-hook 'gnus-group-mode-hook #'gnus-topic-mode)
   (add-hook 'gnus-group-mode-hook #'gnus-agent-mode))
 ;; global key bindings
   (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 "C-c m") #'gnus-plugged)
-(global-set-key (kbd "C-c M") #'gnus-unplugged)
+(global-set-key (kbd "C-c g") #'gnus-plugged)
+(global-set-key (kbd "C-c G") #'gnus-unplugged)
 
 (with-eval-after-load 'gnus-art
 
 (with-eval-after-load 'gnus-art
-  (csetq
+  (setq
    gnus-buttonized-mime-types '("multipart/\\(signed\\|encrypted\\)")
    gnus-sorted-header-list '("^From:"
                              "^X-RT-Originator"
    gnus-buttonized-mime-types '("multipart/\\(signed\\|encrypted\\)")
    gnus-sorted-header-list '("^From:"
                              "^X-RT-Originator"
   (define-key gnus-article-mode-map (kbd "M-L") #'org-store-link))
 
 (with-eval-after-load 'gnus-sum
   (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))
+  (setq 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)
   ;; (define-key gnus-summary-mode-map (kbd "r")
   ;; local key bindings
   (define-key gnus-summary-mode-map (kbd "M-L") #'org-store-link)
   ;; (define-key gnus-summary-mode-map (kbd "r")
@@ -285,7 +301,7 @@ Computer Science Club of the University of Waterloo")
 Free Software Consultant
 Savoir-faire Linux
 jami:bandali")
 Free Software Consultant
 Savoir-faire Linux
 jami:bandali")
-  (csetq
+  (setq
    gnus-message-replysign t
    gnus-posting-styles
    '((".*"
    gnus-message-replysign t
    gnus-posting-styles
    '((".*"
@@ -297,6 +313,12 @@ jami:bandali")
       (to "webmasters-comment@gnu.org")
       (body "")
       (eval (setq b/message-cite-say-hi nil)))
       (to "webmasters-comment@gnu.org")
       (body "")
       (eval (setq b/message-cite-say-hi nil)))
+     ("nnimap\\+kelar:.*"
+      (address "bandali@kelar.org")
+      ("X-Message-SMTP-Method" "smtp mail.kelar.org 587")
+      (body "\nBest,\n")
+      (gcc "nnimap+kelar:Sent")
+      (eval (setq b/message-cite-say-hi t)))
      ("nnimap\\+shemshak:.*"
       (address "amin@shemshak.org")
       ("X-Message-SMTP-Method" "smtp mail.shemshak.org 587")
      ("nnimap\\+shemshak:.*"
       (address "amin@shemshak.org")
       ("X-Message-SMTP-Method" "smtp mail.shemshak.org 587")
@@ -331,7 +353,7 @@ jami:bandali")
 ;;                 (mml-secure-message-sign)))))
 
 (with-eval-after-load 'gnus-topic
 ;;                 (mml-secure-message-sign)))))
 
 (with-eval-after-load 'gnus-topic
-  (csetq
+  (setq
    gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n"
    gnus-topic-topology
    `(("Gnus" visible nil nil)
    gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n"
    gnus-topic-topology
    `(("Gnus" visible nil nil)
@@ -342,38 +364,40 @@ jami:bandali")
         ((string= (system-name) "langa")
          '((("csc" visible nil nil))
            (("uwaterloo" visible nil nil))
         ((string= (system-name) "langa")
          '((("csc" visible nil nil))
            (("uwaterloo" visible nil nil))
+           (("kelar" visible nil nil))
            (("shemshak" visible nil nil))
            (("gnu" visible nil nil))
            (("old-gnu" visible nil nil))))))))
 
 (with-eval-after-load 'gnus-agent
            (("shemshak" visible nil nil))
            (("gnu" visible nil nil))
            (("old-gnu" visible nil nil))))))))
 
 (with-eval-after-load 'gnus-agent
-  (csetq gnus-agent-synchronize-flags 'ask))
+  (setq gnus-agent-synchronize-flags 'ask))
 
 (with-eval-after-load 'gnus-group
 
 (with-eval-after-load 'gnus-group
-  (csetq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)"))
+  (setq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)"))
 
 (with-eval-after-load 'gnus-win
 
 (with-eval-after-load 'gnus-win
-  (csetq gnus-use-full-window nil))
+  (setq gnus-use-full-window nil))
 
 (with-eval-after-load 'gnus-dired
   (add-hook 'dired-mode-hook 'gnus-dired-mode))
 
 (with-eval-after-load 'mm-decode
 
 (with-eval-after-load 'gnus-dired
   (add-hook 'dired-mode-hook 'gnus-dired-mode))
 
 (with-eval-after-load 'mm-decode
-  (csetq ;; mm-attachment-override-types `("text/x-diff" "text/x-patch"
-         ;;                                ,@mm-attachment-override-types)
-         mm-discouraged-alternatives '("text/html" "text/richtext")
-         mm-decrypt-option 'known
-         mm-verify-option 'known))
+  (setq
+   ;; mm-attachment-override-types `("text/x-diff" "text/x-patch"
+   ;;                                ,@mm-attachment-override-types)
+   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")
 
 (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")
-    (csetq mm-uu-diff-groups-regexp ".")))
+    (setq mm-uu-diff-groups-regexp ".")))
 
 (with-eval-after-load 'mml-sec
 
 (with-eval-after-load 'mml-sec
-  (csetq mml-secure-openpgp-encrypt-to-self t
-         mml-secure-openpgp-sign-with-sender t))
+  (setq mml-secure-openpgp-encrypt-to-self t
+        mml-secure-openpgp-sign-with-sender t))
 
 (provide 'bandali-gnus)
 ;;; bandali-gnus.el ends here
 
 (provide 'bandali-gnus)
 ;;; bandali-gnus.el ends here