btw i use nix
1(require 'mu4e)
2
3(setq mu4e-get-mail-command "mbsync -a")
4
5(setq sendmail-program "msmtp")
6(setq message-sendmail-f-is-evil t)
7(setq message-sendmail-extra-arguments '("--read-envelope-from"))
8(setq message-send-mail-function 'message-send-mail-with-sendmail)
9
10(let ((full-name "Ryan Gibb")
11 (signature "Ryan Gibb"))
12 (setq mu4e-contexts
13 `(,
14 (let ((mail-address "ryan@freumh.org")
15 (dir-name (concat "/ryan@freumh.org")))
16 (make-mu4e-context
17 :name (concat "1 " mail-address)
18 :match-func
19 `(lambda (msg)
20 (when msg
21 (string-match-p
22 ,(concat "^" dir-name)
23 (mu4e-message-field msg :maildir))))
24 :vars
25 `((user-mail-address . ,mail-address)
26 (user-full-name . ,full-name)
27 (mu4e-sent-folder . ,(concat dir-name "/Sent"))
28 (mu4e-drafts-folder . ,(concat dir-name "/Drafts"))
29 (mu4e-trash-folder . ,(concat dir-name "/Trash"))
30 (mu4e-refile-folder . ,(concat dir-name "/Archive"))
31 (mu4e-compose-signature . ,signature)
32 (mu4e-maildir-shortcuts .
33 ,'((:maildir "/ryan@freumh.org/Inbox" :key ?i)
34 (:maildir "/ryan@freumh.org/Sent" :key ?s)
35 (:maildir "/ryan@freumh.org/Drafts" :key ?d)
36 (:maildir "/ryan@freumh.org/Archive" :key ?a)
37 (:maildir "/ryan@freumh.org/Trash" :key ?t)))
38 )))
39 ,(let ((mail-address "ryangibb321@gmail.com")
40 (dir-name (concat "/ryangibb321@gmail.com")))
41 (make-mu4e-context
42 :name (concat "2 " mail-address)
43 :match-func
44 `(lambda (msg)
45 (when msg
46 (string-match-p
47 ,(concat "^" dir-name)
48 (mu4e-message-field msg :maildir))))
49 :vars
50 `((user-mail-address . ,mail-address)
51 (user-full-name . ,full-name)
52 (mu4e-sent-folder . ,(concat dir-name "/[Gmail]/Sent Mail"))
53 (mu4e-drafts-folder . ,(concat dir-name "/[Gmail]/Drafts"))
54 (mu4e-trash-folder . ,(concat dir-name "/[Gmail]/Bin"))
55 (mu4e-refile-folder . ,(concat dir-name "/[Gmail]/All Mail"))
56 (mu4e-compose-signature . ,signature)
57 (mu4e-maildir-shortcuts .
58 ,'((:maildir "/ryangibb321@gmail.com/Inbox" :key ?i)
59 (:maildir "/ryangibb321@gmail.com/[Gmail]/Sent Mail" :key ?s)
60 (:maildir "/ryangibb321@gmail.com/[Gmail]/Drafts" :key ?d)
61 (:maildir "/ryangibb321@gmail.com/[Gmail]/All Mail" :key ?a)
62 (:maildir "/ryangibb321@gmail.com/[Gmail]/Spam" :key ?x)
63 (:maildir "/ryangibb321@gmail.com/[Gmail]/Bin" :key ?t)))
64 )))
65 ,(let ((mail-address "ryan.gibb@cl.cam.ac.uk")
66 (dir-name (concat "/ryan.gibb@cl.cam.ac.uk")))
67 (make-mu4e-context
68 :name (concat "3 " mail-address)
69 :match-func
70 `(lambda (msg)
71 (when msg
72 (string-match-p
73 ,(concat "^" dir-name)
74 (mu4e-message-field msg :maildir))))
75 :vars
76 `((user-mail-address . ,mail-address)
77 (user-full-name . ,full-name)
78 (mu4e-sent-folder . ,(concat dir-name "/Sent"))
79 (mu4e-drafts-folder . ,(concat dir-name "/Drafts"))
80 (mu4e-trash-folder . ,(concat dir-name "/Trash"))
81 (mu4e-refile-folder . ,(concat dir-name "/Archive"))
82 (mu4e-compose-signature . ,signature)
83 (mu4e-maildir-shortcuts .
84 ,'((:maildir "/ryan.gibb@cl.cam.ac.uk/Inbox" :key ?i)
85 (:maildir "/ryan.gibb@cl.cam.ac.uk/Sent" :key ?s)
86 (:maildir "/ryan.gibb@cl.cam.ac.uk/Drafts" :key ?d)
87 (:maildir "/ryan.gibb@cl.cam.ac.uk/Archive" :key ?a)
88 (:maildir "/ryan.gibb@cl.cam.ac.uk/Spam" :key ?x)
89 (:maildir "/ryan.gibb@cl.cam.ac.uk/Trash" :key ?t)))
90 )))
91 ,(let ((mail-address "misc@freumh.org")
92 (dir-name (concat "/misc@freumh.org")))
93 (make-mu4e-context
94 :name (concat "4 " mail-address)
95 :match-func
96 `(lambda (msg)
97 (when msg
98 (string-match-p
99 ,(concat "^" dir-name)
100 (mu4e-message-field msg :maildir))))
101 :vars
102 `((user-mail-address . ,mail-address)
103 (user-full-name . ,full-name)
104 (mu4e-sent-folder . ,(concat dir-name "/Sent"))
105 (mu4e-drafts-folder . ,(concat dir-name "/Drafts"))
106 (mu4e-trash-folder . ,(concat dir-name "/Trash"))
107 (mu4e-refile-folder . ,(concat dir-name "/Archive"))
108 (mu4e-compose-signature . ,signature)
109 (mu4e-maildir-shortcuts .
110 ,'((:maildir "/misc@freumh.org/Inbox" :key ?i)
111 (:maildir "/misc@freumh.org/Sent" :key ?s)
112 (:maildir "/misc@freumh.org/Drafts" :key ?d)
113 (:maildir "/misc@freumh.org/Archive" :key ?a)
114 (:maildir "/misc@freumh.org/Trash" :key ?t)))
115 )))
116
117 )))
118
119(setq mu4e-context-policy 'pick-first)
120
121; Fixing duplicate UID errors when using mbsync and mu4e
122(setq mu4e-change-filenames-when-moving t)
123
124; (setq mu4e-use-fancy-chars t)
125; (setq mu4e-attachment-dir "~/download")
126(setq mu4e-view-show-images t)
127
128(setq mu4e-bookmarks
129 '((:name "Unified Inbox"
130 :query "maildir:/ryan@freumh.org/Inbox OR maildir:/ryangibb321@gmail.com/Inbox OR maildir:/ryan.gibb@cl.cam.ac.uk/Inbox"
131 :favorite t
132 :key ?i)
133 (:name "Unread messages"
134 :query "flag:unread AND NOT flag:trashed AND NOT maildir:\"/ryangibb321@gmail.com/[Gmail]/All Mail\""
135 :key ?u)
136 (:name "Today's messages"
137 :query "date:today..now"
138 :key ?t)
139 (:name "Last 7 days"
140 :query "date:7d..now"
141 :hide-unread t
142 :key ?w)
143 (:name "Messages with images"
144 :query "mime:image/*"
145 :key ?p)))
146
147(setq mu4e-headers-fields
148 '((:maildir . 40)
149 (:human-date . 12)
150 (:flags . 6)
151 (:mailing-list . 10)
152 (:from-or-to . 22)
153 (:thread-subject . nil)))
154
155(setq mu4e-search-show-threads nil)
156
157; (with-eval-after-load "mm-decode"
158; (add-to-list 'mm-discouraged-alternatives "text/html")
159; (add-to-list 'mm-discouraged-alternatives "text/richtext"))
160(setq shr-color-visible-luminance-min 80)
161
162(setq mail-user-agent 'mu4e-user-agent)
163(setq message-dont-reply-to-names 'mu4e-personal-or-alternative-address-p)
164
165(setq mu4e-search-include-related nil)
166
167(evil-collection-define-key 'normal 'mu4e-main-mode-map (kbd "c") 'mu4e-search-query) ; should probably upsteam
168(evil-collection-define-key 'normal 'mu4e-main-mode-map (kbd "i") 'mu4e-update-index)
169
170(setq mu4e-split-view nil)
171