Skirv's Uber-Config - mutt

Summary

mutt is initialized by your ~/.muttrc file. Sadly, this package is not as good at loading per-system files as other packages, so we have to symlink in different configuration files as necessary.

Files

Generic Files

muttrc.generic

A default muttrc that can be used across many systems, but not all. Not that well maintained, but it at least loads muttrc.general and muttrc.all.

############################################################################### ### Mutt Configuration ######################################################## ############################################################################### # zeus.killfile.org, and in fact all generic system, layout ############################################################################### ### Load Files ################################################################ ############################################################################### # Load basic mutt information source ~/.config/mutt/muttrc.general # Load all-system config source ~/.config/mutt/muttrc.all # Get GPG information source ~/.config/mutt/gpg.rc ############################################################################### ### Header Information ####################################################### ############################################################################### set realname="Tim Skirvin" set from=tskirvin@killfile.org my_hdr X-Note: http://www.killfile.org/~tskirvin/faq/pgpsig.html ############################################################################### ### Settings ################################################################## ############################################################################### # Fix things from the general muttrc set hostname="killfile.org" set imap_list_subscribed set imap_home_namespace="~/mail" set spoolfile=imaps://killfile.org/INBOX set spoolfile=imaps://killfile.org/mbox/current set folder=imaps://killfile.org/ set imap_user=tskirvin # set imap_pass mailboxes {killfile.org/ssl} ############################################################################### ### Mailing Lists ############################################################# ############################################################################### source ~/.config/mutt/lists.generic

Download

muttrc.general

mutt commands that are universal across all installs; the reason we bothered putting this in our uber-config.

# ignore - doesn't display headers by default ignore * unignore From Subject To Control Message-ID Reply-To Cc Return-Path \ X-Spam-Status Date hdr_order From Date: Return-Path: From: Reply-To: To: Cc: Message-ID: Subject: \ X-Spam-Status Date # settings set abort_nosubject=no # Abort if no subject is given set abort_unmodified=yes # Abort if nothing was modified set alias_file=~/.config/mutt/aliases # Where to keep mail aliases set allow_8bit # Allows upper-ASCII set attach_split # Can operate on attachments one-by-one set beep # Beep when an error occurs set beep_new # Beep when new messages arrive set check_new # Check for new messages while mbox's are open set collapse_unread # Don't collapse a thread if it has unread msgs set confirmappend # Prompt for confirmation to append to mbox set confirmcreate # Prompt for confirmation to create an mbox set copy # Save copies of outgoing messages? set edit_headers # Edit headers + body of outgoing message set folder="~/imap" # Mail folders are kept in this directory set history=20 # String history buffer set hostname="stanford.edu" # Default hostname set include=yes # Include the replied-to message set mail_check=5 # Check for new mail every x seconds unset markers # No '+' signs on wrapped lines set mbox="=received" # Where to save read messages unset metoo # Reply-all doesn't include me! set pager_context=1 # Number of context lines for the pager set certificate_file="~/.config/mutt/certificates" # Where to save SSL certs set postpone=ask-yes # Don't postpone messages be default set print=ask-no # Ask if we want to print set realname="Tim Skirvin" # Should do this consistently # set query_command="mutt-ldapquery '%s'" # Query the local PH server set query_command="lbdbq '%s'" # Query the local PH server set recall=ask-yes # Ask about =postponed set record="=outgoing" # Better than Fcc set reverse_alias # Keeps track of aliases stuff - why not? set status_on_top # status_format will be prnted on top macro generic "!less /usr/local/doc/mutt/manual.txt" "Show Mutt docs" macro index "!less /usr/local/doc/mutt/manual.txt" "Show Mutt docs" macro pager "!less /usr/local/doc/mutt/manual.txt" "Show Mutt docs"

Download

muttrc.all

Offers default loading functions, and starts loading other muttrc files as necessary. muttrc.generic loads this.

############################################################################### ### Load Files ################################################################ ############################################################################### source ~/.config/mutt/colors.tim source ~/.config/mutt/aliases ############################################################################### ### Header Information ####################################################### ############################################################################### ignore * unignore From Subject To Control Newsgroups Message-ID Reply-To Cc Date \ Return-Path X-Spam-Status in-reply-to references Date hdr_order From Return-Path: From: Reply-To: To: Control: Newsgroups: Cc: \ Message-ID: Subject: Date: X-Spam-Status In-Reply-To ############################################################################### ### Global Settings ########################################################### ############################################################################### # set alternates="tskirvin@*" # Alternate email addresses set autoedit # Begins editor w/out prompts when mailing set attribution="%f writes:" # Format for attribution string unset beep # Beep when an error occurs set date_format="!%b %d" # The format of the date - month/year # set display_filter="" # Program to filter messages through set dsn_notify="failure" # Don't bother me on message delays sendmail set dsn_return=hdrs # Only return headers on message failures set edit_headers # Edit headers + body of outgoing message set editor="vim '+/^$/+'" # Use vim as editor, begin after the headers set fast_reply # Quickly reply to stuff # set fcc_clear # Fcc's aren't signed or encrypted set header # Includes full headers in replies set include=yes # Include the replied-to message set index_format="%4C %Z %d %-13.13F %4l %s" # Header format unset mark_old # Unread messages are saved as New unset metoo # Reply-all doesn't include me! set mime_forward=yes # Include attachments on forward set mime_forward_rest=yes # Include attachments on forward, II set move=no # Don't move stuff to ~/mbox set pgp_autosign # Try to PGP sign everything # set pgp_autoencrypt # Try to PGP encrypt everything set pgp_replysign # PGP sign replies to PGP encrypted stuff set pgp_replysignencrypted # PGP sign and encrypt replies to encryption set pgp_sign_as="0x0C2EE21D" # Sign as my standard self set pgp_timeout=600 # Save the PGP sig for 10 minutes (600 secs) set pipe_split # Pipe tagged messages one at a time set postpone=ask-no # Don't postpone messages be default set print=ask-yes # Don't print by default set quote_regexp="^ {0,5}[a-zA-Z]*>|}()%=-][]>|}()=-]*" # Quotes set realname="Tim Skirvin" # Real name set simple_search="~f %s | ~s %s | ~C %s | ~b %s" # Basic searches include To, Cc, and body set sort=date-received # Sort based on the date received # set strict_threads # Doesn't sort by subject, just by ID # Status format - change the top bar to be more useful set status_format='%r %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? Pat:"%?V?%V&~A?" %l]-%>-(%P)---' set tilde # ~'s are our friend unset markers # Get rid of the '+' as a linewrap thing set folder_format='%2C %f %> %t %N%8s' # More minimal # set folder_format="%f %> %t%N" set sort_browser='unsorted' # Don't sort the mailboxes mime_lookup application/octet-stream # What MIME type is this really? # Automatically view HTML messages alternative_order text/plain * auto_view text/html image/* ############################################################################### ### Keymap Binding ############################################################ ############################################################################### # Browser bind browser x exit bind browser h previous-page bind browser l next-page bind browser ' ' next-page bind browser backspace previous-page # Index bind index pagedown next-page bind index pageup previous-page bind index home first-entry bind index end last-entry bind index " " next-page bind index h previous-page bind index j next-entry bind index k previous-entry bind index l next-page bind index J next-page bind index K previous-page bind index < previous-page bind index > next-page bind index ^ first-entry bind index G last-entry bind index \Cu previous-page bind index \Cd next-page bind index "'" limit bind index Y print-message # A bad idea? # bind pager \E[A previous-line # bind pager next-line # bind pager exit # bind pager view-attachments # bind attach exit # bind attach view-attach # bind index display-message # macro index "c?" # bind browser select-entry # bind browser exit # Pager bind pager h previous-undeleted # vi mappings bind pager j next-line bind pager k previous-line bind pager l next-undeleted bind pager \Cu half-up bind pager \Cd half-down bind pager ^ top bind pager $ bottom bind pager / search bind pager > search-next bind pager < search-opposite bind pager b previous-undeleted # nn mappings bind pager p previous-undeleted bind pager n next-undeleted bind pager \Cm next-line bind pager ' ' next-page bind pager backspace previous-page bind pager Z exit bind pager z exit bind pager R group-reply # mush mappings bind pager L list-reply bind pager P check-traditional-pgp bind pager H display-toggle-weed bind pager B bounce-message bind pager Y print-message # Like pine... bind pager : enter-command ############################################################################### ### Macros #################################################################### ############################################################################### # macro pager X "| sa-learn --spam --no-sync --single" # macro index X "| sa-learn --spam --no-sync --single" macro index X "s~/mail/spam-tolearn^My" macro pager X "s~/mail/spam-tolearn^My" macro pager A "| sa-learn --ham --no-sync --single ^M" macro index A "| sa-learn --ham --no-sync --single ^M" # lynx is a console web browser, replace it with whatever you want macro generic "!lynx /opt/local/share/doc/mutt/manual.html\n" "Show Mutt documentation" macro index "!lynx /opt/local/share/doc/mutt/manual.html\n" "Show Mutt documentation" macro pager "!lynx /opt/local/share/doc/mutt/manual.html\n" "Show Mutt documentation" ############################################################################### ### Color Settings ############################################################ ############################################################################### # color quoted green blue mono search reverse mono error reverse

Download

colors

# -*- muttrc -*- # # Colour settings for mutt. # # Default colour definitions color hdrdefault brightgreen black color quoted brightcyan black color signature brightblue black color indicator brightwhite red color attachment green black color error red white color message green black color search brightwhite magenta color status brightyellow blue color tree red black color normal white black color tilde green black color bold brightyellow black color markers red black # Colour definitions when on a mono screen mono bold bold mono underline underline mono indicator reverse # Colours for items in the reader # color header brightyellow black "" color header brightgreen black "^(From|To|Cc|Bcc|Reply-To):" color header brightmagenta black "^(Subject|X-Spam-Status):" # color header brightred black "^X-Spam-Status:" # color header brightred black ".*@.*" mono header bold "^(From|Subject|X-Spam-Status):" # Colours for items in the index color index brightblue black ~N color index red black ~F color index black black ~T color index brightwhite black ~D mono index bold ~N mono index bold ~F mono index bold ~T mono index bold ~D # Highlights inside the body of a message. # URLs color body brightred black "(http|https|ftp|news|telnet|finger)://[^ \">\t\r\n]*" color body brightred black "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" color body brightred black "news:[^ \">\t\r\n]*" mono body bold "(http|https|ftp|news|telnet|finger)://[^ \">\t\r\n]*" mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" mono body bold "news:[^ \">\t\r\n]*" # email addresses color body brightred black "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" mono body bold "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" # Various smilies and the like color body brightgreen black "<[Gg]>" # color body brightgreen black "<[Bb][Gg]>" # color body brightgreen black " [;:]-*[)>(<|]" # :-) etc... color body brightblue black "(^|[[:space:]])\\*[^[:space:]]+\\*([[:space:]]|$)" # *Bold* text. color body brightblue black "(^|[[:space:]])_[^[:space:]]+_([[:space:]]|$)" # _Underlined_ text. color body brightblue black "(^|[[:space:]])/[^[:space:]]+/([[:space:]]|$)" # /Italic/ text.

Download

gpg.rc

GnuPG commands to encrypt/decrypt/sign mail.

# -*-muttrc-*- # # Command formats for gpg. # # This version uses gpg-2comp from # http://muppet.faveve.uni-stuttgart.de/~gero/gpg-2comp.tar.gz # # $Id$ # # %p The empty string when no passphrase is needed, # the string "PGPPASSFD=0" if one is needed. # # This is mostly used in conditional % sequences. # # %f Most PGP commands operate on a single file or a file # containing a message. %f expands to this file's name. # # %s When verifying signatures, there is another temporary file # containing the detached signature. %s expands to this # file's name. # # %a In "signing" contexts, this expands to the value of the # configuration variable $pgp_sign_as. You probably need to # use this within a conditional % sequence. # # %r In many contexts, mutt passes key IDs to pgp. %r expands to # a list of key IDs. # decode application/pgp set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f" # verify a pgp/mime signature set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f" # decrypt a pgp/mime attachment set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f" # create a pgp/mime signed attachment # set pgp_sign_command="gpg-2comp --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f" set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f" # create a application/pgp signed (old-style) message # set pgp_clearsign_command="gpg-2comp --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f" set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f" # create a pgp/mime encrypted attachment # set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" set pgp_encrypt_only_command="pgpewrap gpg -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" # create a pgp/mime encrypted and signed attachment # set pgp_encrypt_sign_command="pgpewrap gpg-2comp --passphrase-fd 0 -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" set pgp_encrypt_sign_command="pgpewrap gpg --passphrase-fd 0 -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" # import a key into the public key ring set pgp_import_command="gpg --no-verbose --import -v %f" # export a key from the public key ring set pgp_export_command="gpg --no-verbose --export --armor %r" # verify a key set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r" # read in the public key ring set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r" # read in the secret key ring set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r" # receive key from keyserver: #set pgp_getkeys_command="wrap.sh -g %r" set pgp_getkeys_command=""

Download

Other Files

lists.*

We list off our mailbox lists and such in here. These files change a lot more often than the rest of the configuration, and are more private, so they are not shared.