## ## Mutt configuration ## ## Weitian LI ## 2015/02/02 ## ## Reference: ## [1] The Homely Mutt ## http://stevelosh.com/blog/2012/10/the-homely-mutt/ ## [2] Mutt + offlineimap + notmuch + nottoomuch ## http://blog.tshirtman.fr/2013/3/17/mutt-offlineimap-notmuch-nottoomuch ## [3] ArchWiki - Mutt ## https://wiki.archlinux.org/index.php/Mutt ## [4] Using Two IMAP Accounts in Mutt ## http://pbrisbin.com/posts/two_accounts_in_mutt ## [5] The Mutt E-Mail Client ## http://www.mutt.org/doc/devel/manual.html ## [6] A Quick Guide to Mutt ## http://srobb.net/mutt.html ## [7] Multi-window Mutt with Screen ## http://op-co.de/blog/posts/mulit-window_mutt/ ## [8] Github - proycon/dotfiles - mutt with tmux ## https://github.com/proycon/dotfiles ## ### Mail boxes source ~/.mutt/mailboxes # Generated by OfflineIMAP ### Mail accounts folder-hook . source ~/.mutt/accounts/default folder-hook 'gmail-aly.*' source ~/.mutt/accounts/gmail-aly folder-hook 'gmail-li.*' source ~/.mutt/accounts/gmail-li folder-hook 'outlook-aly.*' source ~/.mutt/accounts/outlook-aly folder-hook 'outlook-li.*' source ~/.mutt/accounts/outlook-li folder-hook 'sjtu.*' source ~/.mutt/accounts/sjtu folder-hook 'autistici.*' source ~/.mutt/accounts/autistici # Default account source ~/.mutt/accounts/default ### Files and directories set alias_file = ~/.mutt/aliases set certificate_file = ~/.mutt/certificates set mailcap_path = ~/.mutt/mailcap set history_file = ~/.mutt/history set header_cache = ~/.mutt/cache/headers set message_cachedir = ~/.mutt/cache/bodies set tmpdir = ~/.mutt/tmp ### General settings set mbox_type = Maildir set folder = ~/Mail set timeout = 3 set mail_check = 0 set beep_new set wrap_search # searches wrap around the end set copy # always save a copy of outgoing messages set delete # purge deleted messages without asking set use_from # always generate the `From:' header field set quit = ask-no # ask for confirmation when quit mutt set history = 256 set save_history = 256 set sendmail_wait = 0 # Wait forever for sendmail to finish unset wait_key unset move unset confirmappend unset mark_old ### Compose view set editor = "vim +/^$/+1 -c 'set ft=mail enc=utf-8 tw=72'" set envelope_from # which from? set sig_dashes # dashes before my 'signature' set autoedit # go to the editor right away when composing # set, cannot use 'send-hooks' depend on recipients set edit_headers # show headers when composing set askcc # ask for CC: set fcc_attach # save attachments with the body set forward_format = "Fwd: %s" set forward_quote # include message in forwards set forward_decode # decode when forwarding set attribution = "On %d, %n wrote:" set fast_reply # skip to compose when replying set reply_to # reply to 'Reply to:' field set reverse_name # reply as whomever it was to set include # include message in replies #set postpone # auto postpone message not sent when exit #set recall # prompt to recall postponed messages unset mime_forward # forward attachments as part of body ### Headers ignore * unignore from: to: cc: bcc: date: subject: X-Label: unhdr_order * hdr_order from: to: cc: date: subject: X-Label: ### Encoding set send_charset = "us-ascii:utf-8" # if no charset given on incoming messages set assumed_charset = "iso-8859-1:gb2312:gbk:gb18030:utf-8" set rfc2047_parameters # to fix attachment filename encoding ### Index view # first bang ("!") to expand month week names in the C locale set date_format = "!%a %m/%d %I:%M" set index_format = "[%Z] %d %2M %-15.15L %4c%?X?[%X]& ? %s" set folder_format = "%2C %t %N %8s %f" set sort = threads set sort_aux = reverse-last-date-received set uncollapse_jump # don't collapse on an unread message set sort_re # thread based on regex set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*" ### Status bar set status_chars = " *%A" set status_format = "---[ Folder: %f %r ]---[ 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? ]---%>-(%P)---" ### Pager #set pager_format = "-%S- %-20.20f %s" set pager_index_lines = 8 # number of index lines to show set pager_context = 8 # number of context lines to show set pager_stop # don't go to next message automatically set menu_scroll # scroll in menus set smart_wrap # don't split words set tilde # show tildes like in vim set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+" unset markers # no ugly '+' signs for wrapped lines alternative_order text/plain text/enriched text/html ### Key bindings bind index i noop bind index sync-mailbox bind index collapse-thread bind index p recall-message bind index K previous-unread bind index J next-unread bind index,browser gg first-entry bind index,browser G last-entry bind index,pager R group-reply bind index,pager N search-opposite bind index,pager \# noop bind pager i exit bind pager / search bind pager previous-line bind pager next-line bind pager k previous-line bind pager j next-line bind pager gg top bind pager G bottom bind pager K previous-undeleted bind pager J next-undeleted bind attach view-mailcap bind compose p pgp-menu bind editor complete-query bind editor ^T complete ### Macros macro index q "?" \ "Leaves Index to folder list" macro index \Cr "N" \ "mark tagged messages as read" macro index C "?" \ "copy a message to a mailbox" macro index S "?" \ "copy a message to a mailbox" macro index B "~b " \ "search message bodies" macro index I "!" \ "go to Inbox" # Save a decoded copy in ~/ macro index,pager > "cat > ~/" \ "save message as" # Open in vim macro index,pager V "vim -c 'setlocal ft=mail buftype=nofile' -" \ "open in vim" # Sync mails with offlineimap macro index,browser Z "offlineimap -o -u ttyui" \ "offlineimap sync ..." macro browser q "" \ "Exit mutt" macro browser "" \ "Check New" macro compose Y pfy \ "send mail without GPG" # urlview macro pager \Cu "urlview" \ "Follow links with urlview" macro pager ';' "" \ "q+ ;" # notmuch macro index s "unset wait_key~/.mutt/mutt-notmuch.py -G $folder/search+search" \ "search mail (using notmuch)" # labels macro index,pager x 'set my_oldeditor=$editorset editor="~/.mutt/mutt-xlabel.py"Nset editor=$my_oldeditor' \ "edit X-Label" macro index \Cx "~y " \ "limit view to label" ### aliases set sort_alias = alias # sort alias file by alias set reverse_alias # show names from alias file in index source $alias_file # enable auto-completion ### abook set query_command = "abook --mutt-query '%s'" macro generic,index,pager \Ca "abook" "launch abook" macro index,pager A "abook --add-email" "add the sender address to abook" ### Misc settings ## Mailing lists: lists and subscribe set followup_to # generate 'Mail-Followup-To:' header field set honor_followup_to # 'Mail-Followup-To' header is honored source ~/.mutt/mailinglists ## Multiplexing using tmux # compose mail in tmux window macro index,pager M 'set my_oldeditor=$editorset editor="cp %s %s.2; tmux new-window -a -t mutt \"~/.mutt/compose.sh %s.2\""unset recallset editor=$my_oldeditor' \ "mail in new tmux window" #unset wait_key # already set above # forward messages # override the hotkey macro index,pager P "tmux new-window -a -t mutt 'mutt -F ~/.mutt/compose.rc -p'" \ "recall postponed message in new tmux window" # Set the editor for for editing messages in-place, # allows re-editing before sending, e.g. for use in forwarding messages. macro compose E 'set my_oldeditor=$editorset editor="vim"set editor=$my_oldeditor' \ "edit message in-place" # open mailbox listing in a new window macro index,pager Y 'tmux new-window -a -t mutt "mutt -y"' \ "open mailbox listing in new tmux window" ## Attachment searching and counting source ~/.mutt/attachments ## Colors source ~/.mutt/colors ## GnuPG source ~/.mutt/gpg.rc ## auto view auto_view text/html application/x-tar-gz application/x-compressed-tar \ application/x-bzip-compressed-tar ## MIME types that should *not* be treated according to their mailcap entry mime_lookup application/octet-stream application/X-Lotus-Manuscript ### Local Settings source `FILE=$HOME/.muttrc.local; if [ ! -s "$FILE" ]; then FILE=/dev/null; fi; echo "$FILE"` # vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=muttrc: #