summaryrefslogtreecommitdiff
path: root/.gnus
blob: 34a9ce5ed929526ffeb88e490d3fe8a4351b42fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
;; user-full-name: from /etc/passwd, chfn(1).
;; user-mail-address: from EMAIL variable, ~/.profile & ~/.xsessionrc.

;; In ~/.authinfo.gpg:
;;      machine imap.gmail.com login LOGIN password PASSWORD port 993
;;      machine smtp.gmail.com login LOGIN password PASSWORD port 587

(setq gnus-select-method
      '(nnimap "gmail"
               (nnimap-address "imap.gmail.com")
               (nnimap-server-port 993)
               (nniamp-stream ssl)
               (nnmail-expiry-target "nnimap+gmail:[Gmail]/Trash")
               (nnmail-expiry-wait immediate))
      gnus-summary-line-format "%U%R %-16,16&user-date;%I%[%-23,23f%] %s\n"
      gnus-thread-sort-functions
      '(gnus-thread-sort-by-number
        gnus-thread-sort-by-most-recent-date)
      gnus-treat-display-smileys nil
      gnus-user-date-format-alist '(((gnus-seconds-today)
                                     . "%H:%M")
                                    ((+ 86400 (gnus-seconds-today))
                                     . "Yesterday %H:%M")
                                    (604800
                                     . "%a %H:%M")
                                    ((gnus-seconds-month)
                                     . "%a %d")
                                    ((gnus-seconds-year)
                                     . "%b %d")
                                    (t
                                     . "%F")))

(setq smtpmail-smtp-server "smtp.gmail.com"
      smtpmail-smtp-service 587)

;; Key bindings:
;;
;; When browsing group buffer:
;;
;; L            list all groups
;; RET          view unread mail in group
;; C-u RET      view all mail in group
;; g            refresh
;;
;; When browsing summary buffer:
;;
;; B m          move message to group
;; / N          fetch new
;; M-g          refresh (expire, move, fetch new, show unread)
;; C-u M-g      refresh (expire, move, fetch new, show all)
;; r            reply
;; R            reply (quoting)
;; S w          reply-all
;; S W          reply-all (quoting)
;; C-c C-f      forward
;; d            mark read
;; M-u          clear marks (≡ mark unread)
;; E            expire
;; #            mark for next action
;; M-#, M P u   unmark for next action
;;
;;      In draft summary buffer:
;;
;;      D e     edit draft
;;
;; Both:
;;
;; m            compose
;;
;; When reading article:
;;
;; o            save attachment at point
;;
;; When composing:
;; C-c C-c      send
;; C-c C-a      attach
;;
;; FAQ:
;;
;; - how to see *all mails*, not just unread?
;;      - C-u RET
;;
;; - how to delete mail?
;;      - E to mark as expired
;;      - C-u M-g to refresh
;;
;; - how to list most-recent mails on top?
;;      - cf. gnus-thread-sort-functions
;;
;; - how to close a mail without going back to the group list?
;;      - = to make summary full-screen
;;
;; - how to get contact completion?
;;      - by installing a MELPA plugin (bbdb); bleh
;;      - something something ecomplete?
;;
;; - how to refresh?
;;      - summary buffer:
;;          - / N (fetch new)
;;          - M-g (expire, move, fetch & redisplay)
;;      - group buffer: g
;;
;; - what do all those letters mean?
;;   (info gnus Marking Articles)
;;      - O     old ≡ read during previous session
;;      - R     just read
;;      - r     manually marked as read
;;      - A     answered
;;      - E     expirable
;;      - G     cancelled (e.g. moved somewhere else)
;;      - .     unseen
;;
;; TODOs:
;;
;; - gnus-summary-line-format (📎 for attachments)
;;
;; - browse mailing list
;;   https://emacs.stackexchange.com/questions/5298/reading-mailing-list-archives-in-emacs
;;
;; - describe-key is mostly useless in article mode:
;;   > X runs the command gnus-article-read-summary-keys
;;
;; - detect possibly missing attachments from keywords
;;
;; - foldable threads