Note: this is a review of some of the more interesting features in this release. For a complete list of changes please be sure to read the UPDATING file.
This release was bumped to 2.0, not because of the magnitude of features (which is actually smaller than past releases), but because of a few changes that are backward incompatible. Please read this list carefully to be aware of these changes:
<attach-file>
to
browse and add multiple attachments to an email, you may use
<quit>
to exit after tagging
the files. Previously, "enter" had to be pressed on a
non-directory file. This was awkward and non-intuitive.
string (localized)
in the
manual. Examples
include $attribution
and
$status_format.
<decode-copy>
and
<decode-save>
no longer
perform header weeding by default. Header weeding can
be toggled back on by setting
$copy_decode_weed.
-e
command-line arguments. This was done to provide a way to skip
DNS lookups of the FQDN, which on some systems can result in
a delay when starting up.
This feature isn't commonly needed, but see
ticket 226
for the reasoning behind the request. This allows the use of
literal IP addresses in place of the email address domain. For example
user@[IPv6:fcXX:....]
.
The cd
command allows the ability to change
the working directory inside Mutt.
I believe this wasn't implemented previously because Mutt didn't
resolve relative paths internally. So, starting Mutt with
something like "mutt -f mymailbox
"
would cause Mutt to open "mymailbox" in the current
directory and continue to refer to it as "mymailbox"
internally. If the directory changed, Mutt would still
refer (incorrectly) to "mymailbox" in the new directory.
Because of this, Mutt now also tries to resolve relative paths. This isn't as straightforward as you would think. So if you encounter issues, please let us know!
When an unplanned disconnect occurs, Mutt will try to reconnect automatically, preserving unsaved changes in the mailbox. This isn't bulletproof, but will hopefully at least reduce lost changes due to a mailbox connection freezing or being dropped.
$crypt_protected_headers_subject defaults to "..." to comply with the recent recommendations.
Also, Mutt will store the Date, From, To, Cc, and Reply-To headers in protected headers. Mutt currently doesn't display or make use of those headers, but other MUA's may expect them to be there.
"xoauth2" is supported as a value in $imap_authenticators, $smtp_authenticators, and $pop_authenticators. Additionally there is a refresh token script under the contrib directory which works with Python 3. (The script is not officially supported by the Mutt team, but has been reported to work.)
If you sometimes forget a pattern modifier, you can invoke
<complete>
(by default bound
to the Tab key) after the ~ to get a list of pattern modifiers.
Hitting enter on a selection will add it to the line
editor.
Three new variables, $copy_decode_weed, $pipe_decode_weed, and $print_decode_weed allow you to decouple the operation of "decoding" with the operation of header weeding. Pipe and print operations weed by default, preserving previous behavior. Copy and save operations do not weed by default.
MuttLisp is an experimental feature providing a Lisp-like enhancement to the configuration file. It allows more dynamic decisions about commands or command-arguments; however it is not a full-blown language, and does not take the place of macros or commands.
A simple example is the ability to execute commands conditionally:
run (if (equal $USER "kevin8t8") \ "set arrow_cursor")
or, with $muttlisp_inline_eval set, dynamically generate command arguments:
set muttlisp_inline_eval set index_format = (if (equal $sidebar_visible "yes") \ "short index format" \ "long index format")
For a more detailed introduction and examples, please see the MuttLisp manual section.
$cursor_overlay can be
used to have an "underline" indicator, for instance,
that shows the colors of the selected line underneath.
default
indicator
foreground/background colors will be set by the color of the
line instead. Attributes (such as bold, underline, reverse)
will be merged between the two.
For example:
color indicator underline default default color index red default ~N set cursor_overlay
With $cursor_overlay set, the "underline" cursor will
show the red foreground of a new message.
$attach_save_dir specifies a directory to use when saving attachments. Note: the prompt will be the same, but relative path files will be saved relative to that directory.