]> git.donarmstrong.com Git - mail.git/blob - .muttrc
080cc4536b35ea19214629ab981332b801b0f6e1
[mail.git] / .muttrc
1
2 set realname='Don Armstrong'
3 source ~/.mail_aliases
4 set alias_file=~/.mail_aliases
5
6 source /usr/lib/mutt/source-muttrc.d|
7
8 set autoedit
9 unset beep
10 set bounce=yes
11 unset bounce_delivered
12 set collapse_unread
13 unset confirmappend
14 unset confirmcreate
15 set edit_headers
16 set encode_from
17 set folder = "~/Mail"
18 set from = "Don Armstrong <don@donarmstrong.com>"
19 unset help
20 set hide_limited
21 set ignore_list_reply_to
22 set implicit_autoview
23 set mailcap_path ="/etc/mailcap"
24 unset maildir_trash
25 set pager_stop = yes
26 set reverse_alias = yes
27 set save_history = 5
28 unset sig_dashes
29 unset mark_old
30
31 set sort_re             # set: only put a child in a thread, if starts with Re:
32 unset status_on_top     # status line at the top or button?
33 unset strict_threads    # thread only by In-Reply-To/References or by Subject.
34 unset suspend           # Ctrl-Z is able to suspend mutt.
35 set thorough_search     # MIME decode before searching.
36 unset tilde             # Internal Pager: ~~~~ at and of message?
37 unset uncollapse_jump   # don't move pointer, when uncollapsing thread
38 unset use_8bitmime      # run sendmail 8.8.x with -B8BITMIME to enable 8bit 
39 set use_domain          # add $domain to all addresses without @host
40 set use_from            # generate a "From:" header (unless my_hdr From:)
41 #unset use_ipv6         # Only use IPv4 address resolution.
42 set user_agent          # Create User-Agent: Mutt/<Version> header.
43 unset wait_key          # Only "press a key" if return value non-zero
44 set weed                # weed headers, when forwarding with forward_decode
45 set wrap_search         # Wrap search to top/bottom.
46 unset write_bcc         # send Bcc: line to $sendmail 
47
48 set header_cache = ~/.mutt/header_cache
49
50 set abort_nosubject=no  # Abort, if message has no subject.
51 set abort_unmodified=no # Abort, if message wasn't edited.
52 set copy=yes            # ask to save a copy of outgoing message?
53 set delete=yes          # ask for confirmation when deleting messages?
54 set honor_followup_to=ask-yes   # Ask whether to honor Mail-Followup-To header.
55 set include=yes         # quote message, when replying
56 set mime_forward=ask-yes        # use MIME when forwarding mails.
57 set mime_forward_rest=ask-yes   # forward attachments w/o autoview from attmenu
58 set move=no             # Move mail-spool to $mbox?
59 set postpone=ask-yes    # ask for postponing when doing an Abort.
60 set print=ask-yes       # ask whether you really want to print.
61 set quit=yes            # ask before quitting.
62 set recall=no           # don't ask for using postponed message.
63 set reply_to=ask-yes    # Use or ignore Reply-To.
64
65
66 set certificate_file=~/.mutt/ca-certificates
67
68
69 set history=200         # Size of the history buffer
70 set pager_context=0     # number of lines, to display twice on PgUp/Down
71 set pager_index_lines=6 # add small message index at top of pager (4)
72 set read_inc=10         # Mutt will notify when reading mailbox messages
73 set sendmail_wait=0     # >0 (wait seconds), 0 (forground), <0 (background)
74 set sleep_time=2        # pause (in seconds) while showing info messages
75
76 set sort=threads        # sorting the mails in threads
77 set sort_aux=date-received      # sorting the threads
78 set sort_browser=alpha
79 set sort_alias=alias
80
81 set display_filter=""   # pipe message through this filter before displaying
82 set editor="~/bin/sane_editor"
83 set folder=~/Mail       # where are the mailboxes (+ and = are shortcuts)
84 set mbox=+inbox         # not used if "set move=no"
85 set pager=builtin       # internal pager: "builtin" or e.g. "less -e" 
86 set postponed=+postponed        # folder for postponed messages
87 set print_command="sed s/\f// | a2ps -2 -g --strip 1 -Email"
88 set query_command="lbdbq %s"    # query tlr's little brothers database.
89 set record="~/Mail/outbox"              # Don't save a copy of outgoing messages (Fcc)
90 reset shell             # Take shell from /etc/passwd 
91 # set signature='~/.signature'  # Signature (See send-hook!)
92 set spoolfile=+INBOX    # Maildir incoming file (~/Mail/incoming)
93 set narrow_tree=yes
94
95 set attach_sep="\n"     # Separator to add between tagged attachements
96 set charset="utf-8"     # Charset of Terminal (for display)
97 set send_charset="utf-8"  # Charsets for outgoing messages.
98 reset escape            # ESC-char for internal editor (use default).
99 reset hostname          # FQDN (use default).
100 set indent_string="> "  # Quoting mails with this string.
101 set mh_seq_flagged="flagged"    # Name of MH sequence used for flagged msgs.
102 set mh_seq_replied="replied"    # Name of MH sequence used for replied msgs.
103 set mh_seq_unseen="unseen"      # Name of MH sequence used for unseen msgs.
104 set simple_search="~f %s | ~C %s | ~s %s"       # default pattern (Fr|To|Cc|Su)
105 set status_chars="-*%A" # status of mbox (unchanged, changed, readonly, attach)
106 set to_chars=" +TCF "   # no to me, only to me, not only to me, Cc: to me, 
107                         # from me, to subscribed mailinglist.
108
109 set mbox_type=Maildir
110
111 alternates "\^(\
112 ((don(\\+.*)?@(.*\\.)?(donarmstrong|anylevel|oneinfinity)\\.(com|org|net))\
113 |(don(\\+.*)?@(.*\\.)?(rzlab|pellam)\\.ucr\\.edu)\
114 |(don(\\+.*)?@(.*\\.)?debian\\.org)\
115 |donarm(\\+.*)?@(.*\\.)?illinois\\.edu)\
116 )$"                             # alternate usernames
117
118 set gecos_mask="^[^,]*"         # Parse the GECOS field from passwd file.
119
120 set quote_regexp="^( {0,5}[>|:%]| {0,5}[a-z0-9]+[>|]+)+"
121                                 # for color quotes
122
123 set reply_regexp="^((re(\\^[0-9])? ?:|a(nt)?w(ort)?:|wg:|\\(fwd\\))[ \t]*)*"
124                         # Subject prefixes (removed on answering and threading)
125 set date_format="!%a %b %d, %Y at %I:%M:%S%p %Z"
126                         # control output of %d in index_format. strftime(3)
127                         # here: Monday Dec 06, 1997 at 08:30:42pm CET
128
129 set forward_format="(fwd) %s"
130                         # subject of forwarded mails
131
132 spam 'X-Spam-Level: \\*\\*\\*\\*\\*\\*\\*\\*' 8
133 spam 'X-Spam-Level: \\*\\*\\*\\*\\*\\*' 6
134 spam 'X-Spam-Level: \\*\\*\\*' 3
135 spam 'X-Spam-Level: \\*\\*' 2
136 spam 'X-Spam-Level: \\*' 1
137 set index_format="%4C %Z %[!%k:%M %m.%d.%y] %-15.15F (%?M?C%3M&%4c?) %?H?[%H] ?%s"
138
139 set message_format="%-.16n: %s"
140                         # string for message/rfc822 in attachment list
141
142 set pager_format="-%Z- %C/%m [%[%H:%M]] %-17.17n   %s"
143
144 set post_indent_string=""       # Footer (after quotes, before signature).
145
146 set attribution='On %{%a, %d %b %Y}, %n wrote:\n'
147
148 set folder_format="%3C %t%N %f"
149
150 set compose_format="-- %v-- Compose  [Approximate Message Size: %l   Attachments: %a]%>-"
151
152
153 #
154 # Pretty Good Privacy (PGP):
155 #
156
157 set pgp_ignore_subkeys  # On OpenPGP keys only show the main key, not the sub.
158 set pgp_autosign        # pgp sign every outgoing mail. (send-hook?)
159 unset pgp_autoencrypt   # pgp encrypt every outgoing mail. (send-hook?)
160 set pgp_create_traditional=no   # Use old-style PGP? (don't do it!)
161 set pgp_replyencrypt    # Encrypt replies on encrypted mail
162 set pgp_replysign       # Sign replies on signed mail
163 set pgp_replysignencrypted      # Sign replies on encrypted mail
164 unset pgp_retainable_sigs       # disable retainable signatures.
165 set pgp_verify_sig=yes  # ask me whether I want to check a pgp signature
166 set pgp_timeout=7200    # forget PGP passphrase after 7200 seconds (=2 hours)
167 set pgp_strict_enc      # allway use QP enc. with PGP.
168 unset pgp_long_ids      # display 64bit PGP key-ids (don't change this!)
169 set pgp_show_unusable   # show unusable PGP keys in menu
170 set pgp_use_gpg_agent   # Use gpg_agent
171
172 set pgp_entry_format="%4n %t%f %[%y/%m/%d] %4l/0x%k %-4a %2c %u"
173
174 set pgp_sort_keys=trust
175
176 set dsn_notify="failure,delay"
177 set dsn_return="hdrs"
178
179 unscore *
180
181 unset score                     # turn off scoring
182 set score_threshold_delete=-1   # mark messages with score <=value deleted
183 set score_threshold_flag=9999   # mark messages with score >=value flagged
184 set score_threshold_read=-1     # mark messages with score <=value read
185
186 unmy_hdr *
187 auto_view text/richtext text/html text/x-sgml text/x-vcard text/x-sh \
188           text/x-csrc text/tex text/-xtex text/english \
189           application/x-tex application/x-dvi \
190           application/x-gzip-dvi application/x-diff-gzip application/x-gzip \
191           application/x-gunzip application/x-bzip2 \
192           application/x-cpio application/x-gtar \
193           application/x-tar application/x-tar-gz application/x-rar-compressed \
194           application/x-zip-compressed application/zip application/x-csh \
195           application/x-sh application/x-script application/x-shellscript \
196           application/x-latex application/x-tex application/x-shar \
197           application/x-troff application/x-troff-man application/x-troff-me \
198           application/x-pgp-message application/msword \
199           application/ms-tnef application/ms-word application/rtf \
200           application/octet-stream application/x-tcl application/x-perl \
201           application/x-debian-package message/partial
202
203
204 alternative_order text/enriched text/plain text/html
205
206 #
207 # monochrom terminals:
208 # (none, bold, underline, reverse, standout)
209 #
210 #    object             attribute
211 #
212 mono normal             none            # normal text
213 mono indicator          reverse         # actual message
214 mono tree               none            # thread arrows
215 mono status             reverse         # status line
216 mono error              bold            # errors
217 mono message            none            # info messages
218 mono quoted             bold            # quoted text
219 mono signature          none            # signature
220 mono attachment         underline       # MIME attachments
221 mono search             reverse         # search matches
222 mono tilde              none            # ~ at bottom of msg
223 mono markers            bold            # + at beginning of wrapped lines
224 mono hdrdefault         none            # default header lines
225 mono bold               bold            # hiliting bold patterns in body
226 mono underline          underline       # hiliting underlined patterns in body
227 #
228 #    object      attribute      RegExp
229 #
230 mono header      bold           "^(from|subject):"
231 #mono body       underline      "((ftp|http|https)://|news:)[^ >)\"\t]+"
232 mono body        underline      "((ftp|http|https)://|(file|news):|www\\.)[-a-z0-9_.:]*[a-z0-9](/[^][{} \t\n\r\"<>()]*[^][{} \t\n\r\"<>().,:!])?/?"
233 mono body        underline      "[-a-z_0-9.]+@[-a-z_0-9.]+"
234 mono body        bold           "(^| )\\*[-a-z0-9]+"
235
236 ## ========================================================================
237 ## BIND - bind commands to keys.
238 ## ========================================================================
239
240 ## ========================
241 ## Bindings for attach menu
242 ## ========================
243
244 bind attach ' ' select-entry
245
246 ## ============================
247 ## Bindings for index and pager
248 ## ============================
249
250 ## Jumping to the next mail that is still unread.
251 bind index   \t    next-new
252 bind pager   \t    next-new
253 bind index   ' '   next-unread
254 bind pager   ' '   next-unread
255 bind index   V     show-version
256 bind pager   V     show-version
257 bind index   A     create-alias
258 bind pager   A     create-alias
259 macro index  S     "s=spam.MANUALSPAM\r"
260 macro pager  S     "s=spam.MANUALSPAM\r"
261 macro index  X     "<copy-message>=spam.HAM\r"
262 macro pager  X     "<copy-message>=spam.HAM\r"
263
264 macro pager ,e     "<tag-prefix><pipe-message>ripmime -i - -d ~/attachments/"
265 macro index ,e     "<tag-prefix><pipe-message>ripmime -i - -d ~/attachments/"
266
267 ## ==============================================
268 ## Bindings for editing and reloading the .muttrc
269 ## ==============================================
270
271 macro generic   ,ve   "!sane_editor ~/.muttrc\n"
272 macro generic   ,vu   ":source ~/.muttrc\r"
273 macro generic   ,va   "!sane_editor ~/.mail_aliases \n"
274
275 ## ======================
276 ## Bindings for index
277 ## ======================
278
279 bind index   P          recall-message
280 bind index   s          save-message
281 bind browser x          check-new
282 bind index   <pagedown> next-page
283 bind index   <pageup>   previous-page
284 bind index   x          sync-mailbox
285 bind index   a          tag-prefix
286 bind index   \;         tag-entry
287
288 macro index  \cb        "|urlview\n"
289 macro index  ,l         "l~N ! ~p\n"
290 macro index  ,n         "l~N\n"
291
292 # ======================================
293 # Quickly change to my favorite folders:
294 # ======================================
295 macro index  "\\d"  "c=lists.debian-devel\r"
296 macro index  "\\o"  "c=outbox\r"
297 macro index  "\\t"  "c=TODO\r";
298 macro index  "\\b"  "c=buildd_don\r"
299 macro index  I      "c!\n" "Go to Inbox"
300
301 macro pager  "\\d"  "c=lists.debian-devel\r"
302 macro pager  "\\t"  "c=TODO\r";
303 macro pager  "\\o"  "c=outbox\r"
304 macro pager  "\\b"  "c=buildd_don\r"
305 macro pager  I      "c!\n" "Go to Inbox"
306
307 # ===========================
308 #    Bindings for pager
309 # ===========================
310
311 bind pager     /   search
312 bind pager     L   list-reply
313 bind pager     b   bounce-message
314 bind pager     f   forward-message
315 bind pager     m   mail
316 bind pager     g   group-reply
317 bind pager     j   next-line
318 bind pager     k   previous-line
319 bind pager     :   enter-command
320 bind pager     p   previous-undeleted
321 bind pager     n   next-undeleted
322 bind pager     \n  next-unread
323 # bind pager     \cf forget-passphrase
324 bind compose   s   send-message
325 bind pager ,p print-message
326
327 macro pager J "!gpg --keyserver wwwkeys.eu.pgp.net --recv-key " "Get PGP Key"
328 macro pager K "!gpg --lsign-key " "Sign PGP Key"
329
330 macro pager "i" "<sync-mailbox><change-folder>?<toggle-mailboxes>"
331 macro index "i" "<sync-mailbox><change-folder>?<toggle-mailboxes>"
332
333 ## =====================================
334 ## Tom's cursor movement system [tm] ;-)
335 ## =====================================
336
337 bind  pager   <up>     previous-line
338 bind  pager   <down>   next-line
339 bind  pager   <left>   exit 
340 bind  pager   <right>  view-attachments
341 bind  attach  <left>   exit
342 bind  attach  <right>  view-attach
343 bind  index   <right>  display-message
344 # Pre mutt 1.3.x, you'll want this instead:
345 #macro index   <left>   "c?"
346 macro index   <left>   "c?<tab>"
347 bind  browser <right>  select-entry
348 bind  browser <left>   exit
349
350 ## =================
351 ## Color definitions
352 ## =================
353 color attachment white     magenta
354 color body      brightgreen       default  "ftp://[^ ]*"
355 color body     brightgreen default "[[:alnum:]][-+.#_[:alnum:]]*@[-+.[:alnum:]]*[[:alnum:]]"
356 color body      brightgreen       default  "<URL:[^ ]*>"
357 color bold      green      default
358 color error     red        default
359
360 color header    yellow     default  "^from"
361 color header    green      default  "^from:"
362 color header    green      default  "^to:"
363 color header    green      default  "^cc:"
364 color header    green      default  "^date:"
365 color header    yellow     default  "^newsgroups:"
366 color header    yellow     default  "^reply-to:"
367 color header    brightcyan default  "^subject:"
368 color header    red        default  "^x-spam-score:"
369 color header    yellow     default  "^x-mailer:"
370 color header    yellow     default  "^message-id:"
371 color header    yellow     default  "^Organization:"
372 color header    yellow     default  "^Organisation:"  
373 color header    yellow     default  "^User-Agent:"  
374 color header    yellow     default  "^X-Message-Flag:"
375 color header    yellow        default  "^X-Diagnostic:"
376
377 color indicator white      blue
378 color markers   red        default
379 color message   white      blue
380
381 ## ==================================================
382 ## Colorizing the body of messages (ie in the pager)
383 ## ==================================================
384
385 color normal    white     default  # pager body
386
387 #  Coloring quoted text - coloring the first 7 levels:
388 color quoted    cyan      default
389 color quoted1   yellow    default
390 color quoted2   red       default
391 color quoted3   green     default
392 color quoted4   cyan      default
393 color quoted5   yellow    default
394 color quoted6   red       default
395 color quoted7   green     default
396
397 color signature brightred      default
398 color status    white          blue
399 color tilde     blue           default
400 color tree      brightmagenta  default
401 color underline yellow         default
402 # color body      yellow         default  "[;:]-[)/(|]"  # colorise smileys
403 # color body      yellow         default  "[;:][)/(|]"
404 color body      brightblue     default  "(http|ftp|news|telnet|finger)://[^ ]*"
405
406 color index     yellow         default  ~N      # New
407 color index     yellow         default  ~O      # Old
408 color index     brightgreen    default  '~p'    # mail to myself
409 color index     brightcyan    default  '~P'    # mail from myself
410 color index     magenta        default  ~F      # Flagged
411 color index     blue           default  ~T      # Tagged
412 color index     red            default  ~D      # Deleted
413
414 # Headers to ignore/see
415 # Ignore everything but the really important lines:
416 ignore *
417 unignore from: date subject to cc reply-to:
418 unignore organization organisation
419 unignore user-agent: x-agent: x-mailer: x-newsreader:
420 unignore newsgroups: posted-to: x-spam-rule:
421 # These can provide amusement
422 unignore X-Fnord: X-WebTV-Stationery: X-Message-Flag:
423 unignore Message-Id:
424 # procmail rules for listmaster
425 unignore X-Diagnostic:
426
427 # ordering of headers in the pager
428 unhdr_order *
429 hdr_order Date: From: To: Cc: X-Newsreader: X-Mailer: Organization: Organisation: User-Agent: X-Fnord: X-WebTV-Stationery: X-Message-Flag: X-Diagnostic: Newsgroups: Reply-To: Subject: x-spam-rule:
430
431 folder-hook .    set sort=threads
432 folder-hook INBOX set sort=date-received
433
434 # bug hooks
435 #reply-hook "~h X-Debian-PR" my_hdr "X-Debbugs-No-Ack: yes no ack";
436 send-hook ~A unmy_hdr "X-Debbugs-No-Ack";
437 send-hook "(~C submit@bugs.debian.org |~C control@bugs.debian.org |~C \d+@bugs.debian.org)" my_hdr "X-Debbugs-No-Ack: yes no ack"
438
439 # Fix the Mail-Followup-To for sdondley
440 send-hook . unmy_hdr "Mail-Followup-To";
441 send-hook "(~f sdondley@gmail.com|~f s@gmail.com|~f s@dondley.com)" my_hdr "Mail-Followup-To: Don Armstrong <don@donarmstrong.com>";
442
443 # identities
444 # default
445 source "~/.mutt/identity_default"
446 # Debian folder hooks
447 folder-hook debian- "source ~/.mutt/identity_debian"
448 folder-hook bdo_role "source ~/.mutt/identity_owner"
449 folder-hook 0_ldo_role "source ~/.mutt/identity_listmaster"
450 folder-hook !debian-|bdo_role_|0_ldo_role "source ~/.mutt/identity_default"
451
452 # INBOX hook
453 folder-hook INBOX "reply-hook ~Cdonarm@illinois.edu source ~/.mutt/identity_illinois; reply-hook ~Cdon@debian.org source ~/.mutt/identity_debian; reply-hook !(~Cdonarm@illinois.edu|~Cdon@debian.org) source ~/.mutt/identity_default"
454 folder-hook !INBOX "unhook reply-hook"
455
456 macro generic ,ad ":source ~/.mutt/identity_debian\r"
457 macro generic ,an ":source ~/.mutt/identity_default\r"
458 macro generic ,as ":source ~/.mutt/identity_illinois\r"
459
460 ## "lists" adds a list of mailing lists addresses
461 ## so mutt knows about these for showing them in the folder indexes
462 ## and to allow replying to them with the command "list-reply".
463 ## The first part of the address (up to the @) should be used here.
464 unlists *      # remove old entries first
465 lists `find ~/Mail/ -mindepth 1 -maxdepth 1 \( -iname 'lists.*' -o -iname 'bugs.*' \) -type d -printf '%f '|sed 's/(lists|bugs)\.//g'`
466
467 unsubscribe *
468 subscribe `find ~/Mail/ -mindepth 1 -maxdepth 1 \( -iname 'lists.*' -o -iname 'bugs.*' \) -type d -printf '%f '`
469
470 ## "mailboxes" defines the list of folders to be checked for new mail
471 ## Mutt both can show the number of mailboxes with new mail in the index and
472 ## you can cycle through these after giving the "change-folder" command.  :-)
473 mailboxes +INBOX
474 mailboxes +TODO
475 mailboxes +bdo_role
476 mailboxes +buildd_don
477 mailboxes +0_ldo_role
478 mailboxes +oftc
479 mailboxes `find ~/Mail/ -mindepth 1 -maxdepth 1 \( -iname 'lists.*' -o -iname 'bugs.*' \) -type d -printf '+%f '`
480
481 # integration with org mode
482 macro index \eR "|~/bin/remember_mail\n"
483 macro pager \eR "|~/bin/remember_mail\n"
484