X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/adba94a76d9411bc52b04bfb9b442f4c6c21c285..05d1c1ac3b62f9b991f5fc11369715c52311d9f1:/.emacs.d/lisp/bandali-gnus.el?ds=sidebyside diff --git a/.emacs.d/lisp/bandali-gnus.el b/.emacs.d/lisp/bandali-gnus.el index 671a1cb..2ca03e4 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-2022 Amin Bandali ;; Author: Amin Bandali ;; Keywords: mail, news @@ -40,243 +40,150 @@ (declare-function article-make-date-line "gnus-art" (date type)) -(csetq +(setq mail-user-agent 'gnus-user-agent read-mail-command 'gnus gnus-select-method '(nnnil "") gnus-secondary-select-methods - '((nnimap "shemshak" - (nnimap-stream plain) - (nnimap-address "127.0.0.1") - (nnimap-server-port 143) - (nnimap-authenticator plain) - (nnimap-user "bandali@shemshak.local")) - (nnimap "gnu" - (nnimap-stream plain) - (nnimap-address "127.0.0.1") - (nnimap-server-port 143) - (nnimap-authenticator plain) - (nnimap-user "bandali@gnu.local") - (nnimap-inbox "INBOX") - (nnimap-split-methods 'nnimap-split-fancy) - (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") - ;; list moderation emails - (from ".+-\\(owner\\|bounces\\)@\\(non\\)?gnu\\.org" "listmod") - ;; 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") - ;; 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 - (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 ".*notmuch.notmuchmail.org" "l.notmuch") ;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 "uwaterloo" - (nnimap-stream plain) - (nnimap-address "127.0.0.1") - (nnimap-server-port 143) - (nnimap-authenticator plain) - (nnimap-user "abandali@uwaterloo.local") - (nnimap-inbox "INBOX") - (nnimap-split-methods 'nnimap-split-fancy) - (nnimap-split-fancy (| - ;; (: gnus-registry-split-fancy-with-parent) - ;; se212-f19 - ("subject" "SE\\s-?212" "course.se212-f19") - (from "SE\\s-?212" "course.se212-f19") - ;; catch-all - "INBOX"))) - (nnimap "csc" - (nnimap-stream plain) - (nnimap-address "127.0.0.1") - (nnimap-server-port 143) - (nnimap-authenticator plain) - (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"))) + `(,@(if (string= (system-name) "darya") + '((nnimap + "canonical" + (nnimap-stream plain) + (nnimap-address "127.0.0.1") + (nnimap-server-port 143) + (nnimap-authenticator plain) + (nnimap-user "bandali@canonical.local"))) + '((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") + (nnimap-server-port 143) + (nnimap-authenticator plain) + (nnimap-user "bandali@shemshak.local")) + (nnimap + "gnu" + (nnimap-stream plain) + (nnimap-address "127.0.0.1") + (nnimap-server-port 143) + (nnimap-authenticator plain) + (nnimap-user "bandali@gnu.local") + (nnimap-inbox "INBOX") + (nnimap-split-methods 'nnimap-split-fancy) + (nnimap-split-fancy + (| + ;; (: 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") + ;; fsf + (list ".*<\\(.*\\)\\.fsf\\.org>.*" "l.\\1") + ;; debian + (list ".*<\\(.*\\)\\.alioth-lists\\.debian\\.net>.*" "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 + ;; 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 ".*notmuch.notmuchmail.org" "l.notmuch") ;u + (list ".*dev.lists.parabola.nu" "l.parabola-dev") + ;; ---------------------------------- + ;; legend: (u)nsubscribed | (d)ead + ;; ---------------------------------- + ;; otherwise, leave mail in INBOX + "INBOX"))) + (nnimap + "uwaterloo" + (nnimap-stream plain) + (nnimap-address "127.0.0.1") + (nnimap-server-port 143) + (nnimap-authenticator plain) + (nnimap-user "abandali@uwaterloo.local") + (nnimap-inbox "INBOX") + (nnimap-split-methods 'nnimap-split-fancy) + (nnimap-split-fancy + (| + ;; (: gnus-registry-split-fancy-with-parent) + ;; se212-f19 + ("subject" "SE\\s-?212" "course.se212-f19") + (from "SE\\s-?212" "course.se212-f19") + ;; catch-all + "INBOX"))) + (nnimap + "csc" + (nnimap-stream plain) + (nnimap-address "127.0.0.1") + (nnimap-server-port 143) + (nnimap-authenticator plain) + (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 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)) - ("nnimap\\+uwaterloo:.*" (gcc-self . t))) ;; nnimap-record-commands t - gnus-large-newsgroup 50 + ;; 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/") @@ -310,13 +217,11 @@ (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) +(global-set-key (kbd "C-c g") #'gnus-plugged) +(global-set-key (kbd "C-c G") #'gnus-unplugged) (with-eval-after-load 'gnus-art - (csetq + (setq gnus-buttonized-mime-types '("multipart/\\(signed\\|encrypted\\)") gnus-sorted-header-list '("^From:" "^X-RT-Originator" @@ -345,7 +250,7 @@ ;; "^References:" "^List-Id:" "^Gnus-Warning:") - gnus-visible-headers (mapconcat 'identity + gnus-visible-headers (mapconcat #'identity gnus-sorted-header-list "\\|") ;; local-lapsed article dates @@ -362,14 +267,19 @@ (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 - (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") + ;; #'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") @@ -385,98 +295,116 @@ (defvar b/sfl-p nil) (with-eval-after-load 'gnus-msg - (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) -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") - (csetq + (let ((bandali "Amin Bandali (https://kelar.org/~bandali)")) + (defvar b/csc-signature + (mapconcat + #'identity + `(,bandali + "Systems Committee " + "Computer Science Club of the University of Waterloo") + "\n")) + (defvar b/sfl-signature + (mapconcat + #'identity + `(,bandali + "Volunteer, Savoir-faire Linux" + "jami:bandali") + "\n"))) + (setq gnus-message-replysign t gnus-posting-styles '((".*" - (address "bandali@gnu.org")) - ("nnimap\\+gnu:l\\..*" - (signature nil)) - ("nnimap\\+gnu:.*" - (organization "GNU")) + (address "bandali@gnu.org") + ("X-Message-SMTP-Method" "smtp fencepost.gnu.org 587")) ((header "subject" "ThankCRM") (to "webmasters-comment@gnu.org") - (body "") - (eval (setq b/message-cite-say-hi nil))) + (body "")) + ("nnimap\\+kelar:.*" + (address "bandali@kelar.org") + ("X-Message-SMTP-Method" "smtp mail.kelar.org 587") + (gcc "nnimap+kelar:Sent")) ("nnimap\\+shemshak:.*" (address "amin@shemshak.org") - (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") - (body "\nBest,\n") - (signature b/uwaterloo-signature)) - ("nnimap\\+uwaterloo:INBOX" - (gcc "\"nnimap+uwaterloo:Sent Items\"")) + ("X-Message-SMTP-Method" "smtp mail.shemshak.org 587") + (gcc "nnimap+shemshak:Sent")) + ("nnimap\\+canonical:.*" + (address "amin.bandali@canonical.com") + ("X-Message-SMTP-Method" "smtp smtp.canonical.com 587") + (signature nil) + (gcc "nnimap+canonical:Sent")) ("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") + ("X-Message-SMTP-Method" "smtp mail.savoirfairelinux.com 587") (signature b/sfl-signature) - (gcc "nnimap+sfl:Sent") - (eval (setq-local b/sfl-p t)))))) + (eval (setq-local b/sfl-p t)) + (gcc "nnimap+sfl:Sent"))))) ;; 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")) + (setq + gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n" + gnus-topic-topology + `(("Gnus" visible nil nil) + (("misc" visible nil nil)) + ,@(if (string= (system-name) "darya") + '((("canonical" visible nil nil))) + '((("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)) + (("sfl" 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 - (csetq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)")) + (setq 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 + (setq gnus-use-full-window nil)) (with-eval-after-load 'gnus-dired (add-hook 'dired-mode-hook 'gnus-dired-mode)) -;; (with-eval-after-load 'gnus-utils -;; (csetq gnus-completing-read-function 'gnus-ido-completing-read)) +(with-eval-after-load 'mm-archive + (add-to-list + 'mm-archive-decoders + '("application/gzip" nil "gunzip" "-S" ".zip" "-kd" "%f" "-r"))) (with-eval-after-load 'mm-decode - (csetq 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) + (add-to-list + 'mm-inline-media-tests + `("application/gzip" mm-archive-dissect-and-inline identity)) + (add-to-list 'mm-inlined-types "application/gzip" 'append)) (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 - (csetq mml-secure-openpgp-encrypt-to-self t - mml-secure-openpgp-sign-with-sender t)) - -;; (require 'gnus-article-treat-patch) -;; ;; 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]+ @@")) + (setq mml-secure-openpgp-encrypt-to-self t + mml-secure-openpgp-sign-with-sender t)) (provide 'bandali-gnus) ;;; bandali-gnus.el ends here