X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/adba94a76d9411bc52b04bfb9b442f4c6c21c285..a220fb5b7ed9e3cf55f0a85bbb11f0f264a0020b:/.emacs.d/lisp/bandali-gnus.el diff --git a/.emacs.d/lisp/bandali-gnus.el b/.emacs.d/lisp/bandali-gnus.el index 671a1cb..d26e4f9 100644 --- a/.emacs.d/lisp/bandali-gnus.el +++ b/.emacs.d/lisp/bandali-gnus.el @@ -1,6 +1,6 @@ ;;; 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 ;; Keywords: mail, news @@ -75,8 +75,6 @@ (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 @@ -85,6 +83,7 @@ ;; 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 @@ -128,155 +127,33 @@ ;; catch-all "INBOX"))) (nnimap "sfl" - (nnimap-stream tls) - (nnimap-address "mail.savoirfairelinux.com") - (nnimap-user "amin.bandali"))) + (nnimap-stream plain) + (nnimap-address "127.0.0.1") + (nnimap-server-port 143) + (nnimap-authenticator plain) + (nnimap-user "amin.bandali@savoirfairelinux.local"))) 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\\]")) - ("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)) + ;; ("l\\." + ;; (subscribed . t)) ("nnimap\\+uwaterloo:.*" (gcc-self . t))) ;; nnimap-record-commands t - gnus-large-newsgroup 50 + ;; gnus-large-newsgroup 50 gnus-home-directory (b/var "gnus/") gnus-directory (concat gnus-home-directory "news/") message-directory (concat gnus-home-directory "mail/") @@ -310,8 +187,6 @@ (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 m") #'gnus-plugged) (global-set-key (kbd "C-c M") #'gnus-unplugged) @@ -362,6 +237,7 @@ (match-string 0 combined-lapsed)))) (concat local lapsed)))) ;; local key bindings + (declare-function org-store-link "ol" (arg &optional interactive?)) (define-key gnus-article-mode-map (kbd "M-L") #'org-store-link)) (with-eval-after-load 'gnus-sum @@ -370,6 +246,10 @@ 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") @@ -388,58 +268,70 @@ (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 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 '((".*" - (address "bandali@gnu.org")) + (address "bandali@gnu.org") + ("X-Message-SMTP-Method" "smtp fencepost.gnu.org 587")) ("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") + ("X-Message-SMTP-Method" "smtp mail.shemshak.org 587") (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") + ("X-Message-SMTP-Method" "smtp connect.uwaterloo.ca 587") (body "\nBest,\n") (signature b/uwaterloo-signature)) ("nnimap\\+uwaterloo:INBOX" (gcc "\"nnimap+uwaterloo:Sent Items\"")) ("nnimap\\+csc:.*" (address "bandali@csclub.uwaterloo.ca") + ("X-Message-SMTP-Method" "smtp mail.csclub.uwaterloo.ca 587") (signature b/csc-signature) (gcc "nnimap+csc:Sent")) ("nnimap\\+sfl:.*" (address "amin.bandali@savoirfairelinux.com") (signature b/sfl-signature) + ("X-Message-SMTP-Method" "smtp mail.savoirfairelinux.com 587") (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 +;; (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")) + (csetq + gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n" + gnus-topic-topology '(("Gnus" visible nil nil) + (("misc" visible nil nil)) + (("sfl" visible nil nil)) + (("csc" visible nil nil)) + (("uwaterloo" visible nil nil)) + (("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)) @@ -447,9 +339,8 @@ GNU Jami: bandali") (with-eval-after-load 'gnus-group (csetq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)")) -;; problematic with ebdb's popup, *EBDB-Gnus* -;; (with-eval-after-load 'gnus-win -;; (csetq gnus-use-full-window nil)) +(with-eval-after-load 'gnus-win + (csetq gnus-use-full-window nil)) (with-eval-after-load 'gnus-dired (add-hook 'dired-mode-hook 'gnus-dired-mode))