dotfiles/office/.config/neomutt/settings
Marty Oehme b02d0218c4
neomutt: Automatically mark seen messages old
E-Mails have 2-staged flag options for levels of 'seen':
Unseen/Seen and Unread/Read.

A message is unseen if it has arrived since the last time we had mutt
open. We do not have to have had the actual message open for it to be
marked seen (or 'old'). In other words, whichever messages we have seen
once on the index alone are not 'new' to us anymore, they have been
seen.

On the other hand, a message is only read if it is actually opened. So
even if we have seen it on the index page, or moved it to a different
mailbox or anything else, it can still be unread if we did not open it.
Additionally, I have it set up now so that the message only gets set to
'read' by neomutt after it has been open for 1 second.

This gives a tiny grace period if we are scrubbing through mails or
accidentally opened one we did not want.
2025-09-16 21:28:32 +02:00

126 lines
4.1 KiB
Text

set mail_check = 60
set mail_check_stats
# at least for rapid prototyping
set quit
# no pause for info messages
set sleep_time = 0
# mark read (not just seen) after
set pager_read_delay = 1
# get rid of headers when passing messages along
set pipe_decode
# apply commands to all tagged messages automatically
set auto_tag
# dont wait for user input after shell cmds, auto-view, piping, etc
set wait_key = no
# dont pre-process mail for ~b/~B searches
set thorough_search = no
# make it impossible to delete flagged mails
set flag_safe
################### 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"
# 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 application/ics
auto_view text/calendar
auto_view text/plain
auto_view text/html
# Prefer plain text to html but multipart to plain for those only sending that
alternative_order text/calendar application/ics text/plain text/enriched text/html multipart/mixed multipart/related text/plain text/*
# look for attachments also in multipart/alternatives
set count_alternatives = yes
# AFAIK we do not have to manually ensure dir existence
set header_cache= "~/.cache/neomutt/hcache/"
# recommended https://github.com/neomutt/neomutt/issues/3259#issuecomment-1043693471
set header_cache_backend = "lmdb"
set header_cache_compress_method = "lz4"
set header_cache_compress_level = 9
################### Compose settings
# allow editing headers while writing mail
set edit_headers
# separate signature from mail
set sig_dashes
# automatically fill in from and subject for replies
set fast_reply
# subject for forwarding
set forward_format = "Fwd: %s"
# default send back to reply-to: header instead of from: header
set reply_to
# default to reply as person e-mail was originally sent to
set reverse_name
# include original msg in reply
set include
# include original msg as quote in fwd
set forward_quote
# forward attachments with mail
set mime_forward = no
# attachments saved with body
set fcc_attach
# we use mimeo in this house
set mime_type_query_command = "mimeo -m"
# send settings
set sendmail = "/usr/bin/msmtp"
set sendmail_wait = 10
################## Display Settings
# allow escape codes for color etc
set allow_ansi
# thread based on the regexes below
set reply_regex = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
set quote_regex = "^( {0,4}[>|:#%]| {0,4}[A-Za-z0-9]+[>|]+)+"
#### Thread ordering
set use_threads=reverse
set sort='last-date'
set sort_aux = date
set collapse_all = yes
set uncollapse_new = no
set thread_received = yes
set narrow_tree = yes
# sidebar view options
set sidebar_width = 20
set sidebar_visible = no
set sidebar_component_depth = 0
set sidebar_divider_char = '│'
set sidebar_next_new_wrap = yes
set sidebar_sort = 'path'
# Shorten mailbox names
set sidebar_short_path = yes
# Delete everything up to the last / character
set sidebar_delim_chars="/"
# Indent folders whose names we've shortened
set sidebar_folder_indent = yes
# Indent with two spaces
# set sidebar_indent_string = ' - '
set sidebar_indent_string=" "
# statusbar view options
set status_chars = " *%A"
# pager view options
set pager_index_lines = 10
set pager_context = 3
# do not go to next msg if at bottom of pager
set pager_stop
set menu_scroll = yes
# show tildes for blank lines
set tilde
# no + markers if a line goes off-screen
unset markers
set wrap = 100
# 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
# TODO: Remove stderr ignore when khard fixes its deprecation warnings
# https://github.com/lucc/khard/issues/335
set query_command = "khard email --parsable --search-in-source-files '%s' 2>/dev/null"
# Makes notmuch return threads rather than messages
set nm_query_type = "threads"