[emacs] start configuring Gnus :)
[~bandali/configs] / init.org
index 7488fb8..ecf3a88 100644 (file)
--- a/init.org
+++ b/init.org
@@ -652,11 +652,14 @@ Enable =winner-mode=.
  ("C-c S"   . save-buffer)
  ("C-c o"   . other-window)
  ("C-c q q" . save-buffers-kill-terminal)
+
  ("C-c F m" . make-frame-command)
  ("C-c F d" . delete-frame)
  ("C-c F D" . delete-other-frames)
+
  ("s-c e b" . eval-buffer)
  ("s-c e r" . eval-region)
+
  ("s-p"     . beginning-of-buffer)
  ("s-n"     . end-of-buffer))
 #+end_src
@@ -1540,12 +1543,23 @@ Emacs package that displays available keybindings in popup
 #+begin_src emacs-lisp
 (use-package helpful
   :bind
-  (("C-h f"   . helpful-callable)
+  (;; ("C-h F"   . helpful-function)
+   ("C-h f"   . helpful-callable)
    ("C-h v"   . helpful-variable)
    ("C-h k"   . helpful-key)
    ("C-c C-d" . helpful-at-point)
-   ("C-h F"   . helpful-function)
-   ("C-h C"   . helpful-command)))
+   ("C-h C"   . helpful-command)
+   ("C-h c"   . describe-char)
+   ("C-h F"   . describe-face)))
+
+(use-package help
+  :bind
+  (("C-S-h f" . describe-function)
+   ("C-S-h v" . describe-variable)
+   ("C-S-h k" . describe-key)
+   ("C-S-h C" . describe-coding-system)
+   ("C-S-h c" . describe-key-briefly))
+  :config (setq help-window-select t))
 #+end_src
 
 ** [[https://github.com/kyagi/shell-pop-el][shell-pop]]
@@ -1732,17 +1746,57 @@ Hopefully temporary.
 (setq amin-gnus-init-file (no-littering-expand-etc-file-name "gnus"))
 
 (use-package gnus
-  :bind ("C-c m" . gnus)
+  :bind ("s-m" . gnus)
   :init
   (setq
-   gnus-init-file        amin-gnus-init-file
+   gnus-select-method
+   '(nnimap "local"
+            (nnimap-address "localhost")
+            (nnimap-stream shell))
+   nnimap-shell-program  "/usr/lib/dovecot/imap -o mail_location=maildir:$MAILDIR/amin:LAYOUT=fs:INBOX=$MAILDIR/amin/Inbox"
+   ;; gnus-init-file        amin-gnus-init-file
    gnus-home-directory   (no-littering-expand-var-file-name "gnus/")
-   gnus-directory        (no-littering-expand-var-file-name "gnus/News/")
-   message-directory     amin-maildir
+   ;; gnus-directory        (no-littering-expand-var-file-name "gnus/News/")
+   ;; message-directory     amin-maildir
    gnus-save-newsrc-file nil
    gnus-read-newsrc-file nil
+   gnus-interactive-exit nil
    gnus-gcc-mark-as-read t))
 
+(use-package gnus-art
+  :config
+  (setq
+   gnus-visible-headers
+   (concat gnus-visible-headers "\\|^List-Id:\\|^X-RT-Originator:")
+   gnus-sorted-header-list
+   '("^From:" "^Subject:" "^Summary:" "^Keywords:"
+     "^Followup-To:" "^To:" "^Cc:" "X-RT-Originator"
+     "^Newsgroups:" "List-Id:" "^Organization:"
+     "^Date:")
+  ;; local-lapsed article dates
+  ;; from https://www.emacswiki.org/emacs/GnusFormatting#toc11
+  gnus-article-date-headers '(user-defined)
+  gnus-article-time-format
+  (lambda (time)
+    (let* ((date (format-time-string "%a, %d %b %Y %T %z" time))
+           (local (article-make-date-line date 'local))
+           (combined-lapsed (article-make-date-line date
+                                                    'combined-lapsed))
+           (lapsed (progn
+                     (string-match " (.+" combined-lapsed)
+                     (match-string 0 combined-lapsed))))
+      (concat local lapsed)))))
+
+(use-package gnus-sum
+  :config
+  (setq gnus-extra-headers (append gnus-extra-headers
+                                   '(List-Id X-RT-Originator))))
+
+(use-package nnmail
+  :config
+  (setq nnmail-extra-headers (append nnmail-extra-headers
+                                     '(List-Id X-RT-Originator))))
+
 (use-package mm-decode
   :config
   (setq mm-discouraged-alternatives '("text/html" "text/richtext")))
@@ -1750,11 +1804,13 @@ Hopefully temporary.
 
 # #+begin_src emacs-lisp :tangle (concat gnus-init-file ".el") :mkdirp yes
 #+begin_src emacs-lisp :tangle no
-(setq gnus-select-method
-      '(nnmaildir "gnu"
-                  (directory "~/mail/gnu/")
-                  (directory-files nnheader-directory-files-safe)
-                  (get-new-mail nil)))
+(setq
+ gnus-select-method
+ '(nnimap "local"
+          (nnimap-address "localhost")
+          (nnimap-stream shell))
+ nnimap-shell-program
+ "/usr/lib/dovecot/imap -o maildir:$MAILDIR/amin:LAYOUT=fs:INBOX=$MAILDIR/amin/Inbox")
 #+end_src
 
 ** sendmail
@@ -1799,7 +1855,7 @@ Hopefully temporary.
 
 See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]].
 
-#+begin_src emacs-lisp
+#+begin_src emacs-lisp :tangle no
 (defun amin/notmuch ()
   "Delete other windows, then launch `notmuch'."
   (interactive