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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
# Paths ----------------------------------------------
# Getting all this from article by Steve Losh
# at http://stevelosh.com/blog/2012/10/the-homely-mutt/#contacts
# source the mutt-solarized colorscheme
#source ~/dotfiles/.mutt/mutt-colors-solarized-dark-256.muttrc - no because it doesn't really work ya radge
set folder = ~/.mail/ # mailbox location
set alias_file = ~/.mutt/aliases # where to store aliases
set header_cache = ~/.mutt/cache/headers # where to store headers
set message_cachedir = ~/.mutt/cache/bodies # where to store bodies
set certificate_file = ~/.mutt/certificates # where to store certs
set mailcap_path = ~/.mutt/mailcap # entries for filetypes
set tmpdir = ~/.mutt/temp # where to keep temp files
set signature = ~/.mutt/signature # my signature file
# Allow forwarding of attachments with emails
set mime_forward
set mime_forward_rest
# Basic Options --------------------------------------
set wait_key = no # shut up, mutt
set mbox_type = Maildir # mailbox type
set timeout = 3 # idle time before scanning
set mail_check = 0 # minimum time between scans
#unset move # gmail does that
set delete # don't ask, just do
unset confirmappend # don't ask, just do!
set quit # don't ask, just do!!
unset mark_old # read/new is good enough for me
#set beep_new # bell on new mails
set pipe_decode # strip headers and eval mimes when piping
set thorough_search # strip headers and eval mimes before searching
# nicer text
set text_flowed=yes
# Sidebar Patch --------------------------------------
#set sidebar_delim = '│'
set sidebar_visible = yes
set sidebar_width = 20
set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S"
set mail_check_stats
#set sidebar_width = 24
## not working in xubuntu set sidebar_shortpath = yes
#set sidebar_sort = yes
## Paths ----------------------------------------------
#color sidebar_new color221 color233
# Status Bar -----------------------------------------
set status_chars = " *%A"
set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
# Header Options -------------------------------------
ignore * # ignore all headers
unignore from: to: cc: date: bcc: subject: # show only these
unhdr_order * # some distros order things by default
hdr_order from: to: cc: bcc: date: subject: # and in this order
# Account Settings -----------------------------------
# Default inbox.
set spoolfile = "+matt-matthewlemon.com/INBOX"
#set spoolfile = "+INBOX"
# Alternate email addresses.
#alternates <shit goes in here>
# Mailboxes to show in the sidebar.
subscribe announce@openbsd.org
named-mailboxes Inbox +matt-matthewlemon.com/INBOX \
Sent\ Items +matt-matthewlemon.com/Sent\ Items \
Archive +matt-matthewlemon.com/Archive \
Archive\ 2019 +matt-matthewlemon.com/Archive.2019 \
Drafts +matt-matthewlemon.com/Drafts \
Gmail\ Old +matt-matthewlemon.com/Gmail\ Old\ Archive \
Trash +matt-matthewlemon.com/Trash \
# mailboxes +matt-matthewlemon.com/INBOX \
# +matt-matthewlemon.com/INBOX.Archive \
# +matt-matthewlemon.com/INBOX.Sent\ Items \
# +matt-matthewlemon.com/INBOX.Drafts \
# +matt-matthewlemon.com/INBOX.Trash \
#mailboxes +INBOX +INBOX.Archive +INBOX.Sent\ Items +INBOX.Drafts +INBOX.Trash
# Other special folders.
set mbox = "+matt-matthewlemon.com/INBOX.Archive"
set postponed = "+matt-matthewlemon.com/INBOX.Drafts"
# Index View Options ---------------------------------
set date_format = "%d-%m-%Y"
set index_format = "[%Z] %B %D %-20.20F %s"
set sort = threads # like gmail
set sort_aux = reverse-last-date-received # like gmail
set uncollapse_jump # don't collapse on an unread message
set sort_re # thread based on regex
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
# Index Key Bindings ---------------------------------
bind index g noop
bind index gg first-entry
bind index G last-entry
bind pager g noop
bind pager gg top
bind pager G bottom
# Display links in a web site in a compact list, allowing for web browser viewing
# The urlview program will run ~/bin/url_handler.sh which will then run a
# browser that is specified at the start of the script; currently using Firefox
macro index,pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'
macro attach,compose \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'
# Folder Shortcuts
macro index Ei '<change-folder>+matt-matthewlemon.com/INBOX<enter>' 'Go to Inbox'
macro index Ea '<change-folder>+matt-matthewlemon.com/Archive<enter>' 'Go to Archive'
macro index Es '<change-folder>+matt-matthewlemon.com/Sent\ Items<enter>' 'Go to Sent Mail'
# Navigate threads
bind index { previous-thread
bind pager { half-up
bind index } next-thread
bind pager } half-down
bind index R group-reply
bind index <tab> sync-mailbox
bind index <space> collapse-thread
# Ctrl-R to mark all as read
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
# Sync email
macro index O "<shell-escape>offlineimap<enter>" "run offlineimap to sync all mail"
macro index o "<shell-escape>offlineimap -qf INBOX<enter>" "run offlineimap to sync inbox"
# Saner copy/move dialogs
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
# Sidebar Navigation ---------------------------------
bind index,pager <down> sidebar-next
bind index,pager <up> sidebar-prev
bind index,pager <right> sidebar-open
# Pager View Options ---------------------------------
set pager_index_lines = 10 # number of index lines to show
set pager_context = 3 # number of context lines to show
set pager_stop # don't go to next message automatically
set menu_scroll # scroll in menus
set tilde # show tildes like in vim
unset markers # no ugly plus signs
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
alternative_order text/plain text/enriched text/html
# fix background colour
#color normal white black
# identifies URLs
# Pager Key Bindings ---------------------------------
bind pager k previous-line
bind pager j next-line
#bind pager gg top
bind pager G bottom
bind pager R group-reply
# View attachments properly.
bind attach <return> view-mailcap
# open links
macro pager \Cu "|urlview<enter>" "call urlview to open links"
# Compose View Options -------------------------------
set realname = "Matthew Lemon" # who am i?
set envelope_from # which from?
set sig_dashes # dashes before sig
set edit_headers # show headers when composing
set fast_reply # skip to compose when replying
set askcc # ask for CC:
set fcc_attach # save attachments with the body
unset mime_forward # forward attachments as part of body
set forward_format = "Fwd: %s" # format of subject when forwarding
set forward_decode # decode when forwarding
set attribution = "On %d, %n wrote:" # format of quoting header
set reply_to # reply to Reply to: field
set reverse_name # reply as whomever it was to
set include # include message in replies
set forward_quote # include message in forwards
#set editor = "vim" # Use terminal Vim to compose email.
set editor = "vim %s"
set from = "matt@matthewlemon.com"
set sendmail = "/usr/local/bin/msmtp -a matthewlemon"
set sendmail_wait = 0
set record = "+matt-matthewlemon.com/Sent\ Items"
bind compose p postpone-message
bind index p recall-message
# Get mutt to understand the contacts command line prog which reads Contacts
#set query_command = "contacts -Sf '%eTOKEN%n' '%s' | sed -e 's/TOKEN/\t/g'"
## Abook
set query_command= "abook --mutt-query '%s'"
macro generic,index,pager \ca "<shell-escape>abook<return>" "launch abook"
macro index,pager A "<pipe-message>abook --add-email<return>" "Add this sender to Abook"
bind editor <Tab> complete-query
bind editor ^T complete
# Better searching in mutt
bind index N search-opposite
bind pager N search-opposite
macro index a "<limit>all\n" "show all messages (undo limit)"
# get an email from mutt to taskwarrior
macro index T "<pipe-message>mutt2task<enter> <move-message>+matt-matthewlemon.com/INBOX.Archive<enter>"
# Handle searching using notmuch (see Steve Losh article)
# this doesn't work on linux so using another macro index S "<enter-command>unset wait_key<enter><shell-escape>mutt-notmuch-py.py ~/.mail/temporary/search<enter><change-folder-readonly>+temporary/search<enter>" "search mail (using notmuch)"
#new notmuch-mutt for linux
macro index <F8> \
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
<shell-escape>notmuch-mutt -r --prompt search<enter>\
<change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
"notmuch: search mail"
macro index <F9> \
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
<pipe-message>notmuch-mutt -r thread<enter>\
<change-folder-readonly>`echo ${XDG_CACHE_HOME:-$HOME/.cache}/notmuch/mutt/results`<enter>\
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
"notmuch: reconstruct thread"
macro index <F6> \
"<enter-command>set my_old_pipe_decode=\$pipe_decode my_old_wait_key=\$wait_key nopipe_decode nowait_key<enter>\
<pipe-message>notmuch-mutt tag -- -inbox<enter>\
<enter-command>set pipe_decode=\$my_old_pipe_decode wait_key=\$my_old_wait_key<enter>" \
"notmuch: remove message from inbox"
# old Losh OSX-based orientation
#macro index <F8> "<enter-command>unset wait_key<enter><shell-escape>/usr/bin/notmuch-mutt --prompt search<enter><change-folder-readonly>~/.cache/mutt_results<enter>" "search mail (using notmuch)"
#macro index <F9> "<enter-command>unset wait_key<enter><pipe-message>/usr/bin/notmuch-mutt thread<enter><change-folder-readonly>~/.cache/mutt_results<enter><enter-command>set wait_key<enter>" "search and reconstruct owning thread (using notmuch)"
#
#source ~/.mutt/gpg.rc # Use GPG
#source ~/.mutt/auto_views # Define auto_views.
source ~/.mutt/aliases # Load in my aliases.
source ~/.mutt/subscriptions # Define the list of subscribed mailing lists.
#source ~/.mutt/mailboxes # Define the list of folders that receive mail.
#source ~/.mutt/headers # Configure header display.
#source ~/.mutt/folder-hooks # Define folder-hooks.
#source ~/.mutt/save-hooks # Define save-hooks.
#source ~/.mutt/fcc-hooks # Define fcc-hooks.
#source ~/.mutt/message-hooks # Define message hooks.
#source ~/.mutt/bindings # Define key bindings.
#source ~/.mutt/macros # Define macros.
source ~/.mutt/colours # Define colours.
#source ~/.mutt/sidebar # Define sidebar support (requires sidebar patch)
#
# MAILCAP
auto_view text/html
# vim: ft=muttrc
|