[emacs/gnus] bindings and posting styles fixes
[~bandali/configs] / init.org
index ecf3a88..c784100 100644 (file)
--- a/init.org
+++ b/init.org
@@ -729,9 +729,6 @@ In short, my favourite way of life.
 
 (use-package ox-beamer)
 
-(use-package org-notmuch
-  :after (:any org notmuch))
-
 (use-package orgalist
   :hook (message-mode . orgalist-mode))
 #+end_src
@@ -1403,7 +1400,7 @@ instead.
 
 *** meghanada
 
-#+begin_src emacs-lisp :tangle yes
+#+begin_src emacs-lisp :tangle no
 (use-package meghanada
   :bind
   (:map meghanada-mode-map
@@ -1414,8 +1411,25 @@ instead.
 
 *** lsp-java
 
+#+begin_comment
+dependencies:
+
+ace-window
+avy
+bui
+company-lsp
+dap-mode
+lsp-java
+lsp-mode
+lsp-ui
+pfuture
+tree-mode
+treemacs
+#+end_comment
+
 #+begin_src emacs-lisp :tangle no
-(use-package treemacs)
+(use-package treemacs
+  :config (setq treemacs-never-persist t))
 
 (use-package yasnippet
   :config
@@ -1750,14 +1764,31 @@ Hopefully temporary.
   :init
   (setq
    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
+   '(nnimap "amin"
+            (nnimap-stream plain)
+            (nnimap-address "127.0.0.1")
+            (nnimap-server-port 143)
+            (nnimap-authenticator plain)
+            (nnimap-user "amin@aminb.org"))
+   gnus-secondary-select-methods
+   '((nnimap "uwaterloo"
+             (nnimap-stream plain)
+             (nnimap-address "127.0.0.1")
+             (nnimap-server-port 143)
+             (nnimap-authenticator plain)
+             (nnimap-user "abandali@uwaterloo.ca")))
+   gnus-message-archive-group "nnimap:Sent"
+   gnus-parameters
+   '(("amin"
+      (display . 20))
+     ("uwaterloo"
+      (display . 20)
+      (posting-style
+       (address "abandali@uwaterloo.ca")
+       (gcc "\"nnimap+uwaterloo:Sent Items\""))))
    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
@@ -1785,34 +1816,45 @@ Hopefully temporary.
            (lapsed (progn
                      (string-match " (.+" combined-lapsed)
                      (match-string 0 combined-lapsed))))
-      (concat local lapsed)))))
+      (concat local lapsed))))
+  (bind-keys
+   :map gnus-article-mode-map
+   ("r" . gnus-article-reply-with-original)
+   ("R" . gnus-article-wide-reply-with-original)))
 
 (use-package gnus-sum
+  :bind (:map gnus-summary-mode-map
+              :prefix-map amin--gnus-summary-prefix-map
+              :prefix "v"
+              ("r" . gnus-summary-reply)
+              ("w" . gnus-summary-wide-reply)
+              ("v" . gnus-summary-show-raw-article))
   :config
   (setq gnus-extra-headers (append gnus-extra-headers
-                                   '(List-Id X-RT-Originator))))
+                                   '(List-Id X-RT-Originator)))
+  (bind-keys
+   :map gnus-summary-mode-map
+   ("r" . gnus-summary-reply-with-original)
+   ("R" . gnus-summary-wide-reply-with-original)))
 
 (use-package nnmail
   :config
   (setq nnmail-extra-headers (append nnmail-extra-headers
                                      '(List-Id X-RT-Originator))))
 
+(use-package gnus-msg
+  :config
+  (setq gnus-posting-styles
+        '(((header "delivered-to" "amin@aminb.org")
+           (address "amin@aminb.org"))
+          ((header "delivered-to" "gnu@aminb.org")
+           (address "bandali@gnu.org")))))
+
 (use-package mm-decode
   :config
   (setq mm-discouraged-alternatives '("text/html" "text/richtext")))
 #+end_src
 
-# #+begin_src emacs-lisp :tangle (concat gnus-init-file ".el") :mkdirp yes
-#+begin_src emacs-lisp :tangle no
-(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
 
 #+begin_src emacs-lisp
@@ -1851,11 +1893,62 @@ Hopefully temporary.
         mml-secure-openpgp-sign-with-sender t))
 #+end_src
 
-** [[https://notmuchmail.org][notmuch]]
+** supercite
+
+#+begin_src emacs-lisp :tangle no
+(use-package supercite
+  :commands sc-cite-original
+  :init
+  (add-hook 'mail-citation-hook 'sc-cite-original)
+
+  (defun sc-remove-existing-signature ()
+    (save-excursion
+      (goto-char (region-beginning))
+      (when (re-search-forward message-signature-separator (region-end) t)
+        (delete-region (match-beginning 0) (region-end)))))
+
+  (add-hook 'mail-citation-hook 'sc-remove-existing-signature)
+
+  (defun sc-remove-if-not-mailing-list ()
+    (unless (assoc "list-id" sc-mail-info)
+      (setq attribution sc-default-attribution
+            citation (concat sc-citation-delimiter
+                             sc-citation-separator))))
+
+  (add-hook 'sc-attribs-postselect-hook 'sc-remove-if-not-mailing-list)
+
+  :config
+  (defun sc-fill-if-different (&optional prefix)
+    "Fill the region bounded by `sc-fill-begin' and point.
+Only fill if optional PREFIX is different than
+`sc-fill-line-prefix'.  If `sc-auto-fill-region-p' is nil, do not
+fill region.  If PREFIX is not supplied, initialize fill
+variables.  This is useful for a regi `begin' frame-entry."
+    (if (not prefix)
+        (setq sc-fill-line-prefix ""
+              sc-fill-begin (line-beginning-position))
+      (if (and sc-auto-fill-region-p
+               (not (string= prefix sc-fill-line-prefix)))
+          (let ((fill-prefix sc-fill-line-prefix))
+            (unless (or (string= fill-prefix "")
+                        (save-excursion
+                          (goto-char sc-fill-begin)
+                          (or (looking-at ">+  +")
+                              (< (length
+                                  (buffer-substring (point)
+                                                    (line-end-position)))
+                                 65))))
+              (fill-region sc-fill-begin (line-beginning-position)))
+            (setq sc-fill-line-prefix prefix
+                  sc-fill-begin (line-beginning-position)))))
+nil))
+#+end_src
+
+** COMMENT [[https://notmuchmail.org][notmuch]]                                                 :ARCHIVE:
 
 See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]].
 
-#+begin_src emacs-lisp :tangle no
+#+begin_src emacs-lisp
 (defun amin/notmuch ()
   "Delete other windows, then launch `notmuch'."
   (interactive
@@ -1980,57 +2073,9 @@ See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]].
 
 (after! notmuch-crypto
   (setq notmuch-crypto-process-mime t))
-#+end_src
-
-** supercite
-
-#+begin_src emacs-lisp :tangle no
-(use-package supercite
-  :commands sc-cite-original
-  :init
-  (add-hook 'mail-citation-hook 'sc-cite-original)
-
-  (defun sc-remove-existing-signature ()
-    (save-excursion
-      (goto-char (region-beginning))
-      (when (re-search-forward message-signature-separator (region-end) t)
-        (delete-region (match-beginning 0) (region-end)))))
-
-  (add-hook 'mail-citation-hook 'sc-remove-existing-signature)
-
-  (defun sc-remove-if-not-mailing-list ()
-    (unless (assoc "list-id" sc-mail-info)
-      (setq attribution sc-default-attribution
-            citation (concat sc-citation-delimiter
-                             sc-citation-separator))))
 
-  (add-hook 'sc-attribs-postselect-hook 'sc-remove-if-not-mailing-list)
-
-  :config
-  (defun sc-fill-if-different (&optional prefix)
-    "Fill the region bounded by `sc-fill-begin' and point.
-Only fill if optional PREFIX is different than
-`sc-fill-line-prefix'.  If `sc-auto-fill-region-p' is nil, do not
-fill region.  If PREFIX is not supplied, initialize fill
-variables.  This is useful for a regi `begin' frame-entry."
-    (if (not prefix)
-        (setq sc-fill-line-prefix ""
-              sc-fill-begin (line-beginning-position))
-      (if (and sc-auto-fill-region-p
-               (not (string= prefix sc-fill-line-prefix)))
-          (let ((fill-prefix sc-fill-line-prefix))
-            (unless (or (string= fill-prefix "")
-                        (save-excursion
-                          (goto-char sc-fill-begin)
-                          (or (looking-at ">+  +")
-                              (< (length
-                                  (buffer-substring (point)
-                                                    (line-end-position)))
-                                 65))))
-              (fill-region sc-fill-begin (line-beginning-position)))
-            (setq sc-fill-line-prefix prefix
-                  sc-fill-begin (line-beginning-position)))))
-nil))
+(use-package org-notmuch
+  :after (:any org notmuch))
 #+end_src
 
 * Blogging