X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/9961661f9166cb6cdc617240951b2b091cc99d12..77619173fdf73ef9835c877f6376bcfc25733c28:/dot/gnus.el diff --git a/dot/gnus.el b/dot/gnus.el index 6c6f4c5..ff2210e 100644 --- a/dot/gnus.el +++ b/dot/gnus.el @@ -37,8 +37,16 @@ ;; Display a slrn-like tree view in the summary window. (setq gnus-use-trees nil) (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-summary-line-format + "%U%R%z%4L %(%[%-16,16f%]%): %&user-date; %B %s\n" + gnus-summary-dummy-line-format + " %(%[----------------%]%): * %S\n" + gnus-user-date-format-alist + '(((gnus-seconds-today) . "*** %H:%M") + (604800 . "%a %H:%M") + ((gnus-seconds-month) . " %a %_d") + ((gnus-seconds-year) . " %_d %b") + (t . " %b %Y"))) (setq gnus-sum-thread-tree-root ">" gnus-sum-thread-tree-false-root ">" gnus-sum-thread-tree-single-indent "=" @@ -54,9 +62,9 @@ ;; Sort threads in a useful way. (setq gnus-thread-sort-functions - '(gnus-thread-sort-by-number - gnus-thread-sort-by-subject - gnus-thread-sort-by-total-score)) + '(gnus-thread-sort-by-number + gnus-thread-sort-by-subject + gnus-thread-sort-by-total-score)) ;; Configure the crypto. (setq mm-verify-option 'known @@ -69,6 +77,10 @@ gnus-check-bogus-newsgroups nil gnus-read-active-file 'ask-server) +;; Don't skip unread groups. +(setq gnus-group-goto-unread nil + gnus-summary-next-group-on-exit nil) + ;; Use one article buffer per group. (setq gnus-single-article-buffer nil) @@ -105,6 +117,36 @@ " "))) (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.