summaryrefslogtreecommitdiffstats
path: root/muttrc_fastmail_may22
blob: 6f61b34619a5ce0cd2dab9af994dcfe18d02c740 (plain) (blame)
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
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
# 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 ~/openbsd-dotfiles/mutt/mutt-colors-solarized-dark-256.muttrc
#source ~/.mutt/mutt-colors-solarized-light-256.muttrc
#source ~/.mutt/colors_purple
#source ~/.mutt/colors256-light
#source ~/.mutt/muttrc-softyellowgreen

set folder           = ~/Mail/fastmail               # 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

source ~/.mutt/subscriptions            # Define the list of subscribed mailing lists.
source ~/.mutt/colours                  # Define colours.

# 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 = no
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 = "+INBOX"
#set spoolfile = "+INBOX"

# Alternate email addresses.
#alternates <shit goes in here>

# Mailboxes to show in the sidebar.

subscribe announce@openbsd.org
subscribe ports-changes@cvs.openbsd.org
subscribe tech@openbsd.org
subscribe ports@openbsd.org
subscribe misc@openbsd.org
subscribe peter@golangweekly.com

# groups
alternates -group me '^matt@matthewlemon.com$' '^matthew.lemon@gmail.com$' '^matthew.lemon104@mod.gov.uk$'


# named-mailboxes Inbox +INBOX \
# 	  Sent\ Items +Sent\ Items \
# 	  Archive +Archive \
#       Drafts +Drafts \
#       Trash +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      = "+Archive"
set postponed = "+Drafts"

# Index View Options ---------------------------------
set date_format = "%d-%m-%Y %H:%M "
set index_format = "%4C [%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>+INBOX<enter>' 'Go to Inbox'
macro index Ea '<change-folder>+Archive<enter>' 'Go to Archive'
macro index Es '<change-folder>+Sent<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

# Email the sender (not a reply)
bind index,pager @ compose-to-sender


# toggle new
bind index \Cn toggle-new

# 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>clear && mbsync fastmailchannel && notmuch new <enter>"           "run offlineimap to sync all mail"

# update notmuch
macro index V "<shell-escape>notmuch new<enter>"
macro index K "<shell-escape>notmuch tag +inbox +unread -new -- tag:new<enter>"

# 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

# 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

# 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 fastmail"
# set sendmail_wait = 0

set smtp_pass = `pass show AppPasswords/mbsync_fastmail_may2022`
set imap_user = "mrlemon@mailforce.net"
set smtp_url = "smtps://$imap_user:$smtp_pass@smtp.fastmail.com:465/"

set record = "+Sent"

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>"

#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

# example notmuch config:
set virtual_spoolfile=yes

# --------------------------------------------------------------------------
# notmuch VARIABLES – shown with their default values
# --------------------------------------------------------------------------
# This variable specifies notmuch query limit.
set nm_db_limit = 0
# This variable specifies the default Notmuch database in format:
# notmuch://<absolute path>
set nm_default_url = "notmuch:///home/lemon/Mail"
#set nm_default_url = ""
# The messages tagged with these tags are excluded and not loaded
# from notmuch DB to NeoMutt unless specified explicitly.
set nm_exclude_tags = ""
# This option specifies timeout for Notmuch database. Default is 5 seconds.
set nm_open_timeout = 5
# This variable specifies notmuch query type, supported types: 'threads' and
# 'messages'.
set nm_query_type = messages
# When writing a message in the NeoMutt record (see $record in the NeoMutt docs),
# also add it to the notmuch DB. Replies inherit the tags from the original email.
set nm_record = no
# Tags modifications to the messages stored in the NeoMutt record.
# example:
#   set record = "~/sent-mails"
#   set nm_record = yes
#   set nm_record_tags = "-inbox,archive,me"
set nm_record_tags = ""
# This variable specifies the notmuch tag used for unread messages.
set nm_unread_tag = unread
# This variable allows you to customize the file browser display for virtual
# folders to your personal taste.
# %C   current folder number
# %f   folder name (description)
# %m   number of messages in the mailbox *
# %n   number of unread messages in the mailbox *
# %N   N if mailbox has new mail, blank otherwise
# %>X  right justify the rest of the string and pad with character ``X''
# %|X  pad to the end of the line with character ``X''
# %*X  soft-fill with character ``X'' as pad
set vfolder_format = "%6n(%6N) %f"
# When set, NeoMutt will use the first virtual mailbox (see virtual-mailboxes)
# as a spool_file.
#set virtual_spool_file = no
# setup time window preferences
# first setup the duration, and then the time unit of that duration
# when set to 0 (the default) the search window feature is disabled
# unless explicitly enabled with nm_query_window_enable.
set nm_query_window_enable=no
set nm_query_window_duration=0
set nm_query_window_timebase="year" # or "hour", "day", "week", "month", "year"
# Extend query window to always show mail matching these terms.
#set nm_query_window_or_terms="tag:unread and tag:flagged"
# --------------------------------------------------------------------------
# FUNCTIONS – shown with an example mapping
# --------------------------------------------------------------------------
# open a different virtual folder
bind index,pager X change-vfolder
# read entire thread of the current message
bind index,pager + entire-thread
# generate virtual folder from query
bind index,pager \eX vfolder-from-query
# generate virtual folder from query with time window
bind index < vfolder-window-backward
bind index > vfolder-window-forward
# toggle between mailboxes and virtual mailboxes
# bind index,pager ??? sidebar-toggle-virtual
# --------------------------------------------------------------------------
# COMMANDS – shown with an example
# --------------------------------------------------------------------------
# virtual-mailboxes description notmuch-URL { description notmuch-URL ...}
# virtual-mailboxes "Climbing" "notmuch://?query=climbing"
# unvirtual-mailboxes { * | mailbox ...}
#
# --------------------------------------------------------------------------
# vim: ft=muttrc