aboutsummaryrefslogtreecommitdiffstats
path: root/emacs/.emacs.d/init/oni-gnus-init.org
blob: ac7c7c13170d96b68bd0d9354f0d6a3b2623243e (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
126
127
128
129
130
131
132
133
134
Gnus is one of the most extensible Email programs on the
planet. And it's not even made for email but NNTP.

#+BEGIN_SRC emacs-lisp
  (require 'gnus)
  (require 'gnus-msg)
  (require 'mail-source)
  (require 'message)
  (require 'nnfolder)
  (require 'sendmail)

  (require 'oni-helpers)
#+END_SRC

Store all Gnus-related data in my data directory.

#+BEGIN_SRC emacs-lisp
  (setq gnus-directory (oni:data-location "News")
        gnus-article-save-directory gnus-directory
        gnus-cache-directory gnus-directory
        gnus-kill-files-directory gnus-directory)
#+END_SRC

Store all Mail source-related data in my data directory.

#+BEGIN_SRC emacs-lisp
  (setq mail-source-directory (oni:data-location "Mail"))
#+END_SRC

Store all message-related data in the same place as the Mail source
data.

#+BEGIN_SRC emacs-lisp
  (setq message-directory (oni:data-location "Mail"))
#+END_SRC

Store all nnfolder-related data in the same place as the Mail
source data.

#+BEGIN_SRC emacs-lisp
  (setq nnfolder-directory (oni:data-location "Mail"))
#+END_SRC

Use msmtp to send mail.

#+BEGIN_SRC emacs-lisp
  (setq send-mail-function 'sendmail-send-it)
  (setq sendmail-program "/usr/bin/msmtp")
#+END_SRC

Tell Gnus I'm not a novice anymore. One of the features of Gnus I
use a lot is deleting messages and as long as Gnus thinks I'm a
novice it will ask me if I'm sure every single time.

#+BEGIN_SRC emacs-lisp
  (setq gnus-novice-user nil)
#+END_SRC

Add a keybinding to the Gnus summary mode to easily delete
messages.

#+BEGIN_SRC emacs-lisp
  (define-key gnus-summary-mode-map (kbd "M-d") 'oni-gnus-delete-forward)
#+END_SRC

Change the Gnus group buffer line format.

#+BEGIN_SRC emacs-lisp
  (setq gnus-group-line-format "%P%(%20G%): %-10s %S%p%B %5y %5T\n")
#+END_SRC

* ryuslash.org

  Set my main email address as the primary select method for Gnus.

  #+BEGIN_SRC emacs-lisp
    (setq gnus-select-method
          '(nnmaildir "ryuslash" (directory "~/documents/mail/ryuslash/")))
  #+END_SRC

  When sending mail from the ryuslash inbox, use the ryuslash msmtp
  account.

  #+BEGIN_SRC emacs-lisp
    (add-to-list 'gnus-posting-styles
                 '(".*"
                   (address "tom@ryuslash.org")
                   (eval (setq message-sendmail-extra-arguments
                               '("-a" "ryuslash")))))
  #+END_SRC

* picturefix

  Add my work email account as a secondary select method.

  #+BEGIN_SRC emacs-lisp
    (add-to-list 'gnus-secondary-select-methods
                 '(nnmaildir "picturefix"
                             (directory "~/documents/mail/picturefix/")))
  #+END_SRC

  When sending mail from the picturefix account, use the picturefix
  msmtp account and set the proper name and email address.

  #+BEGIN_SRC emacs-lisp
    (add-to-list 'gnus-posting-styles
                 '("picturefix:"
                   (name "Tom Willemsen")
                   (address "tom@picturefix.nl")
                   (eval (setq message-sendmail-extra-arguments
                               '("-a" "picturefix")))))
  #+END_SRC

* gmail

  Add my other personal email as a secondary select method.

  #+BEGIN_SRC emacs-lisp
    (add-to-list 'gnus-secondary-select-methods
                 '(nnmaildir "gmail"
                             (directory "~/documents/mail/gmail/")))
  #+END_SRC

  When sending mail from the gmail account, use the gmail msmtp
  accound and set the proper email address.

  #+BEGIN_SRC emacs-lisp
    (add-to-list 'gnus-posting-styles
                 '("gmail:"
                   (name "Tom Willemse")
                   (address "ryuslash@gmail.com")
                   (eval (setq message-sendmail-extra-arguments
                               '("-a" "gmail")))))
  #+END_SRC