+;;; bandali-gnus.el --- bandali's Gnus setup -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2018-2020 Amin Bandali
+
+;; Author: Amin Bandali <bandali@gnu.org>
+;; 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 <https://www.gnu.org/licenses/>.
+
+;;; 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))
(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")
(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
;; (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 (|
(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"
("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"))
(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/")
'(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
"^Resent-From:"
"^User-Agent:"
"^X-detected-operating-system:"
+ "^X-Spam_action:"
+ "^X-Spam_bar:"
"^Message-ID:"
;; "^References:"
"^List-Id:"
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
'((".*"
(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
: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)
(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