ftp -o - https://jcs.org/move_in | sh -
1# vim:ts=3:et:ft=muttrc
2#
3# mutt config
4# joshua stein <jcs@jcs.org>
5#
6
7# things to set
8set ascii_chars=no
9set alias_file=~/.muttrc.aliases
10set attach_format="%u%D%I %t%2n %T%.20d %> [%.7m/%.10M, %.6e%?C?, %C?, %s] "
11set charset=utf-8
12set confirmappend=no
13set connect_timeout=3
14set date_format="!%a, %d %b %Y at %H:%M:%S %Z"
15set delete=yes
16set display_filter="~/bin/mutt_filter"
17set editor="vim"
18set fast_reply=yes
19set folder=~/Mail
20set forward_format="fwd: %s"
21set header_cache=~/.mutt-cache/
22set hostname=localhost
23set include=yes
24set index_format="%[!%m%d] [%Z] %-52.52s %F"
25set ispell="aspell --mode=email --add-email-quote=%,#,:,} --check"
26set mail_check=60
27set mark_old=no
28set markers=no
29set menu_context=1
30set message_cache_clean=yes
31set message_cachedir=~/.mutt-cache/
32set metoo=no
33set mime_forward=ask-no
34set move=no
35set narrow_tree=yes
36set pager_context=2
37set pager_stop=yes
38set pager_format=" %f: %s"
39set pipe_decode=yes
40set postpone=ask-no
41set print=ask-no
42set quit=ask-yes
43set read_inc=100
44set reply_to=yes
45set send_charset="utf-8:us-ascii"
46set sendmail="msmtp"
47set sidebar_delim_chars="/"
48set sidebar_divider_char="│ "
49set sidebar_format="%B%* %?N?(%N)?"
50set sidebar_visible=yes
51set sidebar_width=18
52set smart_wrap=yes
53set sort=threads
54set status_format=" %h: %f (msgs:%?M?%M/?%m %l%?n? new:%n?%?o? old:%o?%?d? del:%d?%?F? flag:%F?%?t? tag:%t?%?p? post:%p?%?b? inc:%b?%?l??) %> %_v "
55set status_on_top=yes
56set tilde=yes
57set timeout=15
58set ts_enabled=yes
59set ts_status_format="%v: %f %?%n? (%n new)?"
60set use_envelope_from=yes
61set use_from
62unset user_agent
63
64# https://github.com/jcs/fastmail-ldap
65set query_command="~/bin/fastmail-ldap.pl '%s'"
66
67# things to bind keys to
68bind attach <left> exit
69bind pager <down> next-line
70bind pager <up> previous-line
71bind pager <left> exit
72bind pager <right> next-entry
73bind pager j next-line
74bind pager k previous-line
75bind pager l next-entry
76bind pager K previous-entry
77bind pager J next-entry
78bind pager \CF next-page
79bind pager \CB previous-page
80bind pager \CP print-message
81bind pager B sidebar-toggle-visible
82bind index <down> next-entry
83bind index j next-entry
84bind index <up> previous-entry
85bind index k previous-entry
86bind index <delete> delete-message
87bind index <space> display-message
88bind index <right> display-message
89bind index <tab> next-unread
90bind index \C<tab> next-unread
91bind index \CF next-page
92bind index \CB previous-page
93bind index B sidebar-toggle-visible
94bind compose F edit-from
95
96# always run $query_command when completing addresses instead of requiring C-t
97bind editor <tab> complete-query
98
99# act like normal vi keys but browse sidebar folders
100macro index K "<enter-command>push <sidebar-prev><sidebar-open><enter>"
101macro index J "<enter-command>push <sidebar-next><sidebar-open><enter>"
102
103# things to automate
104macro index,pager i "<change-folder>!<enter>" "go home"
105macro index,pager n "<change-folder><enter>" "go to box with new mail"
106macro index,pager p "<change-folder><up><up><enter>" "go back to the previous mailbox"
107macro index D "<tag-pattern>~d >6m<enter><tag-prefix-cond><delete-message>" "delete old mail"
108
109# do a one-time reply with sig on top, for e-mail chains where everyone else
110# is doing annoying top-replying
111macro index,pager R "<enter-command>set sig_on_top=yes<enter><reply><enter-command>set sig_on_top=no<enter>"
112macro index,pager G "<enter-command>set sig_on_top=yes<enter><group-reply><enter-command>set sig_on_top=no<enter>"
113
114# imitate the old search-body function, but expensive for imap
115macro index <Esc>b "<search>~B " "search in message bodies"
116
117# things to happen
118folder-hook . set sort=threads # everything else
119folder-hook . set strict_threads=no # compensate for stupid clients
120folder-hook . set sort_aux=last-date-received # bumped threads appear new
121folder-hook Sent set strict_threads=yes # don't group incorrectly
122folder-hook Sent set sort=date-sent # when did i send that?
123folder-hook allmail.* set sort=mailbox-order # don't sort, for fast loading
124folder-hook allmail.* push <toggle-write> # don't save changes, read-only
125
126# create message-ids that don't leak private info (like the number of messages
127# sent in the current mutt session, or the local hostname)
128send-hook . 'my_hdr Message-ID: <`date +"%Y%m%d%H%M%S"`.`sh -c "dd if=/dev/urandom bs=500 count=1 2>/dev/null | md5 | dd if=/dev/stdin bs=10 count=1 2>/dev/null"`@`sh -c "dd if=/dev/urandom bs=500 count=1 2>/dev/null | md5 | dd if=/dev/stdin bs=15 count=1 2>/dev/null"`>'
129
130# things to display (or not)
131ignore *
132unignore from: resent-from: sender: reply-to: to: resent-to: cc: bcc: x-mailing-list: date: resent-date: organization: organisation: x-mailer: x-newsreader: x-agent: x-editor: user-agent: priority: importance: message-id: resent-message-id: subject: old-return-receipt-to: old-disposition-notification-to:
133unhdr_order *
134hdr_order from: resent-from: sender: reply-to: to: resent-to: cc: bcc: x-mailing-list: date: resent-date: organization: organisation: x-mailer: x-newsreader: x-agent: x-editor: user-agent: priority: importance: message-id: resent-message-id: old-return-receipt-to: old-disposition-notification-to: subject:
135
136# bold/underline-only styling, for old non-color xterm (now xterm-r6 $TERM)
137mono attachment bold
138mono body underline "(https?|t?ftp|mailto|gopher|ssh|telnet|finger)://[^ ]+"
139mono body underline "[-a-z_0-9.]+@[-a-z_0-9.]+[a-z]" # email addresses
140mono body bold "-----Original Message-----"
141mono body bold "[;:]-[)/(|]"
142mono header none .
143mono header bold "^From: "
144mono header bold "^Resent-From: "
145mono header bold "^To: "
146mono header bold "^Subject: "
147mono header bold "^Organi[zs]ation: "
148mono header bold "^Priority: Urgent"
149mono header bold "^Importance: high"
150mono index bold '~U'
151mono index bold '~F'
152mono indicator reverse
153mono signature bold
154mono sidebar_new bold
155mono tilde bold
156mono tree bold
157mono quoted bold
158
159# since i now have to use an xterm-color $TERM, init color versions of the
160# same using brightcolor16 as a bright black
161color normal default default # init to black-on-white
162color attachment brightdefault default
163color body brightdefault default "(http|https|ftp|mailto|gopher|telnet|finger)://[^ ]+"
164color body brightdefault default "[-a-z_0-9.]+@[-a-z_0-9.]+[a-z]"
165color body brightdefault default "-----Original Message-----"
166color body brightdefault default "[;:]-[)/(|]"
167color header default default .
168color header brightdefault default "^From: "
169color header brightdefault default "^Resent-From: "
170color header brightdefault default "^To: "
171color header brightdefault default "^Subject: "
172color header brightdefault default "^Organi[zs]ation: "
173color header brightdefault default "^Priority: Urgent"
174color header brightdefault default "^Importance: high"
175color header brightdefault default '~U'
176color header brightdefault default '~F'
177color signature brightdefault default
178color sidebar_new brightdefault default
179color tilde brightblack default
180color tree color242 default
181color quoted brightblack default
182
183# color flagged a dark red
184color index brightcolor160 default '~F'
185# color to-be-deleted as grayed out
186color index brightblack default '~D'
187# bold new email in the index
188color index brightdefault default '~U'
189# make huge messages stand out so i can avoid downloading them
190color index brightcolor19 default '~z 500000-'
191
192# things i can see in mutt (with external programs through ~/.mailcap)
193auto_view application/pgp-encrypted
194auto_view application/pgp-keys
195auto_view application/pgp-signature
196auto_view text/html # html with lynx
197auto_view application/msword # .doc with antiword
198auto_view application/vnd.openxmlformats-officedocument.wordprocessingml.document
199auto_view application/x-tar-gz
200auto_view application/x-zip-compressed
201auto_view application/zip
202
203# but that doesn't mean i don't like text/plain
204alternative_order text/plain text/html
205
206# things to load in
207source ~/.muttrc.personal # my personal stuff
208source ~/.muttrc.lists # mailboxes, folders
209source $alias_file # for tab completion