neomuttrc(5)
๐ธ NAME ๐ธ
neomuttrc โ Configuration file for the NeoMutt Mail User Agent (MUA)
okay so this is the neomuttrc(5) page, bestie โ the config-file manual for NeoMutt. ๐
๐ฆ DESCRIPTION ๐ฆ
A NeoMutt configuration file is literally a series of โcommands.โ Each line of the file may contain one or more commands. When multiple commands are used, they must be separated by a semicolon (โ;โ). Slay.
The hash mark, or pound sign (โ#โ), is used as a โcommentโ character. You can use it to annotate your initialization file. All text after the comment character to the end of the line is ignored. ๐
Single quotes (โ'โ) and double quotes (โ"โ) can be used to quote strings which contain spaces or other special characters. The difference between the two types of quotes is similar to that of many popular shell programs, namely that a single quote is used to specify a literal string (one that is not interpreted for shell variables or quoting with a backslash [see next paragraph]), while double quotes indicate a string which should be evaluated. For example, backticks are evaluated inside of double quotes, but not single quotes. Yes, this is giving shell-brain, iykyk. ๐
โ\โ quotes the next character, just as in shells such as Bash and Zsh. For example, if you want to put quotes (โ"โ) inside of a string, you can use โ\โ to force the next character to be a literal instead of interpreted character.
โ\โ means to insert a literal โ\โ into the line. โ\nโ and โ\rโ have their usual C meanings of line feed (LF) and carriage return (CR), respectively.
A โ\โ at the end of a line can be used to split commands over multiple lines, provided that the split points don't appear in the middle of command names. Do not break the command name, bestie โ that is not the vibe. ๐
It is also possible to substitute the output of a Unix command in an initialization file. This is accomplished by enclosing the command in backticks (command).
Unix environment variables can be accessed like the way it is done in shells like sh and Bash: Prepend the name of the variable by a dollar (โ$โ) sign. ๐ธ
๐ COMMANDS ๐
๐ ๏ธ Configuration Commands ๐ ๏ธ
The following are the commands understood by NeoMutt:
๐ช account-hook
account-hook regex command
This hook is executed whenever you access a remote mailbox. Useful to adjust configuration settings to different IMAP or POP servers. ๐ฐ๏ธ
๐ท๏ธ alias / unalias
alias [ -group name ... ] key address [, address ... ]
unalias [ -group name ... ] { * | key ... }
alias defines a surrogate key for the given address(es). Each address will be resolved into either an email address (user@example.com) or a named email address (User Name <user@example.com>). The address may be specified in either format, or in the format user@example.com (User Name).
Note: If you want to create an alias for more than one address, you must separate the addresses with a comma (โ,โ). Comma is the glue, bestie. ๐ซถ
unalias removes the alias corresponding to the given key or all aliases when โ*โ is used as an argument.
The optional -group flag causes the address(es) to be added to or removed from the named group.
๐ alternates / unalternates
alternates [ -group name ... ] regex [ regex ... ]
unalternates [ -group name ... ] { * | regex ... }
alternates is used to inform NeoMutt about alternate addresses where you receive mail; you can use regular expressions (regex) to specify alternate addresses. This affects NeoMutt's idea about messages from you, and messages addressed to you. ๐
unalternates can be used to write exceptions to alternates regular expression. To remove a regular expression from the alternates list, use the unalternates command with exactly the same regex or use โ*โ to remove all entries.
The optional -group flag causes all of the subsequent regular expressions to be added to or removed from the named group.
๐ alternative_order / unalternative_order
alternative_order mime-type[/mime-subtype] [ mime-type[/mime-subtype] ... ]
unalternative_order { * | mime-type[/mime-subtype] ... }
alternative_order command permits you to define an order of preference that is used by NeoMutt to determine which part of a multipart/alternative body to display. A mime-subtype of โ*โ matches any multipart/alternative subtype, as does an empty mime-subtype. โจ
unalternative_order removes entries from the ordered list or deletes the entire list when โ*โ is used as an argument.
๐ attachments / unattachments
attachments { + | - }disposition mime-type [ mime-type ... ]
unattachments { + | - }disposition mime-type [ mime-type ... ]
attachments ?
unattachments *
You can make your message index display the number of qualifying attachments in each message, or search for messages by attachment count. You also can configure what kinds of attachments qualify for this feature with the attachments and unattachments commands.
disposition is the attachment's Content-Disposition type โ either inline or attachment. You can abbreviate this to I or A.
Disposition is prefixed by either a + symbol or a - symbol. If it's a +, you're saying that you want to allow this disposition and MIME type to qualify. If it's a -, you're saying that this disposition and MIME type is an exception to previous + rules.
mime-type is the MIME type of the attachment you want the command to affect. A MIME type is always of the format major/minor. The major part of mime-type must be literal text (or the special token โ*โ), but the minor part may be a regular expression. Therefore, */.* matches any MIME type. ๐ฅ
Note that the first MIME part is treated slightly differently: It is almost always the message text. Thus, it is not counted as an attachment if its disposition is inline and it is not a multipart/* or message/* MIME-type.
Entering the command attachments ? as a command will list your current settings in neomuttrc format, so that it can be pasted elsewhere.
Entering the command unattachments * as a command will clear all attachment settings.
๐ auto_view / unauto_view
auto_view mime-type[/mime-subtype] [ mime-type[/mime-subtype] ... ]
unauto_view { * | mime-type[/mime-subtype] ... }
This command permits you to specify that NeoMutt should automatically convert the given mime-types to text/plain when displaying messages. For this to work, there must be a mailcap(5) entry for the given mime-type with the copiousoutput option set. A mime-subtype of โ*โ matches any multipart/alternative subtype, as does an empty mime-subtype. ๐ฆ
โจ๏ธ bind / unbind
bind map[,map ... ] key function
unbind { * | map | [,map...]} [ key ]
This command allows you to change the default or define additional key bindings (operation invoked when pressing a key).
map specifies in which menu the binding belongs. Multiple maps may be specified by separating them with commas (no additional whitespace is allowed). The currently defined maps are: alias, attach, browser, compose, editor, generic, index, mix, pager, pgp, postpone, query and smime.
key is the key (or key sequence) you wish to bind, e.g. \Ca for control-A. In addition, key may be specified as a three digit octal number prefixed with a โ\โ or as a symbolic name. The <what-key> function can be used to explore keycode and symbolic names for the keys on your keyboard.
function specifies which action to take when key is pressed. Note that the function name is to be specified without angle brackets.
Missing key sequence in unbind command means unbind all bindings in menus given in map.
For more information on keys and functions, please consult the NeoMutt manual.
๐ค charset-hook / iconv-hook
charset-hook alias charset
iconv-hook charset local-charset
charset-hook defines an alias for a character set. This is useful to properly display messages which are tagged with a character set name not known to NeoMutt.
iconv-hook defines a system-specific name for a character set. This is useful when your system's iconv(3) implementation does not understand MIME character set names (such as iso-8859-1), but instead insists on being fed with implementation-specific character set names (such as 8859-1). In this specific case, you'd put iconv-hook iso-8859-1 8859-1 into your configuration file. ๐
๐จ color / uncolor
color object [ attribute ... ] foreground background
color { header | body } [ attribute ... ] foreground background regex
color status foreground background [regex [ num ]]
color index-object [ attribute ... ] foreground background pattern
color compose composeobject foreground background
color compose composeobject [ attribute ... ] foreground background
uncolor { index-object | header | body } { * | pattern ... }
If your terminal supports color, these commands can be used to assign foreground/background combinations to certain objects. The currently defined objects are: attach_headers, attachment, body, bold, error, hdrdefault, header, index, index_author, index_collapsed, index_date, index_flags, index_label, index_number, index_size, index_subject, index_tag, index_tags, indicator, markers, message, normal, progress, prompt, quoted, quotedN, search, signature, status, stripe_even, stripe_odd, tilde, tree, underline.
If the sidebar is enabled the following objects are also valid: sidebar_background, sidebar_divider, sidebar_flagged, sidebar_highlight, sidebar_indicator, sidebar_new, sidebar_ordinary, sidebar_spool_file.
The body and header objects allow you to restrict the colorization to a regular expression. The index-object permits you to select colored messages by pattern.
The header and body match regex in the header/body of a message, index-object can match pattern in the message index. Note that IMAP server-side searches (=b, =B, =h) are not supported for color index patterns.
The status object optionally takes an regex and a match number. If the regex is given, only the matching parts are colored. If additionally the match number is given, only that sub-match of the regex is colored.
Valid composeobjects include header, security_encrypt, security_sign, security_both, security_none.
Valid colors include: default, black, red, green, yellow, blue, magenta, cyan, white, #RRGGBB, colorN. ๐
okay so valid attributes include: none, bold, underline, reverse, and standout. ๐
The uncolor command can be applied to the index, header, and body objects only โ that's the whole guest list. It removes entries from the list. You must specify the same pattern specified in the color command for it to be removed. The pattern * is a special token which means to clear the color list of all entries.
for further information on colorization, please consult the NeoMutt manual. โจ
crypt-hook regex keyid
The crypt-hook command provides a method by which you can specify the ID of the public key to be used when encrypting messages to a certain recipient. The meaning of keyid is to be taken broadly: this can be a different email address, a numerical keyid, or even just an arbitrary search string. You may use multiple crypt-hooks with the same regex; multiple matching crypt-hooks result in the use of multiple *keyid*s for a recipient. ๐
index-format-hook name [!]pattern format-string
This command is used to inject format strings dynamically into $index_format based on pattern matching against the current message.
The $index_format expando %@name@ specifies a placeholder for the injection. Index-format-hooks with the same name are matched using pattern against the current message. Matching is done in the order specified in the .neomuttrc, with the first match being used. The hook's format-string is then substituted and evaluated. ๐
exec function [ function ... ]
This command can be used to execute any function. Functions are listed in the function reference. exec function is equivalent to push <function>. โก
fcc-save-hook pattern mailbox
fcc-hook pattern mailbox
save-hook pattern mailbox
fcc-save-hook is a shortcut, equivalent to doing both a fcc-hook and a save-hook with its arguments, including %-expansion on mailbox according to $index_format.
fcc-hook is used to save outgoing mail in a mailbox other than $record. NeoMutt searches the initial list of message recipients for the first matching pattern and uses mailbox as the default Fcc: mailbox. If no match is found the message will be saved to $record mailbox.
save-hook is used to override the default mailbox used when saving messages. mailbox will be used as the default if the message matches pattern.
To provide more flexibility and good defaults, NeoMutt applies the expandos of $index_format to mailbox after it was expanded. See PATTERNS section below or consult section โMessage Matching in Hooksโ in NeoMutt manual for information on the exact format of pattern. ๐
folder-hook [-noregex] regex command
When NeoMutt enters a folder which matches regex (or, when regex is preceded by an exclamation mark, does not match regex), the given command is executed. The -noregex switch controls whether regex is matched as simple string equality or as a full regex match.
When several folder-hooks match a given mail folder, they are executed in the order given in the configuration file. ๐
group [ -group name ... ] { -rx regex ... | -addr address ... }
ungroup [ -group name ... ] { * | -rx regex ... | -addr address ... }
group is used to directly add either addresses or regular expressions to the specified group or groups. The different categories of arguments to the group command can be in any order. The flags -rx and -addr specify what the following strings (that cannot begin with a hyphen) should be interpreted as: either a regular expression or an email address, respectively.
ungroup is used to remove addresses or regular expressions from the specified group or groups. The syntax is similar to the group command, however the special character * can be used to empty a group of all of its contents.
These address groups can also be created implicitly by the alias, lists, subscribe, and alternates commands by specifying the optional -group option.
Once defined, these address groups can be used in patterns to search for and limit the display to messages matching a group. ๐ซถ
hdr_order header [ header ... ]
unhdr_order { * | header ... }
With the hdr_order command you can specify an order in which NeoMutt will attempt to present these headers to you when viewing messages.
unhdr_order * will clear all previous headers from the order list, thus removing the header order effects set by the system-wide startup file. ๐ธ
ifdef symbol "config-command [ args ... ]"
ifndef symbol "config-command [ args ... ]"
finish
The ifdef feature introduces three new commands to NeoMutt and allow you to share one config file between versions of NeoMutt that may have different features compiled in. ๐ง
Example symbols and what they mean:
sidebar_formatโ config variablestatus-color,imapโ compiled-in featurepgp-menu,group-relatedโ functionindex-format-hook,tag-transformsโ commandmy_varโ my variablelmdb,tokyocabinetโ store (database)HOME,COLUMNSโ environment variable
A list of compile-time symbols can be seen in the output of the command neomutt -v (in the โCompile optionsโ section).
finish is particularly useful when combined with ifndef. ๐ฆ
ignore string [ string ... ]
unignore { * | string ... }
The ignore command allows you to specify header fields which you don't normally want to see in the pager. You do not need to specify the full header field name. For example, ignore content- will ignore all header fields that begin with the string content-, and ignore * will ignore all headers.
To remove a previously added token from the list, use the unignore command. For example, unignore * will remove all tokens from the ignore list. ๐
lists [ -group name ... ] regex [ regex ... ]
unlists [ -group name ... ] { * | regex ... }
subscribe [ -group name ... ] regex [ regex ... ]
unsubscribe [ -group name ... ] { * | regex ... }
NeoMutt maintains two lists of mailing list address regular expressions, a list of subscribed mailing lists, and a list of known mailing lists. All subscribed mailing lists are known. ๐
The lists command adds a mailing list address to the list of known mailing lists. The unlists command removes a mailing list from the lists of known and subscribed mailing lists.
The subscribe command adds a mailing list to the lists of known and subscribed mailing lists. The unsubscribe command removes it from the list of subscribed mailing lists.
The -group flag adds all of the subsequent regular expressions to the named group. ๐
macro menu[,menu ... ] key sequence [ description ]
unmacro { * | menu | [,menu...]} [ key ]
This command binds the given sequence of keys to the given key in the given menu or menus. For currently defined menus, see bind command above. To specify multiple menus, put only a comma between the menus.
Optionally you can specify a descriptive text after sequence, which is shown in the help screens if they contain a description.
Missing key sequence in unmacro command means unmacro all macros in menus given in menu. ๐
mailboxes [[-label label] | -nolabel]
[[-notify | -nonotify]
[-poll | -nopoll]
mailbox] [ ... ]
named-mailboxes label mailbox [label mailbox ... ]
unmailboxes { * | mailbox ... }
The mailboxes specifies folders which can receive mail and which will be checked for new messages. When changing folders, pressing Space will cycle through folders with new mail. ๐ฌ
The named-mailboxes is an alternative to mailboxes -label label. NeoMutt can be configured to display the label instead of the mailbox path.
The unmailboxes command is used to remove a file name from the list of folders which can receive mail. If * is specified as the file name, the list is emptied. โจ
mailto_allow { * | header-field ... }
unmailto_allow { * | header-field ... }
As a security measure, NeoMutt will only add user-approved *header-field*s from a mailto: URL. This is necessary since NeoMutt will handle certain *header-field*s, such as Attach, in a special way. The mailto_allow and unmailto_allow commands allow the user to modify the list of approved headers. ๐
NeoMutt initializes the default list to contain only the Subject and Body *header-field*s, which are the only requirement specified by the mailto: specification in RFC2368, and the Cc, In-Reply-To, References headers to aid with replies to mailing lists.
echo message
Prints message to the message window. After printing the message, echo will pause for the number of seconds specified by $sleep_time. ๐ฃ๏ธ
cd directory
Changes the current working directory. ๐
mbox-hook [-noregex] regex mailbox
When NeoMutt changes to a mail folder which matches regex, mailbox will be used as the โmboxโ folder, i.e. read messages will be moved to that folder when the mail folder is left. The -noregex switch controls whether regex is matched as simple string equality or as a full regex match.
note that execution of mbox-hooks is dependent on the $move configuration variable. If set to โnoโ (the default), mbox-hooks will not be executed. ๐
๐
oh and ps โ the first matching mbox-hook applies. First one wins, that's it, that's the rule.
message-hook โจ
message-hook pattern command
Before NeoMutt shows you a message (or formats it up for replying/forwarding), it checks: does the message match pattern? If yes, it runs command. And plot twist โ if the pattern is preceded by an exclamation mark, it's the opposite: run the command when the message does not match. ๐
When multiple message-hooks match, they get executed in the order they occur in your configuration file. Order matters, bestie, so place them thoughtfully. ๐
mime_lookup / unmime_lookup ๐ฆ
mime_lookup mime-type[/mime-subtype] [ mime-type[/mime-subtype] ... ]
unmime_lookup { * | mime-type[/mime-subtype] ... }
This one lets you define a list of "data" MIME content types where NeoMutt will try to figure out the actual file type from the file name โ instead of using a mailcap(5) entry given for the original MIME type. Think of it as "bestie, look at the filename, not the label". For instance, you may add the application/octet-stream MIME type to this list. ๐
Also! The unmime_lookup command is there to disable this feature for any particular MIME type if it had been set โ like, say, in a global neomuttrc. Undoing a vibe, lowkey.
mono / unmono ๐
mono object attribute
mono { header | body } attribute regex
mono index-object attribute pattern
unmono { index-object | header | body } { * | pattern ... }
For terminals that don't support color ๐ญ you can still assign attributes to objects. No color? No problem. Mono mode ate.
my_hdr / unmy_hdr ๐
my_hdr string
unmy_hdr { * | field ... }
With my_hdr you can define headers that get added to the messages you compose. And unmy_hdr will remove the given user-defined headers. Add header, remove header, the circle of life. โจ
open-hook / close-hook / append-hook ๐๏ธ
open-hook regex "shell-command"
close-hook regex "shell-command"
append-hook regex "shell-command"
These give you a way to handle compressed folders, which is honestly iconic. The regex specifies which folders count as compressed (e.g. "\.gz$"). And the commands tell NeoMutt how to uncompress a folder (open-hook), compress a folder (close-hook), or append a compressed mail to a compressed folder (append-hook). ๐ซถ
The shell-command is a printf(3)-like format string and must contain two placeholders โ one for from (%f) and one for to (%t) filenames โ and these should be placed inside single quotes to prevent unintended shell expansions. Do not skip the quotes, I'm begging. ๐ญ
Examples, straight up:
append-hook '\.gz$' "gzip --stdout '%t' >> '%f'"
close-hook '\.gz$' "gzip --stdout '%t' > '%f'"
open-hook '\.gz$' "gzip --stdout --decompress '%f' > '%t'"
push ๐
push string
This command adds the named string to the beginning of the keyboard buffer. Yes, it's cutting the line. ๐
The string may contain control characters, key names and function names just like the sequence string in the macro command. You can use it to automatically run a sequence of commands at startup, or when entering certain folders.
Okay and this part is important: for using functions, it's crucial to use angle brackets (< and >) so NeoMutt recognizes the input as a function name. Otherwise it will just simulate individual keystrokes. Function name โ keys, iykyk. โญ
reply-hook / send-hook / send2-hook ๐ฅ
reply-hook pattern command
send-hook pattern command
send2-hook pattern command
These bad boys execute arbitrary configuration commands based on the recipients of the message. pattern is used to match the message โ see the section "Message Matching in Hooks" in the manual for the details. command is executed when pattern matches.
Now, the differences, because they matter:
reply-hookis matched against the message you are replying to, instead of the message you are sending.send-hookis matched against all messages, both new and replies.- Heads up: reply-hooks are matched before the send-hook, regardless of the order specified in the user's configuration file. Chronology who? Not here. ๐
send2-hookis matched every time a message is changed โ either by editing it, or by using the compose menu to change its recipients or subject.send2-hookis executed aftersend-hook, and can, e.g., be used to set parameters such as the$sendmailvariable depending on the message's sender address.- And a lil note: send-hooks are only executed once, after getting the initial list of recipients. One and done. ๐ฏ
score / unscore ๐
score pattern value
unscore { * | pattern ... }
The score command adds value to a message's score if pattern matches it. pattern is a string in the format described in the PATTERNS section below. value is a positive or negative integer. A message's final score is the sum total of all matching score entries. Math but make it mail. โจ
The unscore command removes score entries from the list. And no cap: you must specify the same pattern you specified in the score command for it to be removed. The pattern * is a special token which means... clear the list of ALL score entries. Nuclear option, but a valid one. ๐
set / unset / reset / toggle ๐ง
set { [ no | inv | & | ? ]variable } [ ... ]
set { variable=value | variable+=increment | variable-=decrement } [ ... ]
unset variable [ variable ... ]
reset variable [ variable ... ]
toggle variable [ variable ... ]
set variable ?
These commands are how you set and manipulate configuration variables. The whole toolkit, bestie.
NeoMutt knows four basic types of variables: boolean, number, string, string list and quadoption. (Yes, we said four. We're counting with vibes today. ๐)
- Boolean variables can be set (true), unset (false), or toggled.
- Number variables can be assigned a positive integer value. Their value can be incremented
+=and decremented-=. - String list variables use
+=for appending increment to the string list and-=for removal decrement from the string list. - String variables consist of any number of printable characters and must be enclosed in quotes if they contain spaces or tabs. You may also use the escape sequences
\nand\tfor newline and tab, respectively. Content of a string variable can be extended using+=. - Quadoption variables control whether or not to be prompted for certain actions, or to specify a default action:
yesโ the action is carried out automatically, as if you'd answered "yes" to the question.noโ the action is carried out as if you'd answered "no".ask-yesโ causes a prompt with a default answer of "yes".ask-noโ provides a default answer of "no".
The toggle command automatically prepends the inv prefix to all specified variables. The unset command automatically prepends the no prefix to all specified variables. And if you use set with the variable prefixed by &, that has the same behavior as the reset command. Same energy, different spelling. ๐
The reset command resets all given variables to the compile time defaults. And with reset there exists the special variable all, which lets you reset all variables to their system defaults. One command to reset them all. ๐
Using the <enter-command> function, you can query the value of a variable by suffixing the name of the variable with a question mark:
:set allow_8bit?
The old prefix query syntax is also still supported, grandfathered in and thriving:
:set ?allow_8bit
setenv / unsetenv ๐ธ
setenv { ?variable | variable value }
unsetenv variable
You can alter the environment that NeoMutt passes on to its child processes using the setenv and unsetenv operators. Yes, it's giving "raising the children your way". ๐ซถ
You can also query current environment values by prefixing a ? character. Easy.
sidebar_pin / sidebar_unpin ๐
sidebar_pin mailbox [ mailbox ...]
sidebar_unpin { * | mailbox ... }
The sidebar_pin command specifies mailboxes that will always be displayed in the sidebar โ even if $sidebar_new_mail_only is set and the mailbox does not contain new mail. Stubborn in the best way. ๐
The sidebar_unpin command removes a mailbox from the list of always-displayed mailboxes. Use sidebar_unpin * to remove all mailboxes. Clean slate, periodt.
source ๐
source filename
This command allows the inclusion of initialization commands from other files. If the filename begins with a tilde (~), it will be expanded to the path of your home directory. Home sweet home. ๐
If the filename ends with a vertical bar (|), then filename is considered to be an executable program from which to read input, e.g.:
source ~/bin/myscript|
If the filename is relative and the command source is executed from the context of a configuration file, then the filename is interpreted relative to the directory of that configuration file. If the command is executed outside of a configuration file โ like from the prompt โ then the filename is interpreted relative to the current working directory (see cd on how to change the current working directory at runtime).
โ ๏ธ Note: a hook remembers the configuration file it was defined in and sets the context to that file when executing its commands. As a result, a source command inside a hook is executed in the context of the configuration file the hook was defined in. Thus relative filenames are interpreted relative to the configuration file the hook is defined in. Context is everything, bestie.
spam / nospam ๐ซ
spam regex format
nospam { * | regex }
NeoMutt has generalized support for external spam-scoring filters, and that's genuinely so cool of it. By defining your spam *regex*s with the spam and nospam commands, you can limit, search, and sort your mail based on its spam attributes, as determined by the external filter. โจ
You also can display the spam attributes in your index display using the %H selector in the $index_format variable. And here's a tip from the manual itself โ try this:
"%<H?[%H] >"
That displays spam tags only when they are defined for a given message. Conditional slay. ๐
For further information on spam-scoring filters, please consult the section "Spam Detection" in the NeoMutt manual.
subjectrx / unsubjectrx ๐
subjectrx regex replacement
unsubjectrx { * | regex }
The subjectrx command specifies a regular expression which, if detected in a message subject, causes the subject to be replaced with the replacement value. The replacement is subject to substitutions in the same way as for the spam command:
%Lโ the text to the left of the match%Rโ the text to the right of the match%1โ the first subgroup in the match (etc.)
If you simply want to erase the match, set it to "%L%R". Poof, gone. ๐ฌ๏ธ
Any number of subjectrx commands may coexist. Collect them like stickers.
๐จ Note this well: the replacement value replaces the entire subject, not just the match! Like, the whole thing. Don't come for me when your subject line looks different than you expected.
unsubjectrx removes a given subjectrx from the substitution list. And if * is used as the argument, all substitutions will be removed. ๐ฆ
subscribe-to imap-folder-uri
unsubscribe-from imap-folder-uri
okay bestie these two are your direct line to the IMAP server's little folder guest list ๐
โ they literally tell the server subscribe me to this folder or unsubscribe me from it. The argument has to be an IMAP URI, no exceptions, like subscribe-to imaps://mail.example.org/inbox.
Subscription is, like, a whole IMAP protocol feature where the server manages a list of subscribed folders โ it's not a NeoMutt invention, the server is the one holding the clipboard ๐. Clients like NeoMutt can then query that list whenever they want.
And NeoMutt does use that list in various situations, so if you're curious peep $imap_list_subscribed and $imap_check_subscribed ๐.
timeout-hook command
startup-hook command
shutdown-hook command
The Global Hooks feature is what brings these three into NeoMutt โ they get called when global events go down. startup-hook and shutdown-hook are the ones most likely to be useful to users of notmuch(1), just saying ๐ซถ.
timeout-hookโ runs a command periodically when NeoMutt checks for new mail. It gets called every$timeoutseconds.startup-hookโ before NeoMutt opens the first mailbox when it's first starting up, it runs this hook for the given command. First-day-of-school energy โจshutdown-hookโ before NeoMutt is about to exit, and before the mailbox is closed, it runs this hook for the given command. The graceful goodbye ๐
unhook { * | hook-type }
The cleanup era ๐ธ โ this command lets you flush hooks you previously defined. You've got two vibes to choose from:
- pass the
*character as the argument and all your hooks get removed, like, gone gone - pass a specific hook-type and only the hooks of that type get yeeted โ something like
unhook send-hookdoes exactly what it says on the tin ๐
Pick your fighter, but know that the * option is the nuclear one ๐ฅ
๐ธ PATTERNS ๐ธ
okay so lots of NeoMutt commands let you pass in a pattern to match messages โ think limit, tag-pattern, delete-pattern, the above mentioned hook commands, etc. The โPattern modifiersโ table is basically the cheat sheet, and it shows several ways to select messages. Hereโs every single one, bestie, no skips ๐
๐ Pattern Modifier ๐
~Aโ all messages. literally every single one โจ=B STRINGโ messages which contain STRING in the whole message. If IMAP is enabled, it searches for STRING on the server, rather than downloading each message and searching it locally ๐ฆ=b STRINGโ messages which contain STRING in the message body. If IMAP is enabled, it searches for STRING on the server, rather than downloading each message and searching it locally ๐~B EXPRโ messages which contain EXPR in the whole message ๐ธ~b EXPRโ messages which contain EXPR in the message body ๐%C GROUPโ messages eitherโTo:โ,โCc:โorโBcc:โto any member of GROUP ๐%c GROUPโ messages carbon-copied to any member of GROUP ๐~C EXPRโ messages eitherโTo:โ,โCc:โorโBcc:โEXPR ๐ซถ~c EXPRโ messages carbon-copied to EXPR ๐~Dโ deleted messages ๐~d MIN-MAXโ messages withโdate-sentโin a date range ๐%e GROUPโ messages which contain a member of GROUP in theโSender:โfield ๐~Eโ expired messages ๐ญ~e EXPRโ messages which contain EXPR in theโSender:โfield ๐%f GROUPโ messages originating from any member of GROUP ๐ง~Fโ flagged messages ๐ฅ~f EXPRโ messages originating from EXPR โญ~Gโ cryptographically encrypted messages ๐~gโ cryptographically signed messages โ๏ธ=h STRINGโ messages which contain STRING in the message header. If IMAP is enabled, it searches for STRING on the server, rather than downloading each message and searching it locally; STRING must be of the formโHeader: substringโ(see below) ๐~H EXPRโ messages with spam attribute matching EXPR ๐ซ~h EXPRโ messages which contain EXPR in the message header ๐จ~i EXPRโ messages which match EXPR in theโMessage-ID:โfield ๐~I QUERYโ messages whoseMessage-IDfield is included in the results returned from an external search program, when the program is run with QUERY as its argument. See$external_search_command๐~kโ messages containing PGP key material ๐~K EXPRโ messages blind carbon-copied to EXPR ๐%L GROUPโ messages either originated or received by any member of GROUP ๐~L EXPRโ messages either originated or received by EXPR ๐ซ~lโ messages addressed to a known mailing list ๐ฌ~M EXPRโ messages which contain a mimeContent-Typematching EXPR ๐งฉ~m <MAXโ messages with numbers less than MAX *) ๐ข
okay continuing the pattern parade ๐ these are the rest of the search patterns โ same energy, all the facts, no cap:
~m >MINโ messages with numbers greater than MIN*)~m MIN,MAXโ messages with offsets (from the selected message) in the range MIN to MAX*)~m MIN-MAXโ message in the range MIN to MAX*)~m Nโ just message number N*)~Nโ new messages โจ~n MIN-MAXโ messages with a score in the range MIN to MAX**)~Oโ old messages~Pโ messages from you (consults$from, alternates, and local account/hostname information) ๐ซถ~pโ messages addressed to you (consults$from, alternates, and local account/hostname information)~Qโ messages which have been replied to~Rโ read messages~r MIN-MAXโ messages with โdate-receivedโ in a date range~Sโ superseded messages~s EXPRโ messages having EXPR in the โSubject:โ field~Tโ tagged messages ๐ท๏ธ~t EXPRโ messages addressed to EXPR~Uโ unread messages~uโ messages addressed to a subscribed mailing list~Vโ cryptographically verified messages ๐~vโ message is part of a collapsed thread.~w EXPRโ newsgroups matching EXPR~X MIN-MAXโ messages with MIN to MAX attachments**)~x EXPRโ messages which contain EXPR in the โReferences:โ or โIn-Reply-To:โ field~y EXPRโ messages which contain EXPR in their keywords~Y EXPRโ messages whose tags match EXPR~z MIN-MAXโ messages with a size in the range MIN to MAX**)***)=/ STRINGโ IMAP custom server-side search for STRING. Currently only defined for Gmail. See section โGmail Patternsโ in NeoMutt manual. ๐ฌ~=โ duplicated messages (see$duplicate_threads)~#โ broken threads (see$strict_threads)~$โ unreferenced message (requires threaded view)~(PATTERN)โ messages in threads containing messages matching PATTERN, e.g. all threads containing messages from you:~(~P)โ it's giving "the whole group chat, not just the one text" ๐~<(PATTERN)โ messages whose immediate parent matches PATTERN, e.g. replies to your messages:~<(~P)~>(PATTERN)โ messages having an immediate child matching PATTERN, e.g. messages you replied to:~>(~P)
Where EXPR is a regular expression, and GROUP is an address group. ๐
Okay bestie, the starred notes are not skippable, they're literally load-bearing:
*) The message number ranges (introduced by โ~mโ) are even more general and powerful than the other types of ranges. Read on and see section โMessage Rangesโ in manual. ๐ฅ
**) The forms โ<MAXโ, โ>MINโ, โMIN-โ and โ-MAXโ are allowed, too.
***) The suffixes โKโ and โMโ are allowed to specify kilobyte and megabyte respectively. ๐
okay bestie, special attention time ๐
โ when you're using regular expressions inside patterns, NeoMutt's parser will strip one level of backslash (\), which is normally used for quoting. So if you actually want a backslash in the regular expression, you need to use two backslashes (\\) instead. no cap.
You can force NeoMutt to treat EXPR as a simple STRING instead of a regular expression by using = instead of ~ in the pattern name. For example, =b *.* will find all messages that contain the literal string *.*. Simple substring matches are less powerful than regular expressions, but they can be considerably faster. This is especially true for IMAP folders, because substring matches can be performed on the server instead of by fetching every message. IMAP treats =h specially: it must be of the form Header: substring and will not partially match header names. The substring part may be omitted if you simply wish to find messages containing a particular header without regard to its value.
Patterns matching lists of addresses (notably c, C, p, P and t) match if there is at least one match in the whole list. If you want to make sure that all elements of that list match, you need to prefix your pattern with ^.
This example matches all mails which only has recipients from Germany.
Matching all addresses in address lists: ^~C \.de$
You can restrict address pattern matching to aliases that you have defined with the @ modifier. This example matches messages whose recipients are all from Germany and who are known to your alias list.
Matching restricted to aliases: ^@~C \.de$
To match any defined alias, use a regular expression that matches any string. This example matches messages whose senders are known aliases.
Matching any defined alias: @~f .
๐ง Nesting and Boolean Operators ๐ง
Logical AND is performed by specifying more than one criterion.
For example: ~t work ~f smith
would select messages which contain the word โworkโ in the list of recipients and that have the word โsmithโ in the From: header field.
NeoMutt also recognizes the following operators to create more complex search patterns:
!โ logical NOT operator|โ logical OR operator()โ logical grouping operator
Here is an example illustrating a complex search pattern. This pattern will select all messages which do not contain โworkโ in the To: or Cc: field and which are from โsmithโ.
Using boolean operators in patterns: !(~t work|~c work) ~f smith
Here is an example using white space in the regular expression (note the ' and " delimiters). For this to match, the mail's subject must match the ^Junk +From +Me$ and it must be from either Jim +Somebody or Ed +SomeoneElse:
Quoting regex: '~s "^Junk +From +Me$" ~f ("Jim +Somebody"|"Ed +SomeoneElse")'
Note: If a regular expression contains parenthesis, or a vertical bar (|), you must enclose the expression in double or single quotes since those characters are also used to separate different parts of NeoMutt's pattern language.
For example: ~f "user@(home\.org|work\.com)"
Without the quotes, the parenthesis wouldn't end. This would be separated to two OR'd patterns: ~f user@(home\.org and work\.com). They are never what you want.
๐ Searching by Date ๐
NeoMutt supports two types of dates, absolute and relative for the ~d and ~r pattern.
๐ฆ Absolute Dates
Dates must be in dd[/mm[/[CC]YY]] format (day, month, century and year โ all parts, with the exception of day, are optional, defaulting to the current month and year). An example of a valid range of dates is:
Limit to messages matching: ~d 20/1/95-31/10
Alternatively, you may use YYYYMMDD to specify a date.
When given a two-digit year, NeoMutt will interpret values less than 70 as lying in the 21st century (i.e., 38 means 2038 and not 1938, and 00 is interpreted as 2000), and values greater than or equal to 70 as lying in the 20th century.
If you omit the MINimum (first) date, and just specify -dd/mm/YY, all messages before the given date will be selected. If you omit the MAXimum (second) date, and specify dd/mm/YY-, all messages after the given date will be selected. If you specify a single date with no dash (-), only messages sent/received on the given date will be selected.
You can add error margins to absolute dates. An error margin is a sign (+ or -), followed by a digit, followed by one of the units in table โDate unitsโ below. As a special case, you can replace the sign by a * character, which is equivalent to giving identical plus and minus error margins.
Date units, bestie:
dโ Dayswโ Weeksmโ Monthsyโ YearsSโ SecondsMโ MinutesHโ Hours
Example: To select any messages two weeks around January 15, 2001, you'd use the following pattern:
Limit to messages matching: ~d 15/1/2001*2w
It is possible to give multiple error margins:
which cumulate: ~d 1/1/2001-1w+2w*3d
๐ธ Relative Dates
This type of date is relative to the current date, and may be specified as:
<offsetfor messages newer than offset units=offsetfor messages exactly offset units old>offsetfor messages older than offset units
offset is specified as a positive number with one of the units from table โDate unitsโ.
Example: To select messages less than 1 month old, you would use:
Limit to messages matching: ~d <1m
Note: All dates used when searching are relative to the local time zone, so unless you change the setting of your$index_formatto include a%[...]format, these are not the dates shown in the main index.
๐ CONFIGURATION VARIABLES ๐
๐ฉท abort_backspace
- Type: boolean
- Default:
yes
If set, hitting backspace against an empty prompt aborts the prompt.
๐ฉท abort_key
- Type: string
- Default:
"007"
Specifies the key that can be used to abort prompts. The format is the same as used in bind commands. The default is equivalent to Ctrl-G. Note that the specified key should not be used in other bindings, as the abort operation has higher precedence and the binding will not have the desired effect.
Example:
set abort_key = "<Esc>"
Please note that when using <Esc> as the abort key, you may also want to set the environment variable ESCDELAY to a low value or even 0 which will reduce the time that ncurses waits to distinguish singular <Esc> key presses from the start of a terminal escape sequence. The default time is 1000 milliseconds and thus quite noticeable.
๐ฉท abort_noattach
- Type: quadoption
- Default:
no
If set to yes, when composing messages containing the regular expression specified by $abort_noattach_regex and no attachments are given, composition will be aborted. If set to no, composing messages as such will never be aborted.
Example:
set abort_noattach_regex = "\\<attach(|ed|ments?)\\>"
๐ฉท abort_noattach_regex
- Type: regular expression
- Default:
"\<(attach|attached|attachments?)\>"
Specifies a regular expression to match against the body of the message, to determine if an attachment was mentioned but mistakenly forgotten. If it matches, $abort_noattach will be consulted to determine if message sending will be aborted.
Like other regular expressions in NeoMutt, the search is case sensitive if the pattern contains at least one upper case letter, and case insensitive otherwise.
๐ฉท abort_nosubject
- Type: quadoption
- Default:
ask-yes
If set to yes, when composing messages and no subject is given at the subject prompt, composition will be aborted. If set to no, composing messages with no subject given at the subject prompt will never be aborted.
๐ฉท abort_unmodified
- Type: quadoption
- Default:
yes
If set to yes, composition will automatically abort after editing the message body if no changes are made to the file (this check only happens after the first edit of the file). When set to no, composition will never be aborted.
๐ฉท account_command
- Type: command
- Default:
""
If set, this command is used to retrieve account credentials. The command is invoked passing a number of --key value arguments with the specifics of the account to lookup. The command writes to standard output a number of key: value lines. Currently supported arguments are --hostname, --username, and --type, where type can be any of imap, imaps, pop, pops, smtp, smtps, nntp, and nntps. Currently supported output lines are login, username, and password.
๐ฉท alias_file
- Type: path
- Default:
"~/.neomuttrc"
The default file where aliases made by the <create-alias> function get saved. Anything added to this file is encoded in the charset from $config_charset if that's set โ otherwise it's whatever your current charset is. ๐
Note: NeoMutt will not automaticallysourcethis file, bestie. If this option points at a dedicated alias file, you gotta explicitly run thesourcecommand yourself for it to actually get executed. No autopilot here. ๐ซถ
The default for this option is the currently used neomuttrc file, or ~/.neomuttrc if no user neomuttrc was found.
alias_format
Type: string Default: "%3n %f%t %-15a %-56r | %c"
Specifies the format of the data displayed for the <alias> menu. The following printf(3)-style sequences are available:
%aโ Alias name%cโ Comment%fโ Flags โ currently, a"d"for an alias marked for deletion%nโ Index number%rโ Address which alias expands to%tโ Character which indicates if the alias is tagged for inclusion%Yโ Comma-separated tags%>Xโ right justify the rest of the string and pad with character"X"%|Xโ pad to the end of the line with character"X"%*Xโ soft-fill with character"X"as pad
allow_8bit
Type: boolean Default: yes
Controls whether 8-bit data is converted to 7-bit using either Quoted-Printable or Base64 encoding when sending mail. โจ
allow_ansi
Type: boolean Default: no
Controls whether ANSI color codes in messages (and color tags in rich text messages) are to be interpreted. Messages containing these codes are rare, but if this option is set, their text will be colored accordingly. ๐
Note that this may override your color choices, and even present a security problem, since a message could include a line like[-- PGP output follows ...and give it the same color as your attachment color (see also$crypt_timestamp). Lowkey sketchy, so be careful bestie. ๐
arrow_cursor
Type: boolean Default: no
When set, an arrow ("->") will be used to indicate the current entry in menus instead of highlighting the whole line. On slow network or modem links this will make response faster because there is less that has to be redrawn on the screen when moving to the next or previous entries in the menu. Efficiency slay. โก
arrow_string
Type: string Default: "->"
Specifies the string of arrow_cursor when arrow_cursor is enabled. Cute.
ascii_chars
Type: boolean Default: no
If set, NeoMutt will use plain ASCII characters when displaying thread and attachment trees, instead of the default ACS characters. ๐
ask_bcc
Type: boolean Default: no
If set, NeoMutt will prompt you for blind-carbon-copy (Bcc) recipients before editing an outgoing message. ๐
ask_cc
Type: boolean Default: no
If set, NeoMutt will prompt you for carbon-copy (Cc) recipients before editing the body of an outgoing message.
ask_followup_to
Type: boolean Default: no
If set, NeoMutt will prompt you for follow-up groups before editing the body of an outgoing message.
ask_x_comment_to
Type: boolean Default: no
If set, NeoMutt will prompt you for x-comment-to field before editing the body of an outgoing message.
assumed_charset
Type: string list Default: ""
This variable is a colon-separated list of character encoding schemes for messages without character encoding indication. Header field values and message body content without character encoding indication would be assumed that they are written in one of this list. By default, all the header fields and message body without any charset indication are assumed to be in "us-ascii". ๐
For example, Japanese users might prefer this:
set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
However, only the first content is valid for the message body. iykyk.
attach_charset
Type: string list Default: ""
This variable is a colon-separated list of character encoding schemes for text file attachments. NeoMutt uses this setting to guess which encoding files being attached are encoded in, to convert them to a proper character set given in $send_charset.
If unset, the value of $charset will be used instead. For example, the following configuration would work for Japanese text handling:
set attach_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
Note: for Japanese users, "iso-2022-*" must be put at the head of the value as shown above if included. Like, literally at the front, no negotiations. ๐
attach_format
Type: string Default: "%u%D%I %t%4n %T%d %> [%.7m/%.10M, %.6e%<C?, %C>, %s] "
This variable describes the format of the "attachment" menu. The following printf(3)-style sequences are understood:
%Cโ Charset%cโ Requires charset conversion ("n"or"c")%Dโ Deleted flag%dโ Description (if none, falls back to%F)%eโ MIME content-transfer-encoding%fโ Filename%Fโ Filename in content-disposition header (if none, falls back to%f)%Iโ Disposition ("I"for inline,"A"for attachment)%mโ Major MIME type%Mโ MIME subtype%nโ Attachment number%Qโ"Q", if MIME part qualifies for attachment counting%sโ Size (seeformatstrings-size)%Tโ Graphic tree characters%tโ Tagged flag%uโ Unlink (=to delete) flag%Xโ Number of qualifying MIME parts in this part and its children (please see the"attachments"section for possible speed effects)%>Xโ Right justify the rest of the string and pad with character"X"%|Xโ Pad to the end of the line with character"X"%*Xโ Soft-fill with character"X"as pad
For an explanation of "soft-fill", see the $index_format documentation. ๐
attach_save_dir
Type: path Default: "./"
The directory where attachments are saved. ๐
attach_save_without_prompting
Type: boolean Default: no
This variable, when set to true, will cause attachments to be saved to the 'attach_save_dir' location without prompting the user for the filename. Straight to business, no questions asked.
attach_sep
Type: string Default: "\n"
The separator to add between attachments when operating (saving, printing, piping, etc) on a list of tagged attachments.
attach_split
Type: boolean Default: yes
If this variable is unset, when operating (saving, printing, piping, etc) on a list of tagged attachments, NeoMutt will concatenate the attachments and will operate on them as a single attachment. The $attach_sep separator is added after each attachment. When set, NeoMutt will operate on the attachments one by one. One at a time, queen behavior. ๐
attribution_intro
Type: string Default: "On %d, %n wrote:"
This is the string that will precede a replied-to message which is quoted in the main body of the reply (this is the case when $include is set).
For a full listing of defined printf(3)-like sequences see the section on $index_format. See also $attribution_locale.
attribution_locale
Type: string Default: ""
The locale used by strftime(3) to format dates in the attribution strings. Legal values are the strings your system accepts for the locale environment variable $LC_TIME.
This variable is to allow the attribution date format to be customized by recipient or folder using hooks. By default, NeoMutt will use your locale environment, so there is no need to set this except to override that default.
Affected variables are: $attribution_intro, $attribution_trailer, $forward_attribution_intro, $forward_attribution_trailer, $indent_string. โจ
attribution_trailer
Type: string Default: ""
Similar to the $attribution_intro variable, this is the string that will come after a replied-to message which is quoted in the main body of the reply (this is the case when $include is set).
For a full listing of defined printf(3)-like sequences see the section on $index_format. See also $attribution_locale.
auto_edit
Type: boolean Default: no
When set along with $edit_headers, NeoMutt will skip the initial send-menu (prompting for subject and recipients) and allow you to immediately begin editing the body of your message. The send-menu may still be accessed once you have finished editing the body of your message. Main character energy: body first, menu later. ๐
Note: when this option is set, you can't use send-hooks that depend on the recipients when composing a new (non-reply) message, as the initial list of recipients is empty.
Also see $fast_reply.
auto_subscribe
Type: boolean Default: no
When set, NeoMutt assumes the presence of a List-Post header means the recipient is subscribed to the list. Unless the mailing list is in the "unsubscribe" or "unlist" lists, it will be added to the "subscribe" list. Parsing and checking these things slows header reading down, so this option is disabled by default. Trade-offs, bestie. ๐ญ
auto_tag
Type: boolean Default: no
When set, functions in the index menu which affect a message will be applied to all tagged messages (if there are any). When unset, you must first use the <tag-prefix> function (bound to ";" by default) to make the next function apply to all tagged messages.
beep
Type: boolean Default: yes
When this variable is set, NeoMutt will beep when an error occurs. ๐
beep_new
Type: boolean Default: no
When this variable is set, NeoMutt will beep whenever it prints a message notifying you of new mail. This is independent of the setting of the $beep variable. Two separate beep situations, fr fr. ๐ฆ
bounceโ Type:quadoptionยท Default:ask-yesControls whether you will be asked to confirm bouncing messages. If set toyes, you don't get asked if you want to bounce a message. Setting this variable tonois not generally useful, and thus not recommended, because you are unable to bounce messages.bounce_deliveredโ Type:booleanยท Default:yesWhen this variable is set, NeoMutt will includeDelivered-Toheaders when bouncing messages. Postfix users may wish to unset this variable.braille_friendlyโ Type:booleanยท Default:noWhen this variable is set, NeoMutt will place the cursor at the beginning of the current line in menus, even when the$arrow_cursorvariable is unset, making it easier for blind persons using Braille displays to follow these menus. The option is unset by default because many visual terminals don't permit making the cursor invisible.browser_abbreviate_mailboxesโ Type:booleanยท Default:yesWhen this variable is set, NeoMutt will abbreviate mailbox names in the browser mailbox list, using'~'and'='shortcuts.
The default "alpha" setting of $sort_browser uses locale-based sorting (using strcoll(3)), which ignores some punctuation. This can lead to some situations where the order doesn't make intuitive sense. In those cases, it may be desirable to unset this variable.
browser_sort_dirs_firstโ Type:booleanยท Default:noIf this variable is set, the browser will group directories before files.catchup_newsgroupโ Type:quadoptionยท Default:ask-yesIf this variable is set, NeoMutt will mark all articles in newsgroup as read when you quit the newsgroup (catchup newsgroup).certificate_fileโ Type:pathยท Default:"~/.mutt_certificates"This variable specifies the file where the certificates you trust are saved. When an unknown certificate is encountered, you are asked if you accept it or not. If you accept it, the certificate can also be saved in this file and further connections are automatically accepted.
You can also manually add CA certificates in this file. Any server certificate that is signed with one of these CA certificates is also automatically accepted.
Example:
set certificate_file=~/.neomutt/certificates
(OpenSSL and GnuTLS only)
change_folder_nextโ Type:booleanยท Default:noWhen this variable is set, the<change-folder>function mailbox suggestion will start at the next folder in your"mailboxes"list, instead of starting at the first folder in the list.charsetโ Type:stringยท Default:""Character set your terminal uses to display and enter textual data. It is also the fallback for$send_charset.
Upon startup NeoMutt tries to derive this value from environment variables such as $LC_CTYPE or $LANG.
Note: It should only be set in case NeoMutt isn't able to determine the character set used correctly.
check_mbox_sizeโ Type:booleanยท Default:noWhen this variable is set, NeoMutt will use file size attribute instead of access time when checking for new mail in mbox and mmdf folders.
This variable is unset by default and should only be enabled when new mail detection for these folder types is unreliable or doesn't work.
Note that enabling this variable should happen before any "mailboxes" directives occur in configuration files regarding mbox or mmdf folders because NeoMutt needs to determine the initial new mail status of such a mailbox by performing a fast mailbox scan when it is defined. Afterwards the new mail status is tracked by file size changes.
check_newโ Type:booleanยท Default:yesNote: this option only affects maildir and MH style mailboxes.
When set, NeoMutt will check for new mail delivered while the mailbox is open. Especially with MH mailboxes, this operation can take quite some time since it involves scanning the directory and checking each file to see if it has already been looked at. If this variable is unset, no check for new mail is performed while the mailbox is open.
collapse_allโ Type:booleanยท Default:noWhen set, NeoMutt will collapse all threads when entering a folder.collapse_flaggedโ Type:booleanยท Default:yesWhen unset, NeoMutt will not collapse a thread if it contains any flagged messages.collapse_unreadโ Type:booleanยท Default:yesWhen unset, NeoMutt will not collapse a thread if it contains any unread messages.color_directcolorโ Type:booleanยท Default:noWhen set, NeoMutt will use and allow 24bit colours (aka truecolor aka directcolor). For colours to work properly support from the terminal is required as well as a properly setTERMenvironment variable advertising the terminals directcolor capability, e.g."TERM=xterm-direct".
NeoMutt tries to detect whether the terminal supports 24bit colours and enables this variable if it does. If this fails for some reason, you can force 24bit colours by setting this variable manually. You may also try to force a certain TERM environment variable by starting NeoMutt from a terminal as follows (this results in wrong colours if the terminal does not implement directcolors):
TERM=xterm-direct neomutt
Note: This variable must be set before using any color commands.
compose_confirm_detach_firstโ Type:booleanยท Default:yesWhen set, NeoMutt will prompt for confirmation when trying to use<detach-file>on the first entry in the compose menu. This is to help prevent irreversible loss of the typed message by accidentally hitting'D'in the menu.
Note: NeoMutt only prompts for the first entry. It doesn't keep track of which message is the typed message if the entries are reordered, or if the first entry was already deleted.
compose_formatโ Type:stringยท Default:"-- NeoMutt: Compose [Approx. msg size: %l Atts: %a]%>-"Controls the format of the status line displayed in the"compose"menu. This string is similar to$status_format, but has its own set ofprintf(3)-like sequences:
%a Total number of attachments
%h Local hostname
%l Approximate size (in bytes) of the current message (see
formatstrings-size)
%v NeoMutt version string
%>X right justify the rest of the string and pad with
character "X"
%|X pad to the end of the line with character "X"
%*X soft-fill with character "X" as pad
See the text describing the $status_format option for more information on how to set $compose_format.
compose_show_user_headersโ Type:booleanยท Default:yesWhen set, Neomutt will display user-defined headers (set viamy_hdror from editing withedit-headers).config_charsetโ Type:stringยท Default:""When defined, NeoMutt will recode commands in rc files from this encoding to the current character set as specified by$charsetand aliases written to$alias_filefrom the current character set.
Please note that if setting $charset it must be done before setting $config_charset.
Recoding should be avoided as it may render unconvertible characters as question marks which can lead to undesired side effects (for example in regular expressions).
confirm_appendโ Type:booleanยท Default:yesWhen set, NeoMutt will prompt for confirmation when appending messages to an existing mailbox.confirm_createโ Type:booleanยท Default:yesWhen set, NeoMutt will prompt for confirmation when saving messages to a mailbox which does not yet exist before creating it.content_typeโ Type:stringยท Default:"text/plain"Sets the defaultContent-Typefor the body of newly composed messages.copyโ Type:quadoptionยท Default:yesThis variable controls whether or not copies of your outgoing messages will be saved for later references. Also see$record,$save_name,$force_nameand"fcc-hook".copy_decode_weedโ Type:booleanยท Default:noControls whether NeoMutt will weed headers when invoking the<decode-copy>or<decode-save>functions.count_alternativesโ Type:booleanยท Default:noWhen set, NeoMutt will recurse insidemultipart/alternativeswhile performing attachment searching and counting (see attachments).
Traditionally, multipart/alternative parts have simply represented different encodings of the main content of the email. Unfortunately, some mail clients have started to place email attachments inside one of alternatives. Setting this will allow NeoMutt to find and count matching attachments hidden there, and include them in the index via %X or through ~X pattern matching.
crypt_auto_encryptโ Type:booleanยท Default:noSetting this variable will cause NeoMutt to always attempt to PGP encrypt outgoing messages. This is probably only useful in connection to the"send-hook"command. It can be overridden by use of the pgp menu, when encryption is not required or signing is requested as well. If$smime_is_defaultis set, then OpenSSL is used instead to create S/MIME messages and settings can be overridden by use of the smime menu instead. (Crypto only)crypt_auto_pgpโ Type:booleanยท Default:yes
This one's the master switch for whether NeoMutt is even allowed to just go ahead and turn on PGP encryption/signing for your messages on its own. It's got a whole little squad of friends that shape the vibe โ check $crypt_auto_encrypt, $crypt_reply_encrypt, $crypt_auto_sign, $crypt_reply_sign and $smime_is_default. ๐
๐ธ crypt_auto_sign
- Type: boolean
- Default:
no
Set this and NeoMutt will always try to cryptographically sign your outgoing mail. Lowkey eager. You can override it from the pgp menu when you don't actually want a signature, or when you want encryption too. And if $smime_is_default is set, then OpenSSL is the one making your S/MIME messages instead, and you override stuff from the smime menu rather than the pgp menu. (Crypto only) ๐
๐ฆ crypt_auto_smime
- Type: boolean
- Default:
yes
Your S/MIME counterpart to the PGP one โ controls whether NeoMutt may automatically enable S/MIME encryption/signing for messages. Same squad of related options: $crypt_auto_encrypt, $crypt_reply_encrypt, $crypt_auto_sign, $crypt_reply_sign and $smime_is_default. ๐
โจ crypt_chars
- Type: character string
- Default:
"SPsK "
This is the glow-up for the characters used in cryptography flags. Five slots, five meanings, and yes the fifth default really is a space (mind the trailing space in "SPsK ", bestie, it's load-bearing) ๐
- 1 โ default
Sโ the mail is signed, and the signature is successfully verified โ - 2 โ default
Pโ the mail is PGP encrypted ๐ - 3 โ default
sโ the mail is signed โ๏ธ - 4 โ default
Kโ the mail contains a PGP public key ๐๏ธ - 5 โ default
<space>โ the mail has no crypto info, it's giving nothing ๐
๐ง crypt_confirm_hook
- Type: boolean
- Default:
yes
Set this and you'll get a confirmation prompt for keys whenever the crypt-hook command is used. Unset it and that prompt justโฆ doesn't happen. Which is generally considered unsafe, especially when typos are in the mix โ like, one wrong character and you've hooked the wrong key, no cap. Be careful out there. ๐ซถ
๐ crypt_opportunistic_encrypt
- Type: boolean
- Default:
no
Set this and NeoMutt will automatically enable and disable encryption based on whether it can locate all the message recipients' keys. Iconic lazy-girl automation.
When this is on, NeoMutt re-checks encryption every single time the TO, CC, and BCC lists get edited. And if $edit_headers is set, it'll also do the check each time the message is edited.
While this is enabled, you can't manually enable/disable encryption โ she's driving now. The pgp or smime menus do offer a selection to temporarily disable this option for the current message, though.
Oh and one thing: if $crypt_auto_encrypt or $crypt_reply_encrypt turn encryption on for a message, this option gets disabled for that message. You can manually re-enable it from the pgp or smime menus. (Crypto only) ๐ฅ
๐ crypt_opportunistic_encrypt_strong_keys
- Type: boolean
- Default:
no
Turning this on makes $crypt_opportunistic_encrypt pickier โ it'll only search for "strong keys", meaning keys with full validity according to the web-of-trust algorithm. A key with marginal or no validity will not trigger opportunistic encryption. Standards!
For S/MIME, the behavior depends on the backend:
- Classic S/MIME will filter for certificates with the
't'(trusted) flag in the.indexfile. - The GPGME backend uses the same filters as with OpenPGP, and depends on GPGME's logic for assigning the
GPGME_VALIDITY_FULLandGPGME_VALIDITY_ULTIMATEvalidity flag. ๐
๐ crypt_protected_headers_read
- Type: boolean
- Default:
yes
When set, NeoMutt will display protected headers ("Memory Hole") in the pager, and will update the index and header cache with the revised headers. ๐ฌ
So what are protected headers? They're stored inside the encrypted or signed part of an email, to prevent disclosure or tampering. More deets at https://github.com/autocrypt/protected-headers โ and heads up, currently NeoMutt only supports the Subject header.
Encrypted messages using protected headers often substitute the exposed Subject header with a dummy value (see $crypt_protected_headers_subject). NeoMutt will update its concept of the correct subject after the message is opened, i.e. via the <display-message> function. So if you reply to a message before opening it, NeoMutt will end up using the dummy Subject header โ be sure to open such a message first, bestie, or your subject line is gonna be a lie ๐ญ (Crypto only)
๐ธ crypt_protected_headers_save
- Type: boolean
- Default:
no
When $crypt_protected_headers_read is set and a message with a protected Subject gets opened, NeoMutt will save the updated Subject into the header cache by default. That means you can search/limit based on the protected Subject header if the mailbox is re-opened, without re-opening the message every single time. Convenient!
But for mbox/mh mailbox types, or if header caching isn't set up, you'd have to re-open the message each time the mailbox was reopened before you could see or search/limit on the protected subject again. Annoying but that's the deal.
When this variable is set, NeoMutt additionally saves the protected Subject back in the clear-text message headers. Better usability, sure โ but the tradeoff is reduced security. ๐
The protected Subject header, which may have previously been encrypted, is now stored in clear-text in the message headers. Copying the message elsewhere, via NeoMutt or external tools, could expose this previously encrypted data. Please make sure you understand the consequences of this before you enable this variable. (Crypto only)
Like, fr fr, know what you're signing up for. ๐ซถ
โญ crypt_protected_headers_subject
- Type: string
- Default:
"..."
When $crypt_protected_headers_write is set and the message is marked for encryption, whatever's in here gets substituted into the Subject field in the message headers. That's why the default is just "..." โ the dummy placeholder vibe. ๐
Want no substitution at all? Unset this variable, or set it to the empty string. (Crypto only)
๐ฆ crypt_protected_headers_write
- Type: boolean
- Default:
no
Set this and NeoMutt will generate protected headers for signed and encrypted emails. โ๏ธ
Again: protected headers are stored inside the encrypted or signed part of an email, to prevent disclosure or tampering. More info at https://github.com/autocrypt/protected-headers
Currently NeoMutt only supports the Subject header. (Crypto only)
๐ crypt_reply_encrypt
- Type: boolean
- Default:
yes
If set, automatically PGP or OpenSSL encrypt replies to messages which are encrypted. Reply to a locked message, your reply stays locked. Obsessed with the consistency. ๐ (Crypto only)
๐ crypt_reply_sign
- Type: boolean
- Default:
no
If set, automatically PGP or OpenSSL sign replies to messages which are signed. Matching energy โจ
Note: this does not work on messages that are encrypted and signed! (Crypto only)
๐ง crypt_reply_sign_encrypted
- Type: boolean
- Default:
no
If set, automatically PGP or OpenSSL sign replies to messages which are encrypted. This one makes sense in combination with $crypt_reply_encrypt, because it lets you sign all messages which are automatically encrypted. ๐
It also works around that problem noted in $crypt_reply_sign โ namely that NeoMutt isn't able to find out whether an encrypted message is also signed. Clever girl. (Crypto only)
๐ฅ crypt_timestamp
- Type: boolean
- Default:
yes
If set, NeoMutt will include a time stamp in the lines surrounding PGP or S/MIME output, so spoofing such lines is more difficult. Anti-clownery measures, we love to see it. ๐
If you're using colors to mark these lines and relying on them, you may unset this setting. (Crypto only)
๐ crypt_use_gpgme
- Type: boolean
- Default:
yes
This controls whether the GPGME-enabled crypto backends get used. If it's set and NeoMutt was built with GPGME support, the gpgme code for S/MIME and PGP will be used instead of the classic code. ๐
Important: you need to set this option in .neomuttrc โ it won't have any effect when used interactively. Put it in the config file, bestie, not the command line.
Also note: the GPGME backend does not support creating old-style inline (traditional) PGP encrypted or signed messages (see $pgp_auto_inline). Not available, not happening. ๐
๐ crypt_use_pka
- Type: boolean
- Default:
no
Controls whether NeoMutt uses PKA (see http://www.g10code.de/docs/pka-intro.de.pdf) during signature verification. Heads up: only supported by the GPGME backend. ๐๏ธ
๐ crypt_verify_sig
- Type: quadoption
- Default:
yes - If
"yes"โ always attempt to verify PGP or S/MIME signatures โ - If
"ask-*"โ ask whether or not to verify the signature ๐ค - If
"no"โ never attempt to verify cryptographic signatures ๐ซ
(Crypto only)
๐ date_format
- Type: string
- Default:
"!%a, %b %d, %Y at %I:%M:%S%p %Z"
Okay so real talk: instead of using $date_format, it's encouraged to use "%[fmt]" directly in the corresponding format strings, where "fmt" is the value of $date_format. That gives you way more fine-grained control over the different menu needs. Fancy! ๐
This variable controls the format of the date printed by the "%d" sequence in $index_format. It gets passed to the strftime(3) function to process the date โ see the man page for the proper syntax.
Unless the first character in the string is a bang ("!"), the month and week day names are expanded according to the locale. If the first character is a bang, the bang gets discarded, and the month and week day names in the rest of the string are expanded in the C locale (that is, in US English). โญ
Format strings that use this variable:
- UI:
$folder_format,$index_format,$mailbox_folder_format,$message_format - Composing:
$attribution_intro,$forward_attribution_intro,$forward_attribution_trailer,$forward_format,$indent_string
๐ฆ debug_file
- Type: path
- Default:
"~/.neomuttdebug"
Debug logging is controlled by the variables $debug_file and $debug_level. $debug_file specifies the root of the filename โ NeoMutt will add "0" to the end. So you get .neomuttdebug0, iykyk. ๐
Each time NeoMutt is run with logging enabled, the log files are rotated. A maximum of five log files are kept, numbered 0 (most recent) to 4 (oldest). Spring cleaning for your debug logs ๐ธ
...and yeah, you can also flip this on straight from the command line like this:
neomutt -l mylog
See also: $debug_level
debug_level๐๏ธ โ Type: number, Default:0
Bestie, debug logging is a whole two-variable situation โ it's controlled by $debug_file and $debug_level, together, no cap.
This one sets how much info actually gets written into the log file. If NeoMutt is being weird and you need to figure out why, turning on logging is genuinely the move. Levels 1-3 will usually give you enough to write a decent bug report. Levels 4 and 5? Extremely verbose. Like, extremely.
โ ๏ธ Warning: logging at high levels may save private information to the file. So maybe don't post that log raw in a public issue, bestie ๐ญ
You can also enable this from the command line:
neomutt -d 2
See also: $debug_file
- <lilac>
default_hook</lilac> ๐ช โ Type: string, Default:"~f %s !~P | (~P ~C %s)"
This variable controls how some hooks get interpreted when their pattern is a plain string or a regex โ i.e. when they don't contain a pattern, like ~f.
The hooks in question are: fcc-hook, fcc-save-hook, index-format-hook, message-hook, reply-hook, save-hook, send-hook and send2-hook.
Heads up: hooks are expanded when they're declared, so a hook gets interpreted according to whatever this variable was set to at the moment the hook was declared. Timing matters, iykyk.
The default value matches if the message is either from a user matching the regular expression given, or if it's from you (when the from address matches alternates) and is to or cc'ed to a user matching the given regular expression.
delete๐๏ธ โ Type: quadoption, Default:ask-yes
Controls whether or not messages are really deleted when you close or synchronize a mailbox. Set it to yes and messages marked for deletion get automatically purged, no prompting. Set it to no and messages marked for deletion justโฆ stay in the mailbox. Iconic indecision, honestly.
delete_untagโ Type: boolean, Default:yes
If this is set, NeoMutt will untag messages when you mark them for deletion. Applies when you explicitly delete a message, or when you save it to another folder.
digest_collapseโ Type: boolean, Default:yes
If set, NeoMutt's received-attachments menu will not show the subparts of individual messages in a multipart/digest. Want to see those subparts anyway? Press v on that menu, slay.
display_filter๐ซง โ Type: command, Default:""
When set, this specifies a command used to filter messages. When a message is viewed it gets passed as standard input to $display_filter, and the filtered message is read from standard output.
When preparing the message, NeoMutt inserts some escape sequences into the text. They look like this: <esc>]9;XXX<bel> where XXX is a random 64-bit number.
If those escape sequences are messing with your filter, you can strip them with a tool like ansifilter, or with:
sed 's/^\x1b]9;[0-9]\+\x7//'
But listen โ if you remove them, then PGP and MIME headers won't be coloured anymore. Fix that by adding this to your config:
color body magenta default '^\[-- .* --\]$'
dsn_notifyโ Type: string, Default:""
This variable sets the request for when notification is returned. The string is a comma-separated list (no spaces! bestie, I mean it) of one or more of these:
neverโ to never request notificationfailureโ to request notification on transmission failuredelayโ to be notified of message delayssuccessโ to be notified of successful transmission
Example:
set dsn_notify="failure,delay"
Note: when using $sendmail for delivery, you should not enable this unless you're either using Sendmail 8.8.x or greater, or an MTA providing a sendmail(1)-compatible interface that supports the -N option for DSN. For SMTP delivery, DSN support is auto-detected, so whether DSN gets used or not depends on the server. Rude but true ๐
dsn_returnโ Type: string, Default:""
This one controls how much of your message comes back to you in DSN messages. Set it to hdrs to return just the message header, or full to return the full message.
Example:
set dsn_return=hdrs
Note: when using $sendmail for delivery, you shouldn't enable this unless you're either using Sendmail 8.8.x or greater, or an MTA providing a sendmail(1)-compatible interface supporting the -R option for DSN. For SMTP delivery, DSN support is auto-detected, so it depends on the server whether DSN will be used or not.
duplicate_threads๐งต โ Type: boolean, Default:yes
This variable controls whether NeoMutt, when $sort is set to threads, threads messages with the same Message-Id together. If it's set, NeoMutt lets you know it thinks they're duplicates of each other by putting an equals sign in the thread tree. Cute little friendship bracelet for duplicate messages, honestly.
edit_headersโ๏ธ โ Type: boolean, Default:no
This option lets you edit the header of your outgoing messages right alongside the body. Main character editing energy.
So even though the compose menu may have localized header labels, the labels passed to your editor will be standard RFC2822 headers (e.g. To:, Cc:, Subject:). Headers you add in your editor must also be RFC2822 headers, or one of the pseudo headers listed in edit-header. NeoMutt will not understand localized header labels โ just like it wouldn't when parsing an actual email.
Also note: changes made to the References: and Date: headers are ignored, for interoperability reasons. Don't take it personally ๐
editor๐ โ Type: command, Default:""
This variable specifies which editor NeoMutt uses. It defaults to the value of the $VISUAL or $EDITOR environment variable, or to the string "vi" if neither of those are set.
The $editor string may contain a %s escape, which gets replaced by the name of the file to be edited. If the %s escape does not appear in $editor, a space and the name to be edited are appended instead.
The resulting string then gets executed by running:
sh -c 'string'
where string is the expansion of $editor described above. She's fancy.
empty_subjectโ Type: string, Default:"Re: your mail"
This variable specifies the subject to use when you're replying to an email that has an empty subject. It defaults to "Re: your mail". Honestly a classic.
encode_fromโ Type: boolean, Default:no
When set, NeoMutt will quoted-printable encode messages when they contain the string "From " (note the trailing space, bestie, it's load-bearing) at the beginning of a line. This is useful for avoiding the tampering that certain mail delivery and transport agents tend to do with messages โ specifically so tools don't misinterpret that line as an mbox message separator.
envelope_from_address๐ โ Type: e-mail address, Default:""
Manually sets the envelope sender for outgoing messages. This value is ignored if $use_envelope_from is unset. So it's giving "only works if you also flip the other switch."
external_search_command๐ โ Type: command, Default:""
If set, this contains the name of the external program used by ~I patterns. Usually this is a wrapper script around mairix, mu, or similar indexers other than notmuch (for which there's optional special support).
Here's how it works. Let's say $external_search_command is set to "mairix_filter", and mairix_filter is a script that runs the old but well-loved mairix indexer with the arguments given to mairix_filter, in the "raw" mode of mairix, producing a list of Message-IDs on standard output, one per line.
If possible, it also filters down the results coming from mairix so that only messages in the current folder remain. It can do that because it gets a hidden first argument โ the path to the folder. (This can be the type of clean and simple script called a one-liner.)
So now if NeoMutt gets a limit or tag command followed by the pattern "~I '-t s:bleeping='", mairix_filter runs mairix with the arguments from inside the quotes (the quotes are needed because of the space after "-t"), mairix finds all messages with "bleeping" in the Subject plus all messages sharing threads with those, and outputs their file names, and mairix_filter translates those file names into Message-IDs. Finally, NeoMutt reads the Message-IDs and targets the matching messages with the command given to it. A whole little relay race ๐โโ๏ธ
You, the user, still have to rewrite the mairix_filter script to match the behavior of your indexer โ but this should help users of indexers other than notmuch integrate them cleanly with NeoMutt.
fast_replyโก โ Type: boolean, Default:no
When set, the initial prompt for recipients (to, cc, bcc) and subject get skipped when the relevant info is already provided. Those cases include replying to messages and passing the relevant command line arguments. The initial recipient prompt is also skipped when composing a new message to the current message sender, and the initial subject prompt is also skipped when forwarding messages.
Note: this variable has no effect when $auto_edit is set.
See also: $auto_edit, $edit_headers, $ask_cc, $ask_bcc
fcc_attach๐ โ Type: quadoption, Default:yes
This variable controls whether or not attachments on outgoing messages get saved along with the main body of your message.
Note: $fcc_before_send forces the default (set) behavior of this option. So don't be surprised, bestie.
fcc_before_sendโ Type: boolean, Default:no
When this variable is set, FCCs happen before sending the message. Since the message can't be manipulated before sending, it'll be stored the exact same as it was sent: $fcc_attach and $fcc_clear will be ignored (using their default values). What you see is what you get, periodt.
When it's unset (that's the default, bestie), FCCs will occur after sending. And $fcc_attach and $fcc_clear get respected, so you can stash it without attachments or encryption/signing if that's the vibe you want โจ
fcc_clear ๐
Type: boolean ยท Default: no
Set this and FCCs get stored unencrypted and unsigned, even when the actual message is encrypted and/or signed. It's giving "secret message, public filing cabinet" ๐
Note: $fcc_before_send forces the default (unset) behavior of this option. (PGP only!)
See also: $pgp_self_encrypt, $smime_self_encrypt
flag_chars ๐ฉ
Type: character string ยท Default: "*!DdrONon- "
This one controls the characters used in several flags. Position by position, no cap:
- 1 โ
*โ The mail is tagged. - 2 โ
!โ The mail is flagged as important. - 3 โ
Dโ The mail is marked for deletion. - 4 โ
dโ The mail has attachments marked for deletion. - 5 โ
rโ The mail has been replied to. - 6 โ
Oโ The mail is Old (Unread but seen). - 7 โ
Nโ The mail is New (Unread but not seen). - 8 โ
oโ The mail thread is Old (Unread but seen). - 9 โ
nโ The mail thread is New (Unread but not seen). - 10 โ
-โ The mail is read โ%Sexpando. - 11 โ
<space>โ The mail is read โ%Zexpando.
flag_safe ๐
Type: boolean ยท Default: no
If set, flagged messages can't be deleted. Protecting the girlies who got flagged, we love to see it ๐ซถ
folder ๐
Type: mailbox ยท Default: "~/Mail"
This is the default location of your mailboxes. A + or = at the beginning of a pathname gets expanded to the value of this variable.
โ ๏ธ Lowkey important: if you change this variable (from the default) value, make sure the assignment happens before you use+or=for any other variables, because expansion takes place when handling themailboxescommand. Order matters, bestie!
folder_format ๐ธ
Type: string ยท Default: "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %i"
Customize your file browser display to your personal taste โ it's your aesthetic โจ This string is similar to $index_format but has its own set of printf(3)-like sequences:
%aโ Alert:1if user is notified of new mail%Cโ Current file number%dโ Date/time folder was last modified%Dโ Date/time folder was last modified using$date_format. It is encouraged to use"%[fmt]"instead, where"fmt"is the value of$date_format.%fโ Filename ("/"is appended to directory names,"@"to symbolic links and"*"to executable files)%Fโ File permissions%gโ Group name (or numeric gid, if missing)%iโ Description of the folder%lโ Number of hard links%mโ*Number of messages in the mailbox%nโ*Number of unread messages in the mailbox%Nโ"N"if mailbox has new mail," "(space) otherwise%pโ Poll:1if Mailbox is checked for new mail%sโ Size in bytes (see formatstrings-size)%tโ"*"if the file is tagged, blank otherwise%uโ Owner name (or numeric uid, if missing)%[fmt]โ Date/time folder was last modified using anstrftime(3)expression%>Xโ Right justify the rest of the string and pad with character"X"%|Xโ Pad to the end of the line with character"X"%*Xโ Soft-fill with character"X"as pad
For an explanation of "soft-fill", see the $index_format documentation ๐
* = can be optionally printed if nonzero
Heads up:%m,%n, and%Nonly work for monitored mailboxes.%mrequires$mail_check_statsto be set.%nrequires$mail_check_statsto be set (except for IMAP mailboxes).
followup_to ๐
Type: boolean ยท Default: yes
Controls whether or not the "Mail-Followup-To:" header field gets generated when sending mail. When set, NeoMutt will generate this field when you're replying to a known mailing list, specified with the "subscribe" or "lists" commands.
This field has two purposes, and honestly both ate:
- Preventing you from receiving duplicate copies of replies to messages which you send to mailing lists.
- Ensuring that you do get a reply separately for any messages sent to known lists to which you are not subscribed.
The header will contain only the list's address for subscribed lists, and both the list address and your own email address for unsubscribed lists. Without this header, a group reply to your message sent to a subscribed list will be sent to both the list and your address โ resulting in two copies of the same email for you ๐ญ
followup_to_poster ๐ฐ
Type: quadoption ยท Default: ask-yes
If this variable is set and the keyword "poster" is present in the Followup-To header, the follow-up to newsgroup function is not permitted. Instead, the message will be mailed to the submitter of the message via mail. Respecting the poster's boundaries, periodt ๐
force_name ๐ซก
Type: boolean ยท Default: no
Similar to $save_name, except that NeoMutt will store a copy of your outgoing message by the username of the address you are sending to โ even if that mailbox doesn't exist. Chaotic? Maybe. Iconic? Also maybe ๐ฅ
Also see: the $record variable.
forward_attachments ๐
Type: quadoption ยท Default: ask-yes
When forwarding inline (i.e. $mime_forward unset or answered with "no" and $forward_decode set), attachments which cannot be decoded in a reasonable manner will be attached to the newly composed message if this quadoption is set or answered with "yes". Salvage mission, slay ๐ง
forward_attribution_intro ๐ฌ
Type: string ยท Default: "----- Forwarded message from %f -----"
This is the string that will precede a message which has been forwarded in the main body of a message (when $mime_forward is unset). For a full listing of defined printf(3)-like sequences, see the section on $index_format.
See also: $attribution_locale
forward_attribution_trailer ๐ฌ
Type: string ยท Default: "----- End forwarded message -----"
This is the string that will follow a message which has been forwarded in the main body of a message (when $mime_forward is unset). For a full listing of defined printf(3)-like sequences, see the section on $index_format.
See also: $attribution_locale
forward_decode ๐ค
Type: boolean ยท Default: yes
Controls the decoding of complex MIME messages into text/plain when forwarding a message. The message header is also RFC2047 decoded.
This variable is only used if$mime_forwardis unset โ otherwise$mime_forward_decodeis used instead. Don't mix them up bestie.
forward_decrypt ๐
Type: boolean ยท Default: yes
Controls the handling of encrypted messages when forwarding a message. When set, the outer layer of encryption is stripped off. This variable is only used if $mime_forward is set and $mime_forward_decode is unset.
forward_edit ๐
Type: quadoption ยท Default: yes
This quadoption controls whether or not the user is automatically placed in the editor when forwarding messages. For those who always want to forward with no modification, use a setting of "no" โ just yeet it straight out ๐
forward_format ๐ฌ
Type: string ยท Default: "[%a: %s]"
Controls the default subject when forwarding a message. It uses the same format sequences as the $index_format variable. Cute lil subject line, we're obsessed ๐
forward_quote โ
Type: boolean ยท Default: no
When set, forwarded messages included in the main body of the message (when $mime_forward is unset) will be quoted using $indent_string.
forward_references ๐งต
Type: boolean ยท Default: no
When set, forwarded messages set the "In-Reply-To:" and "References:" headers in the same way as normal replies would. Hence the forwarded message becomes part of the original thread instead of starting a new one. Keeping the thread together โ that's main character energy ๐
from ๐ฎ
Type: e-mail address ยท Default: ""
When set, this variable contains a default "from" address. It can be overridden using "my_hdr" (including from a "send-hook") and $reverse_name. This variable is ignored if $use_from is unset.
If not specified, then it may be read from the environment variable $EMAIL.
from_chars ๐ท๏ธ
Type: character string ยท Default: ""
Controls the character used to prefix the %F and %L fields in the index. Position by position, bestie:
- 1 โ Mail is written by you and has a To address, or has a known mailing list in the To address.
- 2 โ Mail is written by you and has a Cc address, or has a known mailing list in the Cc address.
- 3 โ Mail is written by you and has a Bcc address.
- 4 โ All remaining cases.
If this is empty or unset (default), the traditional long "To ", "Cc " and "Bcc " prefixes are used. If set but too short to include a character for a particular case, a single space will be prepended to the field. To prevent any prefix at all from being added in a particular case, use the special value CR (aka ^M) for the corresponding character.
This slightly odd interface is necessitated by NeoMutt's handling of string variables โ one can't tell a variable that is unset from one that is set to the empty string. The struggle is real ๐ญ
gecos_mask ๐ง
Type: regular expression ยท Default: "^[^,]*"
A regular expression used by NeoMutt to parse the GECOS field of a password entry when expanding the alias. The default value will return the string up to the first "," encountered.
If the GECOS field contains a string like "lastname, firstname" then you should set it to ".*". Simple as that, periodt ๐
Okay so this one is useful if you ever see this little behavior: you address an e-mail to user ID "stevef" whose full name is "Steve Franklin". If NeoMutt expands "stevef" to '"Franklin" stevef@foo.bar' then you should set the $gecos_mask to a regular expression that will match the whole name so NeoMutt will expand "Franklin" to "Franklin, Steve". slay, now the expansion actually makes sense ๐
greeting ๐
Type: string Default: ""
When set, this is the string that will precede every message as a greeting phrase to the recipients. yes bestie, it's giving little hello before the main character message โจ
The "Format strings" are similar to the strings used in the "C" function printf to format output (see the man page for more detail). The following sequences are defined in NeoMutt:
%nโ Recipient's real name%uโ User (login) name of recipient%vโ First name of recipient
group_index_format ๐ฐ
Type: string Default: "%4C %M%N %5s %-45.45f %d"
This variable allows you to customize the newsgroup browser display to your personal taste. it's giving customize-your-own-adventure energy, honestly ๐ฆ This string is similar to "index_format", but has its own set of printf()-like sequences:
%aโ Alert:1if user is notified of new mail%Cโ Current newsgroup number%dโ Description of newsgroup (becomes from server)%fโ Newsgroup name%Mโ-if newsgroup not allowed for direct post (moderated for example)%NโNif newsgroup is new,uif unsubscribed, blank otherwise%nโ Number of new articles in newsgroup%pโ Poll:1if Mailbox is checked for new mail%sโ Number of unread articles in newsgroup%>Xโ Right justify the rest of the string and pad with character"X"%|Xโ Pad to the end of the line with character"X"%*Xโ Soft-fill with character"X"as pad
hdrs
Type: boolean Default: yes
When unset, the header fields normally added by the "my_hdr" command are not created. This variable must be unset before composing a new message or replying in order to take effect. If set, the user defined header fields are added to every new message. timing matters, bestie โ this one's a little diva about when it takes effect ๐
header
Type: boolean Default: no
When set, this variable causes NeoMutt to include the header of the message you are replying to into the edit buffer. The $weed setting applies. quote the original, but make it fashion โจ
header_cache
Type: path Default: ""
This variable points to the header cache database. If the path points to an existing directory, NeoMutt will create a dedicated header cache database per folder. Otherwise, the path points to a regular file, which will be created as needed and used as a shared global header cache for all folders. By default it is unset so no header caching will be used.
Header caching can greatly improve speed when opening POP, IMAP MH or Maildir folders, see "caching" in the NeoMutt Guide for details. it's giving speed boost, no cap ๐
header_cache_backend
Type: string Default: ""
This variable specifies the header cache backend. If no backend is specified, the first available backend will be used in the following order: tokyocabinet, kyotocabinet, qdbm, rocksdb, gdbm, bdb, tdb, lmdb. the way it just goes down the list until something says yes ๐ญ
header_cache_compress_level
Type: number Default: 1
When NeoMutt is compiled with lz4, zstd or zlib, this option can be used to setup the compression level. squish it, but like, responsibly ๐
header_cache_compress_method
Type: string Default: ""
When NeoMutt is compiled with lz4, zstd or zlib, the header cache backend can use these compression methods for compressing the cache files. This results in much smaller cache file sizes and may even improve speed. smaller files AND maybe faster? obsessed ๐
header_color_partial
Type: boolean Default: no
When set, color header regexes behave like color body regexes: color is applied to the exact text matched by the regex. When unset, color is applied to the entire header.
One use of this option might be to apply color to just the header labels.
See "color" for more details. precise coloring is such main character energy ๐ธ
help
Type: boolean Default: yes
When set, help lines describing the bindings for the major functions provided by each menu are displayed on the first line of the screen. little baby tutorial line, we love to see it ๐ซถ
Note: The binding will not be displayed correctly if the function is bound to a sequence rather than a single keystroke. Also, the help line may not be updated if a binding is changed while NeoMutt is running. Since this variable is primarily aimed at new users, neither of these should present a major problem.
hidden_host
Type: boolean Default: no
When set, NeoMutt will skip the host name part of $hostname variable when adding the domain part to addresses. secretive little hostname moment ๐ต๏ธโโ๏ธ
hidden_tags
Type: string list Default: "unread,draft,flagged,passed,replied,attachment,signed,encrypted"
This variable specifies a list of comma-separated private notmuch/imap tags which should not be printed on screen. keep those tags lowkey, bestie ๐
hide_limited
Type: boolean Default: no
When set, NeoMutt will not show the presence of messages that are hidden by limiting, in the thread tree. if it's limited, we don't need the little ghost reminder ๐ป
hide_missing
Type: boolean Default: yes
When set, NeoMutt will not show the presence of missing messages in the thread tree. missing messages stay missing, periodt ๐
hide_thread_subject
Type: boolean Default: yes
When set, NeoMutt will not show the subject of messages in the thread tree that have the same subject as their parent or closest previously displayed sibling. no repeating the same subject twenty times, we stan a clean thread ๐
hide_top_limited
Type: boolean Default: no
When set, NeoMutt will not show the presence of messages that are hidden by limiting, at the top of threads in the thread tree. Note that when $hide_limited is set, this option will have no effect. team player note: $hide_limited can totally override this vibe โญ
hide_top_missing
Type: boolean Default: yes
When set, NeoMutt will not show the presence of missing messages at the top of threads in the thread tree. Note that when $hide_missing is set, this option will have no effect. same deal โ $hide_missing is the main character here ๐
history
Type: number Default: 10
This variable controls the size (in number of strings remembered) of the string history buffer per category. The buffer is cleared each time the variable is set.
Note that strings (e.g. commands) starting with a space are never recorded in the history. This is for example useful to prevent leaking sensitive information into the history file or for one off tests.
Also note that a string is not added to the history if it exactly matches its immediate predecessor, e.g. executing the same command twice in a row results in only one copy being added to the history. To prevent duplicates over all entries use $history_remove_dups. history hygiene, bestie โ it's real ๐งผ
history_file
Type: path Default: "~/.mutthistory"
The file in which NeoMutt will save its history.
Also see $save_history. your history lives here, cute ๐
history_format
Type: string Default: "%s"
Controls the format of the entries of the history list. This string is similar to $index_format, but has its own set of printf(3)-like sequences:
%Cโ Line number%sโ History match%>Xโ right justify the rest of the string and pad with character"X"%|Xโ pad to the end of the line with character"X"%*Xโ soft-fill with character"X"as pad
history_remove_dups
Type: boolean Default: no
When set, all of the string history will be scanned for duplicates when a new entry is added. Duplicate entries in the $history_file will also be removed when it is periodically compacted. declutter the timeline, we love to see it โจ
honor_disposition
Type: boolean Default: no
When set, NeoMutt will not display attachments with a disposition of "attachment" inline even if it could render the part to plain text. These MIME parts can only be viewed from the attachment menu.
If unset, NeoMutt will render all MIME parts it can properly transform to plain text. attachment menu only, no sneaky inline moment ๐ค
honor_followup_to
Type: quadoption Default: yes
This variable controls whether or not a Mail-Followup-To header is honored when group-replying to a message. respect the followup-to, bestie ๐ซถ
hostname
Type: string Default: ""
Specifies the fully-qualified hostname of the system NeoMutt is running on containing the host's name and the DNS domain it belongs to. It is used as the domain part (after "@") for local email addresses.
If not specified in a config file, then NeoMutt will try to determine the hostname itself.
Optionally, NeoMutt can be compiled with a fixed domain name.
Also see $use_domain and $hidden_host. identity crisis? not on NeoMutt's watch ๐ฆ
idn_decode
Type: boolean Default: yes
When set, NeoMutt will show you international domain names decoded. Note: You can use IDNs for addresses even if this is unset. This variable only affects decoding. (IDN only) decoding only, bestie โ don't panic ๐ธ
idn_encode
Type: boolean Default: yes
When set, NeoMutt will encode international domain names using IDN. Unset this if your SMTP server can handle newer (RFC6531) UTF-8 encoded domains. (IDN only) server can do UTF-8? then unset away, iykyk ๐
ignore_list_reply_to
Type: boolean Default: no
Affects the behavior of the <reply> function when replying to messages from mailing lists (as defined by the "subscribe" or "lists" commands). When set, if the "Reply-To:" field is set to the same value as the "To:" field, NeoMutt assumes that the "Reply-To:" field was set by the mailing list to automate responses to the list, and will ignore this field. To direct a response to the mailing list when this option is set, use the <list-reply> function; <group-reply> will reply to both the sender and the list. mailing list drama, handled ๐
imap_authenticators
Type: string list Default: ""
...and it's a colon-separated list of auth methods that NeoMutt is allowed to try when logging in to an IMAP server, in the order it should try them ๐
. Each method is either "login" or the right-hand side of an IMAP "AUTH=xxx" capability string, like "digest-md5", "gssapi" or "cram-md5" โ this one is case-insensitive, slay. If it's unset (which is the default), NeoMutt will just try every available method, going from most-secure to least-secure. Very demure, very mindful.
Example:
set imap_authenticators="gssapi:cram-md5:login"
Note, bestie: NeoMutt will only fall back to other authentication methods if the previous ones are unavailable. If a method is available but the authentication fails, NeoMutt will not connect to the IMAP server. Like, at all. Periodt.
๐ธ imap_check_subscribed
Type: boolean ยท Default: no
When you set this, NeoMutt fetches the whole set of subscribed folders from your server every time a mailbox is selected, and adds them into the set of mailboxes it polls for new mail โ exactly as if you'd issued individual "mailboxes" commands yourself ๐ซถ.
๐ฆ imap_condstore
Type: boolean ยท Default: no
Set this and NeoMutt uses the CONDSTORE extension (RFC7162) if the server advertises it. Ngl, NeoMutt's current implementation is pretty basic โ it's only used for the initial message fetching and for flag updates.
For some IMAP servers, turning this on slightly speeds up downloading initial messages. Unfortunately Gmail is not one of those, and shows worse performance when it's enabled ๐ญ. Your mileage may vary.
โจ imap_deflate
Type: boolean ยท Default: yes
When set, NeoMutt uses the COMPRESS=DEFLATE extension (RFC4978) if the server advertises it. In general you get good compression efficiency, which speeds up reading large mailboxes โ even on fairly good connections. We love an efficient queen ๐ .
๐ imap_delim_chars
Type: string ยท Default: "/."
This holds the list of characters NeoMutt uses as folder separators for IMAP paths, when no separator is provided on the IMAP connection.
โญ imap_fetch_chunk_size
Type: number (long) ยท Default: 0
When it's set to a value greater than 0, new headers get downloaded in groups of this many headers per request. If you have a very large mailbox, this can prevent a timeout and disconnect when opening the mailbox โ because it sends a FETCH per set of this many headers instead of one single FETCH for all the new headers. Little chunks, big slay ๐.
๐ imap_headers
Type: string ยท Default: ""
NeoMutt requests these header fields โ on top of the default headers ("Date:", "From:", "Sender:", "Subject:", "To:", "Cc:", "Message-Id:", "References:", "Content-Type:", "Content-Description:", "In-Reply-To:", "Reply-To:", "Lines:", "List-Post:", "X-Label:") โ from IMAP servers before it displays the index menu. You might wanna add more headers for spam detection ๐.
Note: this is a space separated list, and the items should be uppercase and not contain the colon โ e.g."X-BOGOSITY X-SPAM-STATUS"for the"X-Bogosity:"and"X-Spam-Status:"header fields.
๐ imap_idle
Type: boolean ยท Default: no
When set, NeoMutt tries to use the IMAP IDLE extension to check for new mail in the current mailbox. Some servers (dovecot was literally the inspiration for this option) react badly to NeoMutt's implementation ๐ฌ. If your connection seems to freeze up periodically, try unsetting this one.
๐ฅ imap_keep_alive
Type: number ยท Default: 300
This variable sets the maximum amount of time, in seconds, that NeoMutt waits before polling open IMAP connections โ so the server doesn't close them before NeoMutt is done with them. The default is well within the RFC-specified minimum amount of time (30 minutes) before a server is allowed to do that, but in practice the RFC does get violated every now and then ๐. Reduce this number if you keep getting disconnected from your IMAP server due to inactivity.
๐ง imap_list_subscribed
Type: boolean ยท Default: no
This one configures whether IMAP folder browsing looks for only subscribed folders or all folders. You can toggle it in the IMAP browser with the <toggle-subscribed> function.
๐ imap_login
Type: string ยท Default: ""
Your login name on the IMAP server. This variable defaults to the value of $imap_user.
๐ซถ imap_oauth_refresh_command
Type: command ยท Default: ""
The command to run to generate an OAUTH refresh token for authorizing your connection to your IMAP server. This command runs on every connection attempt that uses the OAUTHBEARER or XOAUTH2 authentication mechanisms. See "oauth" for details โจ.
๐ imap_pass
Type: string ยท Default: ""
Specifies the password for your IMAP account. If it's unset, NeoMutt prompts you for your password when you invoke the <imap-fetch-mail> function or when it tries to open an IMAP folder.
Warning: you should only use this option when you're on a fairly secure machine, because the superuser can read your neomuttrc even if you're the only one who can read the file ๐. Keep that in mind, bestie.
๐ imap_passive
Type: boolean ยท Default: yes
When set, NeoMutt will not open new IMAP connections to check for new mail โ it'll only check over existing IMAP connections. Super useful if you don't wanna be prompted for user/password pairs when you invoke NeoMutt, or if opening the connection is slow.
๐ฆ imap_peek
Type: boolean ยท Default: yes
When set, NeoMutt avoids implicitly marking your mail as read whenever you fetch a message from the server. This is generally a good thing, but it can make closing an IMAP folder somewhat slower. This option exists to appease speed freaks ๐๏ธ.
โญ imap_pipeline_depth
Type: number ยท Default: 15
Controls how many IMAP commands may be queued up before they get sent to the server. A deeper pipeline reduces the amount of time NeoMutt has to wait for the server, and can make IMAP servers feel so much more responsive. But not all servers correctly handle pipelined commands, so if you're having problems, you might want to try setting this variable to 0.
Note: changes to this variable have no effect on open connections.
๐ธ imap_poll_timeout
Type: number ยท Default: 15
This variable sets the maximum amount of time, in seconds, that NeoMutt waits for a response when polling IMAP connections for new mail โ before timing out and closing the connection. Set it to 0 to disable timing out entirely.
๐ imap_qresync
Type: boolean ยท Default: no
When set, NeoMutt uses the QRESYNC extension (RFC7162) if the server advertises it. NeoMutt's current implementation is basic โ only used for initial message fetching and flag updates.
Note: this feature is currently experimental. If you experience strange behavior, like duplicate or missing messages, please file a bug report to let us know ๐ซถ.
๐ imap_rfc5161
Type: boolean ยท Default: yes
When set, NeoMutt uses the IMAP ENABLE extension (RFC5161) to select CAPABILITIES. Some servers (notably Coremail System IMap Server) do not properly respond to ENABLE commands, which might cause NeoMutt to hang ๐ญ. If your connection seems to freeze at login, try unsetting this. See also https://github.com/neomutt/neomutt/issues/1689.
๐ imap_send_id
Type: boolean ยท Default: no
When set, NeoMutt sends an IMAP ID command (RFC2971) to the server when logging in, if the server advertises it. This command provides info about the IMAP client, such as "NeoMutt" and the current version. Little intro moment, iconic ๐
.
โจ imap_server_noise
Type: boolean ยท Default: yes
When set, NeoMutt displays warning messages from the IMAP server as error messages. Since these messages are often harmless, or generated because of configuration problems on the server that are totally out of the user's hands, you may wish to suppress them at some point.
๐ imap_user
Type: string ยท Default: ""
The name of the user whose mail you intend to access on the IMAP server. This variable defaults to your user name on the local machine.
๐ธ implicit_auto_view
Type: boolean ยท Default: no
If set to "yes", NeoMutt looks for a mailcap entry with the "copiousoutput" flag set for every MIME attachment it doesn't have an internal viewer defined for. If it finds such an entry, NeoMutt uses the viewer defined in that entry to convert the body part to text form ๐ฆ.
๐ include
Type: quadoption ยท Default: ask-yes
Controls whether or not a copy of the message(s) you're replying to gets included in your reply.
๐ฅ include_encrypted
Type: boolean ยท Default: no
Controls whether or not NeoMutt includes separately encrypted attachment contents when replying.
This variable was added to prevent accidental exposure of encrypted contents when replying to an attacker ๐จ. If a previously encrypted message were attached by the attacker, they could trick an unwary recipient into decrypting it and including the message in their reply. Genuinely scary stuff โ keep it off.
๐ง include_only_first
Type: boolean ยท Default: no
Controls whether or not NeoMutt includes only the first attachment of the message you're replying to.
๐ indent_string
Type: string ยท Default: "> "
Specifies the string to prepend to each line of text quoted in a message you're replying to. You are strongly encouraged not to change this value, since it tends to agitate the more fanatical netizens ๐ญ๐.
The value of this option is ignored if $text_flowed is set, because the quoting mechanism is strictly defined for format=flowed. Rules are rules, bestie.
This option is a format string, please see the description of $index_format for supported printf(3)-style sequences.
๐ index_format
Type: string Default: "%4C %Z %{%b %d} %-15.15L (%<l?%4l&%4c>) %s"
Okay bestie, this is the variable that lets you customize the message index display to your personal taste. It's giving main character energy for your whole inbox view.
"Format strings" are similar to the strings used in the C function printf(3) to format output (see the man page for more details). For an explanation of the %<...> construct, see the status_format description. The following sequences are defined in NeoMutt:
%aโ Address of the author%Aโ Reply-to address (if present; otherwise: address of author)%bโ Filename of the original message folder (think mailbox)%Bโ Same as%K%cโ Number of characters (bytes) in the body of the message (seeformatstrings-size)%Cโ Current message number%crโ Number of characters (bytes) in the raw message, including the header (seeformatstrings-size)%dโ Date and time of message usingdate_formatand sender's timezone. It is encouraged to use"%{fmt}"instead, where "fmt" is the value of$date_format.%Dโ Date and time of message usingdate_formatand local timezone. It is encouraged to use"%[fmt]"instead, where "fmt" is the value of$date_format.%eโ Current message number in thread%Eโ Number of messages in current thread%fโ Sender (address + real name), eitherFrom:orReturn-Path:%Fโ Author name, or recipient name if the message is from you%Fpโ Like%F, but plain. No contextual formatting is applied to recipient name%gโ Message tags (e.g. notmuch tags/imap flags)%Gxโ Individual message tag (e.g. notmuch tags/imap flags)%Hโ Spam attribute(s) of this message%iโ Message-id of the current message%Iโ Initials of author%Jโ Message tags (if present, tree unfolded, and != parent's tags)%Kโ The list to which the letter was sent (if any; otherwise: empty)%lโ number of lines in the unprocessed message (may not work with maildir, mh, and IMAP folders)%Lโ If an address in the "To:" or "Cc:" header field matches an address Defined by the user's "subscribe" command, this displays "To <list-name>", otherwise the same as%F%mโ Total number of message in the mailbox%Mโ Number of hidden messages if the thread is collapsed%nโ Author's real name (or address if missing)%Nโ Message score%Oโ Original save folder where NeoMutt would formerly have Stashed the message: list name or recipient name If not sent to a list%Pโ Progress indicator for the built-in pager (how much of the file has been displayed)%qโ Newsgroup name (if compiled with NNTP support)%rโ Comma separated list of "To:" recipients%Rโ Comma separated list of "Cc:" recipients%sโ Subject of the message%Sโ Single character status of the message ("N"/"O"/"D"/"d"/"!"/"r"/"*")%tโ "To:" field (recipients)%Tโ The appropriate character from the$to_charsstring%uโ User (login) name of the author%vโ First name of the author, or the recipient if the message is from you%Wโ Name of organization of author ("Organization:" field)%xโ "X-Comment-To:" field (if present and compiled with NNTP support)%Xโ Number of MIME attachments (please see the "attachments" section for possible speed effects)%yโ "X-Label:" field, if present%Yโ "X-Label:" field, if present, and (1) not at part of a thread tree, (2) at the top of a thread, or (3) "X-Label:" is different from Preceding message's "X-Label:"%Zโ A three character set of message status flags. The first character is new/read/replied flags ("n"/"o"/"r"/"O"/"N"). The second is deleted or encryption flags ("D"/"d"/"S"/"P"/"s"/"K"). The third is either tagged/flagged ("*"/"!"), or one of the characters Listed in$to_chars.%zcโ Message crypto flags%zsโ Message status flags%ztโ Message tag flags%@name@โ insert and evaluate format-string from the matching "index-format-hook" command%{fmt}โ the date and time of the message is converted to sender's time zone, and "fmt" is expanded by the library functionstrftime(3); if the first character inside the braces is a bang ("!"), the date is formatted ignoring any locale settings. Note that the sender's time zone might only be available as a numerical offset, so"%Z"behaves like"%z".%[fmt]โ the date and time of the message is converted to the local time zone, and "fmt" is expanded by the library functionstrftime(3); if the first character inside the brackets is a bang ("!"), the date is formatted ignoring any locale settings.%(fmt)โ the local date and time when the message was received, and "fmt" is expanded by the library functionstrftime(3); if the first character inside the parentheses is a bang ("!"), the date is formatted ignoring any locale settings.%>Xโ right justify the rest of the string and pad with character"X"%|Xโ pad to the end of the line with character"X"%*Xโ soft-fill with character"X"as pad
Date format expressions can be constructed based on relative dates. Using the date formatting operators along with nested conditionals, the date format can be modified based on how old a message is. See the section on "Conditional Dates" for an explanation and examples โจ
ngl, there's a lil footnote about%lyou should know: for mbox/mmdf,"%l"applies to the unprocessed message, and for maildir/mh, the value comes from the "Lines:" header field when present (the meaning is normally the same). Thus the value depends on the encodings used in the different parts of the message and has little meaning in practice. ๐ญ
"Soft-fill" deserves some explanation: Normal right-justification will print everything to the left of the "%>", displaying padding and whatever lies to the right only if there's room. By contrast, soft-fill gives priority to the right-hand side, guaranteeing space to display it and showing padding only if there's still room. If necessary, soft-fill will eat text leftwards to make room for rightward text. iconic behaviour fr ๐
Note that these expandos are supported in "save-hook", "fcc-hook" and "fcc-save-hook", too. ๐ซถ
๐ inews
Type: command Default: ""
If set, specifies the program and arguments used to deliver news posted by NeoMutt. Otherwise, NeoMutt posts article using current connection to news server. The following printf-style sequence is understood:
%aโ account url%pโ port%Pโ port if specified%sโ news server name%Sโ url schema%uโ username
Example:
set inews="/usr/local/bin/inews -hS"
๐ฆ ispell
Type: command Default: "ispell"
How to invoke ispell (GNU's spell-checking software). typo-correcting queen behaviour โจ
๐ธ keep_flagged
Type: boolean Default: no
If set, read messages marked as flagged will not be moved from your spool mailbox to your $mbox mailbox or to the "mbox" specified by a mbox-hook command.
heads up bestie:$keep_flaggedonly has an effect if$moveis set. no$move, no party ๐ฅฒ
๐ local_date_header
Type: boolean Default: yes
If set, the date in the Date header of emails that you send will be in your local timezone. If unset a UTC date will be used instead to avoid leaking information about your current location. ๐ privacy icon behaviour
โญ mail_check
Type: number Default: 5
This variable configures how often (in seconds) NeoMutt should look for new mail. Also see the $timeout variable. five seconds is so real of it
๐ mail_check_recent
Type: boolean Default: yes
When set, NeoMutt will only notify you about new mail that has been received since the last time you opened the mailbox. When unset, NeoMutt will notify you if any new mail exists in the mailbox, regardless of whether you have visited it recently.
๐ mail_check_stats
Type: boolean Default: no
When set, NeoMutt will periodically calculate message statistics of a mailbox while polling for new mail. It will check for unread, flagged, and total message counts. (Note: IMAP mailboxes only support unread and total counts).
Because this operation is more performance intensive, it defaults to unset, and has a separate option, $mail_check_stats_interval, to control how often to update these counts.
Message statistics can also be explicitly calculated by invoking the <check-stats> function. ๐ง
๐ mail_check_stats_interval
Type: number Default: 60
When $mail_check_stats is set, this variable configures how often (in seconds) NeoMutt will update message counts.
๐ mailbox_folder_format
Type: string Default: "%2C %<n?%6n& > %6m %i"
This variable allows you to customize the file browser display to your personal taste. It's only used to customize network mailboxes (e.g. imap). This string is identical in formatting to the one used by "$folder_format". matchy-matchy ๐
๐ง mailcap_path
Type: string list Default: "~/.mailcap:/usr/share/neomutt/mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap"
This variable specifies a list of colon-separated files to consult when attempting to display MIME bodies not directly supported by NeoMutt. The default value is generated during startup: see the "mailcap" section of the manual. ๐ฅ
lowkey notice that /etc/mailcap shows up twice in that default? yeah. it's in the original. we don't ask questions, we just copy it exactly ๐ญ๐
$mailcap_path gets straight-up overridden by the environment variable $MAILCAPS, jsyk. And the default search path? That comes from RFC1524, no cap. ๐ฆ
mailcap_sanitize ๐
Type: boolean Default: yes
If you set this, NeoMutt keeps the characters it'll allow in mailcap % expandos to a nice, well-defined safe set only. It's the safe choice bestie, but honestly we're not 100% sure it doesn't break some of the fancier MIME stuff out there. ๐
DON'T CHANGE THIS SETTING UNLESS YOU ARE REALLY SURE WHAT YOU ARE DOING! like fr fr, that's not a vibe warning, that's a real one. ๐ญ
maildir_check_cur ๐
Type: boolean Default: no
Set it and NeoMutt polls both the new and cur directories of a maildir folder for new messages. Super handy when other programs are touching the folder too (looking at you, dovecot) and moving new messages over to cur. Heads up though: turning this on might slow down polling for new messages in big folders, because NeoMutt has to scan all the cur messages. โญ
maildir_field_delimiter ๐ธ
Type: string Default: ":"
This is the value used as the maildir field delimiter. It's a single character, and it exists to accommodate maildir mailboxes on platforms where : isn't allowed in a filename. On those platforms the recommended alternative is ;. Neomutt supports all non-alphanumeric values except for -, ., \, /. ๐ Note: this only applies to maildir-style mailboxes โ setting it does absolutely nothing to other mailbox types.
maildir_header_cache_verify ๐ฅ
Type: boolean Default: yes
Checks whether Maildir-unaware programs other than NeoMutt have gone and modified maildir files while the header cache is in use. The catch? It costs you one stat(2) per message every single time the folder is opened โ which can be mega slow for NFS folders. ๐
maildir_trash ๐
Type: boolean Default: no
Set it and messages you marked as deleted get saved with the maildir trashed flag instead of being unlinked. Note: only applies to maildir-style mailboxes โ other mailbox types don't care, setting it does nothing there. ๐ซถ
mark_macro_prefix โจ
Type: string Default: "'"
The prefix for macros made with mark-message. So a new macro automatically generated with <mark-message>a gets composed from this prefix plus the letter a. Cute, right? ๐
mark_old ๐
Type: boolean Default: yes
Controls whether NeoMutt marks new unread messages as old when you exit a mailbox without reading them. With it set, next time you fire up NeoMutt those messages show up with an "O" next to them in the index menu, telling you they're old. ๐
markers โญ
Type: boolean Default: yes
Controls how wrapped lines display in the internal pager. Set it and a "+" marker shows up at the beginning of wrapped lines.
Also see the $smart_wrap variable.
mask ๐ฆ
Type: regular expression Default: "!^\.[^.]"
A regular expression used in the file browser, optionally preceded by the not operator "!". Only files whose names match this mask get shown. The match is always case-sensitive, no exceptions. ๐
mbox ๐
Type: mailbox Default: "~/mbox"
Specifies the folder that read mail from your $spool_file folder gets appended into.
Also see the $move variable.
mbox_type ๐
Type: enumeration Default: mbox
The default mailbox type used when creating new folders. Can be any of "mbox", "MMDF", "MH" or "Maildir". โจ
This can also be set using the -m command-line option.
me_too ๐
Type: boolean Default: no
If unset, NeoMutt removes your address (see the "alternates" command) from the list of recipients when you reply to a message. So unset = your own address gets yeeted from the reply list. ๐ญ
menu_context ๐ธ
Type: number Default: 0
Controls how many lines of context you get when scrolling through menus. (Similar to $pager_context.) ๐ซถ
menu_move_off ๐
Type: boolean Default: yes
When unset, the bottom entry of menus will never scroll up past the bottom of the screen โ unless there are fewer entries than lines. When set, the bottom entry is free to move off the bottom. โจ
menu_scroll ๐ฅ
Type: boolean Default: no
When set, menus scroll up or down one line when you try to move across a screen boundary. If unset, the screen gets cleared and the next or previous page of the menu is displayed instead โ which is genuinely useful for slow links so you avoid a ton of redraws. โญ
message_cache_clean ๐ง
Type: boolean Default: no
If set, NeoMutt cleans out obsolete entries from the message cache whenever the mailbox is synchronized. You probably only wanna flip this on every once in a while, since it can be a little slow โ especially for chonky folders. ๐
message_cache_dir ๐
Type: path Default: ""
Point this at a directory and NeoMutt caches copies of messages from your IMAP and POP servers right there. You're free to remove entries at any time, it's your cache, live your life. ๐
When you set this variable to a directory, NeoMutt only needs to fetch every remote message once, and it can do regular expression searches as fast as it does for local folders. Slay.
Also see the $message_cache_clean variable.
message_format ๐
Type: string Default: "%s"
This is the string displayed in the "attachment" menu for attachments of type message/rfc822. For a full listing of the defined printf(3)-like sequences, peep the section on $index_format. ๐ฆ
meta_key ๐
Type: boolean Default: no
If set, NeoMutt is forced to interpret keystrokes with the high bit (bit 8) set as if you'd pressed the Esc key plus whatever key remains after the high bit has been removed. So like, if the key you pressed has an ASCII value of 0xf8, it's treated as if you pressed Esc then "x" โ because removing the high bit from 0xf8 gives you 0x78, which is the ASCII character "x". Math! ๐งฎ
mh_purge ๐
Type: boolean Default: no
When unset, NeoMutt mimics mh's behavior and renames deleted messages to ,<old file name> in mh folders instead of actually deleting them. So the message stays on disk but programs reading the folder just ignore it. If the variable is set, the message files get simply deleted, periodt. ๐ฅ
This option is similar to $maildir_trash for Maildir folders.
mh_seq_flagged โญ
Type: string Default: "flagged"
The name of the MH sequence used for flagged messages. ๐
mh_seq_replied ๐ธ
Type: string Default: "replied"
The name of the MH sequence used to tag replied messages.
mh_seq_unseen ๐ฆ
Type: string Default: "unseen"
The name of the MH sequence used for unseen messages.
mime_forward โจ
Type: quadoption Default: no
When set, the message you're forwarding gets attached as a separate message/rfc822 MIME part instead of being included in the main body of the message. Super useful for forwarding MIME messages so the receiver can properly view the message exactly as it was delivered to you. If you like switching between MIME and not-MIME from mail to mail, set this variable to "ask-no" or "ask-yes". ๐ซถ
Also see $forward_decode and $mime_forward_decode.
mime_forward_decode ๐ฅ
Type: boolean Default: no
Controls the decoding of complex MIME messages into text/plain when forwarding a message while $mime_forward is set. Otherwise $forward_decode gets used instead.
mime_forward_rest ๐
Type: quadoption Default: yes
When you're forwarding multiple attachments of a MIME message from the attachment menu, attachments that can't be decoded in a reasonable manner get attached to the newly composed message โ if this option is set. ๐
mime_type_query_command ๐ง
Type: command Default: ""
This specifies a command to run to determine the mime type of a new attachment while you're composing a message. Unless $mime_type_query_first is set, it's only run if the attachment's extension isn't found in the mime.types file.
The string may contain a "%s", which gets substituted with the attachment filename. NeoMutt adds quotes around the string substituted for "%s" automatically, following shell quoting rules, so you should avoid adding your own. If no "%s" is found in the string, NeoMutt appends the attachment filename to the end of the string. ๐
The command should output a single line containing the attachment's mime type.
Suggested values are "xdg-mime query filetype" or "file -bi". ๐
mime_type_query_first ๐ฆ
Type: boolean Default: no
When set, $mime_type_query_command gets run before the mime.types lookup. โญ
mix_entry_format ๐
Type: string Default: "%4n %c %-16s %a"
This variable describes the format of a remailer line on the mixmaster chain selection screen. The following printf(3)-like sequences are supported:
%aโ the remailer's e-mail address%cโ remailer capabilities%nโ the running number on the menu%sโ the remailer's short name%>Xโ right justify the rest of the string and pad with character"X"%|Xโ pad to the end of the line with character"X"%*Xโ soft-fill with character"X"as pad
(Mixmaster only) ๐ฅ
mixmaster ๐
Type: command Default: "mixmaster"
This variable contains the path to the Mixmaster binary on your system. It's used with various sets of parameters to gather the list of known remailers, and to finally send a message through the mixmaster chain. (Mixmaster only) โจ
move ๐ธ
Type: quadoption Default: no
If this variable is set, NeoMutt moves read messages from your spool mailbox to your $mbox mailbox โ or to the "mbox" specified by a mbox-hook command. ๐ซถ
See also $keep_flagged.
narrow_tree โ Type: boolean โ Default: no
Flip this on and the thread tree gets narrower, so those deep, deep threads actually fit on your screen. Tiny-terminal main character energy, fr fr. ๐ธ
net_inc โ Type: number โ Default: 10
Any operation that expects to move a big pile of data over the network updates its progress every $net_inc kilobytes. Set it to 0 and you get zero progress messages, bestie. Also see $read_inc, $write_inc and $net_inc โ yes, $net_inc again, thatโs literally what the page says. ๐
new_mail_command โ Type: command โ Default: ""
If this is set, NeoMutt calls this command after a new message is received. The values you can format into it are documented under $status_format. Cute automation slay. โจ
news_cache_dir โ Type: path โ Default: "~/.neomutt"
This points at the directory where NeoMutt saves cached news articles and headers. If itโs unset, articles and headers are not saved at all and get reloaded from the server every single time. ๐ญ
news_server โ Type: string โ Default: ""
This one specifies the domain name or address of the NNTP server.
You can also specify a username and an alternative port for each news server, like this: [[s]news://][username[:password]@]server[:port]
This option can also be set using the command line option -g, the environment variable $NNTPSERVER, or by putting the server name in the file "/etc/nntpserver". ๐ฆ
newsgroups_charset โ Type: string โ Default: "utf-8"
Character set of newsgroup descriptions. Simple, iconic, done. ๐
newsrc โ Type: path โ Default: "~/.newsrc"
The file containing info about subscribed newsgroups โ names and indexes of read articles. The following printf-style sequences are understood:
%aโ Account url โ example:news:news.gmane.org%pโ Port โ example:119%Pโ Port if specified โ example:10119%sโ News server name โ example:news.gmane.org%Sโ Url schema โ example:news%uโ Username โ example:username
nm_config_file โ Type: path โ Default: "auto"
Configuration file for notmuch. Use 'auto' to detect configuration. Lowkey magic, highkey convenient. ๐ฅ
nm_config_profile โ Type: string โ Default: ""
Configuration profile for notmuch. Thatโs the whole vibe check. ๐
nm_db_limit โ Type: number โ Default: 0
This variable specifies the default limit used in notmuch queries. ๐
nm_default_url โ Type: string โ Default: ""
This variable specifies the default Notmuch database in the format notmuch://<absolute path>. No cap. ๐
nm_exclude_tags โ Type: string โ Default: ""
Messages tagged with these tags are excluded and not loaded from the notmuch DB into NeoMutt unless you specify them explicitly. Respect the boundaries. ๐
nm_flagged_tag โ Type: string โ Default: "flagged"
This variable specifies the notmuch tag used for flagged messages. Itโs used to count flagged messages in the DB and to set the flagged flag when modifying tags. All other NeoMutt commands use standard (e.g. maildir) flags. ๐ฆ
nm_open_timeout โ Type: number โ Default: 5
This variable specifies the timeout for database open, in seconds. Patience is a virtue, but only for five seconds apparently. ๐
nm_query_type โ Type: string โ Default: "messages"
This variable specifies the default query type โ threads or messages โ used in notmuch queries. โจ
nm_query_window_current_position โ Type: number โ Default: 0
This variable contains the position of the current search for a window-based vfolder. Tracking the main characterโs exact location. ๐
nm_query_window_current_search โ Type: string โ Default: ""
This variable contains the currently set-up notmuch search for a window-based vfolder. ๐ซถ
nm_query_window_duration โ Type: number โ Default: 0
This variable sets the time duration of a windowed notmuch query. Accepted values are all non-negative integers. A value of 0 disables the feature. Periodt. ๐
nm_query_window_enable โ Type: boolean โ Default: no
This variable enables windowed notmuch queries even if the window duration is 0. Chaos? Maybe. But itโs your config. ๐
nm_query_window_or_terms โ Type: string โ Default: ""
This variable contains additional notmuch search terms for messages to be shown regardless of date.
Example: using "notmuch://?query=tag:inbox" as the mailbox and "tag:flagged and tag:unread" as the or terms, NeoMutt will produce a query window such as:
notmuch://?query=tag:inbox and (date:... or (tag:flagged and tag:unread))
That query is giving โI contain multitudes and also a date filter.โ ๐ญ
nm_query_window_timebase โ Type: string โ Default: "week"
This variable sets the time base of a windowed notmuch query. Accepted values are 'minute', 'hour', 'day', 'week', 'month', 'year'. Pick your era. โญ
nm_record โ Type: boolean โ Default: no
This variable specifies whether, when writing a just-sent message to the $record, the message should also be added to the notmuch DB. Replies inherit the notmuch tags from the original message. See $nm_record_tags for how to modify the set of notmuch tags assigned to sent messages written to the record. ๐ธ
nm_record_tags โ Type: string โ Default: ""
This variable specifies the notmuch tag modifications โ addition, removal, toggling โ applied to messages added to the Neomutt record when $nm_record is true. See the description of the <modify-labels> function for the syntax. ๐ฆ
nm_replied_tag โ Type: string โ Default: "replied"
This variable specifies the notmuch tag used for replied messages. Itโs used to set the replied flag when modifying tags. All other NeoMutt commands use standard (e.g. maildir) flags. ๐
nm_unread_tag โ Type: string โ Default: "unread"
This variable specifies the notmuch tag used for unread messages. Itโs used to count unread messages in the DB and to set the unread flag when modifying tags. All other NeoMutt commands use standard (e.g. maildir) flags. ๐
nntp_authenticators โ Type: string โ Default: ""
This is a colon-delimited list of authentication methods NeoMutt may attempt to use to log in to a news server, in the order NeoMutt should try them. Authentication methods are either "user" or any SASL mechanism, e.g. "digest-md5", "gssapi" or "cram-md5". This option is case-insensitive. If itโs unset โ which is the default โ NeoMutt will try all available methods, in order from most-secure to least-secure.
Example:
set nntp_authenticators="digest-md5:user"
Note: NeoMutt will only fall back to other authentication methods if the previous methods are unavailable. If a method is available but authentication fails, NeoMutt will not connect to the IMAP server.
(Yes, it says IMAP server. We are literally in the NNTP section. Not me noticing that. ๐)
nntp_context โ Type: number (long) โ Default: 1000
This variable defines the number of articles that will be in the index when a newsgroup is entered. If the active newsgroup has more articles than this number, the oldest articles will be ignored. It also controls how many article headers will be saved in cache when you quit the newsgroup. ๐
nntp_listgroup โ Type: boolean โ Default: yes
This variable controls whether or not the existence of each article is checked when a newsgroup is entered. Vibe check, but for articles. โจ
nntp_load_description โ Type: boolean โ Default: yes
This variable controls whether or not descriptions for each newsgroup must be loaded when a newsgroup is added to the list โ first time list loading or new newsgroup adding. ๐
nntp_pass โ Type: string โ Default: ""
Your password for the NNTP account. Keep it secret, keep it safe. ๐
nntp_poll โ Type: number โ Default: 60
The time in seconds until any operations on a newsgroup โ except posting a new article โ will cause a recheck for new news. If set to 0, NeoMutt will recheck the newsgroup on each operation in the index (stepping, read article, etc.). ๐ฅ
nntp_user โ Type: string โ Default: ""
Your login name on the NNTP server. If itโs unset and the NNTP server requires authentication, NeoMutt will prompt you for your account name when you connect to the news server. ๐ซถ
pager โ Type: command โ Default: ""
This variable specifies which pager you would like to use to view messages. When itโs empty, NeoMutt uses the built-in pager; otherwise this variable should specify the pathname of the external pager you want to use.
Using an external pager may have some disadvantages: additional keystrokes are necessary because you canโt call NeoMutt functions directly from the pager, and screen resizes cause lines longer than the screen width to be badly formatted in the help menu. ๐ญ
pager_context โ Type: number โ Default: 0
This variable controls the number of lines of context given when displaying the next or previous page in the internal pager. By default, NeoMutt displays the line after the last one on the screen at the top of the next page โ thatโs 0 lines of context.
This variable also specifies the amount of context given for search results. If positive, that many lines will be given before a match; if 0, the match will be top-aligned. ๐
pager_format โ Type: string โ Default: "-%Z- %C/%m: %-20.20n %s%* -- (%P)"
This variable controls the format of the one-line message โstatusโ displayed before each message in either the internal or an external pager. The valid sequences are listed in the $index_format section. Iconic little status line behavior. โญ
pager_index_lines โ Type: number โ Default: 0
...the mini-index that gets drawn when you're chilling in the pager ๐
. The message you're currently on โ unless it's near the top or bottom of the folder โ will land roughly one third of the way down that mini-index, which means you get the context of a few messages before and after you. It's giving "where am I in this thread" energy, and it's genuinely useful, like, for figuring out how many messages you've still got left to read in the current thread. A value of 0 results in no index being shown. Zero, none, nada. ๐
pager_read_delay
Type: number Default: 0
The number of seconds that have to elapse after first opening a new message in the pager before that message gets marked as read. Like a lil' grace period, bestie ๐ซถ
A value of 0 results in the message being marked read unconditionally. For any other value, if you navigate to another message or exit the pager before the timeout hits, the message stays marked unread. This setting is ignored if $pager is set. Noted. ๐
pager_skip_quoted_context
Type: number Default: 0
How many lines of context to show before the unquoted text when you use the <skip-quoted> function. When it's set to a positive number, at most that many lines of the previous quote get displayed. If the previous quote is shorter than that, the whole quote is displayed. No truncation drama. โจ
Heads up: the now deprecated skip_quoted_offset is an alias for this variable, and it should no longer be used. Like, it still works but it's so last season. ๐
pager_stop
Type: boolean Default: no
When set, the internal-pager will not move to the next message when you're at the end of a message and you invoke the <next-page> function. It just... stops. Respects the boundary. Slay. ๐
pattern_format
Type: string Default: "%2n %-15e %d"
This one describes the format of the "pattern completion" menu โจ. The following printf(3)-style sequences are understood:
%dโ pattern description%eโ pattern expression%nโ index number%>Xโ right justify the rest of the string and pad with character"X"%|Xโ pad to the end of the line with character"X"%*Xโ soft-fill with character"X"as pad
pgp_auto_decode
Type: boolean Default: no
If set, NeoMutt will automatically attempt to decrypt traditional PGP messages whenever you perform an operation which ordinarily would result in the contents of the message being operated on ๐.
For example: if you display a pgp-traditional message which hasn't been manually checked with the <check-traditional-pgp> function, NeoMutt will automatically check the message for traditional pgp. It's giving proactive. ๐
pgp_auto_inline
Type: boolean Default: no
This option controls whether NeoMutt generates old-style inline (traditional) PGP encrypted or signed messages under certain circumstances. This can be overridden by use of the pgp menu, when inline is not required. Heads up: the GPGME backend does not support this option ๐.
Note that NeoMutt might automatically use PGP/MIME for messages which consist of more than a single MIME part. NeoMutt can be configured to ask before sending PGP/MIME messages when inline (traditional) would not work.
Also see the $pgp_mime_auto variable.
Also note that using the old-style PGP message format is strongly deprecated. Like, seriously. Don't. (PGP only)
pgp_check_exit
Type: boolean Default: yes
If set, NeoMutt will check the exit code of the PGP subprocess when signing or encrypting. A non-zero exit code means the subprocess failed. Simple as that, fr fr. (PGP only) ๐
pgp_check_gpg_decrypt_status_fd
Type: boolean Default: yes
If set, NeoMutt will check the status file descriptor output of $pgp_decrypt_command and $pgp_decode_command for GnuPG status codes indicating successful decryption. Specifically it checks for:
- the presence of
DECRYPTION_OKAYโ - the absence of
DECRYPTION_FAILEDโ - that all
PLAINTEXToccurs between theBEGIN_DECRYPTIONandEND_DECRYPTIONstatus codes
If unset, NeoMutt will instead match the status fd output against $pgp_decryption_okay. (PGP only)
pgp_clear_sign_command
Type: command Default: ""
This format is used to create an old-style "clearsigned" PGP message. Note that the use of this format is strongly deprecated โ ๏ธ.
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. Note that in this case, %r expands to the search string, which is a list of one or more quoted values such as email address, name, or keyid. (PGP only)
pgp_decode_command
Type: command Default: ""
This format string specifies a command which is used to decode application/pgp attachments ๐ง.
The PGP command formats have their own set of printf(3)-like sequences:
%aโ The value of$pgp_sign_asif set, otherwise the value of$pgp_default_key%fโ Expands to the name of a file containing a message%pโ Expands toPGPPASSFD=0when a pass phrase is needed, to an empty string otherwise. Note: this may be used with a%<...>construct%rโ One or more key IDs (or fingerprints if available)%sโ Expands to the name of a file containing the signature part of amultipart/signedattachment when verifying it
(PGP only) ๐
pgp_decrypt_command
Type: command Default: ""
This command is used to decrypt a PGP encrypted message ๐.
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
Note: when decrypting messages using gpg, a pinentry program needs to be invoked unless the password is cached withingpg-agent. Currently, thepinentry-ttyprogram (usually distributed with gpg) isn't suitable for being invoked by NeoMutt. You are encouraged to use a different pinentry-program when running NeoMutt in order to avoid problems ๐ญ.
See also: https://github.com/neomutt/neomutt/issues/1014
pgp_decryption_okay
Type: regular expression Default: ""
If you assign text to this variable, then an encrypted PGP message is only considered successfully decrypted if the output from $pgp_decrypt_command contains the text ๐ต๏ธ.
Why would you want this? It's used to protect against a spoofed encrypted message โ one with multipart/encrypted headers but containing a block that isn't actually encrypted (e.g. simply signed and ascii armored text). Rude. Not today. ๐
Note that if $pgp_check_gpg_decrypt_status_fd is set, this variable is ignored. (PGP only)
pgp_default_key
Type: string Default: ""
This is the default key-pair to use for PGP operations ๐. It'll be used for encryption (see $postpone_encrypt and $pgp_self_encrypt).
It will also be used for signing unless $pgp_sign_as is set.
The (now deprecated) pgp_self_encrypt_as is an alias for this variable, and should no longer be used. (PGP only)
pgp_encrypt_only_command
Type: command Default: ""
This command is used to encrypt a body part without signing it ๐.
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. Note that in this case, %r expands to the search string, which is a list of one or more quoted values such as email address, name, or keyid. (PGP only)
pgp_encrypt_sign_command
Type: command Default: ""
This command is used to both sign and encrypt a body part โ๏ธ๐. Two jobs, one command, main character energy.
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
pgp_entry_format
Type: string Default: "%4n %t%f %4l/0x%k %-4a %2c %u"
This variable lets you customize the PGP key selection menu to your personal taste ๐. If $crypt_use_gpgme is set, then it applies to the S/MIME key selection menu too. The string is similar to $index_format, but it has its own set of printf(3)-like sequences:
%aโ Algorithm%cโ Capabilities%fโ Flags%iโ Key fingerprint (or long key id if non-existent)%kโ Key id%lโ Key length%nโ Number%pโ Protocol%tโ Trust/validity of the key-uid association%uโ User id%[<s>]โ Date of the key where <s> is anstrftime(3)expression%>Xโ Right justify the rest of the string and pad with character"X"%|Xโ Pad to the end of the line with character"X"%*Xโ Soft-fill with character"X"as pad
See the section "Sending Cryptographically Signed/Encrypted Messages" of the user manual for the meaning of the letters some of these sequences expand to ๐.
(Crypto only) or (PGP only when GPGME disabled)
pgp_export_command
Type: command Default: ""
This command is used to export a public key from the user's key ring ๐ค.
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
pgp_get_keys_command
Type: command Default: ""
This command gets invoked whenever NeoMutt needs to fetch the public key associated with an email address ๐. Of the sequences supported by $pgp_decode_command, %r is the only printf(3)-like sequence used with this format.
Note that in this case, %r expands to the email address, not the public key ID โ because the key ID is unknown, which is literally why NeoMutt is invoking this command in the first place ๐. (PGP only)
pgp_good_sign
Type: regular expression Default: ""
If you assign a text to this variable, then a PGP signature is only considered verified if the output from $pgp_verify_command contains the text โ
.
Use this variable if the exit code from the command is 0 even for bad signatures. Annoying, but here we are. (PGP only)
pgp_ignore_subkeys
Type: boolean Default: yes
...and that's where this part wraps up, bestie โ more coming right up ๐ธ
Setting this variable will cause NeoMutt to ignore OpenPGP subkeys. Instead, the principal key will inherit the subkeys' capabilities. Unset this if you want to play interesting key selection games. (PGP only)
pgp_import_commandโ Type: command, Default:""
This command is used to import a key from a message into the user's public key ring. ๐
This is a format string โ peep the $pgp_decode_command command for the possible printf(3)-like sequences. (PGP only)
pgp_list_pubring_commandโ Type: command, Default:""
This command is used to list the public key ring's contents. The output format must be analogous to the one used by:
gpg --list-keys --with-colons --with-fingerprint
Note: gpg's fixed-list-mode option should not be used. It produces a different date format which may result in NeoMutt showing incorrect key generation dates. ๐
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
pgp_list_secring_commandโ Type: command, Default:""
This command is used to list the secret key ring's contents โ yes, the spicy one ๐ถ๏ธ. The output format must be analogous to the one used by:
gpg --list-keys --with-colons --with-fingerprint
Note: gpg's fixed-list-mode option should not be used. It produces a different date format which may result in NeoMutt showing incorrect key generation dates.
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
pgp_long_idsโ Type: boolean, Default: yes
If set, use 64 bit PGP key IDs; if unset, use the normal 32 bit key IDs. NOTE: Internally, NeoMutt has transitioned to using fingerprints (or long key IDs as a fallback). This option now only controls the display of key IDs in the key selection menu and a few other places. (PGP only)
pgp_mime_autoโ Type: quadoption, Default: ask-yes
This option controls whether NeoMutt will prompt you for automatically sending a (signed/encrypted) message using PGP/MIME when inline (traditional) fails (for any reason). ๐ซถ
Also note that using the old-style PGP message format is strongly deprecated. (PGP only)
pgp_reply_inlineโ Type: boolean, Default: no
Setting this variable will cause NeoMutt to always attempt to create an inline (traditional) message when replying to a message which is PGP encrypted/signed inline. This can be overridden by use of the pgp menu, when inline is not required. This option does not automatically detect if the (replied-to) message is inline; instead it relies on NeoMutt internals for previously checked/flagged messages. ๐
Note that NeoMutt might automatically use PGP/MIME for messages which consist of more than a single MIME part. NeoMutt can be configured to ask before sending PGP/MIME messages when inline (traditional) would not work. See also the $pgp_mime_auto variable.
Also note that using the old-style PGP message format is strongly deprecated. (PGP only)
pgp_retainable_sigsโ Type: boolean, Default: no
If set, signed and encrypted messages will consist of nested multipart/signed and multipart/encrypted body parts. ๐ช
This is useful for applications like encrypted and signed mailing lists, where the outer layer (multipart/encrypted) can be easily removed, while the inner multipart/signed part is retained. (PGP only)
pgp_self_encryptโ Type: boolean, Default: yes
When set, PGP encrypted messages will also be encrypted using the key in $pgp_default_key. (PGP only)
pgp_show_unusableโ Type: boolean, Default: yes
If set, NeoMutt will display non-usable keys on the PGP key selection menu. This includes keys which have been revoked, have expired, or have been marked as "disabled" by the user. ๐ (PGP only)
pgp_sign_asโ Type: string, Default:""
If you have a different key pair to use for signing, you should set this to the signing key. Most people will only need to set $pgp_default_key. It is recommended that you use the keyid form to specify your key (e.g. 0x00112233). (PGP only)
pgp_sign_commandโ Type: command, Default:""
This command is used to create the detached PGP signature for a multipart/signed PGP/MIME body part. โ๏ธ
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
pgp_sort_keysโ Type: sort order, Default: address
Specifies how the entries in the pgp menu are sorted. The following are legal values:
addressโ sort alphabetically by user idkeyidโ sort alphabetically by key iddateโ sort by key creation datetrustโ sort by the trust of the key
If you prefer reverse order of the above values, prefix it with "reverse-". ๐ (PGP only)
pgp_strict_encโ Type: boolean, Default: yes
If set, NeoMutt will automatically encode PGP/MIME signed messages as quoted-printable. Please note that unsetting this variable may lead to problems with non-verifyable PGP signatures, so only change this if you know what you are doing. ๐ฌ (PGP only)
pgp_timeoutโ Type: number (long), Default: 300
The number of seconds after which a cached passphrase will expire if not used. โณ (PGP only)
pgp_use_gpg_agentโ Type: boolean, Default: yes
If set, NeoMutt expects a gpg-agent(1) process will handle private key passphrase prompts. If unset, NeoMutt will prompt for the passphrase and pass it via stdin to the pgp command. ๐
Note that as of version 2.1, GnuPG automatically spawns an agent and requires the agent be used for passphrase management. Since that version is increasingly prevalent, this variable now defaults set.
NeoMutt works with a GUI or curses pinentry program. A TTY pinentry should not be used.
If you are using an older version of GnuPG without an agent running, or another encryption program without an agent, you will need to unset this variable. (PGP only)
pgp_verify_commandโ Type: command, Default:""
This command is used to verify PGP signatures. โ
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
pgp_verify_key_commandโ Type: command, Default:""
This command is used to verify key information from the key selection menu.
This is a format string, see the $pgp_decode_command command for possible printf(3)-like sequences. (PGP only)
pipe_decodeโ Type: boolean, Default: no
Used in connection with the <pipe-message> function. When unset, NeoMutt will pipe the messages without any preprocessing. When set, NeoMutt will attempt to decode the messages first. ๐ฟ
Also see $pipe_decode_weed, which controls whether headers will be weeded when this is set.
pipe_decode_weedโ Type: boolean, Default: yes
For <pipe-message>, when $pipe_decode is set, this further controls whether NeoMutt will weed headers. ๐ฟ
pipe_sepโ Type: string, Default:"\n"
The separator to add between messages when piping a list of tagged messages to an external Unix command.
pipe_splitโ Type: boolean, Default: no
Used in connection with the <pipe-message> function following <tag-prefix>. If this variable is unset, when piping a list of tagged messages NeoMutt will concatenate the messages and will pipe them all concatenated. When set, NeoMutt will pipe the messages one by one. In both cases the messages are piped in the current sorted order, and the $pipe_sep separator is added after each message. ๐งต
pop_auth_try_allโ Type: boolean, Default: yes
If set, NeoMutt will try all available authentication methods. When unset, NeoMutt will only fall back to other authentication methods if the previous methods are unavailable. If a method is available but authentication fails, NeoMutt will not connect to the POP server. ๐
pop_authenticatorsโ Type: string list, Default:""
This is a colon-separated list of authentication methods NeoMutt may attempt to use to log in to an POP server, in the order NeoMutt should try them. Authentication methods are either "user", "apop" or any SASL mechanism, e.g. "digest-md5", "gssapi" or "cram-md5". This option is case-insensitive. If this option is unset (the default) NeoMutt will try all available methods, in order from most-secure to least-secure. ๐
Example:
set pop_authenticators="digest-md5:apop:user"
pop_check_intervalโ Type: number, Default: 60
This variable configures how often (in seconds) NeoMutt should look for new mail in the currently selected mailbox if it is a POP mailbox. โฐ
pop_deleteโ Type: quadoption, Default: ask-no
If set, NeoMutt will delete successfully downloaded messages from the POP server when using the <fetch-mail> function. When unset, NeoMutt will download messages but also leave them on the POP server. ๐
pop_hostโ Type: string, Default:""
The name of your POP server for the <fetch-mail> function. You can also specify an alternative port, username and password, i.e.:
[pop[s]://][username[:password]@]popserver[:port]
where "[...]" denotes an optional part. ๐
pop_lastโ Type: boolean, Default: no
If this variable is set, NeoMutt will try to use the "LAST" POP command for retrieving only unread messages from the POP server when using the <fetch-mail> function. ๐ฆ
pop_oauth_refresh_command
- Type: command
- Default:
""
okay so this is the command NeoMutt runs to generate an OAUTH refresh token so it can authorize your connection to your POP server ๐
it gets run on every single connection attempt that uses the OAUTHBEARER authentication mechanism โ every one, no skipping. See oauth for the deets โจ
pop_pass
- Type: string
- Default:
""
your POP account password goes here ๐ if you leave it unset, NeoMutt will just prompt you for it when you open a POP mailbox, which honestly is the chiller move.
โ ๏ธ warning bestie: only use this option when you're on a fairly secure machine, because the superuser can read your neomuttrc โ even if you're the only one who can read the file. like, they can still get in. be careful ๐ซถ
pop_reconnect
- Type: quadoption
- Default: ask-yes
controls whether NeoMutt will try to reconnect to the POP server if the connection gets lost ๐ญ
pop_user
- Type: string
- Default:
""
your login name on the POP server ๐ this variable defaults to your user name on the local machine.
post_moderated
- Type: quadoption
- Default: ask-yes
if this is set to yes, NeoMutt will post articles to newsgroups that don't have permissions for posting (like moderated ones) ๐ฐ note: if the news server doesn't support posting to that newsgroup, or is totally read-only, that posting just won't have any effect. it's giving "sent into the void" ๐
postpone
- Type: quadoption
- Default: ask-yes
controls whether or not messages get saved in the $postponed mailbox when you decide not to send immediately ๐ if it's set to ask-yes or ask-no, you'll get prompted with Save (postpone) draft message? when you quit from the compose screen.
also see the $recall variable ๐
postpone_encrypt
- Type: boolean
- Default: no
when this is set, postponed messages that are marked for encryption get self-encrypted ๐ NeoMutt will first try to encrypt using whatever's in $pgp_default_key or $smime_default_key. if those aren't set, it'll try the deprecated $postpone_encrypt_as. (Crypto only) ๐
postpone_encrypt_as
- Type: string
- Default:
""
this is a deprecated fall-back variable for $postpone_encrypt โ ๏ธ please use $pgp_default_key or $smime_default_key instead, bestie. (Crypto only) ๐ง
postponed
- Type: mailbox
- Default:
"~/postponed"
NeoMutt lets you indefinitely "postpone sending a message" that you're editing ๐ฆ when you choose to postpone a message, NeoMutt saves it in the mailbox specified by this variable.
also see the $postpone variable โจ
preconnect
- Type: string
- Default:
""
if set, this is a shell command to be executed if NeoMutt fails to establish a connection to the server ๐ฅ๏ธ super useful for setting up secure connections, e.g. with ssh(1). if the command returns a nonzero status, NeoMutt gives up opening the server. example:
set preconnect="ssh -f -q -L 1234:mailhost.net:143 mailhost.net \
sleep 20 < /dev/null > /dev/null"
mailbox "foo" on "mailhost.net" can now be reached as {localhost:1234}foo ๐ฅ
note: for this example to work, you must be able to log in to the remote machine without having to enter a password. no cap.
preferred_languages
- Type: string list
- Default:
""
this variable specifies a list of comma-separated languages ๐ RFC8255: user preferred languages to be searched in parts and display. example:
set preferred_languages="en,fr,de"
- Type: quadoption
- Default: ask-no
controls whether or not NeoMutt really prints messages ๐จ๏ธ it's set to ask-no by default because some people accidentally hit p way too often ๐ญ like, bestie, the struggle is real.
print_command
- Type: command
- Default:
"lpr"
this specifies the command pipe that should be used to print messages ๐
print_decode
- Type: boolean
- Default: yes
used in connection with the <print-message> function ๐ if this option is set, the message is decoded before it's passed to the external command specified by $print_command. if this option is unset, no processing gets applied to the message when printing it. that latter setting may be useful if you're using some advanced printer filter that's able to properly format e-mail messages for printing โจ
also see $print_decode_weed, which controls whether headers will be weeded when this is set ๐
print_decode_weed
- Type: boolean
- Default: yes
for <print-message>, when $print_decode is set, this further controls whether NeoMutt will weed headers ๐ฟ
print_split
- Type: boolean
- Default: no
used in connection with the <print-message> function ๐
if this option is set, the command specified by $print_command is executed once for each message which is to be printed. if this option is unset, the command specified by $print_command is executed only once, and all the messages are concatenated, with a form feed as the message separator ๐
those who use the enscript(1) program's mail-printing mode will most likely want to set this option. iykyk.
prompt_after
- Type: boolean
- Default: yes
if you use an external $pager, setting this variable will cause NeoMutt to prompt you for a command when the pager exits rather than returning to the index menu ๐ฆ if unset, NeoMutt will return to the index menu when the external pager exits.
query_command
- Type: command
- Default:
""
this specifies the command NeoMutt will use to make external address queries ๐ the string may contain a %s, which will be substituted with the query string the user types. NeoMutt will add quotes around the string substituted for %s automatically according to shell quoting rules, so you should avoid adding your own โ don't double up, bestie ๐ if no %s is found in the string, NeoMutt will append the user's query to the end of the string. see "query" (https://neomutt.org/guide/advancedusage.html#query) for more information โจ
query_format
- Type: string
- Default:
"%3c %t %-25.25n %-25.25a | %e"
this variable describes the format of the "query" menu ๐ธ the following printf(3)-style sequences are understood:
%aโ destination address%cโ current entry number%eโ * extra information%nโ destination name%tโ"*"if current entry is tagged, a space otherwise%Yโ comma-separated tags%>Xโ right justify the rest of the string and pad with"X"%|Xโ pad to the end of the line with"X"%*Xโ soft-fill with character"X"as pad
for an explanation of "soft-fill", see the $index_format documentation ๐
- = can be optionally printed if nonzero, see the
$status_formatdocumentation. ๐
quit
- Type: quadoption
- Default: yes
this variable controls whether quit and exit actually quit from NeoMutt ๐ช if this option is set, they do quit. if it's unset, they have no effect. and if it's set to ask-yes or ask-no, you get prompted for confirmation when you try to quit.
in order to quit from NeoMutt if this variable is unset, you must send the signal SIGINT to NeoMutt ๐ณ this can usually be achieved by pressing CTRL+C in the terminal. dramatic but valid.
quote_regex
- Type: regular expression
- Default:
"^([ \t]*[|>:}#])+"
a regular expression used in the internal pager to determine quoted sections of text in the body of a message ๐ quoted text may be filtered out using the <toggle-quoted> command, or colored according to the color quoted family of directives ๐
higher levels of quoting may be colored differently (color quoted1, color quoted2, etc.) โจ the quoting level is determined by removing the last character from the matched text and recursively reapplying the regular expression until it fails to produce a match. recursive queen behavior fr fr.
match detection may be overridden by the $smileys regular expression ๐
read_inc
- Type: number
- Default: 10
if set to a value greater than 0, NeoMutt will display which message it's currently on when reading a mailbox or when performing search actions such as search and limit ๐ the message is printed after this many messages have been read or searched (e.g., if set to 25, NeoMutt will print a message when it's at message 25, and then again when it gets to message 50). this variable is meant to indicate progress when reading or searching large mailboxes which may take some time โณ when set to 0, only a single message will appear before the reading the mailbox.
also see the $write_inc, $net_inc and $time_inc variables and the "tuning" section of the manual for performance considerations ๐
read_only
- Type: boolean
- Default: no
if set, all folders are opened in read-only mode ๐ no edits, no chaos.
real_name
- Type: string
- Default:
""
this variable specifies what "real" or "personal" name should be used when sending messages ๐
if not specified, then the user's "real name" will be read from /etc/passwd ๐ this option will not be used, if "$from" is set.
recall
- Type: quadoption
- Default: ask-yes
controls whether or not NeoMutt recalls postponed messages when composing a new message ๐
setting this variable to yes is not generally useful, and thus not recommended โ ๏ธ note that the <recall-message> function can be used to manually recall postponed messages.
also see $postponed variable โจ
record
- Type: mailbox
- Default:
"~/sent"
this specifies the file into which your outgoing messages should be appended ๐ค (this is meant as the primary method for saving a copy of your messages, but another way to do this is using the my_hdr command to create a "Bcc:" field with your email address in it.) ๐
...and like, to finish what we were saying about $record ๐ โ the value of $record is overridden by the $force_name and $save_name variables, and the "fcc-hook" command. Also see $copy and $write_bcc. That's it, she's done, moving on ๐
๐ธ reflow_space_quotes
Type: boolean โ Default: yes
Okay so this one controls how quotes from format=flowed messages get displayed in the pager and when you're replying (that's when $text_flowed is unset, bestie). When it's set, it adds spaces after each level of quote marks, so >>>foo turns into > > > foo โจ
Note: if$reflow_textis unset, this option literally has no effect. Also, it doesn't affect replies when$text_flowedis set. Just so you know ๐ซถ
๐ฆ reflow_text
Type: boolean โ Default: yes
When set, NeoMutt will reformat paragraphs in text/plain parts marked format=flowed. If it's unset, NeoMutt displays paragraphs unaltered, exactly how they appear in the message body. See RFC3676 for the deets on the format=flowed format ๐ฌ
Also see $reflow_wrap, and $wrap.
๐ reflow_wrap
Type: number โ Default: 78
This variable controls the maximum paragraph width when reformatting text/plain parts when $reflow_text is set. Here's the vibe check:
- When the value is
0, paragraphs get wrapped at the terminal's right margin. - A positive value sets the paragraph width relative to the left margin.
- A negative value sets the paragraph width relative to the right margin.
Be aware that the reformatted lines of a paragraph are still subject to$wrap. So like, if$reflow_wrapis40and$wrapis30, then the paragraph gets reformatted to 40 characters a line (due to$reflow_wrap) and afterwards each 40-character-line is split at 30 characters (due to$wrap) โ resulting in alternating line lengths of 30 and 10 characters ๐ญ iconic behavior honestly.
Also see $wrap.
๐ reply_regex
Type: regular expression โ Default: "^((re|aw|sv)(\[[0-9]+\])*:[ \t]*)*"
A regular expression used to recognize reply messages when threading and replying. The default value corresponds to the standard Latin Re: prefix ๐
This value may have been localized by the translator for your locale, adding other prefixes that are common in the locale. You can add your own prefixes by appending inside "^(re)". For example: "^(re|sv)" or "^(re|aw|sv)".
The second parenthesized expression matches zero or more bracketed numbers following the prefix, such as Re[1]: . The initial "\\[" means a literal left-bracket character. Note the backslash must be doubled when used inside a double quoted string in the neomuttrc. "[0-9]+" means one or more numbers. "\\]" means a literal right-bracket. Finally the whole parenthesized expression has a "*" suffix, meaning it can occur zero or more times.
The last part matches a colon followed by an optional space or tab. Note "\t" is converted to a literal tab inside a double quoted string. If you use a single quoted string, you would have to type an actual tab character, and would need to convert the double-backslashes to single backslashes ๐ซ
Note: the result of this regex match against the subject is stored in the header cache. Mutt isn't smart enough to invalidate a header cache entry based on changing $reply_regex, so if you aren't seeing correct values in the index, try temporarily turning off the header cache. If that fixes the problem, then once the variable is set to your liking, remove your stale header cache files and turn the header cache back on. Slay ๐ฅ
๐ reply_self
Type: boolean โ Default: no
If unset and you're replying to a message sent by you, NeoMutt will assume you want to reply to the recipients of that message rather than to yourself. (Honestly, relatable โ replying to yourself is a whole vibe ๐)
Also see the "alternates" command.
โญ reply_to
Type: quadoption โ Default: ask-yes
If set, when replying to a message, NeoMutt will use the address listed in the Reply-to: header as the recipient of the reply. If unset, it will use the address in the From: header field instead. This option is useful for reading a mailing list that sets the Reply-To: header field to the list address and you want to send a private message to the author of a message ๐
๐ง reply_with_xorig
Type: boolean โ Default: no
This variable provides a toggle. When active, the From: header will be extracted from the current mail's 'X-Original-To:' header. This setting does not have precedence over "reverse_real_name" โจ
Assuming 'fast_reply' is disabled, this option will prompt the user with a prefilled From: header.
๐ resolve
Type: boolean โ Default: yes
When set, the cursor in a list will be automatically advanced to the next (possibly undeleted) message/attachment/entry whenever a command that modifies the current message/attachment/entry is executed.
Examples of such commands are tagging a message, deleting an entry, or saving an attachment. It's giving "keep it moving" energy fr fr ๐จ
๐ resume_draft_files
Type: boolean โ Default: no
If set, draft files (specified by -H on the command line) are processed similarly to when resuming a postponed message. Recipients are not prompted for; send-hooks are not evaluated; no alias expansion takes place; user-defined headers and signatures are not added to the message. Very much a "no thoughts, head empty, just send it" mode ๐
๐ resume_edited_draft_files
Type: boolean โ Default: yes
If set, draft files previously edited (via -E -H on the command line) will have $resume_draft_files automatically set when they are used as a draft file again ๐
The first time a draft file is saved, NeoMutt will add a header, X-Mutt-Resume-Draft to the saved file. The next time the draft file is read in, if NeoMutt sees the header, it will set $resume_draft_files.
This option is designed to prevent multiple signatures, user-defined headers, and other processing effects from being made multiple times to the draft file. She's just protecting your draft from getting the same signature stapled on like five times ๐
๐ธ reverse_alias
Type: boolean โ Default: no
This variable controls whether or not NeoMutt will display the "personal" name from your aliases in the index menu if it finds an alias that matches the message's sender. For example, if you have the following alias:
alias juser abd30425@somewhere.net (Joe User)
and then you receive mail which contains the following header:
From: abd30425@somewhere.net
It would be displayed in the index menu as "Joe User" instead of "abd30425@somewhere.net." This is useful when the person's e-mail address is not human friendly ๐ซถ honestly a public service.
๐ฆ reverse_name
Type: boolean โ Default: no
It may sometimes arrive that you receive mail to a certain machine, move the messages to another machine, and reply to some the messages from there. If this variable is set, the default From: line of the reply messages is built using the address where you received the messages you are replying to if that address matches your "alternates". If the variable is unset, or the address that would be used doesn't match your "alternates", the From: line will use your address on the current machine โจ
Also see the "alternates" command and $reverse_real_name.
๐ reverse_real_name
Type: boolean โ Default: yes
This variable fine-tunes the behavior of the $reverse_name feature ๐
- When it is unset, NeoMutt will remove the real name part of a matching address. This allows the use of the email address without having to also use what the sender put in the real name field.
- When it is set, NeoMutt will use the matching address as-is.
In either case, a missing real name will be filled in afterwards using the value of $real_name.
๐ง rfc2047_parameters
Type: boolean โ Default: yes
When this variable is set, NeoMutt will decode RFC2047-encoded MIME parameters. You want to set this variable when NeoMutt suggests you to save attachments to files named like:
=?iso-8859-1?Q?file=5F=E4=5F991116=2Ezip?=
=?utf-8?Q?z=C4=99ta.png?=
(like bestie what even IS that ๐ญ)
When this variable is set interactively, the change won't be active until you change folders. Noted ๐ซก
Note that this use of RFC2047's encoding is explicitly prohibited by the standard, but nevertheless encountered in the wild and produced by, e.g., Outlook. (Outlook catching strays and honestly deserved ๐)
Also note that setting this parameter will not have the effect that NeoMutt generates this kind of encoding. Instead, NeoMutt will unconditionally use the encoding specified in RFC2231.
๐ save_address
Type: boolean โ Default: no
If set, NeoMutt will take the sender's full address when choosing a default folder for saving a mail. If $save_name or $force_name is set too, the selection of the Fcc folder will be changed as well.
๐ save_empty
Type: boolean โ Default: yes
When unset, mailboxes which contain no saved messages will be removed when closed (the exception is $spool_file which is never removed). If set, mailboxes are never removed. Choose your fighter, babes โจ
Note: this only applies to mbox and MMDF folders. NeoMutt does not delete MH and Maildir directories.
โญ save_history
Type: number โ Default: 0
This variable controls the size of the history (per category) saved in the $history_file file ๐
Setting this to a value greater than $history is possible. However, there will never be more than $history entries to select from even if more are recorded in the history file. So like, don't get too excited ๐
๐ save_name
Type: boolean โ Default: no
This variable controls how copies of outgoing messages are saved. When set, a check is made to see if a mailbox specified by the recipient address exists (this is done by searching for a mailbox in the $folder directory with the username part of the recipient address). If the mailbox exists, the outgoing message will be saved to that mailbox, otherwise the message is saved to the $record mailbox ๐ซถ
Also see the $force_name variable.
save_unsubscribed
Type: boolean โ Default: no
Set this and NeoMutt will save the deets about unsubscribed newsgroups into the "newsrc" file and into cache. Like, it remembers the ones you ghosted ๐
score
Type: boolean โ Default: yes
Unset this bad boy and scoring is fully turned off. Super handy when you wanna selectively kill scoring for certain folders while you're out here using $score_threshold_delete and friends ๐ฏ
score_threshold_delete
Type: number โ Default: -1
Any message that got assigned a score equal to or lower than this value gets automatically marked for deletion by NeoMutt. And since NeoMutt scores are always greater than or equal to zero, the default setting of this variable will never mark a message for deletion. No cap, it's a no-op at -1 ๐
score_threshold_flag
Type: number โ Default: 9999
Messages with a score greater than or equal to this value get automatically marked "flagged". Star 'em and slay โญ
score_threshold_read
Type: number โ Default: -1
Messages with a score equal to or lower than this value get automatically marked as read by NeoMutt. Again: NeoMutt scores are always โฅ zero, so at the default -1 this thing will never mark a message read ๐
search_context
Type: number โ Default: 0
For the pager, this tells NeoMutt how many lines to show before your search results. By default, search results are top-aligned ๐
send_charset
Type: string list โ Default: "us-ascii:iso-8859-1:utf-8"
A colon-delimited list of character sets for outgoing messages. NeoMutt uses the first character set that the text can be converted into exactly. So if your $charset isn't "iso-8859-1" and your recipients might not understand "UTF-8", bestie, pls include a widely used standard character set in the list (something like "iso-8859-2", "koi8-r" or "iso-2022-jp") โ either instead of or after "iso-8859-1" ๐
And if the text straight-up can't be converted into one of these exactly, NeoMutt falls back to $charset. Failsafe era ๐ง
sendmail
Type: command โ Default: "/usr/sbin/sendmail -oem -oi"
Specifies the program and arguments used to deliver mail that NeoMutt sends. NeoMutt expects that the program you name will interpret additional arguments as recipient addresses. NeoMutt appends all the recipients after adding a -- delimiter (if it's not already there). Other flags โ think $use_8bit_mime, $use_envelope_from, $dsn_notify, $dsn_return โ get added before that delimiter.
Note: this command is invoked differently from most other commands in NeoMutt. It's tokenized by space and invoked directly via execvp(3) with an array of arguments โ so commands or arguments with spaces in them are not supported. The shell is not used to run the command, so shell quoting is also not supported. Periodt ๐ซถ
See also: $write_bcc.
sendmail_wait
Type: number โ Default: 0
How many seconds to wait for the $sendmail process to finish before giving up and yeeting delivery into the background โณ
NeoMutt reads the value like this:
>0โ number of seconds to wait for sendmail to finish before continuing0โ wait forever for sendmail to finish<0โ always put sendmail in the background, no waiting at all
Heads up: if you specify anything other than 0, the output of the child process gets dropped in a temporary file. If something goes wrong, you'll be told where to find that output ๐
shell
Type: command โ Default: "/bin/sh"
The command used when spawning a subshell. If it's not specified, the user's login shell from /etc/passwd is used ๐
show_multipart_alternative
Type: string โ Default: ""
- Set it to
infoand the multipart/alternative information gets shown. - Set it to
inlineand all of the alternatives are displayed. - Leave it unset and the default behavior is to show only the chosen alternative โจ
show_new_news
Type: boolean โ Default: yes
Set this and the news server gets asked for new newsgroups when you enter the browser. Otherwise, that only happens once per news server. It also controls whether the number of new articles in subscribed newsgroups gets checked at that time ๐ฐ
show_only_unread
Type: boolean โ Default: no
Set it and only subscribed newsgroups containing unread articles show up in the browser. Filtered, lowkey ๐ฆ
sidebar_component_depth
Type: number โ Default: 0
By default the sidebar shows the mailbox's path, relative to the $folder variable. This specifies how many parent directories to hide from the sidebar display. For example: if a maildir normally shows in the sidebar as dir1/dir2/dir3/maildir, setting sidebar_component_depth=2 will display it as dir3/maildir โ the 2 highest directories got truncated bestie โ๏ธ
See also: $sidebar_short_path.
sidebar_delim_chars
Type: string โ Default: "/."
This is the list of characters you wanna treat as folder separators when displaying paths in the sidebar.
Local mail is often arranged in directories: 'dir1/dir2/mailbox'.
set sidebar_delim_chars='/'
IMAP mailboxes are often named: 'folder1.folder2.mailbox'.
set sidebar_delim_chars='.'
See also: $sidebar_short_path, $sidebar_folder_indent, $sidebar_indent_string.
sidebar_divider_char
Type: string โ Default: "|"
The default is a Unicode vertical line ๐
This specifies the characters drawn between the sidebar (when it's visible) and the other NeoMutt panels. ASCII and Unicode line-drawing characters are supported.
You can set the divider char to an empty string for some extra space. And if it's empty, setting the sidebar_background color may help you tell the sidebar apart from the other panels ๐จ
sidebar_folder_indent
Type: boolean โ Default: no
Set this to indent mailboxes in the sidebar. Cute lil nesting moment ๐
See also: $sidebar_short_path, $sidebar_indent_string, $sidebar_delim_chars.
sidebar_format
Type: string โ Default: "%D%* %n"
This lets you customize the sidebar display. It's similar to $index_format, but it's got its own set of printf(3)-like sequences:
%aโ Alert:1if user is notified of new mail%Bโ Name of the mailbox%dโ* @Number of deleted messages in the mailbox%Dโ Descriptive name of the mailbox%Fโ*Number of flagged messages in the mailbox%Lโ* @Number of messages after limiting%nโ"N"if mailbox has new mail," "(space) otherwise%Nโ*Number of unread messages in the mailbox (seen or unseen)%oโ*Number of old messages in the mailbox (unread, seen)%pโ Poll:1if Mailbox is checked for new mail%rโ*Number of read messages in the mailbox (read, seen)%Sโ*Size of mailbox (total number of messages)%tโ* @Number of tagged messages in the mailbox%Zโ*Number of new messages in the mailbox (unread, unseen)%!โ"!": one flagged message;"!!": two flagged messages;"n!": n flagged messages (for n > 2). Otherwise prints nothing.%>Xโ Right justify the rest of the string and pad with"X"%|Xโ Pad to the end of the line with"X"%*Xโ Soft-fill with character"X"as pad
* = Can be optionally printed if nonzero
@ = Only applicable to the current folder
In order to use %S, %N, %F, and %!, $mail_check_stats must be set. When it is, a suggested value for this option is "%B%<F? [%F]>%* %<N?%N/>%S" ๐
sidebar_indent_string
Type: string โ Default: " "
This is the string used to indent mailboxes in the sidebar. Defaults to two spaces, iconic ๐ซถ
See also: $sidebar_short_path, $sidebar_folder_indent, $sidebar_delim_chars.
sidebar_new_mail_only
Type: boolean โ Default: no
When set, the sidebar will only display mailboxes that contain new, or flagged, mail. Keeping it curated โจ
See also: sidebar_pin, $sidebar_non_empty_mailbox_only.
sidebar_next_new_wrap
Type: boolean โ Default: no
When set, the <sidebar-next-new> command will not stop at the end of the list of mailboxes โ it wraps around to the beginning. The <sidebar-prev-new> command is similarly affected, wrapping around to the end of the list ๐
sidebar_non_empty_mailbox_only
Type: boolean โ Default: no
When set, the sidebar will only display mailboxes that contain one or more mails. No empty vibes allowed ๐ซ
See also: $sidebar_new_mail_only, sidebar_pin.
sidebar_on_right
Type: boolean โ Default: no
When set, the sidebar appears on the right-hand side of the screen. Main character placement, honestly โก๏ธ๐
sidebar_short_path
Type: boolean โ Default: no
By default the sidebar shows the mailbox's path, relative to the $folder variable. Setting sidebar_shortpath=yes will shorten the names relative to the previous name. Here's the example, bestie:
shortpath=no shortpath=yes shortpath=yes, folderindent=yes, indentstr=".."
fruit fruit fruit
fruit.apple apple ..apple
fruit.banana banana ..banana
fruit.cherry cherry ..cherry
See also: $sidebar_delim_chars, $sidebar_folder_indent, $sidebar_indent_string, $sidebar_component_depth.
sidebar_sort_method
Type: sort order โ Default: order
sidebar_sort_method</p>
Type: string โ Default: unsorted โ wait no bestie, the original doesn't list a default line here, it just tells you the sort behavior ๐
Specifies how to sort mailbox entries in the sidebar. By default, the entries are unsorted. Valid values:
pathโ alphabeticallycountโ all message countflaggedโ flagged message countunreadโ unread message countunsortedโ literally just vibes, no order
You may optionally use the reverse- prefix to specify reverse sorting order, like:
set sidebar_sort_method=reverse-path
The alpha and name values are synonyms for path. The new value is a synonym for unread. Slay, synonyms ๐ฆ
sidebar_visible</p>
Type: boolean Default: no
This specifies whether or not to show sidebar. The sidebar shows a list of all your mailboxes. It's giving "table of contents but make it cute." โจ
See also: $sidebar_format, $sidebar_width
sidebar_width</p>
Type: number Default: 30
This controls the width of the sidebar. It is measured in screen columns. For example: sidebar_width=20 could display 20 ASCII characters, or 10 Chinese characters. Math is mathing, no cap ๐
sig_dashes</p>
Type: boolean Default: yes
If set, a line containing -- (note the trailing space, bestie, that space is load-bearing) will be inserted before your $signature. It is strongly recommended that you not unset this variable unless your signature contains just your name. The reason for this is because many software packages use -- \n to detect your signature. For example, NeoMutt has the ability to highlight the signature in a different color in the built-in pager. So likeโฆ leave it alone, it's iconic for a reason ๐
sig_on_top</p>
Type: boolean Default: no
If set, the signature will be included before any quoted or forwarded text.
It is strongly recommended that you do not set this variable unless you really know what you are doing, and are prepared to take some heat from netiquette guardians. ๐ญ They will come for you. Do not test them.
signature</p>
Type: path Default: "~/.signature"
Specifies the filename of your signature, which is appended to all outgoing messages. If the filename ends with a pipe (|), it is assumed that filename is a shell command and input should be read from its standard output. Piping it in, we love a flexible queen ๐ซถ
simple_search</p>
Type: string Default: "~f %s | ~s %s"
Specifies how NeoMutt should expand a simple search into a real search pattern. A simple search is one that does not contain any of the ~ pattern operators. See "patterns" for more information on search patterns.
simple_search applies to several functions, e.g. <delete-pattern>, <limit>, searching in the index, and all of the index colors. It's everywhere, it's booked and busy ๐
For example, if you simply type joe at a search or limit prompt, NeoMutt will automatically expand it to the value specified by this variable by replacing %s with the supplied string. For the default value, joe would be expanded to:
~f joe | ~s joe
size_show_bytes</p>
Type: boolean Default: no
If set, message sizes will display bytes for values less than 1 kilobyte. See formatstrings-size.
size_show_fractions</p>
Type: boolean Default: yes
If set, message sizes will be displayed with a single decimal value for sizes from 0 to 10 kilobytes and 1 to 10 megabytes. See formatstrings-size.
size_show_mb</p>
Type: boolean Default: yes
If set, message sizes will display megabytes for values greater than or equal to 1 megabyte. See formatstrings-size.
size_units_on_left</p>
Type: boolean Default: no
If set, message sizes units will be displayed to the left of the number. See formatstrings-size. Left-aligned units, a bold aesthetic choice ๐
sleep_time</p>
Type: number Default: 1
Specifies time, in seconds, to pause while displaying certain informational messages, while moving from folder to folder and after expunging messages from the current folder. The default is to pause one second, so a value of zero for this option suppresses the pause. Set it to 0 if you simply cannot wait, we get it โญ
smart_wrap</p>
Type: boolean Default: yes
Controls the display of lines longer than the screen width in the internal pager. If set, long lines are wrapped at a word boundary. If unset, lines are simply wrapped at the screen edge. Also see the $markers variable. Word boundaries are the moment, fr fr ๐
smileys</p>
Type: regular expression Default: "(>From )|(:[-^]?[][)(><}{|/DP])"
The pager uses this variable to catch some common false positives of $quote_regex, most notably smileys, and not consider a line quoted text if it also matches $smileys. This mostly happens at the beginning of a line. Imagine getting marked as quote just for having a face :) โ not on her watch ๐ญ
smime_ask_cert_label</p>
Type: boolean Default: yes
This flag controls whether you want to be asked to enter a label for a certificate about to be added to the database or not. It is set by default. (S/MIME only) ๐
smime_ca_location</p>
Type: path Default: ""
This variable contains the name of either a directory, or a file which contains trusted certificates for use with OpenSSL. (S/MIME only)
smime_certificates</p>
Type: path Default: ""
Since for S/MIME there is no pubring/secring as with PGP, NeoMutt has to handle storage and retrieval of keys by itself. This is very basic right now, and keys and certificates are stored in two different directories, both named as the hash-value retrieved from OpenSSL. There is an index file which contains mailbox-address keyid pairs, and which can be manually edited. This option points to the location of the certificates. (S/MIME only) ๐๏ธ
smime_decrypt_command</p>
Type: command Default: ""
This format string specifies a command which is used to decrypt application/pkcs7-mime attachments.
The OpenSSL command formats have their own set of printf(3)-like sequences similar to PGP's:
%aโ The algorithm used for encryption.%cโ One or more certificate IDs.%Cโ CA location: Depending on whether$smime_ca_locationpoints to a directory or file, this expands to-CApath $smime_ca_locationor-CAfile $smime_ca_location.%dโ The message digest algorithm specified with$smime_sign_digest_alg.%fโ Expands to the name of a file containing a message.%iโ Intermediate certificates%kโ The key-pair specified with$smime_default_key%sโ Expands to the name of a file containing the signature part of amultipart/signedattachment when verifying it.
For examples on how to configure these formats, see the smime.rc in the samples/ subdirectory which has been installed on your system alongside the documentation. (S/MIME only) ๐ง
smime_decrypt_use_default_key</p>
Type: boolean Default: yes
If set (default) this tells NeoMutt to use the default key for decryption. Otherwise, if managing multiple certificate-key-pairs, NeoMutt will try to use the mailbox-address to determine the key to use. It will ask you to supply a key, if it can't find one. (S/MIME only) ๐
smime_default_key</p>
Type: string Default: ""
This is the default key-pair to use for S/MIME operations, and must be set to the keyid (the hash-value that OpenSSL generates) to work properly.
It will be used for encryption (see $postpone_encrypt and $smime_self_encrypt). If GPGME is enabled, this is the key id displayed by gpgsm.
It will be used for decryption unless $smime_decrypt_use_default_key is unset.
It will also be used for signing unless $smime_sign_as is set.
The (now deprecated) smime_self_encrypt_as is an alias for this variable, and should no longer be used. (S/MIME only) โ ๏ธ Deprecated means stop using it, bestie, it's not a vibe anymore.
smime_encrypt_command</p>
Type: command Default: ""
This command is used to create encrypted S/MIME messages.
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only)
Encrypt the message to $smime_default_key too. (S/MIME only)
smime_encrypt_with</p>
Type: string Default: "aes256"
This sets the algorithm that should be used for encryption. Valid choices are aes128, aes192, aes256, des, des3, rc2-40, rc2-64, rc2-128. (S/MIME only) AES-256 serving main character energy, as she should ๐
smime_get_cert_command</p>
Type: command Default: ""
This command is used to extract X509 certificates from a PKCS7 structure.
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only)
smime_get_cert_email_command</p>
Type: command Default: ""
This command is used to extract the mail address(es) used for storing X509 certificates, and for verification purposes (to check whether the certificate was issued for the sender's mailbox).
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only) ๐ง
smime_get_signer_cert_command</p>
Type: command Default: ""
This command is used to extract only the signers X509 certificate from a S/MIME signature, so that the certificate's owner may get compared to the email's From: field.
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only) ๐ต๏ธโโ๏ธ
smime_import_cert_command</p>
Type: command Default: ""
This command is used to import a certificate via smime_keys.
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. NOTE: %c and %k will default to $smime_sign_as if set, otherwise $smime_default_key. (S/MIME only)
smime_is_default</p>
Type: boolean Default: no
...and we're picking right back up mid-sentence, bestie โ no new heading, we're still on the same variable from last time ๐
The default behavior of NeoMutt is to use PGP on all auto-sign/encryption operations. To override and to use OpenSSL instead this must be set. However, this has no effect while replying, since NeoMutt will automatically select the same application that was used to sign/encrypt the original message. (Note that this variable can be overridden by unsetting $crypt_auto_smime.) (S/MIME only)
smime_keys
- Type: path
- Default:
""
Okay so here's the tea: for S/MIME there's literally no pubring/secring like PGP has, so NeoMutt has to handle storage and retrieval of keys/certs all by itself ๐ This is very basic right now, and stores keys and certificates in two different directories, both named as the hash-value retrieved from OpenSSL. There's an index file which contains a mailbox-address keyid pair, and which can be manually edited (yes, by you, with your own hands โจ).
This option points to the location of the private keys. (S/MIME only)
smime_pk7out_command
- Type: command
- Default:
""
This command is used to extract PKCS7 structures of S/MIME signatures, in order to extract the public X509 certificate(s) ๐
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only)
smime_self_encrypt
- Type: boolean
- Default: yes
When set, S/MIME encrypted messages will also be encrypted using the certificate in $smime_default_key. (S/MIME only) โ yes, encrypting to yourself too, self-care era ๐
smime_sign_as
- Type: string
- Default:
""
If you have a separate key to use for signing, you should set this to the signing key. Most people will only need to set $smime_default_key. (S/MIME only)
smime_sign_command
- Type: command
- Default:
""
This command is used to created S/MIME signatures of type multipart/signed, which can be read by all mail clients ๐ฆ (yes, the original says "created", we're keeping it, character for character, no cap)
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only)
smime_sign_digest_alg
- Type: string
- Default:
"sha256"
This sets the algorithm that should be used for the signature message digest. Valid choices are:
"md5""sha1""sha224""sha256""sha384""sha512"
(S/MIME only)
smime_timeout
- Type: number
- Default:
300
The number of seconds after which a cached passphrase will expire if not used. (S/MIME only) โณ
smime_verify_command
- Type: command
- Default:
""
This command is used to verify S/MIME signatures of type multipart/signed.
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only)
smime_verify_opaque_command
- Type: command
- Default:
""
This command is used to verify S/MIME signatures of type application/pkcs7-mime.
This is a format string, see the $smime_decrypt_command command for possible printf(3)-like sequences. (S/MIME only)
smtp_authenticators
- Type: string list
- Default:
""
This is a colon-separated list of authentication methods NeoMutt may attempt to use to log in to an SMTP server, in the order NeoMutt should try them ๐ฏ Authentication methods are any SASL mechanism, e.g. "plain", "digest-md5", "gssapi" or "cram-md5". This option is case-insensitive. If it is "unset" (the default) NeoMutt will try all available methods, in order from most-secure to least-secure. Support for the "plain" mechanism is bundled; other mechanisms are provided by an external SASL library (look for '+sasl' in the output of neomutt -v).
Example:
set smtp_authenticators="digest-md5:cram-md5"
smtp_oauth_refresh_command
- Type: command
- Default:
""
The command to run to generate an OAUTH refresh token for authorizing your connection to your SMTP server. This command will be run on every connection attempt that uses the OAUTHBEARER or XOAUTH2 authentication mechanisms. See "oauth" for details. ๐
smtp_pass
- Type: string
- Default:
""
Specifies the password for your SMTP account. If unset, NeoMutt will prompt you for your password when you first send mail via SMTP. See $smtp_url to configure NeoMutt to send mail via SMTP.
โ ๏ธ Warning: you should only use this option when you are on a fairly secure machine, because the superuser can read your neomuttrc even if you are the only one who can read the file. Like, fr fr, everyone with root can see it ๐ญ
smtp_url
- Type: string
- Default:
""
Defines the SMTP smarthost where sent messages should relayed for delivery. This should take the form of an SMTP URL, e.g.:
smtp[s]://[user[:pass]@]host[:port]
where "[...]" denotes an optional part. Setting this variable overrides the value of the $sendmail variable.
Also see $write_bcc. ๐
smtp_user
- Type: string
- Default:
""
The username for the SMTP server.
This variable defaults to your user name on the local machine. ๐ซถ
socket_timeout
- Type: number
- Default:
30
Causes NeoMutt to timeout any socket connect/read/write operation (for IMAP, POP or SMTP) after this many seconds. A negative value causes NeoMutt to wait indefinitely โ forever and ever, main character patience energy โฑ๏ธ
sort
- Type: sort order
- Default: date
Specifies how to sort messages in the "index" menu. Valid values are:
datedate-receivedfromscoresizespamsubjectthreadstounsorted
You may optionally use the "reverse-" prefix to specify reverse sorting order, or the "last-" prefix to sort threads based on the corresponding attribute of the last descendant rather than the thread root. If both prefixes are in use, "reverse-" must come before "last-". The "last-" prefix has no effect on a flat view.
Any ties in the primary sort are broken by $sort_aux. When $use_threads is "threads" or "reverse", $sort controls the sorting between threads, and $sort_aux controls the sorting within a thread.
The "date-sent" value is a synonym for "date". The "mailbox-order" value is a synonym for "unsorted".
The values of "threads" and "reverse-threads" are legacy options, which cause the value of $sort_aux to also control sorting between threads, and they may not be used with the "last-" prefix. The preferred way to enable a threaded view is via $use_threads. This variable can also be set via the <sort-mailbox> and <sort-reverse> functions.
Note: When$use_threadsis"threads", the last thread sorts to the bottom; when it is"reversed", the last thread sorts to the top. The use of"reverse-"in$sortswaps which end the last thread will sort to. ๐
See the "Use Threads Feature" section for further explanation and examples, https://neomutt.org/feature/use-threads
sort_alias
- Type: sort order
- Default: alias
Specifies how the entries in the "alias" menu are sorted. The following are legal values:
address(sort alphabetically by email address)alias(sort alphabetically by alias name)unsorted(leave in order specified in.neomuttrc)
Note: This also affects the entries of the address query menu, thus potentially overruling the order of entries as generated by $query_command. ๐
sort_aux
- Type: sort order
- Default: date
This provides a secondary sort for messages in the "index" menu, used when the $sort value is equal for two messages.
When sorting by threads, this variable controls how subthreads are sorted within a single thread (for the order between threads, see $sort). This can be set to any value that $sort can, including with the use of "reverse-" and "last-" prefixes, except for variations using "threads" (in that case, NeoMutt will just use "date"). For instance,
set sort_aux=last-date-received
would mean that if a new message is received in a thread, that subthread becomes the last one displayed (or the first, if you have "set use_threads=reverse".) When using $use_threads, it is more common to use "last-" with $sort and not with $sort_aux. โจ
See the "Use Threads Feature" section for further explanation and examples, https://neomutt.org/feature/use-threads
sort_browser
- Type: sort order
- Default: alpha
Specifies how to sort entries in the file browser. By default, the entries are sorted alphabetically. Valid values:
alpha(alphabetically)count(all message count)datedesc(description)new(new message count)sizeunsorted
You may optionally use the "reverse-" prefix to specify reverse sorting order (example: "set sort_browser=reverse-date").
The "unread" value is a synonym for "new". ๐๏ธ
sort_re
- Type: boolean
- Default: yes
This variable is only useful when sorting by threads with $strict_threads unset. In that case, it changes the heuristic neomutt uses to thread messages by subject. With $sort_re set, neomutt will only attach a message as the child of another message by subject if the subject of the child message starts with a substring matching the setting of $reply_regex. With $sort_re unset, neomutt will attach the message whether or not this is the case, as long as the non-$reply_regex parts of both messages are identical. ๐งต
spam_separator
- Type: string
- Default:
","
This variable controls what happens when multiple spam headers are matched: if unset, each successive header will overwrite any previous matches value for the spam label. If set, each successive match will append to the previous, using this variable's value as a separator. ๐
spool_file
- Type: mailbox
- Default:
""
(and that's where this part cuts off, bestie โ the description is coming right up in the next chunk, don't go anywhere ๐)
spool_fileโ Type: path ยท Default:""
Okay so if your spool mailbox lives somewhere non-default where NeoMutt just cannot find it (rude of it to hide, honestly), you tell it where with this variable. The description from named-mailboxes or virtual-mailboxes may be used for the spool_file. And if you don't specify anything? Then it goes and checks the environment variables $MAIL and $MAILDIR. Bestie, it's checking everywhere for you ๐ซถ
ssl_ca_certificates_fileโ Type: path ยท Default:""
This one specifies a file containing trusted CA certificates. Any server certificate signed with one of these CA certificates is automatically accepted too โ no extra drama. (GnuTLS only) ๐
Example:
set ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt
ssl_ciphersโ Type: string ยท Default:""
Contains a colon-separated list of ciphers to use when using SSL. For OpenSSL, go see ciphers(1) for the syntax of the string โ it's giving reference-required, no cap.
For GnuTLS, this option gets used in place of "NORMAL" at the start of the priority string. Peep gnutls_priority_init(3) for the syntax and more details. โญ (Note: GnuTLS version 2.1.7 or higher is required โ so like, ancient versions, not invited.)
ssl_client_certโ Type: path ยท Default:""
The file containing a client certificate and its associated private key. Both. Together. In one file. ๐
ssl_force_tlsโ Type: boolean ยท Default: yes
If this variable is set, NeoMutt will require that all connections to remote servers be encrypted. Not some โ all. Furthermore it'll attempt to negotiate TLS even if the server doesn't advertise the capability, since it would otherwise have to abort the connection anyway. This option supersedes $ssl_starttls. Iconic behavior honestly ๐
ssl_min_dh_prime_bitsโ Type: number ยท Default: 0
This variable specifies the minimum acceptable prime size (in bits) for use in any Diffie-Hellman key exchange. A value of 0 will use the default from the GNUTLS library. (GnuTLS only)
ssl_starttlsโ Type: quadoption ยท Default: yes
If set (the default!), NeoMutt will attempt to use STARTTLS on servers advertising the capability. When unset, NeoMutt will not attempt to use STARTTLS regardless of the server's capabilities โ like, it's not even gonna try ๐ซฅ
Note that STARTTLS is subject to many kinds of attacks, including the ability of a machine-in-the-middle to suppress the advertising of support. Setting $ssl_force_tls is recommended if you rely on STARTTLS. Fr fr, please do this. ๐ญ
ssl_use_sslv3โ Type: boolean ยท Default: no
If set, NeoMutt will use SSLv3 when communicating with servers that request it. But N.B. โ as of 2015, SSLv3 is considered insecure, and using it is inadvisable. See https://tools.ietf.org/html/rfc7525. Like, this is the red-flag option, bestie ๐ฉ
ssl_use_tlsv1โ Type: boolean ยท Default: no
If set, NeoMutt will use TLSv1.0 when communicating with servers that request it. N.B. as of 2015, TLSv1.0 is considered insecure, and using it is inadvisable. See https://tools.ietf.org/html/rfc7525. Same warning, different version ๐
ssl_use_tlsv1_1โ Type: boolean ยท Default: no
If set, NeoMutt will use TLSv1.1 when communicating with servers that request it. N.B. as of 2015, TLSv1.1 is considered insecure, and using it is inadvisable. See https://tools.ietf.org/html/rfc7525. The whole 2015 insecure crew, gathered together ๐
ssl_use_tlsv1_2โ Type: boolean ยท Default: yes
If set, NeoMutt will use TLSv1.2 when communicating with servers that request it. Look at her, enabled by default, thriving โจ
ssl_use_tlsv1_3โ Type: boolean ยท Default: yes
If set, NeoMutt will use TLSv1.3 when communicating with servers that request it. The newest sibling and also default-yes. We love a modern queen ๐
ssl_verify_datesโ Type: boolean ยท Default: yes
If set (the default!), NeoMutt will not automatically accept a server certificate that is either not yet valid or already expired. Time is real, certificates expire, respect it. You should only unset this for particular known hosts, using the <account-hook> function โ and like, only particular known hosts, okay? Not everyone. ๐
ssl_verify_hostโ Type: boolean ยท Default: yes
If set (the default!), NeoMutt will not automatically accept a server certificate whose host name does not match the host used in your folder URL. Same energy: you should only unset this for particular known hosts, using the <account-hook> function. Don't just turn it off globally, that's not the vibe ๐
status_charsโ Type: character string ยท Default:"-*%A"
Controls the characters used by the "%r" indicator in $status_format. Four little slots, four little jobs:
1โ-โ Mailbox is unchanged2โ*โ Mailbox has been changed and needs to be resynchronized3โ%โ Mailbox is read-only, or will not be written when exiting. (You can toggle whether to write changes to a mailbox with the<toggle-write>operation, bound by default to"%")4โAโ Folder opened in attach-message mode. (Certain operations like composing a new mail, replying, forwarding, etc. are not permitted in this mode)
status_formatโ Type: string ยท Default:"-%r-NeoMutt: %D [Msgs:%<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>]---(%<T?%T/>%s/%S)-%>-(%P)---"
Controls the format of the status line displayed in the "index" menu. This string is similar to $index_format, but has its own set of printf(3)-like sequences. Obsessed with a customizable status line, honestly ๐ฆ
%bโ * Number of mailboxes with new mail%dโ * Number of deleted messages%Dโ Description of the mailbox%fโ The full pathname of the current mailbox%Fโ * Number of flagged messages%hโ Local hostname%lโ * Size (in bytes) of the current mailbox (seeformatstrings-size)%Lโ * Size (in bytes) of the messages shown (i.e., which match the current limit) (seeformatstrings-size)%mโ * The number of messages in the mailbox%Mโ * The number of messages shown (i.e., which match the current limit)%nโ * Number of new messages in the mailbox (unread, unseen)%oโ * Number of old messages in the mailbox (unread, seen)%pโ * Number of postponed messages%Pโ Percentage of the way through the index%rโ Modified/read-only/won't-write/attach-message indicator, according to$status_chars%Rโ * Number of read messages in the mailbox (read, seen)%sโ Current sorting mode ($sort)%Sโ Current aux sorting method ($sort_aux)%tโ * Number of tagged messages in the mailbox%Tโ * Current threading mode ($use_threads)%uโ * Number of unread messages in the mailbox (seen or unseen)%vโ NeoMutt version string%Vโ * Currently active limit pattern, if any%>Xโ Right justify the rest of the string and pad with"X"%|Xโ Pad to the end of the line with"X"%*Xโ Soft-fill with character"X"as pad
For an explanation of "soft-fill", see the $index_format documentation. It's a whole thing, iykyk ๐
* = can be optionally printed if nonzero
Some of the above sequences can be used to optionally print a string if their value is nonzero. For example, you may only want to see the number of flagged messages if such messages exist, since zero is not particularly meaningful. (Zero is giving nothing, honestly.) To optionally print a string based upon one of the above sequences, the following construct is used:
%<sequence_char?optional_string>
where sequence_char is a character from the table above, and optional_string is the string you would like printed if sequence_char is nonzero. optional_string may contain other sequences as well as normal text. So you can nest, go off โจ
Here is an example illustrating how to optionally print the number of new messages in a mailbox:
%<n?%n new messages>
You can also switch between two strings using the following construct:
%<sequence_char?if_string&else_string>
If the value of sequence_char is non-zero, if_string will be expanded, otherwise else_string will be expanded. A little if/else but make it aesthetic ๐
As another example, here is how to show either $sort and $sort_aux or $use_threads and $sort, based on whether threads are enabled with $use_threads:
%<T?%s/%S&%T/%s>
You can force the result of any printf(3)-like sequence to be lowercase by prefixing the sequence character with an underscore ("_") sign. For example, if you want to display the local hostname in lowercase, you would use: "%_h". Lowercase bestie hours ๐
If you prefix the sequence character with a colon (":") character, NeoMutt will replace any dots in the expansion by underscores. This might be helpful with IMAP folders that don't like dots in folder names. Dots are, apparently, controversial. ๐ซ
status_on_topโ Type: boolean ยท Default: no
Setting this variable causes the "status bar" to be displayed on the first line of the screen rather than near the bottom. Top of the class, main character energy ๐ If $help is set too, it'll be placed at the bottom. So they swap seats, basically.
strict_threadsโ Type: boolean ยท Default: no
If set, threading will only make use of the "In-Reply-To" and "References:" fields when you $sort by message threads. By default, messages with the same subject are grouped together in "pseudo threads." This may not always be desirable โ like, in a personal mailbox where you might have several unrelated messages with subjects like "hi" which will get grouped together. Yeah, every "hi" in one pile, chaos ๐ญ See also $sort_re for a less drastic way of controlling this behavior.
suspendโ Type: boolean ยท Default: yes
When unset, NeoMutt won't stop when the user presses the terminal's susp key, usually "^Z". This is useful if you run NeoMutt inside an xterm using a command like "xterm -e neomutt".
On startup NeoMutt tries to detect if it is the process session leader. If so, the default of suspend is "no" otherwise "yes". This default covers the above mentioned use case of "xterm -e neomutt". Smart default, no cap ๐ง
text_flowedโ Type: boolean ยท Default: no
When set, NeoMutt will generate format=flowed bodies with a content type of text/plain; format=flowed. This format is easier to handle for some mailing software, and honestly it just looks like ordinary text. To actually use the fancy features of this format, you'll need support for it in your editor, bestie ๐ซถ.
The option only controls newly composed messages. Postponed messages, resent messages, and draft messages (via -H on the command line) will use the content-type of the source message. No take-backs, no glow-ups.
Note that $indent_string is straight-up ignored when this option is set. She said "not today" ๐
.
๐ธ thorough_search
Type: boolean Default: yes
Affects the ~b, ~B, and ~h search operations described in section "patterns". If set, the headers and body/attachments of messages to be searched are decoded before searching. If unset, messages are searched exactly as they appear in the folder (raw, unbothered, unedited ๐).
If you're searching attachments or looking for non-ASCII characters, you absolutely want to set this, because decoding also includes MIME parsing/decoding and possible character set conversions. Otherwise NeoMutt will try to match against the raw message it received (so, you know, quoted-printable encoded, or with encoded headers ๐ฅด) which may lead to straight-up incorrect search results. Not the vibe.
โญ thread_received
Type: boolean Default: no
If $strict_threads is unset, then messages may also be grouped by subject. Unlike threading by "In-Reply-To:" and "References:" header, grouping by subject does not imply a parent-child relation between two messages. They're just... standing next to each other in the group chat, iykyk.
To figure out the ancestry between messages grouped by subject, NeoMutt uses their date: only newer messages can be descendants of older ones. Chronology is the blueprint, fr fr.
When $thread_received is set, NeoMutt uses the date received rather than the date sent when comparing messages for the date.
See also $strict_threads, and $sort_re.
๐ tilde
Type: boolean Default: no
When set, the internal-pager will pad blank lines to the bottom of the screen with a tilde ("~"). Yes, that little squiggle. It's giving classic vi energy and honestly? Iconic ๐.
๐ฆ time_inc
Type: number Default: 0
Along with $read_inc, $write_inc, and $net_inc, this variable controls the frequency with which progress updates are displayed. It suppresses updates less than $time_inc milliseconds apart. This can improve throughput on systems with slow terminals, or when you're running NeoMutt on a remote system ๐โก๏ธโก.
Also see the "tuning" section of the manual for performance considerations.
๐ timeout
Type: number Default: 600
When NeoMutt is waiting for user input โ either idling in menus or sitting in an interactive prompt โ it would just block until input shows up ๐ด. Depending on the context, that would prevent certain operations from working, like checking for new mail or keeping an IMAP connection alive. Rude, honestly.
This variable controls how many seconds NeoMutt will at most wait until it aborts waiting for input, performs these operations and continues to wait for input.
A value of zero or less will cause NeoMutt to never time out. Zero chill, zero timeout, periodt.
๐ง tmp_dir
Type: path Default: "/tmp"
This variable lets you specify where NeoMutt will place its temporary files needed for displaying and composing messages ๐โจ.
If this variable is not set, the environment variable $TMPDIR is used. Failing that, then "/tmp" is used. Fallback queen.
๐ to_chars
Type: character string Default: " +TCFLR"
Controls the character used to indicate mail addressed to you. The lineup, in order:
1โ<space>โ The mail is not addressed to your address. Not about you, bestie ๐2โ+โ You are the only recipient of the message. Main character energy ๐3โTโ Your address appears in the"To:"header field, but you are not the only recipient of the message.4โCโ Your address is specified in the"Cc:"header field, but you are not the only recipient.5โFโ Indicates the mail that was sent by you.6โLโ Indicates the mail was sent to a mailing-list you subscribe to.7โRโ Your address appears in the"Reply-To:"header field but none of the above applies.
๐ toggle_quoted_show_levels
Type: number Default: 0
Quoted text may be filtered out using the <toggle-quoted> command. If set to a number greater than 0, then the <toggle-quoted> command will only filter out quote levels above this number. So like, the deep-nested quote lore gets hidden but the top-level stuff stays visible ๐ซถ.
๐ trash
Type: mailbox Default: ""
If set, this variable specifies the path of the trash folder where the mails marked for deletion will be moved, instead of being irremediably purged. So dramatic. So true.
NOTE: When you delete a message in the trash folder, it is really deleted, so that you have a way to clean the trash. That's the whole point, babe โ it's a trash can, not a museum ๐.
โจ ts_enabled
Type: boolean Default: no
Controls whether NeoMutt tries to set the terminal status line and icon name. Most terminal emulators emulate the status line in the window title, so it's lowkey just title-bar decoration ๐.
๐ ts_icon_format
Type: string **Default: "M%<n?AIL&ail>"`
Controls the format of the icon title, as long as "$ts_enabled" is set. This string is identical in formatting to the one used by "$status_format". Same rules, different canvas ๐
.
๐ฅ ts_status_format
Type: string Default: "NeoMutt with %<m?%m messages&no messages>%<n? [%n NEW]>"
Controls the format of the terminal status line (or window title), provided that "$ts_enabled" has been set. This string is identical in formatting to the one used by "$status_format".
๐ tunnel
Type: command Default: ""
Setting this variable will cause NeoMutt to open a pipe to a command instead of a raw socket. You may be able to use this to set up preauthenticated connections to your IMAP/POP3/SMTP server. Example:
set tunnel="ssh -q mailhost.net /usr/local/libexec/imapd"
Note: For this example to work you must be able to log in to the remote machine without having to enter a password. Like, no password prompt, or the whole thing just hangs there being awkward ๐ญ.
When set, NeoMutt uses the tunnel for all remote connections. Please see "account-hook" in the manual for how to use different tunnel commands per connection.
๐ธ tunnel_is_secure
Type: boolean Default: yes
When set, NeoMutt will assume the $tunnel connection does not need STARTTLS to be enabled. It will also allow IMAP PREAUTH server responses inside a tunnel to proceed. This is appropriate if $tunnel uses ssh or directly invokes the server locally ๐ซถ.
When unset, NeoMutt will negotiate STARTTLS according to the ssl_starttls and ssl_force_tls variables. If ssl_force_tls is set, NeoMutt will abort connecting if an IMAP server responds with PREAUTH. This setting is appropriate if $tunnel does not provide security and could be tampered with by attackers ๐ฌ. Keep that in mind bestie, this one's not a vibe-flex, it's a security thing.
โญ uncollapse_jump
Type: boolean Default: no
When set, NeoMutt will jump to the next unread message, if any, when the current thread is uncollapsed. Surprise! You're somewhere new ๐ฆ.
๐ฆ uncollapse_new
Type: boolean Default: yes
When set, NeoMutt will automatically uncollapse any collapsed thread that receives a newly delivered message. When unset, collapsed threads will remain collapsed. The presence of the newly delivered message will still affect index sorting, though โ the maths still counts it, it's just hiding ๐.
๐ use_8bit_mime
Type: boolean Default: no
Warning: do not set this variable unless you are using a version ofsendmailwhich supports the-B8BITMIMEflag (such assendmail8.8.x) or you may not be able to send mail. That's a real "crying in the club" scenario, be careful ๐.
When set, NeoMutt will invoke $sendmail with the -B8BITMIME flag when sending 8-bit messages to enable ESMTP negotiation.
๐ use_domain
Type: boolean Default: yes
When set, NeoMutt will qualify all local addresses (ones without the "@host" portion) with the value of $hostname. If unset, no addresses will be qualified. Bare addresses, raw and unfiltered โจ.
๐ฅ use_envelope_from
Type: boolean Default: no
When set, NeoMutt will set the envelope sender of the message. If $envelope_from_address is set, it will be used as the sender address. If unset, NeoMutt will attempt to derive the sender from the "From:" header. Detective mode ๐.
Note that this information is passed to the sendmail command using the -f command line switch. Therefore setting this option is not useful if the $sendmail variable already contains -f or if the executable pointed to by $sendmail doesn't support the -f switch. No double-dipping, bestie.
๐ use_from
Type: boolean Default: yes
When set, NeoMutt will generate the "From:" header field when sending messages. If unset, no "From:" header field will be generated unless you explicitly set one using the "my_hdr" command. Your mail, your rules ๐
.
๐ use_ipv6
Type: boolean Default: yes
When set, NeoMutt will look for IPv6 addresses of hosts it tries to contact. If this option is unset, NeoMutt will restrict itself to IPv4 addresses. Normally, the default should work โ like, don't overthink it ๐ธ.
๐ง use_threads
Type: enumeration Default: unset
The style of threading used in the index. May be one of "flat" (no threading), "threads" (threaded, with subthreads below root message) or "reverse" (threaded, with subthreads above root message). For convenience, the value "yes" is a synonym for "threads", and "no" is a synonym for "flat". Slay, options.
If this variable is never set, then $sort controls whether threading is used, $sort_aux controls both the sorting of threads and subthreads, and using <sort-mailbox> to select threads affects only $sort. Once this variable is set: attempting to set $sort to a value using "threads" will warn, the value of $sort controls the sorting between threads while $sort_aux controls sorting within a thread, and <sort-mailbox> toggles $use_threads.
Example:
set use_threads=yes
See the "Use Threads Feature" section for further explanation and examples.
๐ user_agent
Type: boolean Default: no
When itโs set, NeoMutt will add a User-Agent: header to outgoing messages, showing which version of NeoMutt was used to compose them. ๐
virtual_spool_file
Type: boolean ยท Default: no
This command is now unnecessary. $spool_file has been extended to support mailbox descriptions as a value.
When set, NeoMutt will use the first defined virtual mailbox (see virtual-mailboxes) as a spool file.
wait_key
Type: boolean ยท Default: yes
Controls whether NeoMutt will ask you to press a key after an external command has been invoked by these functions: <shell-escape>, <pipe-message>, <pipe-entry>, <print-message>, and <print-entry> commands.
It is also used when viewing attachments with auto_view, provided that the corresponding mailcap entry has a needsterminal flag, and the external program is interactive.
When set, NeoMutt will always ask for a key. When unset, NeoMutt will wait for a key only if the external command returned a non-zero status.
weed
Type: boolean ยท Default: yes
When set, NeoMutt will weed headers when displaying, forwarding, or replying to messages.
Also see $copy_decode_weed, $pipe_decode_weed, $print_decode_weed.
wrap
Type: number ยท Default: 0
When set to a positive value, NeoMutt will wrap text at $wrap characters. When set to a negative value, NeoMutt will wrap text so that there are $wrap characters of empty space on the right side of the terminal. Setting it to zero makes NeoMutt wrap at the terminal width.
Also see $reflow_wrap.
wrap_headers
Type: number ยท Default: 78
This option specifies the number of characters to use for wrapping an outgoing message's headers. Allowed values are between 78 and 998 inclusive.
Note: This option usually shouldn't be changed.RFC5233recommends a line length of78(the default), so please only change this setting when you know what you're doing. ๐ซฃ
wrap_search
Type: boolean ยท Default: yes
Controls whether searches wrap around the end.
When set, searches will wrap around the first (or last) item. When unset, incremental searches will not wrap.
write_bcc
Type: boolean ยท Default: no
Controls whether NeoMutt writes out the Bcc: header when preparing messages to be sent. Some MTAs, such as Exim and Courier, do not strip the Bcc: header; so it is advisable to leave this unset unless you have a particular need for the header to be in the sent message.
If NeoMutt is set to deliver directly via SMTP (see $smtp_url), this option does nothing: NeoMutt will never write out the Bcc: header in this case.
Note this option only affects the sending of messages. Fcc'ed copies of a message will always contain the Bcc: header if one exists.
write_inc
Type: number ยท Default: 10
When writing a mailbox, a message will be printed every $write_inc messages to indicate progress. If set to 0, only a single message will be displayed before writing a mailbox.
Also see the $read_inc, $net_inc and $time_inc variables and the "tuning" section of the manual for performance considerations.
x_comment_to
Type: boolean ยท Default: no
If set, NeoMutt will add an X-Comment-To: field (that contains the full name of the original article author) to the article thatโs been followuped to a newsgroup.
๐ SEE ALSO ๐
iconv(1), neomutt(1), notmuch(1), iconv(3), printf(3), strftime(3), mailcap(5), maildir(5), mbox(5), regex(7).
For further NeoMutt information:
- the full manual,
/usr/share/doc/packages/neomutt/manual.{html,pdf,txt} - the home page,
https://neomutt.org
๐ AUTHOR ๐
Richard Russon and friends. Use neomutt-devel@neomutt.org to contact the developers.
mwah ๐ โ thatโs the whole page, bestie. Source/version Unix, dated 2024-04-25, and itโs neomuttrc(5). ๐ซถโจ
๐ฆ where this page comes from
- opensuse-leap 16.0: neomutt 20240425-bp160.1.16 ยท GPL-2.0-or-later
- opensuse-leap 16.0: neomutt 20240425-bp160.1.16 ยท GPL-2.0-or-later
- opensuse-leap 16.0: neomutt 20240425-bp160.1.16 ยท GPL-2.0-or-later
- opensuse-leap 16.0: neomutt 20240425-bp160.1.16 ยท GPL-2.0-or-later
- Copyright (C) 2015-2024 Richard Russon <rich@flatcap.org>
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms