phdru.name / Software / dotfiles

#
# User configuration file for Mutt
#
# Text version here
#
# Generated by gvim :runtime syntax/2html.vim
#
#
# User configuration file for Mutt
#

# Note: $folder should be set _before_ any other path vars where `+' or `='
# is used because paths are expanded when parsed
#
#set folder=~/Mail                # Where I keep my mailboxes; I am happy with this default

# Character set for my terminal and config files (including aliases)
set charset=`case "$LC_CTYPE" in *UTF-8) echo utf-8 ;; *) echo koi8-r ;; esac`
set assumed_charset="us-ascii:utf-8:windows-1251:koi8-r" # Character sets for mail without a charset
set config_charset=koi8-r # Character set for this config file and alias files
set send_charset="us-ascii:iso-8859-1:koi8-r:windows-1251:utf-8" # Character sets for outgoing mail
charset-hook x-unknown koi8-r    # Show unknow encoding as koi8-r
charset-hook windows-1251 cp1251 # Autoconvert windoze encoding

# source aliases
source =mutt/aliases

# All my addresses
alternates `awk '{s=s"|"$0} END {print substr(s,2)}' $HOME/mail/misc/.myemail` # All my addresses

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Mailboxes to watch for new mail
#
#       mailboxes <path1> [ <path2> ... ]
#

mailboxes ! =admin =block =bulk =spam `echo $HOME/mail/lists/* | sed s#$HOME/mail/#=#g`

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Settings
#

#set indent_string='%v> '         # How to quote replied text

# Settings for dumb slow term
set ascii_chars=`[ -n "$SLOWTERM" ] && echo yes || echo no` # Use ASCII instead of ACS chars for threads
set arrow_cursor=`[ -n "$SLOWTERM" ] && echo yes || echo no` # Draw a simple cursor on slow terminals

set index_format="%4C %Z %{%b %d} %-15.15F (%4c) %s" # Somewhat different index format, which works nicely with mail lists.
set pager_format="%4C %Z %[%b %d] %-15.15F (%4l) %s %* ---(%P)---" # Mostly match index_format

set sort=mailbox-order           # Primary sorting method
#set sort=threads                 # Sort by threads,...
set sort_aux=date                # ...then by date

set sort_alias=unsorted
set sort_browser=alpha

set history=1000                 # Number of lines of history in memory
set history_file==tmp/.mutt_history
set save_history=1000            # Number of lines of history in file

set read_inc=10                  # Progress indicator when reading folders.
set write_inc=10                 # Progress indicator when writing folders.

set allow_8bit                   # Never do Q-P encoding on legal 8-bit chars
set abort_unmodified=no          # Let me send empty messages
set alias_file==tmp/aliases      # Where to store aliases
set attribution="`case "$LC_TIME" in ru_RU*) echo 'В %{%a, %d %b %Y в %I:%M:%S%p %Z} %f написал(а):' ;; *) echo 'On %d, %f wrote:' ;; esac`" # `
set attribution_locale=`echo $LC_TIME` # Locale to format dates
set beep=no                      # Never beep on errors
set collapse_unread=no           # Do not collapse thread with unread messages
set confirmappend=no             # Don't ask me if i want to append to mailboxes
set fast_reply                   # Skip initial prompts when replying if no autoedit
set forward_format="[Fwd: %s]"   # Subject to use when forwarding messages
set help                         # Show the help lines
set ignore_list_reply_to         # Ignore Reply-To headers pointing to mailing lists.
set include=yes                  # Always include a copy when replying.
set mail_check=30                # How often (in seconds) to poll for new mail
set mark_old=no                  # Distinguish between seen (but unread) and new messages
set mask=""                      # Show dot-files in the file browser
set menu_scroll                  # No implicit next-page/prev-page
set move=no                      # Do not move read messages to ~/mbox
set pager_context=1              # No. of lines of context to give when scrolling
set pager_index_lines=6          # How many index lines to show in the pager
set pager_stop                   # Don't move to the next message on next-page
set postponed==tmp/.mutt_postponed
set print=ask-no                 # Don't waste paper
set recall=no                    # When I say "compose", ask me whether I want to continue composing a postponed message.
set reply_regexp="^((re([\\[0-9\\]+])*|aw|на):[ \t]*)+[ \t]*" # A regular expression to detect replies
set rfc2047_parameters           # Sometimes, I get mails which use a bogus encoding for MIME parameters. Setting this shouldn't harm.
set sendmail_wait=5              # Wait 5 seconds before putting sendmail to the background.
set sig_dashes=no                # Do not add "-- " before my sig - I already have it there
set status_on_top                # I prefer the status bar on top
set suspend=no                   # Do not suspend on Ctrl+Z
set tilde                        # Indicate empty lines in the pager.
set tmpdir=~/tmp                 # Temporary files aren't stored in public places.
set use_domain=no                # Don't qualify local addresses with $domain
set use_envelope_from=yes
set use_ipv6=no                  # Speed up DNS
set wait_key=no                  # Do not wait for a key after running external programs, pipes

set xterm_set_titles
set xterm_title="%f: %?m?%m messages&no messages?%?n? N:%n?%?d? D:%d?%?b? [%b new mboxes]? [$USER@%h] mutt"
set xterm_icon="%f: %m%?n?:%n?%?d?/%d?%?b? [%b]? [$USER@%h] mutt"

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# MIME settings
#

alternative_order text/enriched text/plain text

#auto_view text/html
#auto_view application/ms-tnef text/x-vcard
#auto_view application/x-gzip application/x-gunzip
#auto_view application/rtf
#set implicit_autoview # Use copiousoutput filters from mailcap for all types of attachments

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Encryption: GnuPG
#
source /usr/share/doc/mutt/examples/gpg.rc
set crypt_use_gpgme=no
set pgp_use_gpg_agent

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Header fields I don't normally want to see
#
ignore *                         # Ignore all lines by default

# I do want to see these fields, though!
unignore date from reply-to mail-followup-to followup-to to x-original-to cc \
   newsgroups subject user-agent x-mailer x-url x-face

# Default list of header fields to weed when displaying
#
#ignore "from " received content- mime-version status x-status message-id
#ignore sender references return-path lines

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Specify the order of the headers to appear when displaying a message
#
#       hdr_order <hdr1> [ <hdr2> ... ]
#

hdr_order date from reply-to mail-followup-to followup-to to x-original-to cc \
   newsgroups subject user-agent x-mailer x-url x-face

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# My special headers
#

my_hdr X-Attribution: phd

my_hdr X-Face: \"4chVP^f8\;3Bi>x\"ic0%DuP(ZLyn:\;kzQ1njs]5,GRZG<{<\\~\`|Shxi7|)d|8uO~HFRfyym\n\
 {[xs@OYG]2Q]0\#}0sjJp\`1^1+B6]A2+{9fW=S<O7^\"hul]^|AGtiI7SkYF-2VD?UH*h_!zuCIf+^F7\n\
 c0x8?W,UfhCAx^YY\#1ALhvG\\2yG}LW:)zw\#1\;Yajq\"hK~S # `

my_hdr X-Operating-System: Debian GNU/Linux

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Identify mailing lists I subscribe to
#
#       lists <list-name> [ <list-name> ... ]

subscribe (python-(announce|dev|ideas)|.*-(list|sig))@python\.org \
   core-workflow@python\.org .*@moderators\.isc\.org \
   (durus|quixote)-users@mems-exchange\.org pysqlite@lists\.initd\.org \
   .*@lists\.sourceforge\.net .*@vex\.net egenix-users@egenix\.com \
   .*@googlegroups\.com mlug@unixcenter\.ru

#lists

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Change settings based on mailbox
#
#       folder-hook [!]<regexp> <command>
#
# <command> is executed when opening a mailbox matching <pattern>

# Restore defaults
folder-hook .* "\
   set envelope_from_address="phd@phdru.name"; \
   my_hdr From: Oleg Broytman <phd@phdru.name>; \
   my_hdr Reply-To: Oleg Broytman <phd@phdru.name>; \
   my_hdr X-Url: https://phdru.name/; \
   set record==sent-mail; \
   set signature==signatures/phd@phdru.name"

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Multiple spool mailboxes
#
#       mbox-hook [!]<pattern> <mbox-mailbox>
#
# Read mail in <pattern> is moved to <mbox-mailbox> when <pattern> is closed.

#mbox-hook =mutt-users.in =mutt-users
#mbox-hook +TEST +inbox

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Specify default filename when saving messages
#
#       save-hook [!]<pattern> <mailbox>
#
# <mailbox> is provided as default when saving messages from <pattern>

#save-hook mutt- =mutt-mail
#save-hook aol\.com +spam

save-hook .* =inbox

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Specify where to save composed messages
#
#       fcc-hook [!]<pattern> <mailbox>
#
# <pattern> is recipient(s), <mailbox> is where to save a copy

#fcc-hook joe +joe
#fcc-hook bob +bob

#fcc-hook .* +sent

fcc-hook .* =sent-mail

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Change settings based upon message recipient
#
#       send-hook [!]<pattern> <command>
#
# <command> is executed when sending mail to an address matching <pattern>

#send-hook mutt- 'set signature=~/.sigmutt; my_hdr From: Mutt User <user@example.com>'

# Restore defaults
send-hook .* "\
   set envelope_from_address="phd@phdru.name"; \
   set followup_to=yes; \
   my_hdr From: Oleg Broytman <phd@phdru.name>; \
   my_hdr Reply-To: Oleg Broytman <phd@phdru.name>; \
   my_hdr X-Url: https://phdru.name/; \
   unmy_hdr Mail-Followup-To; \
   unmy_hdr X-Skip-DKIM-Sig; \
   set signature==signatures/phd@phdru.name"

send-hook "~L '@.*\.(r|s)u$'" "\
   my_hdr From: Олег Бройтман <phd@phdru.name>; \
   my_hdr Reply-To: Олег Бройтман <phd@phdru.name>; \
   set signature='iconv -f koi8-r ~/mail/signatures/phd@phdru.name-ru|'"

send-hook "~L '@(mail|list|inbox|bk|sweb|spaceweb|ulmart)\.ru'" "\
   set envelope_from_address="phd@mail.ru"; \
   my_hdr From: Олег Бройтман <phd@mail.ru>; \
   my_hdr Reply-To: Олег Бройтман <phd@mail.ru>; \
   my_hdr X-Url: https://my.mail.ru/mail/phd; \
   set signature='iconv -f koi8-r ~/mail/signatures/phd@mail.ru|'"

send-hook "~L '(@|\.)(((ya|yandex|narod)\.ru)|(yandex\.com)|yandex-team\.ru)$'" "\
   set envelope_from_address="phd2@yandex.ru"; \
   my_hdr From: Олег Бройтман <phd2@yandex.ru>; \
   my_hdr Reply-To: Олег Бройтман <phd2@yandex.ru>; \
   my_hdr X-Url: http://phd2.ya.ru/; \
   set signature='iconv -f koi8-r ~/mail/signatures/phd2@yandex.ru|'"

send-hook "~L python-announce-list@python\.org" "\
   set followup_to=no; \
   my_hdr Reply-To: Oleg Broytman <phd@phdru.name>; \
   my_hdr Mail-Followup-To: Oleg Broytman <phd@phdru.name>, Python Mailing List <python-list@python.org>"

send-hook "~L cheetahtemplate-announce@lists\.sourceforge\.net" "\
   set followup_to=no; \
   my_hdr Reply-To: Oleg Broytman <phd@phdru.name>; \
   my_hdr Mail-Followup-To: Oleg Broytman <phd@phdru.name>, CheetahTemplate discussion <cheetahtemplate-discuss@lists.sourceforge.net>"

send-hook ~u "\
   unmy_hdr Reply-To; \
   my_hdr X-Skip-DKIM-Sig: mailing list"

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Key bindings
#

# Change Up/Down for pager
bind pager <Up> previous-line
bind pager <Down> next-line

bind index,pager <Esc>c copy-message
bind index,pager <Esc>S decode-save

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Macros
#

# KP_Enter -> Enter
#macro generic,pager,editor <F79> <Enter>
# KP_Home -> Home
macro generic,pager,editor <F84> <Home>
# KP_Up -> Up
macro generic,pager,editor \1074 <Up>
# KP_Next -> PageUp
macro generic,pager,editor <F85> <PageUp>
# KP_Left -> Left
macro generic,pager,editor \1075 <Left>
# KP_Right -> Right
macro generic,pager,editor \1076 <Right>
# KP_End -> End
macro generic,pager,editor <F87> <End>
# KP_Down -> Down
macro generic,pager,editor \1077 <Down>
# KP_Prev -> PageDown
macro generic,pager,editor <F88> <PageDown>

macro index C \
   <Home><change-folder><Enter> \
   "Go to the first folder with unread messages"
macro pager,attach C \
   <exit><Home><change-folder><Enter> \
   "Go to the first folder with unread messages"

macro index,pager S \
   <save-message>!<Enter> \
   "Move current message to inbox"

macro index,pager,attach <Esc>h \
   ":auto_view text/html<Enter>" \
   "View HTML attachments"
macro index,pager,attach <Esc>H \
   ":unauto_view text/html<Enter>" \
   "Don't show HTML attachments"

macro index <Esc>s \
   "<pipe-message>spamassassin -d | ~/mail/bin/spamcop.py<Enter><next-undeleted>" \
   "Send spam to SpamCop"
macro pager <Esc>s \
   "<exit><pipe-message>spamassassin -d | ~/mail/bin/spamcop.py<Enter><next-undeleted>" \
   "Send spam to SpamCop"
macro index <Esc>z \
   ":set editor='vim -s ~/mail/misc/spamcop.vim'<Enter><reply>:set editor=vim.sh<Enter><exit>n" \
   "Process message from SpamCop"
macro pager <Esc>z \
   "<exit>:set editor='vim -s ~/mail/misc/spamcop.vim'<Enter><reply>:set editor=vim.sh<Enter><exit>n" \
   "Process message from SpamCop"

macro index H \
   <Home><change-folder>!<Enter> \
   "Go to inbox"
macro pager,attach H \
   <exit><Home><change-folder>!<Enter> \
   "Go to inbox"
macro index M \
   <Home><change-folder>=sent-mail<Enter> \
   "Go to sent-mail"
macro pager,attach M \
   <exit><Home><change-folder>=sent-mail<Enter> \
   "Go to sent-mail"

macro index,pager \cV "<show-version>" \
   "Show version"

macro index,pager V "v/text/html<Enter>V" \
   "View the 1st html attachment in a web browser"
macro attach V "<save-entry>~/tmp/_xxx.html<Enter><shell-escape>webbrowser -n ~/tmp/_xxx.html; exec rm ~/tmp/_xxx.html<Enter><exit>" \
   "View html attachment in a web browser"

# Go to python mailbox
macro index Y \
   <Home><change-folder>=lists/python<Enter> \
   "Go to python"
macro pager,attach Y \
   <exit><Home><change-folder>=lists/python<Enter> \
   "Go to python"

# Recode base64 to 8bit, html to plain text, mustdie-1251 to koi8-r, etc.
macro index,pager \
   <Esc>m "<pipe-message>mimedecode | less<Enter>" \
   "View MIME-decoded message"
macro index,pager E \
   ":set editor=mimedecode.sh<Enter><edit>:set editor=vim.sh<Enter>" \
   "MIME-decode and save"

macro index,pager <Esc>f \
   <pipe-message>~/mail/bin/view-x-face<Enter> \
   "Convert X-Face header to an image and display it"

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# Colors
#

# This is for an xterm with with grayish background

#     object      foreground     background regexp/pattern

color normal      default        default
color hdrdefault  black          default

color header      magenta        default ^(date|x-mailer|user-agent|x-operating-system):
color header      blue           default ^(from|to|cc|delivered-to|reply-to|mail-followup-to|x-attribution):
color header      brightblack    default ^subject:

color quoted      blue           default
color quoted1     magenta        default
color quoted2     red            default
color quoted3     green          default
color quoted4     cyan           default
color quoted5     blue           default
color quoted6     magenta        default
color quoted7     red            default
color quoted8     green          default
color quoted9     cyan           default
color quoted10    blue           default

color attachment  white          green
color error       brightred      default
color index       brightblack    default ~N
color indicator   black          cyan
color message     blue           default
color search      black          yellow
color signature   magenta        default
color status      white          blue
color underline   blue           default

color markers     brightblue     default
color tilde       blue           default
color tree        blue           default

# email
color body        brightmagenta  default [-a-Z_0-9.+]+@[-a-Z_0-9.]+

# URLs
color body        brightblue     default "(((https?|ftp|gopher|telnet)://|(mailto|file|news|about|ed2k|irc|sip|magnet):)[^' \t<>\"]+)[A-Za-z0-9/]"

# Smilies (emoticons)
color body        brightmagenta  default " [;:]-*[dp(){}<>|\\/]| [(){}<>|\\/]-*[;:]" # :-)

# Attributes when using a mono terminal
mono header underline ^Subject:
mono quoted bold

This is the page https://phdru.name/Software/dotfiles/muttrc.html. It was generated on Tue, 13 Jul 2021 21:38:14 GMT from CheetahTemplate muttrc.tmpl. Some rights are reserved. Read more about technical aspects of the site.