[emacs] Gnus setup skeleton
[~bandali/configs] / init.org
index 17db595..7488fb8 100644 (file)
--- a/init.org
+++ b/init.org
@@ -648,14 +648,17 @@ Enable =winner-mode=.
 #+begin_src emacs-lisp
 (bind-keys
  ("C-c b k" . kill-this-buffer)
- ;; ("C-c s s" . save-buffer)
  ("C-c b s" . save-buffer)
  ("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))
+ ("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
 
 ** Packages
@@ -790,8 +793,7 @@ Not just how I do git, but /the/ way to do git.
 (use-package magit
   :defer t
   :bind
-  (("s-g"   . magit-dispatch-popup)
-   ("C-x g" . magit-status)
+  (("s-g" . magit-status)
    :prefix-map amin--magit-prefix-map
    :prefix "C-c g"
    ("SPC" . magit-status)
@@ -970,8 +972,8 @@ There's no way I could top that, so I won't attempt to.
   (:map
    outline-minor-mode-map
    ("<s-tab>"  . outline-toggle-children)
-   ("s-p"      . outline-previous-visible-heading)
-   ("s-n"      . outline-next-visible-heading)
+   ("M-p"      . outline-previous-visible-heading)
+   ("M-n"      . outline-next-visible-heading)
    :prefix-map amin--outline-prefix-map
    :prefix "s-o"
    ("TAB" . outline-toggle-children)
@@ -1094,6 +1096,10 @@ TODO: break this giant source block down into individual org sections.
 #+begin_src emacs-lisp
 (use-package flycheck
   :hook (prog-mode . flycheck-mode)
+  :bind
+  (:map flycheck-mode-map
+        ("M-P" . flycheck-previous-error)
+        ("M-N" . flycheck-next-error))
   :config
   ;; Use the load-path from running Emacs when checking elisp files
   (setq flycheck-emacs-lisp-load-path 'inherit)
@@ -1683,7 +1689,8 @@ Hopefully temporary.
    :client-secret watform-client-secret
    :token watform-token
    :subscribed-channels '(general)
-   :full-and-display-names t);
+   :full-and-display-names t)
+  (add-to-list 'swiper-font-lock-exclude 'slack-message-buffer-mode t)
   :bind
   (("C-c s s" . slack-start)
    ("C-c s u" . slack-select-unread-rooms)
@@ -1703,7 +1710,7 @@ Hopefully temporary.
    ("C-c p a" . slack-message-pins-add)
    ("C-c p r" . slack-message-pins-remove)
    ("@"       . slack-message-embed-mention)
-   ("#"       . slack-message-embed-channel)));
+   ("#"       . slack-message-embed-channel)))
 
 (use-package alert
   :commands (alert)
@@ -1719,6 +1726,37 @@ Hopefully temporary.
   (add-to-list 'recentf-exclude amin-maildir))
 #+end_src
 
+** Gnus
+
+#+begin_src emacs-lisp :tangle yes
+(setq amin-gnus-init-file (no-littering-expand-etc-file-name "gnus"))
+
+(use-package gnus
+  :bind ("C-c m" . gnus)
+  :init
+  (setq
+   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-save-newsrc-file nil
+   gnus-read-newsrc-file nil
+   gnus-gcc-mark-as-read t))
+
+(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
+      '(nnmaildir "gnu"
+                  (directory "~/mail/gnu/")
+                  (directory-files nnheader-directory-files-safe)
+                  (get-new-mail nil)))
+#+end_src
+
 ** sendmail
 
 #+begin_src emacs-lisp