42#define CONFIG_INIT_TYPE(CS, NAME) \
43 extern const struct ConfigSetType Cst##NAME; \
44 cs_register_type(CS, &Cst##NAME)
46#define CONFIG_INIT_VARS(CS, NAME) \
47 bool config_init_##NAME(struct ConfigSet *cs); \
48 config_init_##NAME(CS)
103 const char *str = (
const char *)
value;
108 buf_printf(err,
_(
"Invalid value for option %s: %s"), cdef->
name, str);
117 {
"abort_backspace",
DT_BOOL,
true, 0, NULL,
118 "Hitting backspace against an empty prompt aborts the prompt"
121 "String representation of key to abort prompts"
123 {
"arrow_cursor",
DT_BOOL,
false, 0, NULL,
124 "Use an arrow '->' instead of highlighting in the index"
127 "Use an custom string for arrow_cursor"
130 "Use plain ASCII characters, when drawing email threads"
133 "If a message is missing a character set, assume this character set"
135 {
"attach_format",
DT_STRING|
DT_NOT_EMPTY,
IP "%u%D%I %t%4n %T%d %> [%.7m/%.10M, %.6e%<C?, %C>, %s] ", 0, NULL,
136 "printf-like format string for the attachment menu"
139 "Default directory where attachments are saved"
141 {
"attach_save_without_prompting",
DT_BOOL,
false, 0, NULL,
142 "If true, then don't prompt to save"
145 "Separator to add between saved/printed/piped attachments"
147 {
"attach_split",
DT_BOOL,
true, 0, NULL,
148 "Save/print/pipe tagged messages individually"
150 {
"auto_edit",
DT_BOOL,
false, 0, NULL,
151 "Skip the initial compose menu and edit the email"
153 {
"auto_subscribe",
DT_BOOL,
false, 0, NULL,
154 "Automatically check if the user is subscribed to a mailing list"
156 {
"auto_tag",
DT_BOOL,
false, 0, NULL,
157 "Automatically apply actions to all tagged messages"
159 {
"beep",
DT_BOOL,
true, 0, NULL,
160 "Make a noise when an error occurs"
162 {
"beep_new",
DT_BOOL,
false, 0, NULL,
163 "Make a noise when new mail arrives"
166 "Confirm before bouncing a message"
168 {
"braille_friendly",
DT_BOOL,
false, 0, NULL,
169 "Move the cursor to the beginning of the line"
172 "Default character set for displaying text on screen"
174 {
"collapse_flagged",
DT_BOOL,
true, 0, NULL,
175 "Prevent the collapse of threads with flagged emails"
177 {
"collapse_unread",
DT_BOOL,
true, 0, NULL,
178 "Prevent the collapse of threads with unread emails"
180 {
"color_directcolor",
DT_BOOL,
false, 0, NULL,
181 "Use 24bit colors (aka truecolor aka directcolor)"
184 "Character set that the config files are in"
186 {
"confirm_append",
DT_BOOL,
true, 0, NULL,
187 "Confirm before appending emails to a mailbox"
189 {
"confirm_create",
DT_BOOL,
true, 0, NULL,
190 "Confirm before creating a new mailbox"
192 {
"copy_decode_weed",
DT_BOOL,
false, 0, NULL,
193 "Controls whether to weed headers when copying or saving emails"
195 {
"count_alternatives",
DT_BOOL,
false, 0, NULL,
196 "Recurse inside multipart/alternatives while counting attachments"
199 "User-configurable crypto flags: signed, encrypted etc."
202 "strftime format string for the `%d` expando"
205 "File to save debug logs"
208 "Logging level for debug logs"
210 {
"default_hook",
DT_STRING,
IP "~f %s !~P | (~P ~C %s)", 0, NULL,
211 "Pattern to use for hooks that only have a simple regex"
214 "Really delete messages, when the mailbox is closed"
216 {
"delete_untag",
DT_BOOL,
true, 0, NULL,
217 "Untag messages when they are marked for deletion"
219 {
"digest_collapse",
DT_BOOL,
true, 0, NULL,
220 "Hide the subparts of a multipart/digest"
223 "Highlight messages with duplicated message IDs"
226 "External command to use as an email editor"
229 "User-configurable index flags: tagged, new, etc"
231 {
"flag_safe",
DT_BOOL,
false, 0, NULL,
232 "Protect flagged messages from deletion"
235 "Base folder for a set of mailboxes"
237 {
"force_name",
DT_BOOL,
false, 0, NULL,
238 "Save outgoing mail in a folder of their name"
240 {
"forward_decode",
DT_BOOL,
true, 0, NULL,
241 "Decode the message when forwarding it"
243 {
"forward_quote",
DT_BOOL,
false, 0, NULL,
244 "Automatically quote a forwarded message using `$indent_string`"
247 "Default 'From' address to use, if isn't otherwise set"
250 "User-configurable index flags: to address, cc address, etc"
252 {
"gecos_mask",
DT_REGEX,
IP "^[^,]*", 0, NULL,
253 "Regex for parsing GECOS field of /etc/passwd"
255 {
"header",
DT_BOOL,
false, 0, NULL,
256 "Include the message headers in the reply email (Weed applies)"
258 {
"hidden_tags",
DT_SLIST|
SLIST_SEP_COMMA,
IP "unread,draft,flagged,passed,replied,attachment,signed,encrypted", 0, NULL,
259 "List of tags that shouldn't be displayed on screen (comma-separated)"
262 "Don't indicate hidden messages, in the thread tree"
265 "Don't indicate missing messages, in the thread tree"
268 "Hide subjects that are similar to that of the parent message"
271 "Don't indicate hidden top message, in the thread tree"
274 "Don't indicate missing top message, in the thread tree"
276 {
"honor_disposition",
DT_BOOL,
false, 0, NULL,
277 "Don't display MIME parts inline if they have a disposition of 'attachment'"
280 "Fully-qualified domain name of this machine"
282 {
"implicit_auto_view",
DT_BOOL,
false, 0, NULL,
283 "Display MIME attachments inline if a 'copiousoutput' mailcap entry exists"
285 {
"include_encrypted",
DT_BOOL,
false, 0, NULL,
286 "Whether to include encrypted content when replying"
288 {
"include_only_first",
DT_BOOL,
false, 0, NULL,
289 "Only include the first attachment when replying"
292 "String used to indent 'reply' text"
295 "printf-like format string for the index menu (emails)"
297 {
"keep_flagged",
DT_BOOL,
false, 0, NULL,
298 "Don't move flagged messages from `$spool_file` to `$mbox`"
300 {
"local_date_header",
DT_BOOL,
true, 0, NULL,
301 "Convert the date in the Date header of sent emails into local timezone, UTC otherwise"
304 "Number of seconds before NeoMutt checks for new mail"
306 {
"mail_check_recent",
DT_BOOL,
true, 0, NULL,
307 "Notify the user about new mail since the last time the mailbox was opened"
309 {
"mail_check_stats",
DT_BOOL,
false, 0, NULL,
310 "Periodically check for new mail"
313 "How often to check for new mail"
315 {
"mailcap_path",
DT_SLIST|
SLIST_SEP_COLON,
IP "~/.mailcap:" PKGDATADIR
"/mailcap:" SYSCONFDIR
"/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap", 0, NULL,
316 "List of mailcap files (colon-separated)"
318 {
"mailcap_sanitize",
DT_BOOL,
true, 0, NULL,
319 "Restrict the possible characters in mailcap expandos"
322 "Mark new emails as old when leaving the mailbox"
324 {
"markers",
DT_BOOL,
true, 0, NULL,
325 "Display a '+' at the beginning of wrapped lines in the pager"
328 "Folder that receives read emails (see Move)"
331 "Default type for creating new mailboxes"
333 {
"message_cache_clean",
DT_BOOL,
false, 0, NULL,
334 "(imap/pop) Clean out obsolete entries from the message cache"
337 "(imap/pop) Directory for the message cache"
340 "printf-like format string for listing attached messages"
342 {
"meta_key",
DT_BOOL,
false, 0, NULL,
343 "Interpret 'ALT-x' as 'ESC-x'"
346 "Forward a message as a 'message/RFC822' MIME part"
349 "Forward all attachments, even if they can't be decoded"
352 "Move emails from `$spool_file` to `$mbox` when read"
355 "Draw a narrower thread tree in the index"
358 "(socket) Update the progress bar after this many KB sent/received (0 to disable)"
361 "External command to run when new mail arrives"
363 {
"pipe_decode",
DT_BOOL,
false, 0, NULL,
364 "Decode the message when piping it"
366 {
"pipe_decode_weed",
DT_BOOL,
true, 0, NULL,
367 "Control whether to weed headers when piping an email"
370 "Separator to add between multiple piped messages"
372 {
"pipe_split",
DT_BOOL,
false, 0, NULL,
373 "Run the pipe command on each message separately"
376 "Folder to store postponed messages"
379 "List of Preferred Languages for multilingual MIME (comma-separated)"
382 "Confirm before printing a message"
385 "External command to print a message"
387 {
"print_decode",
DT_BOOL,
true, 0, NULL,
388 "Decode message before printing it"
390 {
"print_decode_weed",
DT_BOOL,
true, 0, NULL,
391 "Control whether to weed headers when printing an email"
393 {
"print_split",
DT_BOOL,
false, 0, NULL,
394 "Print multiple messages separately"
397 "Prompt before exiting NeoMutt"
399 {
"quote_regex",
DT_REGEX,
IP "^([ \t]*[|>:}#])+", 0, NULL,
400 "Regex to match quoted text in a reply"
403 "Update the progress bar after this many records read (0 to disable)"
405 {
"read_only",
DT_BOOL,
false, 0, NULL,
406 "Open folders in read-only mode"
409 "Real name of the user"
412 "Folder to save 'sent' messages"
414 {
"reflow_space_quotes",
DT_BOOL,
true, 0, NULL,
415 "Insert spaces into reply quotes for 'format=flowed' messages"
417 {
"reflow_text",
DT_BOOL,
true, 0, NULL,
418 "Reformat paragraphs of 'format=flowed' text"
421 "Maximum paragraph width for reformatting 'format=flowed' text"
424 "Regex to match message reply subjects like 're: '"
426 {
"resolve",
DT_BOOL,
true, 0, NULL,
427 "Move to the next email whenever a command modifies an email"
429 {
"resume_edited_draft_files",
DT_BOOL,
true, 0, NULL,
430 "Resume editing previously saved draft files"
433 "Display the alias in the index, rather than the message's sender"
435 {
"rfc2047_parameters",
DT_BOOL,
true, 0, NULL,
436 "Decode RFC2047-encoded MIME parameters"
438 {
"save_address",
DT_BOOL,
false, 0, NULL,
439 "Use sender's full address as a default save folder"
441 {
"save_empty",
DT_BOOL,
true, 0, NULL,
442 "(mbox,mmdf) Preserve empty mailboxes"
444 {
"save_name",
DT_BOOL,
false, 0, NULL,
445 "Save outgoing message to mailbox of recipient's name if it exists"
447 {
"score",
DT_BOOL,
true, 0, NULL,
448 "Use message scoring"
450 {
"score_threshold_delete",
DT_NUMBER, -1, 0, NULL,
451 "Messages with a lower score will be automatically deleted"
453 {
"score_threshold_flag",
DT_NUMBER, 9999, 0, NULL,
454 "Messages with a greater score will be automatically flagged"
456 {
"score_threshold_read",
DT_NUMBER, -1, 0, NULL,
457 "Messages with a lower score will be automatically marked read"
460 "Character sets for outgoing mail"
463 "External command to run subshells in"
466 "How to display 'multipart/alternative' MIME parts"
468 {
"simple_search",
DT_STRING,
IP "~f %s | ~s %s", 0, NULL,
469 "Pattern to search for when search doesn't contain ~'s"
471 {
"size_show_bytes",
DT_BOOL,
false, 0, NULL,
472 "Show smaller sizes in bytes"
474 {
"size_show_fractions",
DT_BOOL,
true, 0, NULL,
475 "Show size fractions with a single decimal place"
477 {
"size_show_mb",
DT_BOOL,
true, 0, NULL,
478 "Show sizes in megabytes for sizes greater than 1 megabyte"
480 {
"size_units_on_left",
DT_BOOL,
false, 0, NULL,
481 "Show the units as a prefix to the size"
484 "Time to pause after certain info messages"
487 "Sort method for the index"
490 "Secondary sort method for the index"
493 "Whether $reply_regex must be matched when not $strict_threads"
496 "Separator for multiple spam headers"
502 "Indicator characters for the status bar"
504 {
"status_format",
DT_STRING|
R_INDEX,
IP "-%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)---", 0, NULL,
505 "printf-like format string for the index's status line"
507 {
"status_on_top",
DT_BOOL,
false, 0, NULL,
508 "Display the status bar at the top"
511 "Thread messages using 'In-Reply-To' and 'References' headers"
513 {
"suspend",
DT_BOOL,
true, 0, NULL,
514 "Allow the user to suspend NeoMutt using '^Z'"
516 {
"text_flowed",
DT_BOOL,
false, 0, NULL,
517 "Generate 'format=flowed' messages"
520 "Sort threaded messages by their received date"
523 "Frequency of progress bar updates (milliseconds)"
526 "Time to wait for user input in menus"
529 "Directory for temporary files"
532 "Indicator characters for the 'To' field in the index"
535 "Folder to put deleted emails"
538 "Allow NeoMutt to set the terminal status line and icon"
541 "printf-like format string for the terminal's icon title"
543 {
"ts_status_format",
DT_STRING|
R_INDEX,
IP "NeoMutt with %<m?%m messages&no messages>%<n? [%n NEW]>", 0, NULL,
544 "printf-like format string for the terminal's status (window title)"
546 {
"use_domain",
DT_BOOL,
true, 0, NULL,
547 "Qualify local addresses using this domain"
550 "Whether to use threads for the index"
552 {
"wait_key",
DT_BOOL,
true, 0, NULL,
553 "Prompt to press a key after running external commands"
555 {
"weed",
DT_BOOL,
true, 0, NULL,
556 "Filter headers when displaying/forwarding/printing/replying"
559 "Width to wrap text in the pager"
561 {
"wrap_search",
DT_BOOL,
true, 0, NULL,
562 "Wrap around when the search hits the end"
565 "Update the progress bar after this many records written (0 to disable)"
573 {
"confirmappend",
DT_SYNONYM,
IP "confirm_append",
IP "2021-03-21" },
574 {
"confirmcreate",
DT_SYNONYM,
IP "confirm_create",
IP "2021-03-21" },
576 {
"forw_decode",
DT_SYNONYM,
IP "forward_decode",
IP "2021-03-21" },
577 {
"forw_quote",
DT_SYNONYM,
IP "forward_quote",
IP "2021-03-21" },
579 {
"implicit_autoview",
DT_SYNONYM,
IP "implicit_auto_view",
IP "2023-01-25" },
580 {
"include_onlyfirst",
DT_SYNONYM,
IP "include_only_first",
IP "2021-03-21" },
581 {
"indent_str",
DT_SYNONYM,
IP "indent_string",
IP "2021-03-21" },
582 {
"message_cachedir",
DT_SYNONYM,
IP "message_cache_dir",
IP "2023-01-25" },
584 {
"msg_format",
DT_SYNONYM,
IP "message_format",
IP "2021-03-21" },
586 {
"quote_regexp",
DT_SYNONYM,
IP "quote_regex",
IP "2021-03-21" },
588 {
"reply_regexp",
DT_SYNONYM,
IP "reply_regex",
IP "2021-03-21" },
591 {
"xterm_icon",
DT_SYNONYM,
IP "ts_icon_format",
IP "2021-03-21" },
592 {
"xterm_set_titles",
DT_SYNONYM,
IP "ts_enabled",
IP "2021-03-21" },
593 {
"xterm_title",
DT_SYNONYM,
IP "ts_status_format",
IP "2021-03-21" },
599#if defined(MIXMASTER)
601#define MIXMASTER_DEFAULT MIXMASTER
603#define MIXMASTER_DEFAULT ""
611 "(mixmaster) printf-like format string for the mixmaster chain"
614 "(mixmaster) External command to route a mixmaster message"
621#if defined(HAVE_LIBIDN)
627 {
"idn_decode",
DT_BOOL,
true, 0, NULL,
628 "(idn) Decode international domain names"
630 {
"idn_encode",
DT_BOOL,
true, 0, NULL,
631 "(idn) Encode international domain names"
645#if defined(MIXMASTER)
649#if defined(HAVE_LIBIDN)
688#if defined(USE_AUTOCRYPT)
694#if defined(USE_HCACHE)
710#if defined(USE_NOTMUCH)
719#if defined(USE_SIDEBAR)
int buf_printf(struct Buffer *buf, const char *fmt,...)
Format a string overwriting a Buffer.
#define DT_CHARSET_SINGLE
Flag for charset_validator to allow only one charset.
#define DT_CHARSET_STRICT
Flag for charset_validator to use strict char check.
Convenience wrapper for the config headers.
bool cs_register_variables(const struct ConfigSet *cs, struct ConfigDef vars[], uint32_t flags)
Register a set of config items.
#define CSR_ERR_INVALID
Value hasn't been set.
#define CSR_SUCCESS
Action completed successfully.
Convenience wrapper for the core headers.
int charset_slist_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "charset" config variable - Implements ConfigDef::validator() - This is a version for ch...
int charset_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "charset" config variable - Implements ConfigDef::validator() -.
int sort_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate values of "sort" - Implements ConfigDef::validator() -.
static int multipart_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "show_multipart_alternative" config variable - Implements ConfigDef::validator() -.
int level_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "debug_level" config variable - Implements ConfigDef::validator() -.
static bool config_init_main(struct ConfigSet *cs)
Register main config variables - Implements module_init_config_t -.
@ MUTT_MBOX
'mbox' Mailbox type
Convenience wrapper for the library headers.
static bool send(struct Notify *source, struct Notify *current, enum NotifyType event_type, int event_subtype, void *event_data)
Send out a notification message.
bool mutt_str_equal(const char *a, const char *b)
Compare two strings.
#define CONFIG_INIT_VARS(CS, NAME)
static void init_types(struct ConfigSet *cs)
Create the config types.
static struct ConfigDef MainVarsMixmaster[]
Config definitions for the Mixmaster library.
const struct Mapping SortMethods[]
Sort methods for '$sort' for the index.
#define CONFIG_INIT_TYPE(CS, NAME)
#define MIXMASTER_DEFAULT
void init_config(struct ConfigSet *cs)
Initialise the config system.
static struct ConfigDef MainVarsIdn[]
IDN Config definitions for the Mixmaster library.
static void init_variables(struct ConfigSet *cs)
Define the config variables.
static struct ConfigDef MainVars[]
General Config definitions for NeoMutt.
static const struct Mapping SortAuxMethods[]
Sort methods for '$sort_aux' for the index.
const struct EnumDef UseThreadsTypeDef
Data for the $use_threads enumeration.
Create/manipulate threading in emails.
@ UT_UNSET
Not yet set by user, stick to legacy semantics.
const struct EnumDef MboxTypeDef
Data for the $mbox_type enumeration.
@ MUTT_ASKNO
Ask the user, defaulting to 'No'.
@ MUTT_NO
User answered 'No', or assume 'No'.
@ MUTT_ASKYES
Ask the user, defaulting to 'Yes'.
@ MUTT_YES
User answered 'Yes', or assume 'Yes'.
#define SLIST_ALLOW_EMPTY
#define DT_SORT_REVERSE
Sort flag for -reverse prefix.
@ SORT_SUBJECT
Sort by the email's subject.
@ SORT_ORDER
Sort by the order the messages appear in the mailbox.
@ SORT_THREADS
Sort by email threads.
@ SORT_SPAM
Sort by the email's spam score.
@ SORT_LABEL
Sort by the emails label.
@ SORT_FROM
Sort by the email's From field.
@ SORT_SIZE
Sort by the size of the email.
@ SORT_RECEIVED
Sort by when the message were delivered locally.
@ SORT_TO
Sort by the email's To field.
@ SORT_DATE
Sort by the date the email was sent.
@ SORT_SCORE
Sort by the email's score.
#define DT_SORT_LAST
Sort flag for -last prefix.
String manipulation buffer.
const char * name
User-visible name.
Container for lots of config items.
Mapping between user-readable string and a constant.
Cached regular expression.
#define DT_SORT
sorting methods
#define R_RESORT
Resort the mailbox.
#define DT_SLIST
a list of strings
#define DT_QUAD
quad-option (no/yes/ask-no/ask-yes)
#define DT_BOOL
boolean option
#define DT_PATH_DIR
Path is a directory.
#define R_RESORT_SUB
Resort subthreads.
#define DT_DEPRECATED
Config item shouldn't be used any more.
#define DT_MAILBOX
Don't perform path expansions.
#define DT_PATH_FILE
Path is a file.
#define DT_PATH
a path to a file/directory
#define DT_NOT_EMPTY
Empty strings are not allowed.
#define DT_STRING
a string
#define DT_COMMAND
A command.
#define DT_ENUM
an enumeration
#define R_INDEX
Redraw the index menu (MENU_INDEX)
#define DT_SYNONYM
synonym for another variable
#define DT_NO_FLAGS
No flags are set.
#define DT_NOT_NEGATIVE
Negative numbers are not allowed.
#define DT_ADDRESS
e-mail address
#define DT_REGEX
regular expressions
#define DT_MBTABLE
multibyte char table
#define R_RESORT_INIT
Resort from scratch.
#define DT_NUMBER
a number