# Paths ---------------------------------------------- # Getting all this from article by Steve Losh # at http://stevelosh.com/blog/2012/10/the-homely-mutt/#contacts # source the mutt-solarized colorscheme #source ~/openbsd-dotfiles/mutt/mutt-colors-solarized-dark-256.muttrc #source ~/.mutt/mutt-colors-solarized-light-256.muttrc #source ~/.mutt/colors_purple #source ~/.mutt/colors256-light #source ~/.mutt/muttrc-softyellowgreen set folder = ~/Mail/fastmail # mailbox location set alias_file = ~/.mutt/aliases # where to store aliases set header_cache = ~/.mutt/cache/headers # where to store headers set message_cachedir = ~/.mutt/cache/bodies # where to store bodies set certificate_file = ~/.mutt/certificates # where to store certs set mailcap_path = ~/.mutt/mailcap # entries for filetypes set tmpdir = ~/.mutt/temp # where to keep temp files set signature = ~/.mutt/signature # my signature file source ~/.mutt/subscriptions # Define the list of subscribed mailing lists. source ~/.mutt/colours # Define colours. # Allow forwarding of attachments with emails set mime_forward set mime_forward_rest # Basic Options -------------------------------------- set wait_key = no # shut up, mutt set mbox_type = Maildir # mailbox type 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 # nicer text set text_flowed=yes # Sidebar Patch -------------------------------------- #set sidebar_delim = '│' set sidebar_visible = no set sidebar_width = 20 #set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S" set mail_check_stats #set sidebar_width = 24 ## not working in xubuntu set sidebar_shortpath = yes #set sidebar_sort = yes ## Paths ---------------------------------------------- #color sidebar_new color221 color233 # 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 )?───" # Header Options ------------------------------------- ignore * # ignore all headers unignore from: to: cc: date: bcc: subject: # show only these unhdr_order * # some distros order things by default hdr_order from: to: cc: bcc: date: subject: # and in this order # Account Settings ----------------------------------- # Default inbox. set spoolfile = "+INBOX" #set spoolfile = "+INBOX" # Alternate email addresses. #alternates # Mailboxes to show in the sidebar. subscribe announce@openbsd.org subscribe ports-changes@cvs.openbsd.org subscribe tech@openbsd.org subscribe ports@openbsd.org subscribe misc@openbsd.org subscribe peter@golangweekly.com # groups alternates -group me '^matt@matthewlemon.com$' '^matthew.lemon@gmail.com$' '^matthew.lemon104@mod.gov.uk$' # named-mailboxes Inbox +INBOX \ # Sent\ Items +Sent\ Items \ # Archive +Archive \ # Drafts +Drafts \ # Trash +Trash \ # mailboxes +matt-matthewlemon.com/INBOX \ # +matt-matthewlemon.com/INBOX.Archive \ # +matt-matthewlemon.com/INBOX.Sent\ Items \ # +matt-matthewlemon.com/INBOX.Drafts \ # +matt-matthewlemon.com/INBOX.Trash \ #mailboxes +INBOX +INBOX.Archive +INBOX.Sent\ Items +INBOX.Drafts +INBOX.Trash # Other special folders. set mbox = "+Archive" set postponed = "+Drafts" # Index View Options --------------------------------- set date_format = "%d-%m-%Y %H:%M " set index_format = "%4C [%Z] %B %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]+\])?: *)?(\[[^]]+\] *)?)*" # Index Key Bindings --------------------------------- bind index g noop bind index gg first-entry bind index G last-entry bind pager g noop bind pager gg top bind pager G bottom # Display links in a web site in a compact list, allowing for web browser viewing # The urlview program will run ~/bin/url_handler.sh which will then run a # browser that is specified at the start of the script; currently using Firefox macro index,pager \cb 'urlview' 'Follow links with urlview' macro attach,compose \cb 'urlview' 'Follow links with urlview' # Folder Shortcuts macro index Ei '+INBOX' 'Go to Inbox' macro index Ea '+Archive' 'Go to Archive' macro index Es '+Sent' 'Go to Sent Mail' # Navigate threads bind index { previous-thread bind pager { half-up bind index } next-thread bind pager } half-down bind index R group-reply bind index sync-mailbox bind index collapse-thread # Email the sender (not a reply) bind index,pager @ compose-to-sender # toggle new bind index \Cn toggle-new # Ctrl-R to mark all as read macro index \Cr "T~UN." "mark all messages as read" # Sync email macro index O "clear && mbsync fastmailchannel && notmuch new " "run offlineimap to sync all mail" # update notmuch macro index V "notmuch new" macro index K "notmuch tag +inbox +unread -new -- tag:new" # macro index O "offlineimap" "run offlineimap to sync all mail" # macro index o "offlineimap -qf INBOX" "run offlineimap to sync inbox" # Saner copy/move dialogs macro index C "?" "copy a message to a mailbox" macro index M "?" "move a message to a mailbox" # Sidebar Navigation --------------------------------- bind index,pager sidebar-next bind index,pager sidebar-prev bind index,pager sidebar-open # 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 # fix background colour #color normal white black # Pager Key Bindings --------------------------------- bind pager k previous-line bind pager j next-line #bind pager gg top bind pager G bottom bind pager R group-reply # View attachments properly. bind attach view-mailcap # Compose View Options ------------------------------- set realname = "Matthew Lemon" # who am i? set envelope_from # which from? set sig_dashes # dashes before sig 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 #set editor = "vim" # Use terminal Vim to compose email. set editor = "vim %s" set from = "matt@matthewlemon.com" #set sendmail = "/usr/local/bin/msmtp -a fastmail" # set sendmail_wait = 0 set smtp_pass = `pass show AppPasswords/mbsync_fastmail_may2022` set imap_user = "mrlemon@mailforce.net" set smtp_url = "smtps://$imap_user:$smtp_pass@smtp.fastmail.com:465/" set record = "+Sent" bind compose p postpone-message bind index p recall-message # Get mutt to understand the contacts command line prog which reads Contacts #set query_command = "contacts -Sf '%eTOKEN%n' '%s' | sed -e 's/TOKEN/\t/g'" ## Abook set query_command= "abook --mutt-query '%s'" macro generic,index,pager \ca "abook" "launch abook" macro index,pager A "abook --add-email" "Add this sender to Abook" bind editor complete-query bind editor ^T complete # Better searching in mutt bind index N search-opposite bind pager N search-opposite macro index a "all\n" "show all messages (undo limit)" # get an email from mutt to taskwarrior macro index T "mutt2task +matt-matthewlemon.com/INBOX.Archive" #source ~/.mutt/gpg.rc # Use GPG #source ~/.mutt/auto_views # Define auto_views. source ~/.mutt/aliases # Load in my aliases. source ~/.mutt/subscriptions # Define the list of subscribed mailing lists. source ~/.mutt/mailboxes # Define the list of folders that receive mail. #source ~/.mutt/headers # Configure header display. #source ~/.mutt/folder-hooks # Define folder-hooks. #source ~/.mutt/save-hooks # Define save-hooks. #source ~/.mutt/fcc-hooks # Define fcc-hooks. #source ~/.mutt/message-hooks # Define message hooks. #source ~/.mutt/bindings # Define key bindings. #source ~/.mutt/macros # Define macros. #source ~/.mutt/colours # Define colours. #source ~/.mutt/sidebar # Define sidebar support (requires sidebar patch) # # MAILCAP auto_view text/html # example notmuch config: set virtual_spoolfile=yes # -------------------------------------------------------------------------- # notmuch VARIABLES – shown with their default values # -------------------------------------------------------------------------- # This variable specifies notmuch query limit. set nm_db_limit = 0 # This variable specifies the default Notmuch database in format: # notmuch:// set nm_default_url = "notmuch:///home/lemon/Mail" #set nm_default_url = "" # The messages tagged with these tags are excluded and not loaded # from notmuch DB to NeoMutt unless specified explicitly. set nm_exclude_tags = "" # This option specifies timeout for Notmuch database. Default is 5 seconds. set nm_open_timeout = 5 # This variable specifies notmuch query type, supported types: 'threads' and # 'messages'. set nm_query_type = messages # When writing a message in the NeoMutt record (see $record in the NeoMutt docs), # also add it to the notmuch DB. Replies inherit the tags from the original email. set nm_record = no # Tags modifications to the messages stored in the NeoMutt record. # example: # set record = "~/sent-mails" # set nm_record = yes # set nm_record_tags = "-inbox,archive,me" set nm_record_tags = "" # This variable specifies the notmuch tag used for unread messages. set nm_unread_tag = unread # This variable allows you to customize the file browser display for virtual # folders to your personal taste. # %C current folder number # %f folder name (description) # %m number of messages in the mailbox * # %n number of unread messages in the mailbox * # %N N if mailbox has new mail, blank otherwise # %>X right justify the rest of the string and pad with character ``X'' # %|X pad to the end of the line with character ``X'' # %*X soft-fill with character ``X'' as pad set vfolder_format = "%6n(%6N) %f" # When set, NeoMutt will use the first virtual mailbox (see virtual-mailboxes) # as a spool_file. #set virtual_spool_file = no # setup time window preferences # first setup the duration, and then the time unit of that duration # when set to 0 (the default) the search window feature is disabled # unless explicitly enabled with nm_query_window_enable. set nm_query_window_enable=no set nm_query_window_duration=0 set nm_query_window_timebase="year" # or "hour", "day", "week", "month", "year" # Extend query window to always show mail matching these terms. #set nm_query_window_or_terms="tag:unread and tag:flagged" # -------------------------------------------------------------------------- # FUNCTIONS – shown with an example mapping # -------------------------------------------------------------------------- # open a different virtual folder bind index,pager X change-vfolder # read entire thread of the current message bind index,pager + entire-thread # generate virtual folder from query bind index,pager \eX vfolder-from-query # generate virtual folder from query with time window bind index < vfolder-window-backward bind index > vfolder-window-forward # toggle between mailboxes and virtual mailboxes # bind index,pager ??? sidebar-toggle-virtual # -------------------------------------------------------------------------- # COMMANDS – shown with an example # -------------------------------------------------------------------------- # virtual-mailboxes description notmuch-URL { description notmuch-URL ...} # virtual-mailboxes "Climbing" "notmuch://?query=climbing" # unvirtual-mailboxes { * | mailbox ...} # # -------------------------------------------------------------------------- # vim: ft=muttrc