meli/meli/docs/meli.conf.5

49 KiB
Raw Blame History

MELI.CONF(5)                  File Formats Manual                 MELI.CONF(5)

NAME
     meli.conf  configuration file for the meli(1) terminal e-mail client

SYNOPSIS
     $XDG_CONFIG_HOME/meli/config.toml

DESCRIPTION
     Configuration for meli is written in TOML which has a few things to
     consider (quoting the specification):

     -   TOML is case sensitive.
     -   A TOML file must be a valid UTF-8 encoded Unicode document.
     -   White-space means tab (0x09) or space (0x20).
     -   Newline means LF (0x0A) or CRLF (0x0D 0x0A).

     Refer to TOML documentation for valid TOML syntax.

     Though not part of TOML syntax, meli.conf can have nested configuration
     files by using the following m4(1) include macro:

           include("/path/to/file")

SECTIONS
     The top level sections of the configuration are:
     -   accounts
     -   shortcuts
     -   notifications
     -   pager
     -   listing
     -   composing
     -   pgp
     -   terminal
     -   log

EXAMPLES
     An example configuration:

     # Setting up a Maildir account
     [accounts.account-name]
     root_mailbox = "/path/to/root/folder"
     format = "Maildir"
     listing.index_style = "Compact"
     identity="email@example.com"
     subscribed_mailboxes = ["folder", "folder/Sent"] # or [ "*", ] for all mailboxes
     display_name = "Name"

     # Set mailbox-specific settings
       [accounts.account-name.mailboxes]
       "INBOX" = { alias="Inbox" } #inline table
       "drafts" = { alias="Drafts" } #inline table
       [accounts.account-name.mailboxes."foobar-devel"] # or a regular table
         ignore = true # don't show notifications for this mailbox

     # Setting up an mbox account
     [accounts.mbox]
     root_mailbox = "/var/mail/username"
     format = "mbox"
     listing.index_style = "Compact"
     identity="username@hostname.local"
     composing.send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }

     [pager]
     filter = "COLUMNS=72 /usr/local/bin/pygmentize -l email"
     html_filter = "w3m -I utf-8 -T text/html"

     [notifications]
     script = "notify-send"

     [composing]
     # required for sending e-mail
     send_mail = 'msmtp --read-recipients --read-envelope-from'
     #send_mail = { hostname = "smtp.example.com", port = 587, auth = { type = "auto", username = "user", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/user.gpg" } }, security = { type = "STARTTLS" } }
     editor_command = 'vim +/^$'

     [shortcuts]
     [shortcuts.composing]
     edit = 'e'

     [shortcuts.listing]
     new_mail = 'm'
     set_seen = 'n'

     [terminal]
     theme = "light"

     Available options are listed below.

ACCOUNTS
   Account configuration settings
     Default values are shown in parentheses.

     root_mailbox String                   The backend-specific path of the
                                           root_mailbox, usually INBOX.

     default_mailbox String                (optional) The mailbox that is the
                                           default to open or view for this
                                           account.  Must be a valid mailbox
                                           path.  If not specified, the
                                           default will be the root mailbox.

     format String [maildir mbox imap notmuch jmap]
                                           The format of the mail backend.

     subscribed_mailboxes [String,]        An array of mailbox paths to
                                           display in the UI.  Paths are
                                           relative to the root mailbox (e.g.
                                           INBOX/Sent, not Sent).  The glob
                                           wildcard * can be used to match
                                           every mailbox name and path.

     identity String                       Your e-mail address that is
                                           inserted in the From: headers of
                                           outgoing mail.

     extra_identities [String,]            Extra e-mail address identities.
                                           When replying to an e-mail
                                           addressed to one of these
                                           identities, the From: header will
                                           be adjusted to its value instead of
                                           the default identity.

     display_name String                   (optional) A name which can be
                                           combined with your address: "Name
                                           <email@example.com>".

     read_only boolean                     Attempt to not make any changes to
                                           this account.  (false)

     manual_refresh boolean                (optional) If true, do not monitor
                                           account for changes (you can use
                                           shortcut listing.refresh).  (false)

     refresh_command String                (optional) command to execute when
                                           manually refreshing (shortcut
                                           listing.refresh) (None)

     search_backend String                 (optional) Choose which search
                                           backend to use.  Available options
                                           are "none" and "sqlite3".
                                           ("sqlite3")

     vcard_folder String                   (optional) Folder that contains
                                           .vcf files.  They are parsed and
                                           imported read-only.

     mutt_alias_file String                (optional) Path of mutt(1)
                                           compatible alias file in the option
                                           They are parsed and imported read-
                                           only.

     mailboxes mailbox                     (optional) Configuration for each
                                           mailbox.  Its format is described
                                           below in mailboxes.

   notmuch only
     notmuch is supported by loading the dynamic library libnotmuch.  If its
     location is missing from your library paths, you must add it yourself.
     Alternatively, you can specify its path by using a setting.

     notmuch mailboxes are virtual, since they are defined by user-given
     notmuch queries.  You must explicitly state the mailboxes you want in the
     mailboxes field and set the query property to each of them.  To create a
     tree hierarchy with virtual mailboxes, define the parent property to a
     mailbox as the name of the parent mailbox you have used in your
     configuration.

     Account properties:

     root_mailbox                          points to the directory which
                                           contains the .notmuch/
                                           subdirectory.

     library_file_path Path                Use an arbitrary location of
                                           libnotmuch by specifying its full
                                           filesystem path.  (optional)
     Mailbox properties:

     query String                          The notmuch query that defines what
                                           content this virtual mailbox has.
                                           Refer to notmuch-search-terms(7)
                                           for notmuch's search syntax.

     parent String                         If you wish to build a mailbox
                                           hierarchy, define the name of a
                                           parent mailbox you have used in
                                           your configuration.  (optional)

     Example:


     [accounts.notmuch]
     format = "notmuch"
     #library_file_path = "/opt/homebrew/lib/libnotmuch.5.dylib"
     ...
       [accounts.notmuch.mailboxes]
       "INBOX" = {  query="tag:inbox", subscribe = true }
       "Drafts" = {  query="tag:draft", subscribe = true }
       "Sent" = {  query="from:username@example.com from:username2@example.com", subscribe = true }
       "Archives" = {  query="tag:archived", subscribe = true }
       "Archives/2019" = {  query="tag:archived date:01-2019..12-2019", parent="Archives", subscribe = true }

   IMAP only
     IMAP specific options are:

     server_hostname String                example: "mail.example.com"

     server_username String                Server username

     server_password String                Server password

     server_password_command String        (optional) Use instead of
                                           server_password

     server_port number                    (optional) The port to connect to
                                           (143)

     use_starttls boolean                  (optional) If port is 993 and
                                           "use_starttls" is unspecified, it
                                           becomes false by default.  (true)

     use_tls boolean                       (optional) Connect with TLS (or
                                           upgrade from plain connection to
                                           TLS if STARTTLS is set.) (true)

     danger_accept_invalid_certs boolean   (optional) Do not validate TLS
                                           certificates.  (false)

     use_idle boolean                      (optional) Use IDLE extension.
                                           (true)

     use_condstore boolean                 (optional) Use CONDSTORE extension.
                                           (true)

     use_deflate boolean                   (optional) Use COMPRESS=DEFLATE
                                           extension (if built with DEFLATE
                                           support) (true)

     use_oauth2 boolean                    (optional) Use OAUTH2
                                           authentication.  Can only be used
                                           with server_password_command which
                                           should return a base64-encoded
                                           OAUTH2 token ready to be passed to
                                           IMAP.  For help on setup with
                                           Gmail, see Gmail section below.
                                           (false)

     timeout integer                       (optional) Timeout to use for
                                           server connections in seconds.  A
                                           timeout of 0 seconds means there is
                                           no timeout.  (16)

   Gmail
     Gmail has non-standard IMAP behaviors that need to be worked around.

   Gmail - sending mail
     Option store_sent_mail should be disabled since Gmail auto-saves sent
     mail by its own.

   Gmail OAUTH2
     To use OAUTH2, you must go through a process to register your own private
     "application" with Google that can use OAUTH2 tokens, and set the option
     use_oauth2 as true in the account configuration section.  For
     convenience in the meli repository under the contrib/ directory you can
     find a python3 file named oauth2.py to generate and request the
     appropriate data to perform OAUTH2 authentication.

     Steps:
     -   In Google APIs, create a custom OAuth client ID and note down the
         Client ID and Client Secret.  You may need to create a consent
         screen; follow the steps described in the website.
     -   Run the oauth2.py script as follows (after adjusting binary paths and
         credentials):

         python3 oauth2.py --user=xxx@gmail.com
         --client_id=1038[...].apps.googleusercontent.com
         --client_secret=VWFn8LIKAMC-MsjBMhJeOplZ --generate_oauth2_token and
         follow the instructions.  Note down the refresh token.
     -   In server_password_command enter a command like this (after adjusting
         binary paths and credentials):

         TOKEN=$(python3 oauth2.py --user=xxx@gmail.com --quiet
         --client_id=1038[...].apps.googleusercontent.com
         --client_secret=VWFn8LIKAMC-MsjBMhJeOplZ
         --refresh_token=1/Yzm6MRy4q1xi7Dx2DuWXNgT6s37OrP_DW_IoyTum4YA) &&
         python3 oauth2.py --user=xxx@gmail.com --generate_oauth2_string
         --quiet --access_token=$TOKEN
     -   On startup, meli should evaluate this command which if successful
         must only return a base64-encoded token ready to be passed to IMAP.

         Your account section should look like this:

         [accounts."gmail"]
         root_mailbox = '[Gmail]'
         format = "imap"
         server_hostname='imap.gmail.com'
         server_username="username@gmail.com"
         use_oauth2 = true
         server_password_command = "TOKEN=$(py...th2_string --quiet --access_token=$TOKEN"
         server_port="993"
         listing.index_style = "Conversations"
         identity = "username@gmail.com"
         display_name = "Name Name"
         subscribed_mailboxes = ["*" ]
         composing.store_sent_mail = false
         composing.send_mail = { hostname = "smtp.gmail.com", port = 587, auth = { type = "xoauth2", token_command = "...", require_auth = true }, security = { type = "STARTTLS" } }

   JMAP only
     JMAP specific options

     server_url String                     example: "http://mail.example.com"
                                           "http://mail.example.com:8080"
                                           "https://mail.example.com"

     server_username String                Server username

     server_password String                Server password

     danger_accept_invalid_certs boolean   (optional) Do not validate TLS
                                           certificates.  (false)

   mbox only
     mbox specific options:

     prefer_mbox_type String               (optional) Prefer specific mbox
                                           format reader for each message.
                                           Default is "mboxcl2" format.  If
                                           the preferred format fails, the
                                           message is retried with mboxrd and
                                           then if it fails again there is a
                                           recover attempt, which discards the
                                           invalid message.

                                           Valid values
                                           -   auto
                                           -   mboxo
                                           -   mboxrd
                                           -   mboxcl
                                           -   mboxcl2
                                           (auto)
     To set multiple mailboxes, you have to explicitly state the mailboxes you
     want in the mailboxes field and set the path property to each of them.
     Example:

     [accounts.mbox]
     format = "mbox"
     mailboxes."Python mailing list" = { path = "~/.mail/python.mbox", subscribe = true, autoload = true }

   NNTP
     NNTP specific options

     server_hostname String                example: "nntp.example.com"

     server_username String                Server username

     server_password String                Server password

     require_auth boolean                  (optional) require authentication
                                           in every case (true)

     use_tls boolean                       (optional) Connect with TLS.
                                           (false)

     server_port number                    (optional) The port to connect to
                                           (119)

     danger_accept_invalid_certs boolean   (optional) Do not validate TLS
                                           certificates.  (false)

     store_flags_locally boolean           (optional) Store seen status
                                           locally in an sqlite3 database.
                                           (true)

     You have to explicitly state the groups you want to see in the mailboxes
     field.  Example:

     [accounts.sicpm.mailboxes]
       "sic.all" = {}

     To submit articles directly to the NNTP server, you must set the special
     value server_submission in the send_mail field.  Example:

     composing.send_mail = "server_submission"

   MAILBOXES
     alias String                          (optional) Show a different name
                                           for this mailbox in the UI.

     autoload boolean                      (optional) Load this mailbox on
                                           startup (true)

     collapsed boolean                     (optional) Collapse this mailbox
                                           subtree in menu.  (false)

     subscribe boolean                     (optional) Watch this mailbox for
                                           updates.  (true)

     ignore boolean                        (optional) Silently insert updates
                                           for this mailbox, if any.  (false)

     usage boolean                         (optional) special usage of this
                                           mailbox.  Valid values are:
                                           -   Normal (default)
                                           -   Inbox
                                           -   Archive
                                           -   Drafts
                                           -   Flagged
                                           -   Junk
                                           -   Sent
                                           -   Trash
                                           otherwise usage is inferred from
                                           the mailbox title.  If for example
                                           your Sent folder is not named
                                           "Sent", you must explicitly set it.

     conf_override boolean                 (optional) Override global settings
                                           for this mailbox.  Available
                                           sections to override are pager,
                                           notifications, shortcuts, composing
                                           and the account options identity.
                                           Example:

                                           [accounts."imap.example.com".mailboxes]
                                             "INBOX" = { index_style = "plain" }
                                             "INBOX/Lists/devlist" = { autoload = false, pager = { filter = "pygmentize -l diff -f 256"} }

     sort_order unsigned integer           (optional) Override sort order on
                                           the sidebar for this mailbox.
                                           Example:

                                           [accounts."imap.example.com".mailboxes]
                                             "INBOX" = { index_style = "plain" }
                                             "INBOX/Sent" = { sort_order = 0 }
                                             "INBOX/Drafts" = { sort_order = 1 }
                                             "INBOX/Lists" = { sort_order = 2 }

     encoding String                       (optional) Override the default
                                           UTF-8 charset for the mailbox name.
                                           Useful only for UTF-7 mailboxes.
                                           (utf7, utf-7, utf8, utf-8)

COMPOSING
   Composing specific configuration settings
     Default values are shown in parentheses.

     send_mail String|SmtpServerConf       Command to pipe new mail to (exit
                                           code must be 0 for success) or
                                           settings for an SMTP server
                                           connection.  See section SMTP
                                           Connections for its fields.

     editor_command String                 Command to launch editor.  Can have
                                           arguments.  Draft filename is given
                                           as the last argument.  If it's
                                           missing, the environment variable
                                           EDITOR is looked up.

     embedded_pty boolean                  (optional) Embedded editor within
                                           meli.  Editor must be xterm
                                           compliant.  (false)

     format_flowed boolean                 (optional) Set format=flowed
                                           [RFC3676] in text/plain
                                           attachments.  (true)

     insert_user_agent boolean             (optional) Add meli User-Agent
                                           header in new drafts.  (true)

     default_header_values hash table String[String]
                                           (optional) Default header values
                                           used when creating a new draft.
                                           ([])

     wrap_header_preamble Option<(String, String)>
                                           (optional) Wrap header pre-ample
                                           when editing a draft in an editor.
                                           This allows you to write non-plain
                                           text email without the preamble
                                           creating syntax errors.  They are
                                           stripped when you return from the
                                           editor.  The values should be a two
                                           element array of strings, a prefix
                                           and suffix.  This can be useful
                                           when for example you're writing
                                           Markdown; you can set the value to
                                           ["<!--", "-->"] which wraps the
                                           headers in an HTML comment.  (None)

     store_sent_mail boolean               (optional) Store sent mail after
                                           successful submission.  This
                                           setting is meant to be disabled for
                                           non-standard behaviour in Gmail,
                                           which auto-saves sent mail on its
                                           own.  (true)

     attribution_format_string String      (optional) The attribution line
                                           appears above the quoted reply
                                           text.  The format specifiers for
                                           the replied address are:
                                           -   %+f — the sender's name and
                                               email address.
                                           -   %+n — the sender's name (or
                                               email address, if no name is
                                               included).
                                           -   %+a — the sender's email
                                               address.
                                           The format string is passed to
                                           strftime(3) with the replied
                                           envelope's date.  (On %a, %0e %b %Y
                                           %H:%M, %+f wrote:%n)

     attribution_use_posix_locale boolean  (optional) Whether the strftime(3)
                                           call for the attribution string
                                           uses the POSIX locale instead of
                                           the user's active locale.  (true)

     forward_as_attachment boolean or ask  (optional) Forward emails as
                                           attachment? (Alternative is
                                           inline).  (ask)

     reply_prefix_list_to_strip [String]   (optional) Alternative lists of
                                           reply prefixes (etc. ["Re:", "RE:",
                                           ...]) to strip.
                                                 [Re:, RE:, Fwd:, Fw:, 回复:,
                                                 回覆:, SV:, Sv:, VS:, Antw:,
                                                 Doorst:, VS:, VL:, REF:, TR:,
                                                 TR:, AW:, WG:, ΑΠ:, Απ:, απ:,
                                                 ΠΡΘ:, Πρθ:, πρθ:, ΣΧΕΤ:,
                                                 Σχετ:, σχετ:, ΠΡΘ:, Πρθ:,
                                                 πρθ:, Vá:, Továbbítás:, R:,
                                                 I:, RIF:, FS:, BLS:, TRS:,
                                                 VS:, VB:, RV:, RES:, Res,
                                                 ENC:, Odp:, PD:, YNT:, İLT:,
                                                 ATB:, YML:]

     reply_prefix String                   (optional) The prefix to use in
                                           reply subjects.  The default prefix
                                           is Re:.  (Re:)

                                           RFC 2822, "Internet Message Format"
                                           has this to say on the matter:
                                                 When used in a reply, the field body MAY start with the string "Re: " (from
                                                 the Latin "res", in the matter of) followed by the contents of the "Subject:"
                                                 field body of the original message.

     custom_compose_hooks [{ name = String, command = String }]
                                           (optional) Custom compose-hooks
                                           that run shell scripts.  compose-
                                           hooks run before submitting an e-
                                           mail.  They perform draft
                                           validation and/or transformations.
                                           If a custom hook exits with an
                                           error status or prints output to
                                           stdout and stderr, it will show up
                                           in the UI as a notification.

                                           Example:

                                           [composing]
                                           editor_cmd = '~/.local/bin/vim +/^$'
                                           embed = true
                                           custom_compose_hooks = [ { name ="spellcheck", command="aspell --mode email --dont-suggest --ignore-case list" }]

     disabled_compose_hooks [String]       (optional) Disabled compose-hooks.
                                           compose-hooks run before submitting
                                           an e-mail.  They perform draft
                                           validation and/or transformations.
                                           If a hook encounters an error or
                                           warning, it will show up as a
                                           notification.  The currently
                                           available hooks are:
                                           -   past-date-warn — Warn if Date
                                               header value is far in the past
                                               or future.
                                           -   important-header-warn — Warn if
                                               important headers (From, Date,
                                               To, Cc, Bcc) are missing or
                                               invalid.
                                           -   missing-attachment-warn — Warn
                                               if Subjector draft body mention
                                               attachments but they are
                                               missing.
                                           -   empty-draft-warn — Warn if
                                               draft has no subject and no
                                               body.

SHORTCUTS
   Values corresponding to keyboard keys, keycodes
     Shortcuts can take the following values:

     -   Backspace
     -   Left
     -   Right
     -   Up
     -   Down
     -   Home
     -   End
     -   PageUp
     -   PageDown
     -   Delete
     -   Insert
     -   Enter
     -   Tab
     -   Esc
     -   F1..F12
     -   M-char
     -   C-char
     -   char

     Where char is a single character string, maximum 4 bytes long, like the
     corresponding type in Rust.

     In the next subsection, you will find lists for each shortcut category.
     The headings before each list indicate the map key of the shortcut list.
     For example for the first list titled general the configuration is typed
     as follows:

     [shortcuts.general]
     next_tab = 'T'

     and for listing:

     [shortcuts.listing]
     open_entry = "Enter"
     exit_entry = 'i'


     commands

     In addition, each shortcuts section supports a TOML array of commands to
     associate a key to an array of COMMAND mode commands.


     [shortcuts.listing]
     commands = [ { command = [ "tag remove trash", "flag unset trash" ], shortcut = "D" },
                  { command = [ "tag add trash", "flag set trash" ], shortcut = "d" } ]

   Shortcut configuration settings
     Default values are shown in parentheses.

     general

     toggle_help                           Toggle help and shortcuts view.
                                           (?)

     enter_command_mode                    Enter COMMAND mode.  (:)

     quit                                  Quit meli.  (q)

     go_to_tab                             Go to the nth tab (M-n)

     next_tab                              Go to the next tab.  (T)

     scroll_right                          Generic scroll right (catch-all
                                           setting) (l)

     scroll_left                           Generic scroll left (catch-all
                                           setting) (h)

     scroll_up                             Generic scroll up (catch-all
                                           setting) (k)

     scroll_down                           Generic scroll down (catch-all
                                           setting) (j)

     next_page                             Go to next page.  (catch-all
                                           setting) (PageDown)

     prev_page                             Go to previous page.  (catch-all
                                           setting) (PageUp)

     home_page                             Go to first page.  (catch-all
                                           setting) (Home)

     end_page                              Go to last page. (catch-all
                                           setting) (End)

     open_entry                            Open list entry. (catch-all
                                           setting) (Enter)

     info_message_next                     Show next info message, if any.
                                           (M->)

     info_message_previous                 Show previous info message, if any.
                                           (M-<)

     focus_in_text_field                   Focus on a text field.  (Enter)

     next_search_result                    Scroll to next search result.  (n)

     previous_search_result                Scroll to previous search result.
                                           (N)

     listing

     scroll_up                             Scroll up list.  (k)

     scroll_down                           Scroll down list.  (j)

     next_page                             Go to next page.  (PageDown)

     prev_page                             Go to previous page.  (PageUp)

     new_mail                              Start new mail draft in new tab.
                                           (m)

     next_account                          Go to next account.  (H)

     prev_account                          Go to previous account.  (L)

     next_mailbox                          Go to next mailbox.  (J)

     prev_mailbox                          Go to previous mailbox.  (K)

     open_mailbox                          Open selected mailbox (Enter)

     toggle_mailbox_collapse               Toggle mailbox visibility in menu.
                                           (Space)

     search                                Search within list of e-mails.  (/)

     refresh                               Manually request a mailbox refresh.
                                           (F5)

     set_seen                              Set thread as seen.  (n)

     union_modifier                        Union modifier.  (C-u)

     diff_modifier                         Difference modifier.  (C-d)

     intersection_modifier                 Intersection modifier.  (i)

     select_entry                          Select thread entry.  (v)

     increase_sidebar                      Increase sidebar width.  (C-f)

     decrease_sidebar                      Decrease sidebar width.  (C-d)

     next_entry                            When reading a mail item, change
                                           focus on next entry according to
                                           the current sorting.  (C-n)

     previous_entry                        When reading a mail item, change
                                           focus on previous entry according
                                           to the current sorting.  (C-p)

     toggle_menu_visibility                Toggle visibility of side menu in
                                           mail list.  (`)

     focus_left                            Switch focus on the left.  (Left)

     focus_right                           Switch focus on the right.  (Right)

     exit_entry                            Exit e-mail entry.  (i)

     open_entry                            Open e-mail entry.  (Enter)

     pager

     scroll_up                             Scroll up pager.  (k)

     scroll_down                           Scroll down pager.  (j)

     page_up                               Go to previous pager page (PageUp)

     page_down                             Go to next pager pag (PageDown)

     contact-list

     scroll_up                             Scroll up list.  (k)

     scroll_down                           Scroll down list.  (j)

     create_contact                        Create new contact.  (c)

     edit_contact                          Edit contact under cursor.  (e)

     delete_contact                        Delete contact under cursor.  (d)

     mail_contact                          Mail contact under cursor.  (m)

     next_account                          Go to next account.  (H)

     prev_account                          Go to previous account.  (L)

     toggle_menu_visibility                Toggle visibility of side menu in
                                           mail list.  (`)


     composing

     edit                                  Edit mail.  (e)

     send_mail                             Deliver draft to mailer (s)

     scroll_up                             Change field focus.  (k)

     scroll_down                           Change field focus.  (j)

     envelope-view

     To select an attachment, type its index (you will see the typed result in
     the command buffer on the bottom right of the status line), then issue
     the corresponding command.

     add_addresses_to_contacts             Select addresses from envelope to
                                           add to contacts.  (c)

     edit                                  Open envelope in composer.  (e)

     go_to_url                             Go to url of given index (with the
                                           command url_launcher setting in
                                           PAGER section) (g)

     open_attachment                       Opens selected attachment with
                                           xdg-open (a)

     open_mailcap                          Opens selected attachment according
                                           to its mailcap entry.  See meli(1)
                                           FILES for the mailcap file
                                           locations.  (m)

     open_html                             Opens html attachment in the
                                           default browser.  (v)

     reply                                 Reply to envelope.  (R)

     reply_to_author                       Reply to author.  (C-r)

     reply_to_all                          Reply to all/Reply to list/Follow
                                           up.  (C-g)

     forward                               Forward email.  (C-f)

     return_to_normal_view                 Return to envelope if viewing raw
                                           source or attachment.  (r)

     toggle_expand_headers                 Expand extra headers (References
                                           and others) (h)

     toggle_url_mode                       Toggles url open mode.  When
                                           active, it prepends an index next
                                           to each url that you can select by
                                           typing the index and open by
                                           issuing go_to_url (u)

     view_raw_source                       View raw envelope source in a
                                           pager.  (M-r)

     change_charset                        Force attachment charset for
                                           decoding.  (d)

     thread-view

     scroll_up                             Scroll up list.  (k)

     scroll_down                           Scroll down list.  (j)

     collapse_subtree                      collapse thread branches.  (h)

     next_page                             Go to next page.  (PageDown)

     prev_page                             Go to previous page.  (PageUp)

     reverse_thread_order                  reverse thread order.  (C-r)

     toggle_mailview                       toggle mail view visibility.  (p)

     toggle_threadview                     toggle thread view visibility.  (t)

     toggle_layout                         Toggle between horizontal and
                                           vertical layout.  (Space)


NOTIFICATIONS
   Notification configuration settings
     Default values are shown in parentheses.

     enable boolean                        Enable notifications.  (true)

     script String                         (optional) Script to pass
                                           notifications to, with title as 1st
                                           arg and body as 2nd (none)

     new_mail_script String                (optional) A command to pipe new
                                           mail notifications through
                                           (preferred over script), with title
                                           as 1st arg and body as 2nd.  (none)

     xbiff_file_path String                (optional) File that gets its size
                                           updated when new mail arrives.
                                           (none)

     play_sound boolean                    (optional) Play theme sound in
                                           notifications if possible.  (false)

     sound_file String                     (optional) Play sound file in
                                           notifications if possible.  (none)

PAGER
   Pager (viewing text) configuration settings
     Default values are shown in parentheses.

     sticky_headers boolean                (optional) Always show headers when
                                           scrolling.  (false)

     html_filter String                    (optional) Pipe html attachments
                                           through this filter before display
                                           (none)

     html_open String                      (optional) A command to open html
                                           files.  (none)

     filter String                         (optional) A command to pipe mail
                                           output through for viewing in
                                           pager.  (none)

     format_flowed boolean                 (optional) Respect format=flowed
                                           (true)

     split_long_lines boolean              (optional) Split long lines that
                                           would overflow on the x axis.
                                           (true)

     minimum_width num                     (optional) Minimum text width in
                                           columns.  (80)

     auto_choose_multipart_alternative boolean
                                           (optional) Choose text/html
                                           alternative if text/plain is empty
                                           in multipart/alternative
                                           attachments.  (true)

     show_date_in_my_timezone boolean      (optional) Show Date: in local
                                           timezone (true)

     url_launcher String                   (optional) A command to launch URLs
                                           with.  The URL will be given as the
                                           first argument of the command.
                                           (xdg-open)

     show_extra_headers [String]           (optional) Extra headers to
                                           display, if present, in the default
                                           header preamble of the pager.  This
                                           setting is useful especially when
                                           used per-folder or per-account.
                                           For example, if you use rss2email
                                           (See r2e(1)) the e-mail you will
                                           receive will have the X-RSS-Feed
                                           header by default.  You can show
                                           them only in the folder where you
                                           keep your feed items:

                                           [accounts."personal".mailboxes]
                                           INBOX = {}
                                           "INBOX/Sent" = { sort_order=0 }
                                           "INBOX/Feeds" = { pager.show_extra_headers = ["X-RSS-Feed"] }
                                           (empty)

LISTING
   Listing (lists of e-mail entries in a mailbox) configuration settings
     Default values are shown in parentheses.

     show_menu_scrollbar boolean           (optional)
                                            Show auto-hiding scrollbar in
                                           accounts sidebar menu.  (true)

     datetime_fmt String                   (optional) Datetime formatting
                                           passed verbatim to strftime(3).
                                           (%Y-%m-%d %T)

     recent_dates Boolean                  (optional) Show recent dates as X
                                           {minutes,hours,days} ago, up to 7
                                           days. (true)

     filter Query                          (optional) Show only envelopes
                                           matching this query.  (For query
                                           syntax see meli(1) QUERY ABNF
                                           SYNTAX) (None)

                                           Example:

                                           filter = "not flags:seen" # show only unseen messages

     index_style String                    Sets the way mailboxes are
                                           displayed.
                                           ┌──────────────┬─────────────────────────────────────────────────┐
                                           │conversations │ shows one entry per thread                      │
                                           ├──────────────┼─────────────────────────────────────────────────┤
                                           │compact       │ shows one row per thread                        │
                                           ├──────────────┼─────────────────────────────────────────────────┤
                                           │threaded      │ shows threads as a tree structure               │
                                           ├──────────────┼─────────────────────────────────────────────────┤
                                           │plain         │ shows one row per mail, regardless of threading │
                                           └──────────────┴─────────────────────────────────────────────────┘
     sidebar_mailbox_tree_has_sibling String
                                           (optional) Sets the string to print
                                           in the mailbox tree for a level
                                           where its root has a sibling.  See
                                           example below for a clear
                                           explanation and examples.

     sidebar_mailbox_tree_no_sibling String
                                           (optional) Sets the string to print
                                           in the mailbox tree for a level
                                           where its root has no sibling.

     sidebar_mailbox_tree_has_sibling_leaf String
                                           (optional) Sets the string to print
                                           in the mailbox tree for a leaf
                                           level where its root has a sibling.

     sidebar_mailbox_tree_no_sibling_leaf String
                                           (optional) Sets the string to print
                                           in the mailbox tree for a leaf
                                           level where its root has no
                                           sibling.

     sidebar_divider char                  (optional) Sets the character to
                                           print as the divider between the
                                           accounts list and the message list.

     sidebar_ratio Integer                 (optional) This is the width of the
                                           right container to the entire
                                           screen width.  (90)

     unseen_flag Option<String>            Flag to show if thread entry
                                           contains unseen mail.  ()

     thread_snoozed_flag Option<String>    Flag to show if thread has been
                                           snoozed.  ("💤\u{FE0E}") [Rendered
                                           as:r##"💤︎"##]

     selected_flag Option<String>          Flag to show if thread entry has
                                           been selected.  ("☑️ \u{2007}")
                                           [Rendered as:r##"☑️ "##]

     attachment_flag Option<String>        Flag to show if thread entry
                                           contains attachments.
                                           ("📎\u{FE0E}") [Rendered
                                           as:r##"📎︎"##]

     highlight_self_flag Option<String>    Flag to show if any thread entry
                                           contains your address as a
                                           receiver.  Useful to make mailing
                                           list threads that CC you stand out.
                                           ()

     highlight_self boolean                Show highlight_self_flag or not.
                                           (false)

     thread_subject_pack boolean           Should threads with differentiating
                                           Subjects show a list of those
                                           subjects on the entry title?
                                           (true)

     threaded_repeat_identical_from_values boolean
                                           In threaded listing style, repeat
                                           identical From column values within
                                           a thread.  Not repeating adds empty
                                           space in the From column which
                                           might result in less visual
                                           clutter.  (false)

     relative_menu_indices boolean         Show relative indices in menu
                                           mailboxes to quickly help with
                                           jumping to them.  (true)

     relative_list_indices boolean         Show relative indices in listings
                                           to quickly help with jumping to
                                           them.  (true)

     hide_sidebar_on_launch boolean        Start app with sidebar hidden.
                                           (false)

   Examples of sidebar mailbox tree customization
     The default values


      has_sibling = " "
      no_sibling = " ";
      has_sibling_leaf = " "
      no_sibling_leaf = " "

     render a mailbox tree like the following:


     0  Inbox 3
     1   Archive
     2   Drafts
     3   Lists
     4    example-list-a
     5    example-list-b
     6   Sent
     7   Spam
     8   Trash

     Other possible trees:


     has_sibling = " ┃"
     no_sibling = "  "
     has_sibling_leaf = " ┣━"
     no_sibling_leaf = " ┗━"


     0  Inbox 3
     1   ┣━Archive
     2   ┣━Drafts
     3   ┣━Lists
     4   ┃ ┣━example-list-a
     5   ┃ ┗━example-list-b
     6   ┣━Sent
     7   ┣━Spam
     8   ┗━Trash

     A completely ASCII one:


     has_sibling = " |"
     no_sibling = "  "
     has_sibling_leaf = " |\_"
     no_sibling_leaf = " \_"


     0  Inbox 3
     1   |\_Archive
     2   |\_Drafts
     3   |\_Lists
     4   | |\_example-list-a
     5   |  \_example-list-b
     6   |\_Sent
     7   |\_Spam
     8    \_Trash


TAGS
   Tags (e-mail metadata in backends that support them) configuration settings
     Default values are shown in parentheses.

     colours hash table String[Color]      (optional) Set UI colors for tags

     ignore_tags Array String              (optional) Hide tags (not the
                                           tagged messages themselves)

     Example:


     [tags]
     # valid inputs: #HHHHHH, #ABC -> #AABBCC, XTERM_NAME, 0-255 byte
     colors = { signed="#Ff6600", replied="DeepSkyBlue4", draft="#f00", replied="8" }
     [accounts.dummy]
     ...
       [accounts.dummy.mailboxes]
       # per mailbox override:
       "INBOX" = { tags.ignore_tags=["inbox", ] }

PGP
     Default values are shown in parentheses.

     auto_verify_signatures boolean        Auto verify signed e-mail according
                                           to RFC3156 (true)

     auto_decrypt boolean                  (optional) Always decrypt encrypted
                                           e-mail (true)

     auto_sign boolean                     (optional) Always sign sent
                                           messages (false)

     auto_encrypt boolean                  (optional) Always encrypt sent
                                           messages (false)

     sign_key String                       (optional) ID of key to be used for
                                           signatures (none)

     decrypt_key String                    (optional) ID of key to be used for
                                           decryption (none)

     encrypt_key String                    (optional) ID of key to be used for
                                           encryption (none)

     auto_remote_lookup boolean            (optional) Allow remote lookups
                                           (false)

     remote_lookup_mechanisms LocateKey    (optional) Remote lookup
                                           mechanisms.  Use comma to separate
                                           values.  (Local,WKD)

                                           Possible mechanisms:
                                           -   cert
                                           -   pka
                                           -   dane
                                           -   wkd
                                           -   ldap
                                           -   keyserver
                                           -   keyserver-url
                                           -   local

TERMINAL
   Note about emojis and other multi-width characters in string values
     Some useful unicode combining marks (invisible characters that modify the
     presentation of visible characters before them) are:


                      \u{FE0E} Emoji variation sequence select 15: renders an
                      emoji as text style (monochrome)

                      \u{FE0F} Emoji variation sequence select 16: renders an
                      emoji in color

                      \u{2007} Figure space, a space character with the width
                      of a digit in a monospace typeface


   Terminal configuration settings
     Default values are shown in parentheses.

     theme String                          (optional) Theme name to use.
                                           (dark)

     ascii_drawing boolean                 (optional) If true, box drawing
                                           will be done with ASCII characters.
                                           (false)

     use_color boolean                     (optional) If false, no ANSI colors
                                           are used.  (true)

     window_title String                   (optional) Set window title in
                                           xterm compatible terminals An empty
                                           string means no window title is
                                           set.  (meli)

     file_picker_command String            (optional) Set command that prints
                                           file paths in stderr, separated by
                                           NULL bytes.  Used with
                                           add-attachment-file-picker when
                                           composing new mail.  (None)

     themes hash table String[String[Attribute]]
                                           Define UI themes.  See
                                           meli-themes(5) for details.

                                           [terminal]
                                           theme = "themeB"

                                           [terminal.themes.themeA]
                                           "mail.view.body" = {fg = "HotPink3", bg = "LightSalmon1"}
                                           ...
                                           [terminal.themes.themeB]
                                           "mail.view.body" = {fg = "CadetBlue", bg = "White"}
                                           ...
                                           [terminal.themes.themeC]
                                           ...

     use_mouse boolean                     Use mouse events.  This will
                                           disable text selection, but you
                                           will be able to resize some
                                           widgets.  This setting can be
                                           toggled with toggle mouse.  (false)

     mouse_flag String                     String to show in status bar if
                                           mouse is active.  (🖱️)

     progress_spinner_sequence Either < Integer, ProgressSpinner >
                                           Choose between 37 built in
                                           sequences (integers between 0-36)
                                           or define your own list of strings
                                           for the progress spinner animation.
                                           Set to an empty array to disable
                                           the progress spinner.  (20)

                                           Built-in sequences are:


                                           0   ["-", "\", "|", "/"]
                                           1   ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
                                           2   ["⣀", "⣄", "⣤", "⣦", "⣶", "⣷", "⣿"]
                                           3   ["⣀", "⣄", "⣆", "⣇", "⣧", "⣷", "⣿"]
                                           4   ["○", "◔", "◐", "◕", "⬤"]
                                           5   ["□", "◱", "◧", "▣", "■"]
                                           6   ["□", "◱", "▨", "▩", "■"]
                                           7   ["□", "◱", "▥", "▦", "■"]
                                           8   ["░", "▒", "▓", "█"]
                                           9   ["░", "█"]
                                           10  ["⬜", "⬛"]
                                           11  ["▱", "▰"]
                                           12  ["▭", "◼"]
                                           13  ["▯", "▮"]
                                           14  ["◯", "⬤"]
                                           15  ["⚪", "⚫"]
                                           16  ["▖", "▗", "▘", "▝", "▞", "▚", "▙", "▟", "▜", "▛"]
                                           17  ["|", "/", "-", "\"]
                                           18  [".", "o", "O", "@", "*"]
                                           19  ["◡◡", "⊙⊙", "◠◠", "⊙⊙"]
                                           20  ["◜ ", " ◝", " ◞", "◟ "]
                                           21  ["←", "↖", "↑", "↗", "→", "↘", "↓", "↙"]
                                           22  ["▁", "▃", "▄", "▅", "▆", "▇", "█", "▇", "▆", "▅", "▄", "▃"]
                                           23  [ "▉", "▊", "▋", "▌", "▍", "▎", "▏", "▎", "▍", "▌", "▋", "▊", "▉" ]
                                           24  ["▖", "▘", "▝", "▗"]
                                           25  ["▌", "▀", "▐", "▄"]
                                           26  ["┤", "┘", "┴", "└", "├", "┌", "┬", "┐"]
                                           27  ["◢", "◣", "◤", "◥"]
                                           28  ["⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"]
                                           29  ["⢎⡰", "⢎⡡", "⢎⡑", "⢎⠱", "⠎⡱", "⢊⡱", "⢌⡱", "⢆⡱"]
                                           30  [".", "o", "O", "°", "O", "o", "."]
                                           31  ["㊂", "㊀", "㊁"]
                                           32  ["💛 ", "💙 ", "💜 ", "💚 ", "❤️ "]
                                           33  [ "🕛 ", "🕐 ", "🕑 ", "🕒 ", "🕓 ", "🕔 ", "🕕 ", "🕖 ", "🕗 ", "🕘 ", "🕙 ", "🕚 " ]
                                           34  ["🌍 ", "🌎 ", "🌏 "]
                                           35  [ "[    ]", "[=   ]", "[==  ]", "[=== ]", "[ ===]", "[  ==]", "[   =]", "[    ]", "[   =]", "[  ==]", "[ ===]", "[====]", "[=== ]", "[==  ]", "[=   ]" ]
                                           36  ["🌑 ", "🌒 ", "🌓 ", "🌔 ", "🌕 ", "🌖 ", "🌗 ", "🌘 "]

                                           Or, define an array of strings each
                                           consisting of a frame in the
                                           progress sequence indicator for a
                                           custom spinner:

                                           interval_ms u64                       (optional)
                                                                                 Frame
                                                                                 interval.
                                                                                 (50)

                                           frames [String]                       The
                                                                                 animation
                                                                                 frames.

                                           Example:

                                           progress_spinner_sequence = { interval_ms = 150, frames = [ "-", "=", "≡" ] }

LOG
   Logging configuration settings
     Default values are shown in parentheses.

     log_file String                       (optional) path of the log file
                                           ($XDG_DATA_HOME/meli/meli.log)

     maximum_level String                  (optional) maximum level of
                                           messages to log.  All levels less
                                           or equal to the maximum_level will
                                           be appended to the log file.
                                           Available levels are, in partial
                                           order:
                                           -   OFF
                                           -   ERROR
                                           -   WARN
                                           -   INFO
                                           -   DEBUG
                                           -   TRACE
                                           This means that to turn logging
                                           off, set maximum_level to OFF.
                                           (INFO)

SMTP Connections
   SMTP configuration settings
     Default values are shown in parentheses.

     hostname String                       server hostname

     port Integer                          server port

     envelope_from String                  (optional) address to set as sender
                                           in SMTP transactions (none)

     auth SmtpAuth                         SMTP server authentication.  See
                                           SmtpAuth subsection.

     security SmtpSecurity                 (optional) gpg binary name or file
                                           location to use.  (see SmtpSecurity
                                           subsection)

     extensions SmtpExtensions             (optional) set support for SMTP
                                           extensions if they are advertised
                                           by the server.  (see SmtpExtensions
                                           subsection)

   SmtpAuth
     type none | auto | xoauth2

     For type "auto":

     username String

     password SmtpPassword

     require_auth boolean                  (optional) require authentication
                                           in every case.  (true)

     For type "xoauth2":

     token_command String                  Command to evaluate that returns an
                                           XOAUTH2 token.

     require_auth boolean                  (optional) require authentication
                                           in every case.  (true)

     Examples:

     auth = { type = "auto", username = "user", password = { type = "raw", value = "hunter2" } }

     auth = { type = "auto", username = "user", password = "hunter2" }

     auth = { type = "none" }

     For Gmail (see Gmail OAUTH2 for details on the authentication token
     command):

     auth = { type = "xoauth2", token_command = "TOKEN=$(python3 oauth2.py --user=xxx@gmail.com --quiet --client_id=1038[...].apps.googleusercontent.com --client_secret=[..] --refresh_token=[..] && python3 oauth2.py --user=xxx@gmail.com --generate_oauth2_string --quiet --access_token=$TOKEN" }

   SmtpPassword
     type raw | command_evaluation

     value String                          Either a raw password string, or
                                           command to execute.

     Examples:

     password = { type = "raw", value = "hunter2" }

     password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/user.gpg" }

   SmtpSecurity
     Default security type is auto.

     type none | auto | starttls | tls

     danger_accept_invalid_certs boolean   Accept invalid SSL / TLS
                                           certificates (false)

   SmtpExtensions
     pipelining boolean                    RFC2920 (true)

     chunking boolean                      RFC3030 (true)

     prdr boolean                          draft-hall-prdr-00 (true)

     dsn_notify String                     RFC3461 (FAILURE)

SEE ALSO
     meli(1), meli-themes(5)

STANDARDS
     TOML Standard v.0.5.0 https://toml.io/en/v0.5.0

AUTHORS
     Copyright 20172024 Manos Pitsidianakis <manos@pitsidianak.is>

     Released under the GPL, version 3 or greater.  This software carries no
     warranty of any kind.  (See COPYING for full copyright and warranty
     notices.)

   Links
     Website: https://meli-email.org
     Main git repository and issue tracker:
     https://git.meli-email.org/meli/meli
     Official read-only git mirror on codeberg.org:
     https://codeberg.org/meli/meli
     Official read-only git mirror on github.com: https://github.com/meli/meli
     meli crate on crates.io: https://crates.io/crates/meli

Debian                          March 10, 2024                          Debian