# # System configuration file for Mutt # ###---------------------------------------------------------------------------- ### {{{1 Features TODO ###---------------------------------------------------------------------------- # Ctrl- for previous page in index, pager # Make the multi-line address shortener work on quoted headers as well # Make ';' work in pager (for index/pager combined mode) ###---------------------------------------------------------------------------- ### {{{1 System and Confirmation settings ###---------------------------------------------------------------------------- set mbox_type=Maildir # can be mbox, MH, Maildir, MMDF set folder=~/Maildir # folder for all mail #set folder=imaps://webb@danielwebb.us/mail/ #set folder=imaps://[username@]imapserver[:port]/path/to/folder set spoolfile=+inbox set mbox=+inbox mailboxes +inbox +friends +lists/seesat +lists/blug +lists/uucb +logcheck # folders to check for new messages set alias_file=~/.mutt/aliases source ~/.mutt/aliases # Get aliases from .mutt/aliases set move=yes # don't ask about moving messages, just do it set delete=yes # don't ask about deleting messages, just do it set print=no # I can't print from this machine set print_command="lpr -Psomething" set confirmappend=no # confirm append to a folder set confirmcreate=yes # confirm create a folder set wait_key=no # ask for keypress after external things set wrap_search=yes # wrap searches to top of mailboxes ###---------------------------------------------------------------------------- ### {{{1 IMAP settings ###---------------------------------------------------------------------------- set connect_timeout=15 ###---------------------------------------------------------------------------- ### {{{1 message composition ###---------------------------------------------------------------------------- set abort_nosubject=no # allow empty subject set abort_unmodified=yes # send menu after not editing set allow_8bit # do not base64 or mangle msgs set askcc=no # ask for cc set editor="vim -X -u ~/.mutt/vimrc-mutt" set forward_format="Fwd: %s" # traditional Fwd: subject set include=yes # include original in reply set mime_forward=ask-no # forward whole mime attachmts set mime_forward_decode=no # decode fwd to text/plain set mime_forward_rest=yes # forward the rest of mime msg set copy=yes # copy all sent messages set record=+inbox # copy and sent messages to this mailbox set edit_headers # Add headers to be edited in Vim set postpone=ask-yes # Don't ask about postponing messages, just do it set postponed=+postponed # Mailbox for postponed messages set metoo=no # Exclude my address from replies set recall=no # Don't ask if you want to continue postponed messages set user_agent=yes # append a user agent header set fast_reply=yes # skip prompts for To: and Subject: headers for replies # Exim does not remove Bcc headers, per RFCs, this should be done here by not # writing the BCC header on outgoing messages. unset write_bcc # Postfix and qmail use Delivered-To for detecting loops #unset bounce_delivered # Attribution line for replies #set attribution="%n(%a)@%d:" set attribution="On %d, %n wrote:\n" # default # ------------------------------------------------------ # {{{1 Header options # ------------------------------------------------------ ignore * unignore subject unignore to unignore from: unignore date unignore delivery-date unignore CC unignore X-source-folder # Define the order of headers when viewing messages # (doesn't seem to be supported by my version) unhdr_order * # reset header order hdr_order Delivery-Date: Date: From: To: CC: Subject: # ------------------------------------------------------------- # {{{1 "From" header settings # ------------------------------------------------------------- set hostname=danielwebb.us set realname="Daniel Webb" set use_domain=no # don't add the hostname to the From header set from=public@danielwebb.us set use_from=no # don't generate a From header unless one is created # explicity by a my_hdr set envelope_from=yes # Create SMTP "envelope from" from "From:" header # This is done using the sendmail -f option set reverse_name=yes # Default from is the "To:" header from # email you're replying to set reverse_realname=yes # For reverse_name option, leave name exactly as-is unmy_hdr * # remove all extra headers first. folder-hook . my_hdr From: Daniel Webb folder-hook +inbox my_hdr From: Daniel Webb folder-hook 'lists\/' my_hdr From: Daniel Webb folder-hook +bug_reports From: Daniel Webb send-hook someone@somewhere.com my_hdr From: Daniel Webb # ------------------------------------------------------ # {{{1 Pager, Index, and Editor options # ------------------------------------------------------ set ascii_chars=no # plain ascii chars for threadmarks set beep_new=no # beep when mail arrives set delete_untag=yes # untag files when they are deleted set ispell=ispell # executable for the ispell program #set mailcap_path=~/.mutt/mailcap # where mutt mailcap lives set mailcap_path=/etc/mailcap # where mutt mailcap lives set mailcap_sanitize=yes # Don't change unless guru set markers=yes # wrap with plus signs set mark_old=no # Don't use "old" designation set menu_scroll=no # scroll 1-line for slow links set smart_wrap=yes # wrap at a word boundary set pager_context=1 # page to page line context set pager_index_lines=12 # mini-index on pager top set pager_stop # don't auto-go to next msg set reverse_alias=yes # For addresses in aliases, use the name # instead of address in the index menu set sort=threads # default sort order #set sort_aux=last-date-received # Bring thread with recent additions # to the bottom set tilde # pad empty lines like vi # Filter long header lines into a shortened version set display_filter=~/.mutt/mail-to-filter # alt/multipart precedence alternative_order text/plain text/html text # Automatically use entries from ~/.mailcap to view these MIME types # auto_view [ ... ] #auto_view application/octet-stream auto_view text/html auto_view application/doc auto_view application/msword auto_view application/vnd.msword auto_view application/pdf auto_view application/postscript auto_view application/rtf auto_view application/octet-stream #bind index \Cc abort (doesn't exist) # I would like to remap abort # to the standard Ctrl-C #bind index '\C ' previous-page bind index next-page bind editor delete-char # map delete-char to a sane value bind pager previous-line bind pager next-line # ------------------------------------------------------ # {{{1 quote_regexp: the never-ending journey # ------------------------------------------------------ set quote_regexp="^([ \t]*[|>:}#])+" # default set quote_regexp="(^[A-Za-z ]+>|[]%>:|}-][]>:|}-]*)" # Catch more, like NAME> quotes #set quote_regexp="^([ ]*[|>:}%])+|^[a-zA-Z]{,9}>" set quote_regexp="^([ \tA-Z]*[|>:}#%])+" # set quote_regexp="^ *[a-zA-Z]*[]>|}()%:=-][]>|}():=-]*" # YESS!! # set quote_regexp="^[>|:}]+" # '+' (one or more") does not work here. :-( # set quote_regexp="^ *[:alpha:]*[]->:|}][]->:|}]*" # forget it! # This seems to catch everyone, except the MOST awkward. set quote_regexp="^( {0,4}[>|:]| {0,4}[a-z0-9]+[>|]+)+" # *sigh* this catches raster too. why can't people just use a standard, # recognisable quote delimeter? Is is *so* hard? Is the extra dash *that* # important? #set quote_regexp="^( {0,4}-?[>|:]| {0,4}[a-z0-9]+[>|]+)+" #set quote_regexp="^ *[a-zA-Z]*[]>|}()%:=-][]>|}():=-]*" # YESS!! #set quote_regexp="^ \\?[>|]" # "\\" escapes the '?' ("zero or one") - hmm #set quote_regexp="^[>|:}]+" # '+' (one or more") does not work here. :-( #set quote_regexp="^ *[:alpha:]*[]->:|}][]->:|}]*" # forget it! #set quote_regexp="^([ \t]*[>|#:}-])+" #set quote_regexp="^([ \t]*[|>:}#])+" # how to catch quoted text #set quote_regexp="^ *[a-zA-Z]*[>:#}]" # how to catch quoted text #set quote_regexp="^([A-Za-z ]+>|[]%>:|}-][]>:|}-]#*)"# how to catch quoted text #set quote_regexp="^[>|#:}] " #set quote_regexp="^[|:] *|^> *" #set quote_regexp="^ *[a-zA-Z]*[]>:|}][]>:|}]*|^ *[a-zA-Z]*[->:|}][->:|}]" #set quote_regexp="^[|:#}][ ]|^ *>|^[a-zA-Z]*> " #set quote_regexp="^ *[-=]*[>:|][>:|]*[ A-Za-z0-9]" #set quote_regexp="^([A-Za-z ]+>|[]>:|}-][]>:|}-]*)" # ------------------------------------------------------ # {{{1 Macros # ------------------------------------------------------ # simulate the old url menu macro index \cb "urlview" "call urlview to extract URLs out of a message" macro pager \cb "urlview" "call urlview to extract URLs out of a message" # H for help instead of top of screen macro generic H "~/.mutt/help\n" "Show Mutt and Mairix documentation" macro index H "~/.mutt/help\n" "Show Mutt and Mairix documentation" macro pager H "~/.mutt/help\n" "Show Mutt and Mairix documentation" # Use folders which match on \\.gz$ as gzipped folders: open-hook \\.gz$ "gzip -cd %f > %t" close-hook \\.gz$ "gzip -c %t > %f" append-hook \\.gz$ "gzip -c %t >> %f" #macro pager S "| ~/.spamassassin/bin/sa-learn --spam --file -\n" # Expiration header editing macro index E ':set editor=mutt_expires_editor:set editor=vim' "set Expires: header" macro pager E ':set editor=mutt_expires_editor:set editor=vimN' "set Expires: header" # Turn mini-index on pager top on and off macro index \ci ':set pager_index_lines=12' "Turn on mini-index" macro index \co ':set pager_index_lines=0' "Turn off mini-index" # Mail search using Mairix macro index S "~/.mairix/mairix-search " "Mairix search" macro pager S "~/.mairix/mairix-search " "Mairix search" # Mail sync using offlineimap macro pager f "mail-sync>/dev/null 2>/dev/null&" "Sync IMAP with local mail" macro index f "mail-sync>/dev/null 2>/dev/null&" "Sync IMAP with local mail" # ------------------------------------------------------ # {{{1 Colors # ------------------------------------------------------ color normal white black # normal text color indicator white blue # actual message color tree blue black # thread arrows color status brightwhite blue # status bar color markers brightred black # + at beginning of wrapped lines color index brightyellow black ~N # color for new messages color index yellow black ~O # color for old messages color index brightred black ~F # color for flagged messages color index blue black ~T # color for tagged messages # color index brightred black "~e interactors ~s SF" # color index brightred black "~e interactors ~s FE" # color index brightred black "~e interactors ~s G" color hdrdefault cyan black # default header lines color signature cyan black # signature color attachment brightyellow black # attachment color tilde blue black # ~ at bottom of msg color header brightred black ^From: color header brightcyan black ^To: color header brightcyan black ^Reply-To: color header brightcyan black ^Cc: color header brightblue black ^Subject: color body brightred black "[\-\.+_a-zA-Z0-9]+ arroba [\-\.a-zA-Z0-9]+" color body brightblue black "(http|ftp)://[\-\.\,/%~_:?\#a-zA-Z0-9]+" color body blue default "interactors" color body blue default "Javier" color quoted green black # quoted text color quoted1 red black # pager body color quoted2 cyan black # pager body color quoted3 yellow black # pager body # highlight expired messages that haven't been tagged for deletion color index magenta default '~E !~D' # ------------------------------------------------------------- # {{{1 Status lines # ------------------------------------------------------------- # default: #set status_format=\ "-%r-Mutt: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---" #set status_format=\ "---%h:%f [%?M of ?%m msgs, %?n new, ?%?t tagged, ?%l bytes]---(%s)%|-" #set status_format=\ "%r %v [%?M?%M/?%m] %?n?%n new, ?%?p?%p postponed, ?%?t?%t +tagged, ?%?d?%d deleted, ?(%h:%f) %?b?%b more to go.?%> %r" #set status_format=\ "[%r|%f|%b] #%M/%m=%L/%l [%nN %dD %tT] (%s.%S) %> (%P) [WM]" #set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s" # default #set index_format="%Z %{%D} %2N %4l %-20.20a %s" #set index_format="%Z %[%D] %2N %4l %-20.20F %s" #set date_format="!%a, %b %d, %Y at %I:%M:%S%p %Z" # default #set pager_format="-%Z- %C/%m: %-20.20n %s" # default #set pager_format="[%4C/%4m] (%S%Z) %%=%N $i %> [%lL]" # ------------------------------------------------------ # {{{1 Misc # ------------------------------------------------------ # aliases for broken MUAs charset-hook windows-1250 CP1250 charset-hook windows-1251 CP1251 charset-hook windows-1252 CP1252 charset-hook windows-1253 CP1253 charset-hook windows-1254 CP1254 charset-hook windows-1255 CP1255 charset-hook windows-1256 CP1256 charset-hook windows-1257 CP1257 charset-hook windows-1258 CP1258 # If your sendmail supports the -B8BITMIME flag, enable the following # # set use_8bitmime # ------------------------------------------------------ # {{{1 SSL options # ------------------------------------------------------ set ssl_starttls=yes # [QUAD] attempt to use STARTTLS on capable servers set certificate_file="" # file where the certificates are saved. #set ssl_usesystemcerts=yes # use system-wide CA certificates #set entropy_file="" # file which includes random data #set ssl_use_sslv2=yes # attempt to use SSLv2 set ssl_use_sslv3=yes # attempt to use SSLv3 set ssl_use_tlsv1=yes # attempt to use TLSv1 set imap_force_ssl=no # always use SSL connecting to IMAP servers # ------------------------------------------------------ # {{{1 PGP options # ------------------------------------------------------ set pgp_autoencrypt=no # Automatically encrypt all messages you send set pgp_autosign=no # Automatically sign all messages you send set pgp_ignore_subkeys=yes # principal key will inherit the subkeys' capabilities set pgp_entry_format="%4n %t%f %4l/0x%k %-4a %2c %u" # customize the PGP key selection menu set pgp_good_sign="" # signature only verified if output of $pgp_verify_command # matches this regular expression. Use this if the exit # code from $pgp_verify_command is 0 even for bad signatures set pgp_long_ids=no # use 64 bit PGP key IDs (otherwise 32 bit Key IDs) set pgp_replyencrypt=yes # automatically encrypt replies to encrypted messages set pgp_replysign=yes # automatically sign replies to signed messages # (does not work on messages that are encrypted and signed!) set pgp_replysignencrypted=yes # automatically sign replies to encrypted messages # (use in combination with pgp_replyencrypt, see manual) set pgp_retainable_sigs=no # signed and encrypted messages will consist of nested # multipart/signed and multipart/encrypted body parts set pgp_show_unusable=yes # display non-usable keys on the key selection menu set pgp_sign_as="" # specify which private key to use (if more than one) set pgp_strict_enc=yes # encode PGP/MIME signed messages as quoted-printable # (only change this if you know what you are doing) set pgp_timeout=600 # cached passphrase timeout in seconds set pgp_verify_sig=yes # [QUAD] attempt to verify PGP/MIME signatures set pgp_sort_keys=address # sort order for keys menu. Values can be: # [reverse-] (address, keyid, date, trust) set pgp_create_traditional=no # [QUAD] generate old-style PGP messages (deprecated) # ------------------------------------------------------ # {{{1 PGP commands # ------------------------------------------------------ # Command escape sequences: # # %p Expands to PGPPASSFD=0 if passphrase needed, empty string otherwise # (may be used with a %? construct) # %f Expands filename containing a message # %s Expands filename containing the signature # %a The value of $pgp_sign_as # %r One or more key IDs # # Note: pgpewrap is a simple program that allows mutt to send multiple -r options given # a list of items after -- set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f" # decode application/pgp attachments #set pgp_getkeys_command="wrap.sh -g %r" #set pgp_getkeys_command="gpg --recv-keys %r" set pgp_getkeys_command="" # get public key info from keyserver (only %r used) # (people seem to have problems with this one) set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f" # verify signatures set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f" # decrypt encrypted message set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f" # create "clearsigned" old-style PGP (deprecated) set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f" # create detached signature # --encrypt-to is added so that it is also encrypted to me # so I can read the encrypted mails I have sent set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg --passphrase-fd 0 -v --batch --output - --encrypt --encrypt-to 04957D99 --sign %?a?-u %a? --armor -r %r -- %f" # combinedly sign/encrypt a body part set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg -v --batch --output - --encrypt --encrypt-to 04957D99 --textmode --armor -r %r -- %f" # encrypt but not sign a body part set pgp_import_command="gpg --no-verbose --import -v %f" # import a key from message into key ring set pgp_export_command="gpg --no-verbose --export --armor %r" # export a key from key ring set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r" # verify key info from selection menu set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r" # list secret key ring contents set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r" # list public key ring contents set forward_decrypt=yes # strip outer layer of encryption when forwarding # (only used if $mime_forward set, # $mime_forward_decode unset) # ------------------------------------------------------ # {{{1 PGP hooks # ------------------------------------------------------ # Usage: pgp-hook pattern keyid # # When encrypting messages with PGP, you may want to associate a certain PGP key with a # given e-mail address automatically, either because the recipient's public key can't be # deduced from the destination address, or because, for some reasons, you need to override # the key Mutt would normally use. The pgp-hook command provides a method by which you can # specify the ID of the public key to be used when encrypting messages to a certain # recipient. # # Also add other hooks relating to PGP here, such as folder hooks. #folder-hook . set pgp_sign_as="0xCE4CF4B5"