dot/emacs: Add key bindings for VM.
[profile] / dot / gnus.el
index 2aa71d3..be92db7 100644 (file)
@@ -36,7 +36,9 @@
 
 ;; Display a slrn-like tree view in the summary window.
 (setq gnus-use-trees nil)
-(setq gnus-summary-line-format "%U%R%z%4L %(%[%-16,16f%]%): %B %s\n")
+(setq gnus-summary-make-false-root 'dummy)
+(setq gnus-summary-line-format "%U%R%z%4L %(%[%-16,16f%]%): %B %s\n"
+      gnus-summary-dummy-line-format "        %(%[----------------%]%): * %S\n")
 (setq gnus-sum-thread-tree-root ">"
       gnus-sum-thread-tree-false-root ">"
       gnus-sum-thread-tree-single-indent "="
                            " ")))
 (add-hook 'gnus-article-mode-hook #'mdw-gnus-article-setup)
 
+;; Don't expire articles on selection if they're alread read.  This provides
+;; a handy way to prevent expiry, and actually forcing expiry isn't
+;; significantly harder.
+(remove-hook 'gnus-mark-article-hook
+            'gnus-summary-mark-read-and-unread-as-read)
+(add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read)
+
+;; Leave an oubliette level 7 for broken things which look like mailboxes.
+;; Otherwise Gnus keeps on resurrecting them and later realising that they're
+;; bogus.
+(setq gnus-level-unsubscribed 6)
+
+;; Reconfigure the `nnmail-split-fancy' syntax table to be less mad.
+(setq nnmail-split-fancy-syntax-table
+      (let ((table (make-syntax-table)))
+
+       ;; This is from upstream.  I don't know what it's for.
+       (modify-syntax-entry ?% "." table)
+
+       ;; Email addresses are often wrapped in `<...>', so don't consider
+       ;; those to be part of the address.
+       (modify-syntax-entry ?< "(>" table)
+       (modify-syntax-entry ?> ")<" table)
+
+       ;; Email addresses definitely contain `.'.
+       (modify-syntax-entry ?. "_" table)
+
+       ;; Done.
+       table))
+
 ;;;--------------------------------------------------------------------------
 ;;; Magic for sending mail the correct way.