46 KiB
46 KiB
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. Default values are shown in
parentheses.
ACCOUNTS
Default values are shown in parentheses.
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 (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.
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ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@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. 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.
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 bool (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 options. 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
Default values are shown in parentheses. 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
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 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 meli COMMAND
[shortcuts.listing]
commands = [ { command = [ "tag remove trash", "flag unset trash" ], shortcut = "D" },
{ command = [ "tag add trash", "flag set trash" ], shortcut = "d" } ]
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
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
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 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)
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
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.
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. (๐ค)
selected_flag Option<String> Flag to show if thread entry has
been selected. (โ๏ธ)
attachment_flag Option<String> Flag to show if thread entry
contains attachments. (๐)
thread_subject_pack bool Should threads with differentiating
Subjects show a list of those
subjects on the entry title?
(true)
threaded_repeat_identical_from_values bool
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 bool Show relative indices in menu
mailboxes to quickly help with
jumping to them. (true)
relative_list_indices bool Show relative indices in listings
to quickly help with jumping to
them. (true)
hide_sidebar_on_launch bool 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
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
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 bool 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
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
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 bool (optional) require authentication
in every case. (true)
For type "xoauth2":
token_command String Command to evaluate that returns an
XOAUTH2 token.
require_auth bool (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 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 โจ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.)
https://meli.delivery
Debian November 11, 2022 Debian