aboutsummaryrefslogtreecommitdiff
path: root/mutt/muttrc
blob: dd2daeaa64ff6097bfcacb18a29ea986ab5985cb (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
# Prefer the plain text part of multipart emails, followed by any enriched text
# part (?), followed by the HTML part, followed by any other parts.  Decode the
# text/html part with .mailcap's chosen program (I favour Lynx).
#
alternative_order text/plain text/enriched text/html *
auto_view text/html

# If an outgoing message looks like I meant to attach something, and there
# isn't an attachment, prompt me to make sure I haven't forgotten it.
# I normally don't like this sort of nagging, but I'm making an exception in
# this case, as I really do trip up on this a lot.  The default pattern of just
# 'attach' is a bit too aggressive, so I write a slightly softer one that
# reflects the usual way I refer to attachments.
#
set abort_noattach = ask-no
set abort_noattach_regexp = "attached is|(find|i've|see) attached"

# Don't send terminal bells on errors, but do send them when new mail arrives,
# because that should light up my tmux window label and/or urxvt window.
#
unset beep
set beep_new

# Don't prompt me for confirmation if I move messages into an existing mailbox;
# just do it.
#
unset confirmappend

# Use the GPGME library for PGP.  Sign replies to messages that are themselves
# signed or encrypted.
#
set crypt_use_gpgme
set crypt_replysign
set crypt_replysignencrypted

# Default to a subject format for forwarded messages that's more familiar to
# most mail users, unless sending mail to a list where they're more likely to
# appreciate the nicer default that uses square brackets and the author email
# address.
#
send-hook ~A \
	'set forward_format = "Fw: %s"'
send-hook ~l \
	'reset forward_format'

# Cache message headers for speed; this really helps.
#
set header_cache = '~/.cache/mutt/headers'

# I don't really need the major functions' key mappings displayed to me all the
# time; I'll look them up in <help> when I do need them.  space.  In its place,
# move the status bar up there.
#
unset help
set status_on_top

# Save command history; this saves other kinds of history as well, but all
# I really want is to be able to run the same commands again even after I quit
# Mutt.  We can afford to keep 2^8 of these, since it's the future and all.
#
set history = 256
set history_file = ~/.cache/mutt/history
set save_history = $history

# Always put a quoted copy of the whole message in a reply text for me to chop
# up and respond to in Vim--no need to prompt me (the default does that).
#
set include

# Tweak the index format to include spam tagging information, if any, with the
# %H format string
#
set index_format = '%4C %Z %{%b %d %Y} %-15.15L (%?l?%4l&%4c?) %?H?[%H] ?%s'

# Don't show any nasty little markers at the start of wrapped lines.  That's
# the sort of thing Vim cares about, if need be.
#
unset markers

# Show a few messages of the index when in pager mode to give a little context
# around the message.  I should have been doing this years ago.  Oh well.
#
set pager_index_lines = 6

# Don't move on to the next message if we're at the end of the current one just
# because I executed <next-page>.
#
set pager_stop

# Use the abook program for finding and completing addresses with ^T.  I do use
# the aliases system for regular correspondents, too.
#
set query_command = 'abook --mutt-query %s'

# I prefer a slightly stricter pattern to match what is and isn't a quote; this
# avoids flagging things like closing braces on new lines in code blocks as
# quotes
#
set quote_regexp = '^(>[ \t]*)+'

# Don't delay on switching or altering mailboxes so that I see the messages;
# just do it straight away.
#
set sleep_time = 0

# Only use the headers with proper references to link messages in a thread;
# don't try to use pattern matches on subjects, which might be rubbish like
# "hi".  If I need to link a thread together because it's been broken somehow,
# I'll do that manually.
#
set strict_threads

# Use format=flowed, continuing paragraphs for lines that end with a single
# space, and use that wrapping information to use the full width of the
# terminal for the wrapping display.
#
set text_flowed
set reflow_wrap = 0

# Don't wait for me to press a key after running a command if it exited
# successfully; this still warns me if something failed, though.
#
unset wait_key

# Save message to whatever box Mutt guesses, without confirmation
macro index,pager S \
	'<save-message><enter>' \
	'Move message to default mailbox without confirmation'

# Shortcuts to jump to mailboxes
macro generic,index,browser,pager gi \
	'<change-folder>!<enter>' \
	'Change to inbox'
macro generic,index,browser,pager gs \
	'<change-folder><<enter>' \
	'Change to sent'
macro generic,index,browser,pager gb \
	'<change-folder>-<enter>' \
	'Change to previous'

# Shortcut to add addresses to abook
macro index,pager \\A \
	'<pipe-message>abook --add-email-quiet<enter>' \
	'Add sender address to abook'

# Shortcut to reload configuration
macro generic,index,browser,pager \\R '\
<enter-command>unhook *<enter>\
<enter-command>source $alias_file<enter>\
<enter-command>echo "Reloaded with $alias_file"<enter>' \
	"Clear hooks and reload"

# Shortcut to toggle thread display
set my_sort_alt = threads
macro index \\t '\
<enter-command>set my_sort_cur = $sort<enter>\
<enter-command>set sort = $my_sort_alt<enter>\
<enter-command>set my_sort_alt = $my_sort_cur<enter>' \
	"Toggle thread display"

# Set a few simple colors just for a quick visual cue of which tool I'm looking
# at and for some visual distinction between text, signature, and quote.  The
# navigation bar is a nice dark green.
#
color attachment \
	brightyellow default
color hdrdefault \
	brightcyan default
color quoted \
	brightgreen default
color signature \
	cyan default
color status \
	default color22

# Load machine-specific or account-specific settings from the helper script in
# muttrc.d, and w're done.
#
source ~/.config/mutt/muttrc.d/src|