* .config/screen/screenrc: Lock screen when idle.
[~bandali/configs] / .emacs.d / lisp / bandali-gnus.el
index 1958793..2d17361 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-2020  Amin Bandali
+;; Copyright (C) 2018-2021  Amin Bandali
 
 ;; Author: Amin Bandali <bandali@gnu.org>
 ;; Keywords: mail, news
 
 ;; Author: Amin Bandali <bandali@gnu.org>
 ;; Keywords: mail, news
@@ -65,6 +65,8 @@
                                 ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
                                 ;; keep debbugs emails in INBOX
                                 (list ".*<\\(.*\\)\\.debbugs\\.gnu\\.org>.*" "INBOX")
                                 ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
                                 ;; 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")
                                 ;; gnus
                                 ;; gnu
                                 (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1")
                                 ;; gnus
                                 (list ".*<\\(.*\\)\\.libreplanet\\.org>.*" "l.\\1")
                                 ;; iana (e.g. tz-announce)
                                 (list ".*<\\(.*\\)\\.iana\\.org>.*" "l.\\1")
                                 (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")
+                                ;; haskell
+                                (list ".*<\\(.*\\)\\.haskell\\.org>.*" "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
                                 ;; *.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
+                                ("subject" "nagios-fsf:.*" "nagios-fsf")
                                 (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 ".*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")
                                 ;; ----------------------------------
                                 ;; (list ".*notmuch.notmuchmail.org" "l.notmuch") ;u
                                 (list ".*dev.lists.parabola.nu" "l.parabola-dev")
                                 ;; ----------------------------------
            (nnimap-user "amin.bandali")))
  gnus-message-archive-group "nnimap+gnu:INBOX"
  gnus-parameters
            (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"
+ '(("l\\.deepspec"
     (to-address . "deepspec@lists.cs.princeton.edu")
     (to-list    . "deepspec@lists.cs.princeton.edu")
     (list-identifier . "\\[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\\.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\\.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))
    ("gnu.*"
     (gcc-self . t))
-   ("l\\."
-    (subscribed . t))
+   ;; ("l\\."
+   ;;  (subscribed . t))
    ("nnimap\\+uwaterloo:.*"
     (gcc-self . t)))
  ;; nnimap-record-commands t
    ("nnimap\\+uwaterloo:.*"
     (gcc-self . t)))
  ;; nnimap-record-commands t
  nndraft-directory     (concat gnus-home-directory "drafts/")
  gnus-save-newsrc-file nil
  gnus-read-newsrc-file nil
  nndraft-directory     (concat gnus-home-directory "drafts/")
  gnus-save-newsrc-file nil
  gnus-read-newsrc-file nil
+ gnus-search-use-parsed-queries t
  gnus-interactive-exit nil
  gnus-gcc-mark-as-read t)
 
  gnus-interactive-exit nil
  gnus-gcc-mark-as-read t)
 
   (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 "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)
+(global-set-key (kbd "C-c m") #'gnus-plugged)
+(global-set-key (kbd "C-c M") #'gnus-unplugged)
 
 (with-eval-after-load 'gnus-art
   (csetq
 
 (with-eval-after-load 'gnus-art
   (csetq
                                       gnus-thread-sort-by-date))
   ;; local key bindings
   (define-key gnus-summary-mode-map (kbd "M-L") #'org-store-link)
                                       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")
+    #'gnus-summary-reply-with-original)
+  (define-key gnus-summary-mode-map (kbd "R")
+    #'gnus-summary-wide-reply-with-original)
   (defvar b/gnus-summary-prefix-map)
   (define-prefix-command 'b/gnus-summary-prefix-map)
   (define-key gnus-summary-mode-map (kbd "v")
   (defvar b/gnus-summary-prefix-map)
   (define-prefix-command 'b/gnus-summary-prefix-map)
   (define-key gnus-summary-mode-map (kbd "v")
   (defvar b/shemshak-signature "Amin Bandali
 https://shemshak.org/~bandali")
   (defvar b/uwaterloo-signature "Amin Bandali, MMath
   (defvar b/shemshak-signature "Amin Bandali
 https://shemshak.org/~bandali")
   (defvar b/uwaterloo-signature "Amin Bandali, MMath
-https://bndl.org")
-  (defvar b/csc-signature "Amin Bandali (https://bndl.org)
+https://shemshak.org/~bandali")
+  (defvar b/csc-signature "Amin Bandali (https://shemshak.org/~bandali)
 Systems Committee <syscom@csclub.uwaterloo.ca>
 Computer Science Club of the University of Waterloo")
   (defvar b/sfl-signature "Amin Bandali
 Free Software Consultant
 Savoir-faire Linux
 Systems Committee <syscom@csclub.uwaterloo.ca>
 Computer Science Club of the University of Waterloo")
   (defvar b/sfl-signature "Amin Bandali
 Free Software Consultant
 Savoir-faire Linux
-GNU Jami: bandali")
+jami:bandali")
   (csetq
    gnus-message-replysign t
    gnus-posting-styles
   (csetq
    gnus-message-replysign t
    gnus-posting-styles
@@ -399,8 +280,6 @@ GNU Jami: bandali")
       (address "bandali@gnu.org"))
      ("nnimap\\+gnu:l\\..*"
       (signature nil))
       (address "bandali@gnu.org"))
      ("nnimap\\+gnu:l\\..*"
       (signature nil))
-     ("nnimap\\+gnu:.*"
-      (organization "GNU"))
      ((header "subject" "ThankCRM")
       (to "webmasters-comment@gnu.org")
       (body "")
      ((header "subject" "ThankCRM")
       (to "webmasters-comment@gnu.org")
       (body "")
@@ -425,14 +304,15 @@ GNU Jami: bandali")
       (address "amin.bandali@savoirfairelinux.com")
       (signature b/sfl-signature)
       (gcc "nnimap+sfl:Sent")
       (address "amin.bandali@savoirfairelinux.com")
       (signature b/sfl-signature)
       (gcc "nnimap+sfl:Sent")
-      (eval (setq-local b/sfl-p t))))))
+      ;; (eval (setq-local b/sfl-p t))
+      ))))
 ;; hooks
 ;; 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
+;;   (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-topic
   (csetq gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n"))