mirror of
https://github.com/ssb22/config.git
synced 2023-06-13 17:50:48 +00:00
247 lines
13 KiB
Plaintext
247 lines
13 KiB
Plaintext
# .muttrc settings for large-print terminals
|
|
# (i.e. not many rows and columns available)
|
|
# (C) Silas S. Brown 2007,2009-2013,2016,2020-23, v1.5.
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# Where to find history:
|
|
# on GitHub at https://github.com/ssb22/config
|
|
# and on GitLab at https://gitlab.com/ssb22/config
|
|
# and on BitBucket https://bitbucket.org/ssb22/config
|
|
# and at https://gitlab.developers.cam.ac.uk/ssb22/config
|
|
# and in China: https://gitee.com/ssb22/config
|
|
|
|
# avoid index taking up too much space when reading the message underneath:
|
|
set pager_index_lines = 5 ;
|
|
# (mutt default is 0, but some packages increase that quite a lot, so let's set it low)
|
|
|
|
# try to format messages nicely to the screen width
|
|
# - have to do this in a roundabout way because mutt doesn't pass arguments to formatter
|
|
# (and be careful not to write anything about the CURRENT terminal
|
|
# to the .fmt-command file, as there may be other instances of
|
|
# mutt, including batch-run instances with no terminals that
|
|
# get restarted after this one starts)
|
|
set display_filter = `echo $(if test -e ~/.message-formatter; then echo $HOME/.message-formatter; else echo fmt -w; fi) "\$(if test a\$COLUMNS = a;then stty -F /dev/stderr size|sed -e 's/.* //'; else echo \$COLUMNS; fi)" > ~/.fmt-command; chmod +x ~/.fmt-command ; echo $HOME/.fmt-command`;
|
|
# BSD (including Mac) needs -f instead of -F in that stty
|
|
# (can't take the default of stdin, as it's the message)
|
|
|
|
# ATTENTION OLD MUTT USERS: In old versions of mutt, you must
|
|
# set charset to us-ascii to stop any unusual characters from playing havoc
|
|
# with the terminal (change this if your terminal definitely supports charsets)
|
|
#set charset = 'us-ascii' ;
|
|
# but in never versions (1.5.20+) you don't need this (it'll be taken from LC_ALL)
|
|
# and it's adviseable to set a charset like utf-8 because when (v)iewing and (s)aving
|
|
# parts of a message it is now run through iconv!
|
|
# (if the incoming message has a broken charset then edit the MIME headers and set it to
|
|
# something nonsensical before saving; can then get the actual bytes and figure them out in Wenlin or whatever)
|
|
set charset = 'utf-8' ;
|
|
|
|
# and make sure iconv etc recognises the whole of GB18030
|
|
# when it's labelled as GB2312 or GBK
|
|
charset-hook GB2312 GB18030;
|
|
charset-hook GBK GB18030;
|
|
|
|
set ascii_chars = 'yes';
|
|
# (see near end of this file for a way of viewing messages in any charset whether
|
|
# the terminal supports it or not)
|
|
# Note: in order to prevent autoview stuff from possibly messing up the terminal,
|
|
# you may have to set LC_ALL=C before invoking mutt.
|
|
|
|
# If you do not have charset set to utf-8:
|
|
# When sending messages, you can press Control-T to edit the content type
|
|
# and set a charset; save the file in the right charset and DON'T ask mutt to
|
|
# convert, because it might have the wrong idea about what it's converting FROM.
|
|
# (If using jed or jmacs for mutt then you might want to press
|
|
# Control-x i to insert a file that you've saved in something else)
|
|
# When sending utf-8 (or other charset) SUBJECT lines, you can press
|
|
# :set charset="utf-8"; just before pressing Y to send the message.
|
|
# Then :set charset="us-ascii"; after. If you have a patched version
|
|
# of mutt then you might try the file_charset option instead.
|
|
# Temporarily changing the charset can also be used before replying to
|
|
# a message to get the utf-8 chars in the body (but not the subject, unless
|
|
# you copy it back in from a browser).
|
|
|
|
# Be very brief when displaying headers (unless press h to see all)
|
|
# (but make sure to include BCC, useful for Copyself viewing,
|
|
# and make sure to include Reply-To, for LinkedIn invitations etc)
|
|
ignore *;
|
|
unignore from date reply-to to cc bcc subject importance;
|
|
unhdr_order *;
|
|
hdr_order From Date: From: Reply-To: To: Cc: Bcc: Subject: Importance:;
|
|
|
|
# Briefer index formats etc:
|
|
set index_format = "%Z %-15.15L %-25.25s %{%b %d} (%c)" ;
|
|
set status_format = "%r %f [#=%?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?] (%s/%S) %> (%P)" ;
|
|
set folder_format = "%t %N %f";
|
|
|
|
# Other brevity:
|
|
set confirmappend = "no";
|
|
# - don't need Y/N after entered a folder to save to
|
|
set confirmcreate = "yes";
|
|
# - but probably DO want this (catch typing mistakes)
|
|
set help = "no";
|
|
# - saves a line at the top
|
|
set save_empty = "no";
|
|
set delete = "yes";
|
|
# - automatically delete messages marked for deletion when leaving folder
|
|
# (alternative is to lose the deletion marks, so might as well)
|
|
# But disable the unconfirmed quit key!
|
|
# especially as may be hastily trying to Undelete
|
|
bind index Q noop
|
|
bind pager Q noop
|
|
# Similarly it might help to disable the unconfirmed forget-status-and-quit
|
|
bind index x noop
|
|
bind pager x noop
|
|
|
|
set edit_headers = 'yes';
|
|
set autoedit = 'yes';
|
|
# fast_reply is not effective if autoedit, but if above 2 are turned off then this may be useful:
|
|
set fast_reply = 'yes';
|
|
|
|
# Choose an editor that's likely to be OK on small terminals
|
|
# emacs could be too heavyweight (unless there's a server that gnuclient can attach to)
|
|
# NB jmacs cannot be configured to 'always wrap to screen width' (at least not on the installation I used) so we tell it where to wrap on the command line.
|
|
# Don't write anything about current terminal in ~/.e (see display_filter comment above)
|
|
# Also, try to change Message-ID: (if present), since some IMAP servers (e.g. GMail 2021-12) don't accept anything other than additions/deletions of parts (not alterations of them) if Message-ID is present and unchanged
|
|
# (the second sed has roundabout syntax for GNU+BSD compatibility)
|
|
set editor = `echo "if test a\$COLUMNS = a;then export COLUMNS=\$(stty size|sed -e 's/.* //');fi;\$(echo $(which jmacs&&echo echo -rmargin \$COLUMNS||which jed||which emacs||which xemacs)) \$@&&rm \$@~ 2>/dev/null&&sed -i '' -e 's/^Message-I[Dd]: </&1/' \$@ 2>/dev/null||true">~/.e;chmod +x ~/.e;echo $HOME/.e`;
|
|
|
|
set rfc2047_parameters = "yes";
|
|
# - helps decode broken attachments
|
|
|
|
# simple_search defaults to looking in From and Subject. More useful if also looks in To (if using copyself folder as an extra address book)
|
|
set simple_search = "~f %s | ~t %s | ~s %s";
|
|
|
|
# Colours:
|
|
color hdrdefault brightgreen black;
|
|
color header brightcyan black "^Subject";
|
|
color header brightred black "^Importance: High";
|
|
color bold brightcyan black;
|
|
color search brightwhite magenta;
|
|
color attachment brightyellow blue;
|
|
|
|
# color normal brightwhite black;
|
|
# color body brightyellow black ".";
|
|
# don't have the above 2 lines - the "body" regexp overrides quoting
|
|
# do this instead:
|
|
color normal brightyellow black;
|
|
# and the quoting:
|
|
color quoted brightgreen black;
|
|
color quoted1 brightmagenta black;
|
|
color quoted2 brightblue black;
|
|
color quoted3 brightred black;
|
|
color quoted4 magenta black;
|
|
color quoted5 blue black;
|
|
color quoted6 red black;
|
|
color signature green black;
|
|
color error brightwhite red;
|
|
color status brightwhite blue;
|
|
# note: with the following index colours, earlier is overridden by later
|
|
# (so e.g. deleted messages should go last if you want them to always be coloured
|
|
# as deleted messages regardless of what other categories they fall into)
|
|
# messages from self:
|
|
color index brightwhite black "~P";
|
|
# deleted messages:
|
|
color index magenta black '~D';
|
|
|
|
# ------------------------------------------------
|
|
|
|
# Options for handling HTML mail (this needs customising).
|
|
|
|
# Uncomment 2 lines below to view HTML etc using mailcap
|
|
# filters if possible:
|
|
#auto_view text/html;
|
|
#set implicit_autoview = 'yes';
|
|
|
|
# You might need to write a ~/.mailcap file
|
|
# (or /etc/mailcap if you have system-level access).
|
|
# If you're using imapfix to ensure all mail is UTF-8
|
|
# (and your terminal handles UTF-8), this should suffice:
|
|
|
|
# text/html; lynx -assume-charset=utf-8 -display-charset=utf-8 -dump -force_html %s; copiousoutput; description=HTML; nametemplate=%s.html
|
|
|
|
# BUT if you're on a Mac, there's a bug in one of the Mac's
|
|
# character-set handling libraries used by MacPorts/HomeBrew lynx
|
|
# (in at least OS X 10.7 through macOS 13, and possibly other
|
|
# versions, but not in FreeBSD), that results in lynx deleting
|
|
# any UTF-8 byte 0x85 or 0xA0 if immediately followed by
|
|
# whitespace etc. The following workaround adds u+200b after,
|
|
# which fixes it on earlier macOS but not on macOS 13:
|
|
# text/html; sh -c "LC_ALL=C sed -Ee $'s/(\\x85|\\xa0)([^\\x80-\\xff]|$)/\\\\\\\\1\\xe2\\x80\\x8b\\\\\\\\2/g' < %s | lynx -stdin -assume-charset=utf-8 -display-charset=utf-8 -dump -force_html"; copiousoutput; description=HTML; nametemplate=%s.html
|
|
|
|
# You could also try w3m, which is more likely to silently drop the
|
|
# affected characters on macOS 10.13, but at least shows the rest of
|
|
# the message rather than stopping with an error:
|
|
# text/html; w3m -s -I utf-8 -O utf-8 -T text/html -dump; copiousoutput; description=HTML; nametemplate=%s.html
|
|
|
|
# Older version for non-imapfix, client-side, charset conversion:
|
|
# text/html; ~/mutt/lynx.sh %{charset} %s; copiousoutput; description=HTML; nametemplate=%s.html
|
|
# and a ~/mutt/lynx.sh like:
|
|
# #!/bin/bash
|
|
# L=$(echo "$1"|sed -e s/18030/2312/) # lynx won't recognise "GB18030" labels
|
|
# exec lynx -assume-charset="$L" -display-charset="$L" -dump -force_html "$2" | iconv -f $(echo "$L"|sed -e s/2312/18030/ -e s/ISO8859_1/ISO-8859-1/ -e s/ks_*c_*5601-*1*9*8*7*/ksc5636/) -t //TRANSLIT
|
|
# (lynx not w3m because some w3m versions stop rendering
|
|
# pages that contain very bad HTML part-way through, e.g.
|
|
# META tags in the middle of the BODY)
|
|
|
|
# Also we can have the option to view HTML (and other
|
|
# items) in a graphical browser when needed:
|
|
# "Print" (send to lpr) is not very useful if larger type is needed
|
|
# so let's set that command to send the message to MHonArc for
|
|
# HTML formatting for the browser.
|
|
set print = 'yes';
|
|
set print_decode = 'no';
|
|
set print_split = 'no';
|
|
set wait_key = 'yes';
|
|
|
|
# Uncomment one of these:
|
|
|
|
# Option 1: run Firefox locally if X display is present, else print URL using hostname
|
|
#set print_command='cd $(mktemp -d ~/public_html/mailXXX);mhonarc -;echo;if [ a$DISPLAY = a -o ! -e /usr/bin/firefox ];then echo http://$(hostname -f)/~$(whoami)/$(pwd|sed -e "s-.*/--")/maillist.html; else firefox file://$(pwd)/maillist.html;fi;echo When done: rm -r $(pwd)';
|
|
|
|
# If you've installed MHonarc on a Mac, you might prefer:
|
|
# set wait_key = 'no';
|
|
# set print_command="cd $(mktemp -d /tmp/mailXXX);sed -e $'s/\\f/From \\\\n/'|LANG=C mhonarc - >/dev/null 2>/dev/null;open maillist.html";
|
|
|
|
# Option 2: as above but if WEB environment variable is present it overrides hostname
|
|
#set print_command="cd $(mktemp -d ~/public_html/mailXXX);sed -e $'s/\\f/From \\\\n/'|LANG=C mhonarc -;[ a\$WEB = a ]&&WEB=$(hostname -f);echo;echo http://\$WEB/~$(whoami)/$(pwd|sed -e 's-.*/--')/maillist.html;echo Then rm -r $(pwd)";
|
|
# Note: the above CANNOT be made much longer, because some versions of mutt will truncate it. (And that happens after expansion of environment variables, hence escaping some of those $'s. Some versions of mktemp won't accept fewer than 3 X characters.)
|
|
|
|
# Option 3: as above but WEB is compulsory, must be a user-specific subdomain and must also accept SSH logins (use .ssh/config if necessary). For running mutt remotely on a server that is not itself a web server but has SSH access to one.
|
|
#set print_command="cd \$(mktemp -d);chmod 700 .;sed -e $'s/\\f/From \\\\n/'|LANG=C mhonarc -;echo;echo -n http://\$WEB/;tar -c .|ssh \$WEB 'cd \$(mktemp -d ~/public_html/mailXXX)&&tar -x;chmod a+rx * .;pwd|sed -e s,.*/,,'";
|
|
|
|
# If you need to do more then make a separate script and call that.
|
|
|
|
# NB if your MHonarc mangles UTF-8 messages, you might have to export M2H_RCFILE to a file containing
|
|
# the contents of http://www.mhonarc.org/MHonArc/doc/rcfileexs/utf-8-encode.mrc.html
|
|
|
|
# ------------------------------------------------
|
|
|
|
set sort=reverse-date-sent;
|
|
# (old versions of mutt do that anyway, some new versions default to forward-sort of date, let's make it consistent)
|
|
|
|
# You might want to uncomment the following if using Exim:
|
|
# to prevent Bcc from being exposed by Mutt+Exim, set -t option, and ignore the addresses on the command line
|
|
# but we can't use bash -c 'sendmail -t #' because mutt won't parse these quotes
|
|
# This must be single quoted not double quoted or mutt will try to expand $IFS itself and go wrong:
|
|
#set sendmail='/bin/bash -c $1$IFS$2$IFS$3$IFS$4 bash /usr/sbin/sendmail -oem -oi -t'
|
|
# and when using the -t option, Bounce won't work, so unbind it:
|
|
#bind index b noop
|
|
#bind pager b noop
|
|
# and make sure write_bcc is still yes:
|
|
#set write_bcc='yes';
|
|
# Alternatively, you may comment out the above and
|
|
# compile msmtp in your home directory:
|
|
# set sendmail=$HOME/msmtp/bin/msmtp
|
|
# or with a recent-enough version of mutt, just use --enable-smtp
|