MELI(7) | Miscellaneous Information Manual | MELI(7) |
NAME¶
meli
— Tutorial
for the meli terminal e-mail client
SYNOPSIS¶
meli |
[...] |
DESCRIPTION¶
meli
is a terminal mail client aiming for
extensive and user-friendly configurability.
^^ .-=-=-=-. ^^ ^^ (`-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ ( `-=-=-=-(@)-=-=-` ) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-`) `-=-=-=-=-` ^^
INTRODUCTION¶
To quit meli
press
⟨q⟩ (shortcuts.general.quit)
at any time. 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'
To go to the next tab on the right, press ⟨T⟩ (shortcuts.general.next_tab).
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 flags you can use the following commands on entries and selections to modify them:
flag set FLAG
flag unset FLAG
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) You can clear the selection with
the ⟨Esc⟩ key.
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 e-mail: ⟨Ctrl-f⟩ (shortcuts.envelope_view.forward)
- Expand extra headers: (References and others) ⟨h⟩ (shortcuts.envelope_view.toggle_expand_headers)
- 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). 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▐ 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▐ 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–2024 Manos Pitsidianakis <manos@pitsidianak.is>
Released under the GPL, version 3 or greater. This software carries no warranty of any kind. (See COPYING for full copyright and warranty notices.)
Links¶
March 10, 2024 | Debian |