X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/2087ae39f646980175a44183370a72e036edbbc0..c49fa11a90f9b17159062e3ab2f4a960f1048ffd:/lisp/bandali-gnus.el diff --git a/lisp/bandali-gnus.el b/lisp/bandali-gnus.el index f3fa118..0c5dc97 100644 --- a/lisp/bandali-gnus.el +++ b/lisp/bandali-gnus.el @@ -1,3 +1,29 @@ +;;; bandali-gnus.el --- bandali's Gnus setup -*- lexical-binding: t; -*- + +;; Copyright (C) 2018-2020 Amin Bandali + +;; Author: Amin Bandali +;; Keywords: mail, news + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; My trusty super awesome Gnus setup. + +;;; Code: + (defvar b/maildir (expand-file-name "~/mail/")) (with-eval-after-load 'recentf (add-to-list 'recentf-exclude b/maildir)) @@ -32,7 +58,7 @@ (nnimap-address "127.0.0.1") (nnimap-server-port 143) (nnimap-authenticator plain) - (nnimap-user "amin@shemshak.local")) + (nnimap-user "bandali@shemshak.local")) (nnimap "gnu" (nnimap-stream plain) (nnimap-address "127.0.0.1") @@ -44,15 +70,21 @@ (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") + (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists\\.sr\\.ht>.*" "l.~\\1.\\2\\3") ;; webmasters (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters") ;; other @@ -61,18 +93,20 @@ ;; (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") ;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 "uw" + (nnimap "uwaterloo" (nnimap-stream plain) (nnimap-address "127.0.0.1") (nnimap-server-port 143) (nnimap-authenticator plain) - (nnimap-user "abandali@uw.local") + (nnimap-user "abandali@uwaterloo.local") (nnimap-inbox "INBOX") (nnimap-split-methods 'nnimap-split-fancy) (nnimap-split-fancy (| @@ -87,7 +121,20 @@ (nnimap-address "127.0.0.1") (nnimap-server-port 143) (nnimap-authenticator plain) - (nnimap-user "abandali@csc.uw.local"))) + (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" @@ -119,6 +166,12 @@ ("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")) @@ -224,8 +277,9 @@ (gcc-self . t)) ("l\\." (subscribed . t)) - ("nnimap\\+uw:.*" + ("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/") @@ -243,6 +297,12 @@ '(list . "list-id\\|list-post\\|x-mailing-list\\|x-beenthere\\|x-loop") t))) + ;; (require 'gnus-registry) + ;; (setq gnus-registry-max-entries 2500) + ;; (setq gnus-registry-ignored-groups + ;; (append gnus-registry-ignored-groups + ;; '(("^nnimap:gnu\\.l" t) + ;; ("webmasters$" t)))) ;; (gnus-registry-initialize) (with-eval-after-load 'recentf @@ -273,6 +333,8 @@ "^Resent-From:" "^User-Agent:" "^X-detected-operating-system:" + "^X-Spam_action:" + "^X-Spam_bar:" "^Message-ID:" ;; "^References:" "^List-Id:" @@ -315,17 +377,20 @@ gnus-thread-sort-by-date))) (use-package gnus-msg + :init + (defvar b/sfl-p nil) :config (defvar b/shemshak-signature "Amin Bandali -https://shemshak.org/~amin") - (defvar b/uw-signature "Amin Bandali, MMath Student -Cheriton School of Computer Science -University of Waterloo -https://bandali.eu.org") - (defvar b/csc-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 System Administrator, Systems Committee -Computer Science Club, University of Waterloo -https://csclub.uwaterloo.ca/~abandali") +Computer Science Club, University of Waterloo") + (defvar b/sfl-signature "Amin Bandali +Free Software Consultant +Savoir-faire Linux +GNU Jami: bandali") (setq gnus-message-replysign t gnus-posting-styles '((".*" @@ -344,18 +409,24 @@ https://csclub.uwaterloo.ca/~abandali") (signature b/shemshak-signature) (gcc "nnimap+shemshak:Sent") (eval (setq b/message-cite-say-hi t))) - ("nnimap\\+uw:.*" + ("nnimap\\+uwaterloo:.*" (address "bandali@uwaterloo.ca") (body "\nBest,\n") - (signature b/uw-signature)) - ("nnimap\\+uw:INBOX" - (gcc "\"nnimap+uw:Sent Items\"")) + (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")))) + (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 (mml-secure-is-encrypted-p) + (unless (or (mml-secure-is-encrypted-p) + b/sfl-p) (mml-secure-message-sign))))) (use-package gnus-topic @@ -397,9 +468,9 @@ https://csclub.uwaterloo.ca/~abandali") :config (when (version< "27" emacs-version) (set-face-attribute 'mm-uu-extract nil :extend t)) - :custom - (mm-uu-diff-groups-regexp - "\\(gmane\\|gnu\\|l\\)\\..*\\(diff\\|commit\\|cvs\\|bug\\|dev\\)")) + (when (version< emacs-version "27") + (setq mm-uu-diff-groups-regexp + "\\(gmane\\|gnu\\|l\\)\\..*\\(diff\\|commit\\|cvs\\|bug\\|dev\\)"))) (use-package mml) @@ -408,4 +479,15 @@ https://csclub.uwaterloo.ca/~abandali") (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]+ @@"))) + (provide 'bandali-gnus) +;;; bandali-gnus.el ends here