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.