dotfiles

ref: master

./muttrc


# Muttrc
# ------
#
# Most of this has been "stolen" from Steve Losh
# https://hg.stevelosh.com/dotfiles/file/tip/mutt

# Paths

set alias_file       = ~/.mutt/alias         # alias file
set mailcap_path     = ~/.mutt/mailcap       # entries for filetypes
set signature        = ~/.mutt/sig           # my signature file
set tmpdir           = ~/.mutt/temp          # where to keep temp files

# Use Vim to compose email, with a few default options.
# set editor = "emacsclient -nc"
set editor = "vim -c 'normal! }' -c 'redraw' -c 'set spell'"

# Contacts

# Use the OS X address book
set query_command = "contacts -Sf '%eTOKEN%n' '%s' | sed -e 's/TOKEN/\t/g'"
bind editor  complete-query
bind editor ^T    complete

# Basic Options

source ~/dotfiles/mutt/mutt-colors-solarized-dark-16.muttrc
source ~/dotfiles/mutt/sidebar.muttrc                        # sidebar

set wait_key = no        # shut up, mutt
set mbox_type = Maildir  # mailbox type
set folder = ~/.mail     # mailbox location
set timeout = 3          # idle time before scanning
set mail_check = 0       # minimum time between scans
unset move               # gmail does that
set delete               # don't ask, just do
unset confirmappend      # don't ask, just do!
set quit                 # don't ask, just do!!
unset mark_old           # read/new is good enough for me
set beep_new             # bell on new mails
set pipe_decode          # strip headers and eval mimes when piping
set thorough_search      # strip headers and eval mimes before searching
auto_view text/html


# Status Bar

set status_chars  = " *%A"
set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"


# Index View Options

set date_format = "%Y-%m-%d %H:%M"
set index_format = "[%Z]  %D  %-20.20F  %s"
set sort = threads                         # like gmail
set sort_aux = reverse-last-date-received  # like gmail
set uncollapse_jump                        # don't collapse on an unread message
set sort_re                                # thread based on regex
set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"


# Pager View Options

set pager_index_lines = 10 # number of index lines to show
set pager_context = 3      # number of context lines to show
set pager_stop             # don't go to next message automatically
set menu_scroll            # scroll in menus
set tilde                  # show tildes like in vim
unset markers              # no ugly plus signs
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
alternative_order text/plain text/enriched text/html


# Compose View Options

set realname = "Honza Pokorny"       # who am i?
set envelope_from                    # which from?
unset sig_dashes
set sig_on_top                       # Signature before the quote
set edit_headers                     # show headers when composing
set fast_reply                       # skip to compose when replying
set askcc                            # ask for CC:
set fcc_attach                       # save attachments with the body
unset mime_forward                   # forward attachments as part of body
set forward_format = "Fwd: %s"       # format of subject when forwarding
set forward_decode                   # decode when forwarding
set attribution = "On %d, %n wrote:" # format of quoting header
set reply_to                         # reply to Reply to: field
set reverse_name                     # reply as whomever it was to
set include                          # include message in replies
set forward_quote                    # include message in forwards


# Headers

ignore *                                # ignore all headers
unignore from: to: cc: date: subject:   # show only these
hdr_order from: to: cc: date: subject:  # and in this order


# honza.ca

# Default inbox.
set spoolfile = "+aliases/honza"

# Mailboxes to show in the sidebar.
mailboxes +aliases/redhat \
          +aliases/honza \
          +aliases/gmail \
          +aliases/pokorny \
          +aliases/kids

# Other special folders.
set mbox      = "honza/archive"
set postponed = "honza/drafts"

# Sending email.
set from     = "me@honza.ca"
set sendmail = "/usr/bin/msmtp -a honza"
set sendmail_wait = 0 # no please don't silently fail, email is important
unset record


# Account Hooks

folder-hook +aliases/redhat source ~/dotfiles/mutt/redhat.muttrc
folder-hook +aliases/honza source ~/dotfiles/mutt/honza.muttrc
folder-hook +aliases/pokorny source ~/dotfiles/mutt/pokorny.muttrc
folder-hook +aliases/gmail source ~/dotfiles/mutt/gmail.muttrc

# Key Bindings

# Unbind Stupid Keys

bind index,pager \# noop
bind index i        noop
bind index w        noop


# Pager

bind pager i  exit
bind pager /  search
bind pager k  previous-line
bind pager j  next-line
bind pager gg top
bind pager G  bottom
bind pager R  group-reply

macro pager \Cu "|urlview" "call urlview to open links"
macro pager s "cat > ~/Desktop/"  "save message as"


# Index

bind index R  group-reply
bind index     sync-mailbox
bind index k        previous-entry
bind index j        next-entry
bind index gg       first-entry
bind index G        last-entry
bind index p        recall-message
bind index   collapse-thread
macro index s "cat > ~/Desktop/"  "save message as"

# Mark all as read
macro index \Cr "T~UN." "mark all messages as read"

# Sync email
macro index o "mbsync inboxes"
macro index O "mbsync all-mail"

# Just use notmuch for everything
#
# https://github.com/honza/mutt-notmuch-py
macro index / "unset wait_key~/code/mutt-notmuch-py/mutt-notmuch-py -G~/.cache/mutt_results" \
          "search mail (using notmuch)"

# Unlimit aka show [a]ll
macro index a "all\n" "show all messages (undo limit)"


# Attachment

# View
bind attach  view-mailcap

# "Open in Vim"

macro index,pager V "|vim -c 'setlocal ft=mail' -c 'setlocal buftype=nofile' -"              "open in vim"