meli/meli.conf.5

20 KiB
Raw Blame History

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

NAME
     meli.conf  configuration file for the Meli Mail User Agent

SYNOPSIS
     $XDG_CONFIG_HOME/meli/config.toml

DESCRIPTION
     Configuration for meli is written in TOML.  Few things to consider before
     writing TOML (quoting the spec):

        TOML is case sensitive.
        A TOML file must be a valid UTF-8 encoded Unicode document.
        Whitespace 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 config are:
        accounts
        shortcuts
        notifications
        pager
        listing
        composing
        pgp
        terminal
        log

EXAMPLES
     example configuration


     # Setting up a Maildir account
     [accounts.account-name]
     root_mailbox = "/path/to/root/folder"
     format = "Maildir"
     index_style = "Compact"
     identity="email@address.tld"
     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"
     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.mail.tld", 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_mail = 'e'

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

     [terminal]
     theme = "light"

     available options are listed below.  default values are shown in
     parentheses.

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

     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 (eg
                                           "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

     index_style String                    set 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 │
     └──────────────┴─────────────────────────────────────────────────┘
     display_name String                   (optional) a name which can be
                                           combined with your address: "Name
                                           <email@address.tld>"

     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)

     cache_type String                     (optional) choose which cache
                                           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.

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

   notmuch only
     root_mailbox points to the directory which contains the .notmuch/
     subdirectory.  notmuch mailboxes are virtual, since they are defined by
     user-given notmuch queries.  Thus you have to explicitly state the
     mailboxes you want in the mailboxes field and set the query property to
     each of them.  Example:

     [accounts.notmuch]
     format = "notmuch"
     ...
       [accounts.notmuch.mailboxes]
       "INBOX" = {  query="tag:inbox", subscribe = true }
       "Drafts" = {  query="tag:draft", subscribe = true }
       "Sent" = {  query="from:username@server.tld from:username2@server.tld", subscribe = true }

   IMAP only
     IMAP specific options are:

     server_hostname String                example: "mail.example.tld"

     server_username String

     server_password String

     server_password_command String        (optional) Use instead of
                                           server_password

     server_port number                    (optional) (143)

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

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

   JMAP only
     JMAP specific options are:

     server_hostname String                example: "mail.example.tld"

     server_username String

     server_password String

     server_port number                    (optional) (443)

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

   mbox only
     mbox specific options are:

     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's a recover
                                           attempt, which discards the invalid
                                           message.  Valid values are:
                                              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 }

mailboxes
     alias String                          (optional) show a different name
                                           for this mailbox in the UI

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

     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
                                              Inbox
                                              Archive
                                              Drafts
                                              Flagged
                                              Junk
                                              Sent
                                              Trash
                                           otherwise usage is inferred from
                                           the mailbox title.

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

                                           [accounts."imap.domain.tld".mailboxes."INBOX"]
                                             index_style = "plain"
                                             [accounts."imap.domain.tld".mailboxes."INBOX".pager]
                                               filter = ""

COMPOSING
     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.

     embed boolean                         (optional) embed editor within meli
                                           (false)

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

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

SHORTCUTS
     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" and "char", where char is a single
     character string.

     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 compact-listing:

     [shortcuts.compact-listing]
     open_thread = "Enter"
     exit_thread = 'i'


     general

     next_tab                              Go to next tab.  (T)

     go_to_tab                             Go to the nth tab (cannot be
                                           redefined)

     listing

     prev_page                             Go to previous page.  (PageUp)

     next_page                             Go to next page.  (PageDown)

     prev_mailbox                          Go to previous mailbox.  (K)

     next_mailbox                          Go to next mailbox.  (J)

     prev_account                          Go to previous account.  (l)

     next_account                          Go to next account.  (h)

     new_mail                              Start new mail draft in new tab (m)

     set_seen                              Set thread as seen.  (n)

     refresh                               Manually request a mailbox refresh.
                                           (F5)

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

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

     compact-listing

     exit_thread                           Exit thread view (i)

     open_thread                           Open thread.  (Enter)

     select_entry                          Select thread entry.  (v)

     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

     create_contact                        Create new contact.  (c)

     edit_contact                          Edit contact under cursor (e)

     mail_contact                          Mail contact under cursor (m)

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


     composing

     send_mail                             Deliver draft to mailer (s)

     edit_mail                             Edit mail.  (e)

     envelope-view

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

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

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

     reply                                 Reply to envelope.  (R)

     edit                                  Open envelope in composer.  (e)

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

     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)

     go_to_url                             Go to url of given index (g)

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

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

     thread-view

     reverse_thread_order                  Reverse thread order.  (r)

     toggle_mailview                       Toggle mail view visibility.  (p)

     toggle_threadview                     Toggle thread view visibility.  (t)

     collapse_subtree                      Collapse thread branches.  (h)

     prev_page                             Go to previous page.  (PageUp)

     next_page                             Go to next page.  (PageDown)


NOTIFICATIONS
     enable boolean                        enable freedesktop-spec
                                           notifications.  this is usually
                                           what you want (true)

     script String                         (optional) script to pass
                                           notifications to, 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_context num                     (optional) number of context lines
                                           when going to next page.
                                           (Unimplemented) (0)

     headers_sticky boolean                (optional) always show headers when
                                           scrolling.  (true)

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

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

     format_flowed bool                    (optional) respect format=flowed
                                           (true)

     split_long_lines bool                 (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)

LISTING
     context_lines num                     (optional) number of context lines
                                           when going to next page.
                                           (Unimplemented) (0)

     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)) (None)

                                           Example:

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

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

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

     example configuration:


     [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
     auto_verify_signatures boolean        auto verify signed e-mail according
                                           to RFC3156 (true)

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

     key String                            (optional) key to be used when
                                           signing/encrypting (not functional
                                           yet) (none)

     gpg_binary String                     (optional) gpg binary name or file
                                           location to use (gpg2)

TERMINAL
     theme String                          (optional) select between these
                                           themes: light / dark (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 (empty
                                           string means no window title is
                                           set) (meli)

     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]
                                           ...

LOG
     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
                                              FATAL
                                              ERROR
                                              WARN
                                              INFO
                                              DEBUG
                                              TRACE
                                           This means that to turn logging
                                           off, set maximum_level to OFF.
                                           (INFO)

SMTP Connections
     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

     For type "auto":

     username String

     password String|SmtpPassword

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

   SmtpPassword
     type raw | command_evaluation

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

   SmtpSecurity
     Default security type is auto.

     type none | auto | starttls | tls

     danger_accept_invalid_certs bool      Accept invalid SSL/TLS certificates
                                           (false)

   SmtpExtensions
     pipelining bool                       rfc2920 (true)

     chunking bool                         rfc3030 (true)

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

     dsn_notify String                     RFC3461 (FAILURE)

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

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

AUTHORS
     Copyright 2017-2019 Manos Pitsidianakis ⟨epilys@nessuent.xyz⟩ Released
     under the GPL, version 3 or greater.  This software carries no warranty
     of any kind.  (See COPYING for full copyright and warranty notices.)

     ⟨https://meli.delivery⟩

Debian                        September 16, 2019                        Debian