chiark / gitweb /
dot/emacs: Don't try to save mail to `~/Mail/sent'.
[profile] / dot / gnus.el
1 ;;; -*- mode: emacs-lisp; coding: utf-8 -*-
2 ;;;
3 ;;; GNUS configuration
4 ;;;
5 ;;; (c) 2009 Mark Wooding
6 ;;;
7
8 ;;;----- Licensing notice ---------------------------------------------------
9 ;;;
10 ;;; This program is free software; you can redistribute it and/or modify
11 ;;; it under the terms of the GNU General Public License as published by
12 ;;; the Free Software Foundation; either version 2 of the License, or
13 ;;; (at your option) any later version.
14 ;;;
15 ;;; This program is distributed in the hope that it will be useful,
16 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 ;;; GNU General Public License for more details.
19 ;;;
20 ;;; You should have received a copy of the GNU General Public License
21 ;;; along with this program; if not, write to the Free Software
22 ;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
23
24 ;;;--------------------------------------------------------------------------
25 ;;; General Gnus preferences.
26
27 ;; Divide the main groups list by topics.
28 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
29 (setq gnus-subscribe-newsgroup-method 'gnus-subscribe-topics)
30
31 ;; Use hacky movemail program to move mail.
32 (setq mail-source-movemail-program "~/bin/movemail-hack")
33
34 ;; Don't force use of a full window.
35 (setq gnus-use-full-window nil)
36
37 ;; Display a slrn-like tree view in the summary window.
38 (setq gnus-use-trees nil)
39 (setq gnus-summary-line-format "%U%R%z%4L %(%[%-16,16f%]%): %B %s\n")
40 (setq gnus-sum-thread-tree-root ">"
41       gnus-sum-thread-tree-false-root ">"
42       gnus-sum-thread-tree-single-indent "="
43       gnus-sum-thread-tree-indent "  ")
44 (if (memq (coding-system-get (terminal-coding-system) 'mime-charset)
45           '(nil utf-8))
46     (setq gnus-sum-thread-tree-leaf-with-other "├─>"
47           gnus-sum-thread-tree-vertical        "│ "
48           gnus-sum-thread-tree-single-leaf     "╰─>")
49   (setq gnus-sum-thread-tree-leaf-with-other   "|->"
50         gnus-sum-thread-tree-vertical          "| "
51         gnus-sum-thread-tree-single-leaf       "`->"))
52
53 ;; Sort threads in a useful way.
54 (setq gnus-thread-sort-functions
55       '(gnus-thread-sort-by-number
56         gnus-thread-sort-by-subject
57         gnus-thread-sort-by-total-score))
58
59 ;; Use one article buffer per group.
60 (setq gnus-single-article-buffer nil)
61
62 ;; Don't expand threads on initial opening.
63 (setq gnus-thread-hide-subtree t)
64
65 ;; Don't use strange icons instead of traditional smileys.
66 (setq gnus-treat-display-smileys nil)
67
68 ;; Fairly large numbers of articles are OK; don't bother warning me.
69 (setq gnus-large-newsgroup 500)
70
71 ;; When splitting articles, crossposting is a reasonable thing to do.
72 (setq nnimap-split-crosspost t)
73
74 ;; We may have the misfortune to talk to an Exchange server.
75 (setq imap-enable-exchange-bug-workaround t)
76
77 ;; Save articles in mbox format by default, of course, and save an entire
78 ;; batch with the same name.
79 (setq gnus-prompt-before-saving t
80       gnus-default-article-saver 'gnus-summary-save-in-mail)
81
82 ;; Clean up properly when closing the summary.
83 (defadvice gnus-summary-exit (before mdw-kill-debris compile activate)
84   (gnus-summary-expand-window))
85
86 ;; Configure article display a bit.
87 (defun mdw-gnus-article-setup ()
88   (setq truncate-lines nil
89         truncate-partial-width-windows nil
90         word-wrap t
91         wrap-prefix (concat (propertize "..." 'face 'mdw-ellipsis-face)
92                             " ")))
93 (add-hook 'gnus-article-mode-hook #'mdw-gnus-article-setup)
94
95 ;;;--------------------------------------------------------------------------
96 ;;; Local configuration.
97
98 ;; Fetching news from the local news server seems sensible.
99 (setq gnus-select-method `(nntp ,(mdw-config 'nntp-server)))
100
101 ;; Now load a local configuration file.
102 (load "~/.gnus-local.el")
103
104 ;;;----- That's all, folks --------------------------------------------------