18 KiB
18 KiB
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"
[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
mailer_cmd = 'msmtp --read-recipients --read-envelope-from'
editor_cmd = '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
mailer_cmd String command to pipe new mail to, exit
code must be 0 for success.
editor_cmd 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)
SEE ALSO
meli(1), meli-themes(5)
CONFORMING TO
TOML Standard v.0.5.0 https://github.com/toml-
lang/toml/blob/master/versions/en/toml-v0.5.0.md
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