Quick start tutorial
Follow the installation instructions in the README.
Launch meli
with no arguments, and you will be asked if you want to create a sample configuration.
The sample configuration (created by default in ~/.config/meli/config.toml
) includes comments with the basic settings required for setting up accounts allowing you to copy and edit right away. See meli.conf(5) for the available configuration options.
The main screen when you launch meli
is the INBOX of the first account you have configured.
- With J / K you can select the next/previous folder. (To go to a specific one directly, press Space and type the command
go n
where n is the number of the folder) - With h / l you can select the next/previous account.
- Use the arrow keys to browse entries in the e-mail list of a folder. (Along with Home / End / PgUp / PgDn)
- Use Enter to open an entry and i to exit it.
- Use m to start writing new e-mail. (or R to reply to the entry you’re currently viewing)
- Use the arrow keys to edit each field of the e-mail.
- Attachments can be added by pressing Space and typing the command
add-attachment
ÂPATH
wherePATH
is the filesystem path of the attachment file. - Edit the draft body at eny time by pressing e
- Send your e-mail by pressing s
- Discard or save your draft by pressing Space and typing the command
close
At any time, you can press ? to show a list of all available actions and shortcuts, along with every possible setting and command that your version supports.
Press T to cycle between tabs or Alt + 1 … 9 to choose.
Press q to exit.
meli(1)
MELI(1) | General Commands Manual | MELI(1) |
NAME
meli
— Meli Mail
User Agent. meli is the Greek word for honey
SYNOPSIS
meli |
[--help | -h ]
[--version | -v ]
[--config path]
|
TABLE OF CONTENTS
- DESCRIPTION
- STARTING WITH meli
- VIEWING MAIL
- SEARCH
- TAGS
- COMPOSING
- CONTACTS
- MODES
- SHORTCUTS
- EXIT STATUS
- ENVIRONMENT
- FILES
- SEE ALSO
- CONFORMING TO
- AUTHORS
DESCRIPTION
meli
is a terminal mail client aiming for
extensive and user-frendly configurability.
^^ .-=-=-=-. ^^ ^^ (`-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ ( `-=-=-=-(@)-=-=-` ) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-`) `-=-=-=-=-` ^^
STARTING WITH meli
When launched for the first time, meli
will search for its configuration directory,
$XDG_CONFIG_HOME/meli/. If it doesn't exist, you
will be asked if you want to create one and presented with a sample
configuration file
($XDG_CONFIG_HOME/meli/config.toml) that includes
the basic settings required for setting up accounts allowing you to copy and
edit right away. See meli.conf(5) for
the available configuration options.
At any time, you may press ⟨?⟩ (shortcuts.general.toggle_help) for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports.
Each mailbox may be viewed in 4 modes: Plain views each mail individually, Threaded shows their thread relationship visually, Conversations collapses each thread of emails into a single entry, Compact shows one row per thread.
If you're using a light color palette in your terminal, you should set theme = light in the terminal section of your configuration. See meli-themes(5) for complete documentation on user themes.
See meli(7) for a more detailed
tutorial on using meli
.
VIEWING MAIL
Open attachments by typing their index in the attachments list and
then ⟨a⟩
(shortcuts.envelope_view.open_attachment).
meli
will attempt to open text inside its pager, and
other content via xdg-open
. Press
⟨m⟩ (shortcuts.envelope_view.open_mailcap)
instead to use the mailcap entry for the MIME type of the attachment, if
any. See FILES for the location of the
mailcap files and mailcap(5) for their
syntax. You can save individual attachments with the
save-attachment
INDEX path-to-filecommand. INDEX is the attachment's index in the listing. If the path provided is a directory, the attachment is saved with its filename set to the filename in the attachment, if any. If the 0th index is provided, the entire message is saved. If the path provided is a directory, the message is saved as an eml file with its filename set to the messages message-id.
SEARCH
Each e-mail storage backend has a default search method assigned.
IMAP uses
the SEARCH command,
notmuch
uses libnotmuch and Maildir/mbox performs a slow linear
search. It is advised to use a search backend on
Maildir/mbox accounts. meli
, if
built with sqlite3, includes the ability to perform full text search on the
following fields:
From,
To,
Cc,
Bcc,
In-Reply-To,
References,
Subject
and Date.
The message body (in plain text human readable form) and the flags can also
be queried. To enable sqlite3 indexing for an account set
search_backend to sqlite3 in the
configuration file and to create the sqlite3 index issue command:
index
ACCOUNT_NAMETo search in the message body type your keywords without any special formatting. To search in specific fields, prepend your search keyword with "field:" like so:
Boolean operators are or, and and not (alias: !) String keywords with spaces must be quoted. Quotes should always be escaped.
Important Notice about IMAP/JMAP
To prevent downloading all your messages from your IMAP/JMAP
server, don't set search_backend to
sqlite3. meli
will relay your
queries to the IMAP server. Expect a delay between query and response.
Sqlite3 on the contrary at reasonable mailbox sizes should have a non
noticable delay.
QUERY ABNF SYNTAX
query = "(" query ")"
|from
|to
|cc
|bcc
|alladdresses
|subject
|flags
|has_attachments
|query "or" query
|query "and" query
|not query
not = "not"
|"!"
quoted = ALPHA / SP *(ALPHA / DIGIT / SP)
term = ALPHA *(ALPHA / DIGIT)
|DQUOTE quoted DQUOTE
tagname = term
flagval = "passed"
|"replied"
|"seen"
|"read"
|"junk"
|"trash"
|"trashed"
|"draft"
|"flagged"
|tagname
flagterm = flagval
|flagval "," flagterm
from = "from:" term
to = "to:" term
cc = "cc:" term
bcc = "bcc:" term
alladdresses = "alladdresses:" term
subject = "subject:" term
TAGS
meli
supports tagging in notmuch and
IMAP/JMAP backends. Tags can be searched with the `tags:` or `flags:` prefix
in a search query, and can be modified by
tag add TAG
and
tag remove TAG
(see meli.conf(5) TAGS,
settings colors
and
ignore_tags
for how to set tag colors and tag
visibility)
COMPOSING
Opening the message Composer tab
To create a new mail message, press ⟨m⟩ (shortcuts.listing.new_mail) while viewing a mailbox. To reply to a mail, press ⟨R⟩ (shortcuts.envelope_view.reply). Both these actions open the mail composer view in a new tab.
Editing text
- Edit the header fields by selecting with the
arrow keys and pressing
⟨Enter⟩ (shortcuts.general.focus_in_text_field)
to enter
INSERT
mode and
Esc
key to exit. - At any time you may press
⟨e⟩ (shortcuts.composing.edit_mail)
to launch your editor (see
meli.conf(5) COMPOSING, setting
editor_command
for how to select which editor to launch). - Your editor can be used in
meli
's embed terminal emulator by settingembed
to true in your composing settings (You can return tomeli
at any time by pressing ⟨Ctrl-Z⟩) - When launched, your editor captures all input until it exits or stops.
- To stop your editor and return to
meli
press ⟨Ctrl-z⟩ and to resume editing press theedit_mail
command again.
Attachments
Attachments may be handled with the
add-attachment
,
remove-attachment
commands (see below).
Sending
Finally, pressing
⟨s⟩ (shortcuts.composing.send_mail)
will send your message according to your settings (see
meli.conf(5) COMPOSING, setting name
send_mail
). With no Draft or Sent mailbox,
meli
tries first saving mail in your INBOX and then
at any other mailbox. On complete failure to save your draft or sent message
it will be saved in your
tmp
directory instead and you will be notified of its location.
Drafts
To save your draft without sending it, issue
COMMAND close
and select 'save as
draft'.
To open a draft for further editing, select your draft in the mail
listing and press edit_mail
.
CONTACTS
meli
supports two kinds of contact
backends:
- an internal format that gets saved under $XDG_DATA_HOME/meli/account_name/addressbook.
- vCard files (v3, v4) through the
vcard_folder
option in the account section. The path defined asvcard_folder
can hold multiple vCards per file. They are loaded read only.
See meli.conf(5) ACCOUNTS for the complete account configuration values.
MODES
- NORMAL
- is the default mode
- COMMAND
- commands are issued in COMMAND mode, by default started with ⟨:⟩ (shortcuts.general.enter_command_mode) and exited with ⟨Esc⟩ key.
- EMBED
- is the mode of the embed terminal emulator
- INSERT
- captures all input as text input, and is exited with
Esc
key.
COMMAND Mode
Mail listing commands
set
plain | threaded | compact | conversations- 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 |
sort
subject | date asc | desc- sort mail listing
subsort
subject | date asc | desc- sorts only the first level of replies.
go
n- where n is a mailbox prefixed with the n number in the side menu for the current account
toggle thread_snooze
- don't issue notifications for thread under cursor in thread listing
search
STRING- search mailbox with STRING query. Escape exits search results.
select
STRING- select threads matching STRING query.
set seen, set unseen
- Set seen status of message.
import
FILEPATH MAILBOX_PATH- Import mail from file into given mailbox.
copyto, moveto
MAILBOX_PATH- Copy or move to other mailbox.
copyto, moveto
ACCOUNT MAILBOX_PATH- Copy or move to another account's mailbox.
delete
- Delete selected threads.
export-mbox
FILEPATH- Export selected threads to mboxcl2 file.
create-mailbox
ACCOUNT MAILBOX_PATH- create mailbox with given path. Be careful with backends and separator sensitivity (eg IMAP)
subscribe-mailbox
ACCOUNT MAILBOX_PATH- subscribe to mailbox with given path
unsubscribe-mailbox
ACCOUNT MAILBOX_PATH- unsubscribe to mailbox with given path
rename-mailbox
ACCOUNT MAILBOX_PATH_SRC MAILBOX_PATH_DEST- rename mailbox
delete-mailbox
ACCOUNT MAILBOX_PATH- deletes mailbox in the mail backend. This action is unreversible.
Mail view commands
pipe
EXECUTABLE ARGS- pipe pager contents to binary
filter
EXECUTABLE ARGS- filter and display pager contents through command
list-post
- post in list of viewed envelope
list-unsubscribe
- unsubscribe automatically from list of viewed envelope
list-archive
- open list archive with
xdg-open
composing mail commands
add-attachment
PATH- in composer, add PATH as an attachment
add-attachment <
CMD ARGS- in composer, pipe CMD ARGS output into an attachment
add-attachment-file-picker
- Launch command defined in the configuration value
file_picker_command
in meli.conf(5) TERMINAL add-attachment-file-picker <
CMD ARGS- Launch command CMD ARGS. The command should print file paths in stderr, separated by NULL bytes.
remove-attachment
INDEX- remove attachment with given index
toggle sign
- toggle between signing and not signing this message. If the gpg invocation fails then the mail won't be sent. See meli.conf(5) PGP for PGP configuration.
save-draft
- saves a copy of the draft in the Draft folder
generic commands
open-in-tab
- opens envelope view in new tab
close
- closes closeable tabs
setenv
KEY=VALUE- set environment variable KEY to VALUE
printenv
KEY- print environment variable KEY
quit
- Quits
meli
. reload-config
- Reloads configuration but only if account configuration is unchanged.
Useful if you want to reload some settings without restarting
meli
.
SHORTCUTS
See meli.conf(5) SHORTCUTS for shortcuts and their default values.
EXIT STATUS
meli
exits with 0 on a successful run.
Other exit statuses are:
- 1
- catchall for general errors
- 101
- process panic
ENVIRONMENT
EDITOR
- Specifies the editor to use
MELI_CONFIG
- Override the configuration file
NO_COLOR
- When present (regardless of its value), prevents the addition of ANSI
color. The configuration value
use_color
overrides this.
FILES
meli
uses the following parts of the XDG
standard:
XDG_CONFIG_HOME
- defaults to ~/.config/
XDG_CACHE_HOME
- defaults to ~/.cache/
and appropriates the following locations:
- $XDG_CONFIG_HOME/meli/
- User configuration directory
- $XDG_CONFIG_HOME/meli/config.toml
- User configuration file, see meli.conf(5) for its syntax and values.
- $XDG_CONFIG_HOME/meli/hooks/*
- Reserved for event hooks.
- $XDG_CONFIG_HOME/meli/plugins/*
- Reserved for plugin files.
- $XDG_CACHE_HOME/meli/*
- Internal cached data used by meli.
- $XDG_DATA_HOME/meli/*
- Internal data used by meli.
- $XDG_DATA_HOME/meli/meli.log
- Operation log.
- /tmp/meli/*
- Temporary files generated by
meli
.
Mailcap entries are searched for in the following files, in this order:
- $XDG_CONFIG_HOME/meli/mailcap
- $XDG_CONFIG_HOME/.mailcap
- $HOME/.mailcap
- /etc/mailcap
- /usr/etc/mailcap
- /usr/local/etc/mailcap
SEE ALSO
meli.conf(5), meli-themes(5), meli(7), xdg-open(1), mailcap(5)
CONFORMING TO
XDG Standard https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html, maildir https://cr.yp.to/proto/maildir.html, IMAPv4rev1 RFC3501, The JSON Meta Application Protocol (JMAP) RFC8620, The JSON Meta Application Protocol (JMAP) for Mail RFC8621.
AUTHORS
Copyright 2017-2022 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).
July 29, 2019 | rendered by mandoc |
meli.conf(5) [go back]
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
TABLE OF CONTENTS
- DESCRIPTION
- SECTIONS
- EXAMPLES
- ACCOUNTS
- COMPOSING
- SHORTCUTS
- NOTIFICATIONS
- PAGER
- LISTING
- TAGS
- PGP
- TERMINAL
- LOG
- SMTP Connections
- SEE ALSO
- CONFORMING TO
- AUTHORS
DESCRIPTION
Configuration for meli is written in TOML which has a few things to consider (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" 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_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.
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.
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.
root_mailbox
- points to the directory which contains the
.notmuch/ subdirectory. 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. library_file_path
Path- Use an arbitrary location of libnotmuch by specifying its full filesystem path. (optional)
[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 }
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)
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's 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_hostname
String- example: "mail.example.com"
server_username
String- Server username
server_password
String- Server password
server_port
number- (optional) The port to connect to (443)
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's a
recover attempt, which discards the invalid message. Valid values
- auto
- mboxo
- mboxrd
- mboxcl
- mboxcl2
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)
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
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 }
COMPOSING
Composing specific options
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. 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 preample 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.
attribution_use_posix_locale
boolean- (optional) Whether the strftime 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 de
facto 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.
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
- char
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'
general
toggle_help
- Toggle help and shortcuts view. (?)
quit
- Quit meli.
(‘
q
’) enter_command_mode
- Enter
COMMAND
mode.
(‘
:
’) next_tab
- Go to next tab. (T)
go_to_tab
- Go to the nth tab (M-n)
scroll_right
- Generic scroll right (catch-all setting) (Right)
scroll_left
- Generic scroll left (catch-all setting) (Left)
scroll_up
- Generic scroll up (catch-all setting) (k)
scroll_down
- Generic scroll down (catch-all setting) (j)
info_message_next
- Show next info message, if any
(‘
M->
’) info_message_previous
- Show previous info message, if any
(‘
M-<
’)
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 width. (C-p)
- Decrease sidebar width. (C-o)
- 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)
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)
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)
mail_contact
- Mail contact under cursor. (m)
next_account
- Go to next account. (h)
prev_account
- Go to previous account. (l)
- Toggle visibility of side menu in mail list. (`)
edit_mail
- Edit mail. (e)
send_mail
- Deliver draft to mailer (s)
scroll_up
- Change field focus. (k)
scroll_down
- Change field focus. (j)
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)
reply
- Reply to envelope. (R)
- 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)
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)
NOTIFICATIONS
enable
boolean- Enable notifications. (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
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)
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)
LISTING
- (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.
- (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.
- (optional) Sets the string to print in the mailbox tree for a level where its root has no sibling.
- (optional) Sets the string to print in the mailbox tree for a leaf level where its root has a sibling.
- (optional) Sets the string to print in the mailbox tree for a leaf level where its root has no sibling.
- (optional) Sets the character to print as the divider between the accounts list and the message list.
- (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)
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
colours
hash table String[Color]- (optional) Set UI colors for tags
- (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
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)
TERMINAL
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)
Builtin 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
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: This means that to turn logging off, setmaximum_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 | xoauth2
For type "auto":
username
Stringpassword
SmtpPasswordrequire_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
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 | tlsdanger_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
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⟩
September 16, 2019 | rendered by mandoc |
meli-themes(5) [go back]
MELI-THEMES(5) | File Formats Manual | MELI-THEMES(5) |
NAME
meli-themes
—
themes for the meli
mail
client
SYNOPSIS
meli |
comes with two themes, dark (default) and
light .
Custom themes are defined as lists of key-values in the configuration files:
The application theme is defined in the configuration as follows: [terminal] theme = "dark" |
TABLE OF CONTENTS
- DESCRIPTION
- EXAMPLES
- CUSTOM THEMES
- VALID ATTRIBUTE VALUES
- VALID COLOR VALUES
- NO COLOR
- VALID KEYS
- COLOR NAMES
- SEE ALSO
- CONFORMING TO
- AUTHORS
DESCRIPTION
Themes for meli
are described in the
configuration language TOML, as they are key-value tables defined in the
TERMINAL section of the configuration file. Each key defines the semantic
location of the theme attribute within the application. For example,
mail.listing.compact.*
keys are settings for the
compact
mail listing style. A setting contains three
fields: fg for foreground color, bg for background color, and attrs for text
attribute.
"widget.key.label" = { fg =
"Default", bg = "Default", attrs = "Default"
}
Each field contains a value, which may be either a
color/attribute, a link (key name) or a valid alias. An alias is a string
starting with the "$" character and must be declared in advance in
the color_aliases
or
attr_aliases
fields of a theme. An alias' value can
be any valid value, including links and other aliases, as long as they are
valid. In the case of a link the setting's real value depends on the value
of the referred key. This allows for defaults within a group of associated
values. Cyclic references in a theme results in an error:
spooky theme contains a cycle: fg:
mail.listing.compact.even -> mail.listing.compact.highlighted ->
mail.listing.compact.odd -> mail.listing.compact.even
Two themes are included by default, `light` and `dark`.
EXAMPLES
Specific settings from already defined themes can be overwritten:
[terminal] theme = "dark" [terminal.themes.dark] "mail.sidebar_highlighted_account" = { bg = "#ff4529" } "mail.listing.attachment_flag" = { fg = "#ff4529" } "mail.view.headers" = { fg = "30" } "mail.view.body" = {fg = "HotPink3", bg = "LightSalmon1"} # Linked value keys can be whatever key: "mail.listing.compact.even_unseen" = { bg = "mail.sidebar_highlighted_account" } # Linked color value keys can optionally refer to another field: "mail.listing.compact.odd_unseen" = { bg = "mail.sidebar_highlighted_account.fg" } # define new theme. Undefined settings will inherit from the default "dark" theme. [terminal.themes."hunter2"] color_aliases= { "Jebediah" = "#b4da55" } "mail.listing.tag_default" = { fg = "$Jebediah" } "mail.view.headers" = { fg = "White", bg = "Black" }
CUSTOM THEMES
Custom themes can be included in your configuration files or be saved independently in your $XDG_CONFIG_HOME/meli/themes/ directory as TOML files. To start creating a theme right away, you can begin by editing the default theme keys and values:
meli --print-default-theme >
~/.config/meli/themes/new_theme.toml
new_theme.toml will now include all keys and values of the "dark" theme.
meli
--print-loaded-themes
will print all loaded themes with the links resolved.
VALID ATTRIBUTE VALUES
Case-sensitive.
- "Default"
- "Bold"
- "Dim"
- "Italics"
- "Underline"
- "Blink"
- "Reverse"
- "Hidden"
- Any combo of the above separated by a bitwise XOR "|" eg "Dim | Italics"
VALID COLOR VALUES
Color values are of type String with the following valid contents:
- "Default" is the terminal default. (Case-sensitive)
- Hex triplet e.g. #FFFFFF for RGB colors. Three character shorthand is also valid, e.g. #09c → #0099cc (Case-insensitive)
- 0-255 byte for 256 colors.
- xterm(1) name but with some modifications (for a full table see COLOR NAMES addendum) (Case-sensitive)
NO COLOR
To completely disable ANSI colors, there are two options:
- Set the
use_color
option (sectionterminal
) to false, which is true by default. - The
NO_COLOR
environmental variable, when present (regardless of its value), prevents the addition of ANSI color. When the configuration valueuse_color
is explicitly set to true by the user,NO_COLOR
is ignored.
In this mode, cursor locations (i.e., currently selected entries/items) will use the "reverse video" ANSI attribute to invert the terminal's default foreground/background colors.
VALID KEYS
- theme_default
- error_message
- email_header
- highlight
- status.bar
- status.command_bar
- status.history
- status.history.hints
- status.notification
- tab.focused
- tab.unfocused
- tab.bar
- widgets.list.header
- widgets.form.label
- widgets.form.field
- widgets.form.highlighted
- widgets.options.highlighted
- mail.sidebar
- mail.sidebar_divider
- mail.sidebar_unread_count
- mail.sidebar_index
- mail.sidebar_highlighted
- mail.sidebar_highlighted_unread_count
- mail.sidebar_highlighted_index
- mail.sidebar_highlighted_account
- mail.sidebar_highlighted_account_unread_count
- mail.sidebar_highlighted_account_index
- mail.listing.compact.even
- mail.listing.compact.odd
- mail.listing.compact.even_unseen
- mail.listing.compact.odd_unseen
- mail.listing.compact.even_selected
- mail.listing.compact.odd_selected
- mail.listing.compact.even_highlighted
- mail.listing.compact.odd_highlighted
- mail.listing.plain.even
- mail.listing.plain.odd
- mail.listing.plain.even_unseen
- mail.listing.plain.odd_unseen
- mail.listing.plain.even_selected
- mail.listing.plain.odd_selected
- mail.listing.plain.even_highlighted
- mail.listing.plain.odd_highlighted
- mail.listing.conversations
- mail.listing.conversations.subject
- mail.listing.conversations.from
- mail.listing.conversations.date
- mail.listing.conversations.unseen
- mail.listing.conversations.highlighted
- mail.listing.conversations.selected
- mail.view.headers
- mail.view.headers_names
- mail.view.headers_area
- mail.view.body
- mail.view.thread.indentation.a
- mail.view.thread.indentation.b
- mail.view.thread.indentation.c
- mail.view.thread.indentation.d
- mail.view.thread.indentation.e
- mail.view.thread.indentation.f
- mail.listing.attachment_flag
- mail.listing.thread_snooze_flag
- mail.listing.tag_default
- pager.highlight_search
- pager.highlight_search_current
COLOR NAMES
name ↓ | byte | name | byte ↓ | |
Aqua | 14 | Black | 0 | |
Aquamarine1 | 122 | Maroon | 1 | |
Aquamarine2 | 86 | Green | 2 | |
Aquamarine3 | 79 | Olive | 3 | |
Black | 0 | Navy | 4 | |
Blue | 12 | Purple1 | 5 | |
Blue1 | 21 | Teal | 6 | |
Blue2 | 19 | Silver | 7 | |
Blue3 | 20 | Grey | 8 | |
BlueViolet | 57 | Red | 9 | |
CadetBlue | 72 | Lime | 10 | |
CadetBlue1 | 73 | Yellow | 11 | |
Chartreuse1 | 118 | Blue | 12 | |
Chartreuse2 | 112 | Fuchsia | 13 | |
Chartreuse3 | 82 | Aqua | 14 | |
Chartreuse4 | 70 | White | 15 | |
Chartreuse5 | 76 | Grey0 | 16 | |
Chartreuse6 | 64 | NavyBlue | 17 | |
CornflowerBlue | 69 | DarkBlue | 18 | |
Cornsilk1 | 230 | Blue2 | 19 | |
Cyan1 | 51 | Blue3 | 20 | |
Cyan2 | 50 | Blue1 | 21 | |
Cyan3 | 43 | DarkGreen | 22 | |
DarkBlue | 18 | DeepSkyBlue5 | 23 | |
DarkCyan | 36 | DeepSkyBlue6 | 24 | |
DarkGoldenrod | 136 | DeepSkyBlue7 | 25 | |
DarkGreen | 22 | DodgerBlue3 | 26 | |
DarkKhaki | 143 | DodgerBlue2 | 27 | |
DarkMagenta | 90 | Green4 | 28 | |
DarkMagenta1 | 91 | SpringGreen6 | 29 |
name ↓ | byte | name | byte ↓ | |
DarkOliveGreen1 | 192 | Turquoise4 | 30 | |
DarkOliveGreen2 | 155 | DeepSkyBlue3 | 31 | |
DarkOliveGreen3 | 191 | DeepSkyBlue4 | 32 | |
DarkOliveGreen4 | 107 | DodgerBlue1 | 33 | |
DarkOliveGreen5 | 113 | Green2 | 34 | |
DarkOliveGreen6 | 149 | SpringGreen4 | 35 | |
DarkOrange | 208 | DarkCyan | 36 | |
DarkOrange2 | 130 | LightSeaGreen | 37 | |
DarkOrange3 | 166 | DeepSkyBlue2 | 38 | |
DarkRed | 52 | DeepSkyBlue1 | 39 | |
DarkRed2 | 88 | Green3 | 40 | |
DarkSeaGreen | 108 | SpringGreen5 | 41 | |
DarkSeaGreen1 | 158 | SpringGreen2 | 42 | |
DarkSeaGreen2 | 193 | Cyan3 | 43 | |
DarkSeaGreen3 | 151 | DarkTurquoise | 44 | |
DarkSeaGreen4 | 157 | Turquoise2 | 45 | |
DarkSeaGreen5 | 115 | Green1 | 46 | |
DarkSeaGreen6 | 150 | SpringGreen3 | 47 | |
DarkSeaGreen7 | 65 | SpringGreen1 | 48 | |
DarkSeaGreen8 | 71 | MediumSpringGreen | 49 | |
DarkSlateGray1 | 123 | Cyan2 | 50 | |
DarkSlateGray2 | 87 | Cyan1 | 51 | |
DarkSlateGray3 | 116 | DarkRed | 52 | |
DarkTurquoise | 44 | DeepPink8 | 53 | |
DarkViolet | 128 | Purple4 | 54 | |
DarkViolet1 | 92 | Purple5 | 55 | |
DeepPink1 | 199 | Purple3 | 56 | |
DeepPink2 | 197 | BlueViolet | 57 | |
DeepPink3 | 198 | Orange3 | 58 | |
DeepPink4 | 125 | Grey37 | 59 |
name ↓ | byte | name | byte ↓ | |
DeepPink6 | 162 | MediumPurple6 | 60 | |
DeepPink7 | 89 | SlateBlue2 | 61 | |
DeepPink8 | 53 | SlateBlue3 | 62 | |
DeepPink9 | 161 | RoyalBlue1 | 63 | |
DeepSkyBlue1 | 39 | Chartreuse6 | 64 | |
DeepSkyBlue2 | 38 | DarkSeaGreen7 | 65 | |
DeepSkyBlue3 | 31 | PaleTurquoise4 | 66 | |
DeepSkyBlue4 | 32 | SteelBlue | 67 | |
DeepSkyBlue5 | 23 | SteelBlue3 | 68 | |
DeepSkyBlue6 | 24 | CornflowerBlue | 69 | |
DeepSkyBlue7 | 25 | Chartreuse4 | 70 | |
DodgerBlue1 | 33 | DarkSeaGreen8 | 71 | |
DodgerBlue2 | 27 | CadetBlue | 72 | |
DodgerBlue3 | 26 | CadetBlue1 | 73 | |
Fuchsia | 13 | SkyBlue3 | 74 | |
Gold1 | 220 | SteelBlue1 | 75 | |
Gold2 | 142 | Chartreuse5 | 76 | |
Gold3 | 178 | PaleGreen4 | 77 | |
Green | 2 | SeaGreen4 | 78 | |
Green1 | 46 | Aquamarine3 | 79 | |
Green2 | 34 | MediumTurquoise | 80 | |
Green3 | 40 | SteelBlue2 | 81 | |
Green4 | 28 | Chartreuse3 | 82 | |
GreenYellow | 154 | SeaGreen3 | 83 | |
Grey | 8 | SeaGreen1 | 84 | |
Grey0 | 16 | SeaGreen2 | 85 | |
Grey100 | 231 | Aquamarine2 | 86 | |
Grey11 | 234 | DarkSlateGray2 | 87 | |
Grey15 | 235 | DarkRed2 | 88 | |
Grey19 | 236 | DeepPink7 | 89 |
name ↓ | byte | name | byte ↓ | |
Grey23 | 237 | DarkMagenta | 90 | |
Grey27 | 238 | DarkMagenta1 | 91 | |
Grey3 | 232 | DarkViolet1 | 92 | |
Grey30 | 239 | Purple2 | 93 | |
Grey35 | 240 | Orange4 | 94 | |
Grey37 | 59 | LightPink3 | 95 | |
Grey39 | 241 | Plum4 | 96 | |
Grey42 | 242 | MediumPurple4 | 97 | |
Grey46 | 243 | MediumPurple5 | 98 | |
Grey50 | 244 | SlateBlue1 | 99 | |
Grey53 | 102 | Yellow4 | 100 | |
Grey54 | 245 | Wheat4 | 101 | |
Grey58 | 246 | Grey53 | 102 | |
Grey62 | 247 | LightSlateGrey | 103 | |
Grey63 | 139 | MediumPurple | 104 | |
Grey66 | 248 | LightSlateBlue | 105 | |
Grey69 | 145 | Yellow5 | 106 | |
Grey7 | 233 | DarkOliveGreen4 | 107 | |
Grey70 | 249 | DarkSeaGreen | 108 | |
Grey74 | 250 | LightSkyBlue2 | 109 | |
Grey78 | 251 | LightSkyBlue3 | 110 | |
Grey82 | 252 | SkyBlue2 | 111 | |
Grey84 | 188 | Chartreuse2 | 112 | |
Grey85 | 253 | DarkOliveGreen5 | 113 | |
Grey89 | 254 | PaleGreen3 | 114 | |
Grey93 | 255 | DarkSeaGreen5 | 115 | |
Honeydew2 | 194 | DarkSlateGray3 | 116 | |
HotPink | 205 | SkyBlue1 | 117 | |
HotPink1 | 206 | Chartreuse1 | 118 | |
HotPink2 | 169 | LightGreen | 119 |
name ↓ | byte | name | byte ↓ | |
HotPink3 | 132 | LightGreen1 | 120 | |
HotPink4 | 168 | PaleGreen1 | 121 | |
IndianRed | 131 | Aquamarine1 | 122 | |
IndianRed1 | 167 | DarkSlateGray1 | 123 | |
IndianRed2 | 204 | Red2 | 124 | |
IndianRed3 | 203 | DeepPink4 | 125 | |
Khaki1 | 228 | MediumVioletRed | 126 | |
Khaki3 | 185 | Magenta4 | 127 | |
LightCoral | 210 | DarkViolet | 128 | |
LightCyan2 | 195 | Purple | 129 | |
LightCyan3 | 152 | DarkOrange2 | 130 | |
LightGoldenrod1 | 227 | IndianRed | 131 | |
LightGoldenrod2 | 222 | HotPink3 | 132 | |
LightGoldenrod3 | 179 | MediumOrchid3 | 133 | |
LightGoldenrod4 | 221 | MediumOrchid | 134 | |
LightGoldenrod5 | 186 | MediumPurple2 | 135 | |
LightGreen | 119 | DarkGoldenrod | 136 | |
LightGreen1 | 120 | LightSalmon2 | 137 | |
LightPink1 | 217 | RosyBrown | 138 | |
LightPink2 | 174 | Grey63 | 139 | |
LightPink3 | 95 | MediumPurple3 | 140 | |
LightSalmon1 | 216 | MediumPurple1 | 141 | |
LightSalmon2 | 137 | Gold2 | 142 | |
LightSalmon3 | 173 | DarkKhaki | 143 | |
LightSeaGreen | 37 | NavajoWhite3 | 144 | |
LightSkyBlue1 | 153 | Grey69 | 145 | |
LightSkyBlue2 | 109 | LightSteelBlue3 | 146 | |
LightSkyBlue3 | 110 | LightSteelBlue | 147 | |
LightSlateBlue | 105 | Yellow6 | 148 | |
LightSlateGrey | 103 | DarkOliveGreen6 | 149 |
name ↓ | byte | name | byte ↓ | |
LightSteelBlue | 147 | DarkSeaGreen6 | 150 | |
LightSteelBlue1 | 189 | DarkSeaGreen3 | 151 | |
LightSteelBlue3 | 146 | LightCyan3 | 152 | |
LightYellow3 | 187 | LightSkyBlue1 | 153 | |
Lime | 10 | GreenYellow | 154 | |
Magenta1 | 201 | DarkOliveGreen2 | 155 | |
Magenta2 | 165 | PaleGreen2 | 156 | |
Magenta3 | 200 | DarkSeaGreen4 | 157 | |
Magenta4 | 127 | DarkSeaGreen1 | 158 | |
Magenta5 | 163 | PaleTurquoise1 | 159 | |
Magenta6 | 164 | Red3 | 160 | |
Maroon | 1 | DeepPink9 | 161 | |
MediumOrchid | 134 | DeepPink6 | 162 | |
MediumOrchid1 | 171 | Magenta5 | 163 | |
MediumOrchid2 | 207 | Magenta6 | 164 | |
MediumOrchid3 | 133 | Magenta2 | 165 | |
MediumPurple | 104 | DarkOrange3 | 166 | |
MediumPurple1 | 141 | IndianRed1 | 167 | |
MediumPurple2 | 135 | HotPink4 | 168 | |
MediumPurple3 | 140 | HotPink2 | 169 | |
MediumPurple4 | 97 | Orchid | 170 | |
MediumPurple5 | 98 | MediumOrchid1 | 171 | |
MediumPurple6 | 60 | Orange2 | 172 | |
MediumSpringGreen | 49 | LightSalmon3 | 173 | |
MediumTurquoise | 80 | LightPink2 | 174 | |
MediumVioletRed | 126 | Pink3 | 175 | |
MistyRose1 | 224 | Plum3 | 176 | |
MistyRose3 | 181 | Violet | 177 | |
NavajoWhite1 | 223 | Gold3 | 178 | |
NavajoWhite3 | 144 | LightGoldenrod3 | 179 |
name ↓ | byte | name | byte ↓ | |
Navy | 4 | Tan | 180 | |
NavyBlue | 17 | MistyRose3 | 181 | |
Olive | 3 | Thistle3 | 182 | |
Orange1 | 214 | Plum2 | 183 | |
Orange2 | 172 | Yellow3 | 184 | |
Orange3 | 58 | Khaki3 | 185 | |
Orange4 | 94 | LightGoldenrod5 | 186 | |
OrangeRed1 | 202 | LightYellow3 | 187 | |
Orchid | 170 | Grey84 | 188 | |
Orchid1 | 213 | LightSteelBlue1 | 189 | |
Orchid2 | 212 | Yellow2 | 190 | |
PaleGreen1 | 121 | DarkOliveGreen3 | 191 | |
PaleGreen2 | 156 | DarkOliveGreen1 | 192 | |
PaleGreen3 | 114 | DarkSeaGreen2 | 193 | |
PaleGreen4 | 77 | Honeydew2 | 194 | |
PaleTurquoise1 | 159 | LightCyan2 | 195 | |
PaleTurquoise4 | 66 | Red1 | 196 | |
PaleVioletRed1 | 211 | DeepPink2 | 197 | |
Pink1 | 218 | DeepPink3 | 198 | |
Pink3 | 175 | DeepPink1 | 199 | |
Plum1 | 219 | Magenta3 | 200 | |
Plum2 | 183 | Magenta1 | 201 | |
Plum3 | 176 | OrangeRed1 | 202 | |
Plum4 | 96 | IndianRed3 | 203 | |
Purple | 129 | IndianRed2 | 204 | |
Purple1 | 5 | HotPink | 205 | |
Purple2 | 93 | HotPink1 | 206 | |
Purple3 | 56 | MediumOrchid2 | 207 | |
Purple4 | 54 | DarkOrange | 208 | |
Purple5 | 55 | Salmon1 | 209 |
name ↓ | byte | name | byte ↓ | |
Red | 9 | LightCoral | 210 | |
Red1 | 196 | PaleVioletRed1 | 211 | |
Red2 | 124 | Orchid2 | 212 | |
Red3 | 160 | Orchid1 | 213 | |
RosyBrown | 138 | Orange1 | 214 | |
RoyalBlue1 | 63 | SandyBrown | 215 | |
Salmon1 | 209 | LightSalmon1 | 216 | |
SandyBrown | 215 | LightPink1 | 217 | |
SeaGreen1 | 84 | Pink1 | 218 | |
SeaGreen2 | 85 | Plum1 | 219 | |
SeaGreen3 | 83 | Gold1 | 220 | |
SeaGreen4 | 78 | LightGoldenrod4 | 221 | |
Silver | 7 | LightGoldenrod2 | 222 | |
SkyBlue1 | 117 | NavajoWhite1 | 223 | |
SkyBlue2 | 111 | MistyRose1 | 224 | |
SkyBlue3 | 74 | Thistle1 | 225 | |
SlateBlue1 | 99 | Yellow1 | 226 | |
SlateBlue2 | 61 | LightGoldenrod1 | 227 | |
SlateBlue3 | 62 | Khaki1 | 228 | |
SpringGreen1 | 48 | Wheat1 | 229 | |
SpringGreen2 | 42 | Cornsilk1 | 230 | |
SpringGreen3 | 47 | Grey100 | 231 | |
SpringGreen4 | 35 | Grey3 | 232 | |
SpringGreen5 | 41 | Grey7 | 233 | |
SpringGreen6 | 29 | Grey11 | 234 | |
SteelBlue | 67 | Grey15 | 235 | |
SteelBlue1 | 75 | Grey19 | 236 | |
SteelBlue2 | 81 | Grey23 | 237 | |
SteelBlue3 | 68 | Grey27 | 238 | |
Tan | 180 | Grey30 | 239 |
name ↓ | byte | name | byte ↓ | |
Teal | 6 | Grey35 | 240 | |
Thistle1 | 225 | Grey39 | 241 | |
Thistle3 | 182 | Grey42 | 242 | |
Turquoise2 | 45 | Grey46 | 243 | |
Turquoise4 | 30 | Grey50 | 244 | |
Violet | 177 | Grey54 | 245 | |
Wheat1 | 229 | Grey58 | 246 | |
Wheat4 | 101 | Grey62 | 247 | |
White | 15 | Grey66 | 248 | |
Yellow | 11 | Grey70 | 249 | |
Yellow1 | 226 | Grey74 | 250 | |
Yellow2 | 190 | Grey78 | 251 | |
Yellow3 | 184 | Grey82 | 252 | |
Yellow4 | 100 | Grey85 | 253 | |
Yellow5 | 106 | Grey89 | 254 | |
Yellow6 | 148 | Grey93 | 255 |
SEE ALSO
CONFORMING TO
TOML Standard v.0.5.0 https://toml.io/en/v0.5.0
https://no-color.org/
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⟩
January 23, 2020 | rendered by mandoc |
meli(7) [go back]
MELI(7) | Miscellaneous Information Manual | MELI(7) |
NAME
meli
— Tutorial
for the Meli Mail User Agent
SYNOPSIS
meli |
[...] |
TABLE OF CONTENTS
- DESCRIPTION
- INTRODUCTION
- INTERACTING WITH
meli
- MODES
- ACTIVE SHORTCUTS POPUP
- MAIN VIEW
- MAIL LIST
- PAGER
- MAIL VIEW
- COMPOSING
- THEMES
- SEE ALSO
- AUTHORS
DESCRIPTION
meli
is a terminal mail client aiming for
extensive and user-frendly configurability.
^^ .-=-=-=-. ^^ ^^ (`-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ ( `-=-=-=-(@)-=-=-` ) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-`) `-=-=-=-=-` ^^
INTRODUCTION
To quit meli
press
⟨q⟩ (shortcuts.general.quit)
at any time. To go to the next tab on the right, press ⟨T⟩
(shortcuts.general.next_tab).
When launched for the first time, meli
will search for its configuration directory,
$XDG_CONFIG_HOME/meli/. If it doesn't exist, you
will be asked if you want to create one and presented with a sample
configuration file
($XDG_CONFIG_HOME/meli/config.toml) that includes
the basic settings required for setting up accounts allowing you to copy and
edit right away. See meli.conf(5) for
the available configuration options.
At any time, you may press ⟨?⟩ (shortcuts.general.toggle_help) for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports.
Each time a shortcut is mentioned in this document, you will find a parenthesis next to it with the name of the shortcut setting along with its section in the configuration settings so that you can modify it if you wish.
For example, to set the toggle_help shortcut mentioned in the previous paragraph, add the following to your configuration:
[shortcuts] general.toggle_help = 'F1'
Or alternatively:
[shortcuts.general] toggle_help = 'F1'
INTERACTING
WITH meli
You will be interacting with meli
in four
primary ways:
1. keyboard shortcuts in NORMAL mode. |
2. commands with arguments in COMMAND mode. |
3. regular text input in text input widgets in INSERT mode. |
4. any kind of input that gets passed directly into an embedded terminal in EMBED mode. |
MODES
meli
is a modal application, just like
vi(1). This means that pressing the same keys
in different modes would yield different results. This allows you to
separate how the input is interpreted without the need to focus your input
with a mouse.
- NORMAL
- This is the default mode of
meli
. All keyboard shortcuts work in this mode. - COMMAND
- Commands are issued in COMMAND mode, by default started with ⟨:⟩ (shortcuts.general.enter_command_mode) and exited with ⟨Esc⟩ key.
- EMBED
- This is the mode of the embed terminal emulator. To exit an embedded
application, issue ⟨Ctrl-C⟩ to kill it or
⟨Ctrl-Z⟩ to stop the program and follow the instructions on
meli
to exit. - INSERT
- This mode is entered when pressing ⟨Enter⟩ on a cursor selected text input field, and it captures all input as text input. It is exited with the ⟨Esc⟩ key.
ACTIVE SHORTCUTS POPUP
By pressing ⟨?⟩ (shortcuts.general.toggle_help) at any time, the shortcuts popup display status gets toggled. You can find all valid shortcuts for the current UI state you are in.
┌─shortcuts──Press ? to close────────────────────────────────┐ │ ▀│ │ use COMMAND "search" to find shortcuts █│ │ Use Up, Down, Left, Right to scroll. █│ │ █│ │ pager █│ │ █│ │ PageDown page_down █│ │ PageUp page_up │ │ j scroll_down │ │ k scroll_up │ │ │ │ view mail │ │ │ │ c add_addresses_to_contacts │ │ e edit │ │ u toggle_url_mode │ │ a open_attachment │ │ m open_mailcap │ │ R reply │ │ C-r reply_to_author │ │ C-g reply_to_all │ │ C-f forward │ │ M-r view_raw_source │ │ h toggle_expand_headers ▄│ └────────────────────────────────────────────────────────────┘
MAIN VIEW
┌───────────────────────┐ ├────┼──────────────────┤ │___ │ ___________ │ │ _ │ _______________ │ │ _ │__________________│ │ _ │ ___________ │ │ │ _____ │ │ │ │ └────┴──────────────────┘
This is the view you will spend more time with in
meli
.
Press ⟨Left⟩ (shortcuts.listing.focus_right) to switch focus on the sidebar menu. Press ⟨Right⟩ (shortcuts.listing.focus_left) to switch focus on the e-mail list.
On the e-mail list, press ⟨k⟩ (shortcuts.listing.scroll_up) to scroll up, and ⟨j⟩ (shortcuts.listing.scroll_down) to scroll down. Press ⟨Enter⟩ (shortcuts.listing.open_entry) to open an e-mail entry and ⟨i⟩ (shortcuts.listing.exit_entry) to exit it.
┌─────────────┉┉┉┉┉✂ │ mail▐ contact li✂ │personal account ✂ │ 0 INBOX ✂ │ 1 ┣━Sent ✂ │ 2 ┣━Lists ✂ │ 3 ┃ ┣━meli-dev ✂ │ 4 ┃ ┗━meli ✂ │ 5 ┣━Drafts ✂ │ 6 ┣━Trash ✂ │ 7 ┗━foobar ✂ ┇ 8 Trash ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂
Press ⟨k⟩ (shortcuts.listing.scroll_up) to scroll up, and ⟨j⟩ (shortcuts.listing.scroll_down) to scroll down.
Press ⟨Enter⟩ (shortcuts.listing.open_mailbox) to open an entry (either a mailbox or an account name). Entering an account name will show you a page with details about the account and its network connection, depending on the backend.
While focused in the sidebar, you can
“collapse” a mailbox tree, if it has children, and you can
open it with ⟨Space⟩
(shortcuts.listing.toggle_mailbox_collapse).
You can have mailbox trees collapsed on startup by default by setting a
mailbox's collapsed
setting to
true. See
meli.conf(5) section MAILBOXES for
details.
You can increase the sidebar's width with ⟨Ctrl-p⟩ (shortcuts.listing.increase_sidebar) and decrease with ⟨Ctrl-o⟩ (shortcuts.listing.decrease_sidebar).
┌────────────────────────────────────────────────────┈┈ │NORMAL | Mailbox: Inbox, Messages: 25772, New: 3006 └────────────────────────────────────────────────────┈┈
The status bar shows which mode you are, and the status message of the current view. In the pictured example, it shows the status of a mailbox called “Inbox” with lots of e-mails.
┈┈────────────┐ 12 │ ┈┈────────────┘
Some commands may accept a number modifier. For example, scroll down commands can receive a multiplier n to scroll down n entries. Another use of the number buffer is opening URLs inside the pager. See PAGER for an explanation of interacting with URLs in e-mails.
Pressing numbers in NORMAL mode will populate this buffer. To erase it, press the ⟨Esc⟩ key.
MAIL LIST
There are four different list styles:
- "plain" which shows one line per e-mail.
- "threaded" which shows a threaded view with drawn tree structure.
- "compact" which shows one line per thread which can include multiple e-mails.
- "conversations" which shows more than one line per thread which can include multiple e-mails with more details about the thread.
│42 Fri, 02 Sep 2022 19:51 xxxxxxxxxxxxx < [PATCH 3/8] │ │43 Fri, 02 Sep 2022 19:51 xxxxxxxxxxxxx < [PATCH 2/8] │ │44 Fri, 02 Sep 2022 19:51 xxxxxxxxxxxxx < [PATCH 1/8] │ |45 Fri, 02 Sep 2022 19:51 xxxxxxxxxxxxx < [PATCH 0/8] | │46 Fri, 02 Sep 2022 18:18 xxxxxxxx <xxxxx Re: [PATCH 3│
│12 9 hours ago xxxxxxxxxxxxxxx [PATCH v3 0│ │13 9 hours ago xxxxxxxxxxxxxxx ├─>[PATCH │ │14 9 hours ago xxxxxxxxxxxxxxx ├─>[PATCH │ |15 9 hours ago xxxxxxxxxxxxxxx ├─>[PATCH | │16 9 hours ago xxxxxxxxxxxxxxx ├─>[PATCH │ │17 9 hours ago xxxxxxxxxxxxxxx └─>[PATCH │ │18 2022-08-23 01:23:51 xxxxxxxxxxxxxxx [RFC v4 00/│ │19 2022-08-23 01:23:52 xxxxxxxxxxxxxxx ├─>[RFC v4│ |20 2022-08-30 10:30:16 xxxxxxxxxxxxxxx │ └─> | │21 6 days ago xxxxxxxxxxxxxxx │ └─> │ │22 2022-08-23 01:23:53 xxxxxxxxxxxxxxx ├─>[RFC v4│
│18 2022-…:38 xxxxxxxxxxxxxxx [PATCH v3 3/3] u…_l() (2) │ |19 2022-…:49 xxxxxxxxxxxxxxx [PATCH v8 0/7] A…e (3) | │20 2022-…:10 xxxxxxxxxxxxxxx [PATCH v8 2/7] f…s (2) │ │21 2022-…:38 xxxxxxxxxxxxxxx [PATCH v8 3/7] b…s (2) │ │22 2022-…:53 xxxxxxxxxxxxxxx [PATCH v6 00/10] p…g (31) │
│[PATCH v2] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (5) │ |1 day ago▁▁▁▁xxxxxxxxxxxxx <xxxxxxxxxxxxx@xxxxxxxxxx>, xxxxx│ │ | │[PATCH v2 0/8] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx│ │1 day ago▁▁▁▁xxxxxxxxxxxxxxx <xxxxxxxxxx@xxxxxxxxxxxxxx>, xx│ | │ │[PATCH 0/2] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (4) | │2 days ago▁▁▁▁xxxxxxxxxxxxxxxx <xxxxxxxx@xxxxxxxxxxx>, xxxxx│ │ │ │[PATCH 0/8] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (12) │ │2 days ago▁▁▁▁xxxxxxxxxxxxx <xxxxxxxx@xxxxxxxxxx>, xxxxxxxxx│
Performing actions on entries and/or selections.
Press ⟨v⟩ (shortcuts.listing.select_entry) to toggle the selection of a single entry. "select_entry" can be prefixed by a number modifier and affixed by a scrolling motion (up or down) to select multiple entries. Simple set operations can be performed on a selection with these shortcut modifiers:
- Union modifier: ⟨Ctrl-u⟩ (shortcuts.listing.union_modifier)
- Difference modifier: ⟨Ctrl-d⟩ (shortcuts.listing.diff_modifier)
- Intersection modifier: ⟨Ctrl-i⟩ (shortcuts.listing.intersection_modifier)
To set an entry as "read" , use the ⟨n⟩ (shortcuts.listing.set_seen) shortcut. To set an entry as "unread" , use the command
set unseen
which also has its complement
set seen
action.
For e-mail backends that support tags (like "IMAP" or "notmuch") you can use the following commands on entries and selections to modify them:
tag add TAG
tag remove TAG
(see meli.conf(5) TAGS,
settings colors
and
ignore_tags
for how to set tag colors and tag
visibility)
PAGER
You can open an e-mail entry by pressing ⟨Enter⟩ (shortcuts.listing.open_entry). This brings up the e-mail view with the e-mail content inside a pager.
┌────────────────────────────────────────────────────────────┐ │Date: Sat, 21 May 2022 16:16:11 +0300 ▀│ │From: Narrator <narrator@example.com> █│ │To: Stanley <427@example.com> █│ │Subject: The e-mail ending █│ │Message-ID: <gambheerata@example.com> █│ │ █│ │The story, and the choices, or what have you, and therefore█│ │by becoming it is! So on and so forth, until inevitably, we │ │all until the end of time. At which time, everything all at │ │once, so now you see? Blah, blah, blah, rah, rah, rah... │ │We've eaten too much and it can't be just yet. No, no! │ │Until two-hundred and forty-five! But the logic of │ │elimination, working backwards, the deduction therefore │ │becomes impossible to manufacture. It went on for nearly │ │ten thousand years, until just yesterday. Here and there, │ │forward and back, and never a moment before lunchtime. It │ │can't be! It's the only thing there is! How many billions │ │left until so much more than forever ago! Which is why I │ │say: │ │ │ │The story, and the choices, or what have you, and therefore │ │by becoming it is! So on and so forth, until inevitably, we▄│ └────────────────────────────────────────────────────────────┘
The pager is simple to use. Scroll with the following:
- Go to next pager page
- ⟨PageDown⟩ (shortcuts.pager.page_down)
- Go to previous pager page
- ⟨PageUp⟩ (shortcuts.pager.page_up)
- Scroll down pager.
- ⟨j⟩ (shortcuts.pager.scroll_down)
- Scroll up pager.
- ⟨k⟩ (shortcuts.pager.scroll_up)
All scrolling shortcuts can be prefixed with a number modifier which will act as a multiplier.
The pager can enter a special
url mode which will
prefix all detected hyperlinks and e-mail addresses with a number inside
square brackets ⟨u⟩
(shortcuts.pager.toggle_url_mode).
Writing down a chosen number as a number modifier
and pressing
⟨g⟩ (shortcuts.envelope_view.go_to_url)
will attempt to open the link with the system's default open command
(xdg-open(1) in supported OSes, and
open(1) on MacOS). To override with a
custom launcher, see "pager
" configuration
setting "url_launcher
" (see
meli.conf(5) PAGER for more
details).
MAIL VIEW
Other things you can do when viewing e-mail:
- Most importantly, you can exit the mail view with: ⟨i⟩ (shortcuts.listing.exit_entry)
- Add addresses from the e-mail headers to contacts: ⟨c⟩ (shortcuts.envelope_view.add_addresses_to_contacts)
- Open an attachment by entering its index as a number modifier and pressing: ⟨a⟩ (shortcuts.envelope_view.open_attachment)
- Open an attachment by its mailcap(4) entry by entering its index as a number modifier and pressing: ⟨m⟩ (shortcuts.envelope_view.open_mailcap)
- Reply to envelope: ⟨R⟩ (shortcuts.envelope_view.reply)
- Reply to author: ⟨Ctrl-r⟩ (shortcuts.envelope_view.reply_to_author)
- Reply to all/Reply to list/Follow up: ⟨Ctrl-g⟩ (shortcuts.envelope_view.reply_to_all)
- Forward email: ⟨Ctrl-f⟩ (shortcuts.envelope_view.forward)
- Expand extra headers: (References and others) ⟨h⟩ (shortcuts.envelope_view.toggle_expand_headerk)
- View envelope source in a pager: (toggles between raw and decoded source) ⟨M-r⟩ (shortcuts.envelope_view.view_raw_source)
- Return to envelope_view if viewing raw source or attachment: ⟨r⟩ (shortcuts.envelope_view.return_to_normal_view)
COMPOSING
To compose an e-mail, you can either start with an empty draft by pressing ⟨m⟩ (shortcuts.listing.new_mail) which opens a composer view in a new tab. To reply to a specific e-mail, when in envelope view you can select the specific action you want to take:
- Reply to envelope. ⟨R⟩ (shortcuts.envelope_view.reply)
- Reply to author. ⟨Ctrl-r⟩ (shortcuts.envelope_view.reply_to_author)
- Reply to all. ⟨Ctrl-g⟩ (shortcuts.envelope_view.reply_to_all)
To launch your editor, press ⟨e⟩ (shortcuts.composing.edit_mail). To send your draft, press ⟨s⟩ (shortcuts.composing.send_mail). To save the draft without submission, enter the command
close
and select "save as draft". You can return to the draft by going to your "Drafts" mailbox and selecting ⟨e⟩ (shortcuts.envelope_view.edit_mail).
┌────────────────────────────────────────────────────────────┐ │ mail▐ contact list ▐ composing ▍███████████████████████│ │ COMPOSING MESSAGE │ │ Date Mon, 05 Sep 2022 17:49:19 +0300 │ │ From myself <myself@example.com>░░░░ │ │ To friend <myfriend@example.com>░░ │ │ Cc ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ Bcc ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ Subject This is my subject!░░░░░░░░░░░░ │ │ │ │ Hello friend!░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ │ │ ☐ don't sign │ │ ☐ don't encrypt │ │ no attachments │ │ │ │NORMAL | Mailbox: Inbox, Messages: 25772, New: 3006 │ └────────────────────────────────────────────────────────────┘
If you enable the embed terminal option, you can launch your
terminal editor of choice when you press
edit_mail
.
┌────────────────────────────────────────────────────────────┐ │ mail▐ contact list ▐ composing ▍███████████████████████│ │ ╓COMPOSING MESSAGE┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄╖ │ │ ║ p/v/f/h/5/T/m/07f56b6e-ec09-49d9-b8d8-f0c5a81e7826 ║ │ │ ║ 7 Date: Mon, 05 Sep 2022 18:43:10 +0300 ║ │ │ ║ 6 From: Mister Cardholder <mrholder@example.com> ║ │ │ ║ 5 To: ║ │ │ ║ 4 Cc: ║ │ │ ║ 3 Bcc: ║ │ │ ║ 2 Subject: ║ │ │ ║ 1 User-Agent: meli 0.7.2 ║ │ │ ║8 █ ║ │ │ ║~ ║ │ │ ║~ ║ │ │ ║~ ║ │ │ ║~ ║ │ │ ║ N… <6e-ec09-49d9-b8d8-f0c5a81e7826 100% ㏑:8 ℅:1║ │ │ ╚════════════════════════════════════════════════════╝ │ │ │ │ │ │ ☐ don't sign │ │ ☐ don't encrypt │ │ no attachments │ │ │ │EMBED | Mailbox: Inbox, Messages: 25772, New: 3006 │ └────────────────────────────────────────────────────────────┘
composing mail commands
add-attachment
PATH- in composer, add PATH as an attachment
add-attachment <
CMD ARGS- in composer, pipe CMD ARGS output into an attachment
add-attachment-file-picker
- Launch command defined in the configuration value
file_picker_command
in meli.conf(5) TERMINAL add-attachment-file-picker <
CMD ARGS- Launch command CMD ARGS. The command should print file paths in stderr, separated by NULL bytes.
remove-attachment
INDEX- remove attachment with given index
toggle sign
- toggle between signing and not signing this message. If the gpg invocation fails then the mail won't be sent. See meli.conf(5) PGP for PGP configuration.
save-draft
- saves a copy of the draft in the Draft folder
THEMES
See meli-themes(5) for
documentation on how to theme meli
.
SEE ALSO
meli(1), meli.conf(5), meli-themes(5), xdg-open(1), mailcap(5)
AUTHORS
Copyright 2017-2022 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 https://github.com/meli/meli https://crates.io/crates/meli
September 4, 2022 | rendered by mandoc |
[go back]