dotfiles/mail/.config/neomutt/neomuttrc
Marty Oehme f4c3944519
mail: Switch aerc for neomutt, simplify maildir
Made mail dir synchronization simpler - only a couple of important
directories will ever get synchronized to the local file system, but
still containing basically all important incoming mails.

Removed aerc and switched it for neomutt. aerc is very nice and needs
little to no configuration but neomutt is, as of this moment, just more
stable and mature. It opens quickly, never crashes, has a nice indexing
and quick e-mail handling behavior and is incredibly customizable.
Basically, once you put in some configuration effort, it is everything
aerc isn't --- and that is good, both have their reasons for existing.
It's just that mutt currently works better for me and will thus be the
e-mail reader of choice from now on.
2021-10-10 23:04:24 +02:00

140 lines
4.9 KiB
Text

# Identity
#
set realname = "Marty Oehme"
set from = "marty.oehme@gmail.com"
# # If you have another address:
# alternates "^neomutt@example\.com$"
# # Or, if you use the entire domain:
# alternates "@example\.com$"
# set reverse_name
# Account settings
# local maildir settings
set mbox_type = Maildir
set folder = ~/documents/mail # This has the shortcut '+' or '='
set spoolfile = "+inbox" # This has the shortcut '!'
set postponed = "+drafts"
set trash = "+trash"
# Disable saving outgoing mail since Gmail saves them by default.
unset record
mailboxes ! \
"+important" \
"+sent" \
"+drafts" \
"+trash" \
"+archive"
set mail_check = 60
set mail_check_stats
# Basic settings
set quit # at least for rapid prototyping
unset mark_old # things should only be new/unread or I actually looked at them
set pipe_decode # get rid of headers when passing messages along
set wait_key = no # don't wait for user input after shell cmds, auto-view, piping, etc
# set
set sort_re # thread based on regex below
# set reply_regex = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
# display
set sort = threads
set sort_aux = reverse-last-date-received
set date_format = "%z/%m/%d %I:%M%p"
# set date_format = "%m/%d"
set index_format = "%4C [%Z] %{%y/%b %d} %-20.20F %s"
# sidebar view options
set sidebar_visible = yes
set sidebar_width = 18
set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S"
color sidebar_new color221 color233
# statusbar view options
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 )?───"
# pager view options
set pager_index_lines = 5
set pager_context = 3
set pager_stop # do not go to next msg if at bottom of pager
set menu_scroll = yes
set tilde # show tildes for blank lines
unset markers # no + markers for wrapped stuff
# hide headers except for those explicitly unignored
ignore *
unignore From To Cc Bcc Date Subject Message-ID
unhdr_order *
unignore From To Cc Bcc Date Subject Message-ID
# index navigation
bind index,pager g noop # don't send group-replies with g
bind index gg first-entry
bind index G last-entry
bind index <space> collapse-thread
# mailbox navigation
macro index,pager gi "<change-folder>=inbox<enter>" "go to inbox"
macro index,pager gm "<change-folder>=important<enter>" "go to important"
macro index,pager gs "<change-folder>=sent<enter>" "go to sent"
macro index,pager gd "<change-folder>=drafts<enter>" "go to drafts"
macro index,pager gt "<change-folder>=trash<enter>" "go to trash"
# sidebar navigation
bind index,pager <down> sidebar-next
bind index,pager <up> sidebar-prev
bind index,pager <right> sidebar-open
# bind index,pager \CO sidebar-open
# pager navigation
bind pager k previous-line
bind pager j next-line
bind pager gg top
bind pager G bottom
# since we unbound the original g
bind index,pager R group-reply
# mark all read
macro index \CN "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
# open urls found in the e-mail
macro pager \CU "|urlview<enter>" "call urlview to open links"
# Sync email
macro index O "<sync-mailbox><shell-escape>mbsync -c $XDG_CONFIG_HOME/isync/mbsyncrc -a<enter><sync-mailbox>" "refresh all e-mail"
macro index o "<sync-mailbox><shell-escape>mbsync -c $XDG_CONFIG_HOME/isync/mbsyncrc gmail-inbox<enter><sync-mailbox>" "refresh inbox e-mail"
# Saner copy/move dialogs
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
# pager settings
# filetypes and mailcap
set mailcap_path = "~/.config/neomutt/mailcap:~/.mailcap:/usr/share/neomutt/mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap"
# Prefer plain text to html.
# However, for brain dead clients that bundle attachments inside a
# multipart/alternative, prefer that alternative.
alternative_order multipart/mixed multipart/related text/plain
alternative_order text/plain text/enriched text/html
# Consult mime.types for determining types of these attachments
mime_lookup application/octet-stream
# This requires a ~/.mailcap entry with the copiousoutput flag, such as:
# text/html; lynx -dump -width ${COLUMNS:-80} %s; nametemplate=%s.html; copiousoutput
auto_view text/html
# Remember to `mkdir -p ~/.neomutt/hcache` first:
set header_cache= "~/.neomutt/hcache"
###############
# Message composition settings
#
set edit_headers
# set editor = "emacsclient -a emacs -t"
# set editor = "vim"
set mime_type_query_command = "xdg-mime query filetype"
# msmtp is a solid SMTP client.
# neomutt also has built-in SMTP, or you can use an MTA like exim4 or postfix.
set sendmail = "/usr/bin/msmtp"
# lbdb is a versatile contact query tool.
# Invoke via ctrl-t in an address prompt
set query_command = "/usr/bin/lbdbq"