.\" meli - meli.7 .\" .\" Copyright 2017-2022 Manos Pitsidianakis .\" .\" This file is part of meli. .\" .\" meli is free software: you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation, either version 3 of the License, or .\" (at your option) any later version. .\" .\" meli is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with meli. If not, see . .\" .\".de Hr .\".Bd -literal -offset center .\"╌╍─────────────────────────────────────────────────────────╍╌ .\".Ed .\".. .de Shortcut .Sm .Aq \\$1 \ .Po .Em shortcuts.\\$2\&. Ns .Em \\$3 .Pc .Sm .. .de ShortcutPeriod .Aq \\$1 .Po .Em shortcuts.\\$2\&. Ns .Em \\$3 .Pc Ns .. .de Command .Bd -offset 1n -ragged .Cm \\$* .Ed .. .Dd November 11, 2022 .Dt MELI 7 .Os .Sh NAME .Nm meli .Nd Tutorial for the meli terminal e-mail client .Sh SYNOPSIS .Nm .Op ... .Sh DESCRIPTION .Nm is a terminal mail client aiming for extensive and user-frendly configurability. .Bd -literal -offset center ^^ .-=-=-=-. ^^ ^^ (`-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ ( `-=-=-=-(@)-=-=-` ) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-=-=-=-`) ^^ (`-=-=-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-`) `-=-=-=-=-` ^^ .Ed .Sh INTRODUCTION To quit .Nm press .Shortcut q general quit at any time. To go to the next tab on the right, press .ShortcutPeriod T general next_tab \&. .Pp When launched for the first time, .Nm will search for its configuration directory, .Pa $XDG_CONFIG_HOME/meli/ Ns \&. If it doesn't exist, you will be asked if you want to create one and presented with a sample configuration file .Pq Pa $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 .Xr meli.conf 5 for the available configuration options. .Pp At any time, you may press .Shortcut \&? general toggle_help for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports. .Pp 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. .Pp For example, to set the .Em toggle_help shortcut mentioned in the previous paragraph, add the following to your configuration: .Bd -literal -offset center [shortcuts] general.toggle_help = 'F1' .Ed .sp Or alternatively: .Bd -literal -offset center [shortcuts.general] toggle_help = 'F1' .Ed .Sh INTERACTING WITH Nm You will be interacting with .Nm in four primary ways: .Bl -column .It 1. keyboard shortcuts in .Sy NORMAL mode. .It 2. commands with arguments in .Sy COMMAND mode. .It 3. regular text input in text input widgets in .Sy INSERT mode. .It 4. any kind of input that gets passed directly into an embedded terminal in .Sy EMBED mode. .El .Sh MODES .Nm is a modal application, just like .Xr vi 1 Ns \&. 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. .Bl -tag -width 8n .It NORMAL This is the default mode of .Nm Ns \&. All keyboard shortcuts work in this mode. .It COMMAND Commands are issued in .Sy COMMAND mode, by default started with .Shortcut \&: general enter_command_mode and exited with .Aq Esc key. .It EMBED This is the mode of the embed terminal emulator. To exit an embedded application, issue .Aq Ctrl-C to kill it or .Aq Ctrl-Z to stop the program and follow the instructions on .Nm to exit. .It INSERT This mode is entered when pressing .Aq Enter on a cursor selected text input field, and it captures all input as text input. It is exited with the .Aq Esc key. .El .Sh ACTIVE SHORTCUTS POPUP By pressing .Shortcut \&? 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. .Bd -literal -offset center ┌─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 ▄│ └────────────────────────────────────────────────────────────┘ .Ed .Bd -ragged -offset 3n .Em Shows\ active\ shortcuts\ in\ order\ of\ the\ widget\ hierarchy\&. .Ed .Sh MAIN VIEW .Bd -literal -offset center ┌───────────────────────┐ ├────┼──────────────────┤ │___ │ ___________ │ │ _ │ _______________ │ │ _ │__________________│ │ _ │ ___________ │ │ │ _____ │ │ │ │ └────┴──────────────────┘ .Ed .Bd -ragged -offset 3n .Em The\ main\ view's\ layout\&. .Ed .sp This is the view you will spend more time with in .Nm Ns \&. .Pp Press .Shortcut ` listing toggle_menu_visibility to toggle the sidebars visibility. .Pp Press .Shortcut Left listing focus_right to switch focus on the sidebar menu. Press .Shortcut Right listing focus_left to switch focus on the e-mail list. .Pp On the e-mail list, press .Shortcut k listing scroll_up to scroll up, and .Shortcut j listing scroll_down to scroll down. Press .Shortcut Enter listing open_entry to open an e-mail entry and .Shortcut i listing exit_entry to exit it. .Bd -ragged .Sy The sidebar\&. .Ed .Bd -literal -offset center ┌─────────────┉┉┉┉┉✂ │ mail▐ contact li✂ │personal account ✂ │ 0 INBOX ✂ │ 1 ┣━Sent ✂ │ 2 ┣━Lists ✂ │ 3 ┃ ┣━meli-dev ✂ │ 4 ┃ ┗━meli ✂ │ 5 ┣━Drafts ✂ │ 6 ┣━Trash ✂ │ 7 ┗━foobar ✂ ┇ 8 Trash ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ ✂ .Ed .sp Press .Shortcut k listing scroll_up to scroll up, and .Shortcut j listing scroll_down to scroll down. .Pp Press .Shortcut Enter 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. .Pp While focused in the sidebar, you can .Dq collapse a mailbox tree, if it has children, and you can open it with .ShortcutPeriod Space listing toggle_mailbox_collapse \&. You can have mailbox trees collapsed on startup by default by setting a mailbox's .Ic collapsed setting to .Em true Ns \&. See .Xr meli.conf 5 section MAILBOXES for details. .Pp You can increase the sidebar's width with .Shortcut Ctrl-p listing increase_sidebar and decrease with .ShortcutPeriod Ctrl-o listing decrease_sidebar \&. .Bd -ragged .Sy The status bar. .Ed .Bd -literal -offset center ┌────────────────────────────────────────────────────┈┈ │NORMAL | Mailbox: Inbox, Messages: 25772, New: 3006 └────────────────────────────────────────────────────┈┈ .Ed .Pp 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 .Dq Inbox with lots of e-mails. .Bd -ragged .Sy The number modifier buffer. .Ed .Bd -literal -offset center ┈┈────────────┐ 12 │ ┈┈────────────┘ .Ed .Pp Some commands may accept a number modifier. .Tg number-modifier For example, scroll down commands can receive a multiplier .Em n to scroll down .Em n entries. Another use of the number buffer is opening URLs inside the pager. See .Sx PAGER for an explanation of interacting with URLs in e-mails. .Pp Pressing numbers in .Sy NORMAL mode will populate this buffer. To erase it, press the .Aq Esc key. .Sh MAIL LIST There are four different list styles: .Bl -hyphen -compact .It .Qq plain which shows one line per e-mail. .It .Qq threaded which shows a threaded view with drawn tree structure. .It .Qq compact which shows one line per thread which can include multiple e-mails. .It .Qq conversations which shows more than one line per thread which can include multiple e-mails with more details about the thread. .El .Bd -ragged .Sy Plain view\&. .Ed .Bd -literal -offset center │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 [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│ .Ed .Bd -ragged .Sy Compact view\&. .Ed .Bd -literal -offset center │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) │ .Ed .Bd -ragged .Sy Conversations view\&. .Ed .Bd -literal -offset center │[PATCH v2] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (5) │ |1 day ago▁▁▁▁xxxxxxxxxxxxx , xxxxx│ │ | │[PATCH v2 0/8] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx│ │1 day ago▁▁▁▁xxxxxxxxxxxxxxx , xx│ | │ │[PATCH 0/2] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (4) | │2 days ago▁▁▁▁xxxxxxxxxxxxxxxx , xxxxx│ │ │ │[PATCH 0/8] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (12) │ │2 days ago▁▁▁▁xxxxxxxxxxxxx , xxxxxxxxx│ .Ed .sp .sp .Sy Performing actions on entries and/or selections\&. .Pp Press .Shortcut v listing select_entry to toggle the selection of a single entry. .Qq select_entry can be prefixed by a number modifier and affixed by a scrolling motion (up or down) to select multiple entries. .Tg number-modifier Simple set operations can be performed on a selection with these shortcut modifiers: .sp .Bl -hyphen -compact .It Union modifier: .Shortcut Ctrl-u listing union_modifier .It Difference modifier: .Shortcut Ctrl-d listing diff_modifier .It Intersection modifier: .Shortcut Ctrl-i listing intersection_modifier .El .Pp To set an entry as .Qq read \&, use the .Shortcut n listing set_seen shortcut. To set an entry as .Qq unread \&, use the command .Command set unseen .sp which also has its complement .Command set seen .sp action. .Pp For e-mail backends that support tags .Po like .Qq IMAP or .Qq notmuch Ns .Pc you can use the following commands on entries and selections to modify them: .Command tag add TAG .Command tag remove TAG .sp (see .Xr meli.conf 5 TAGS Ns , settings .Ic colors and .Ic ignore_tags for how to set tag colors and tag visibility) .Sh PAGER You can open an e-mail entry by pressing .ShortcutPeriod Enter listing open_entry \&. This brings up the e-mail view with the e-mail content inside a pager. .Bd -literal -offset center ┌────────────────────────────────────────────────────────────┐ │Date: Sat, 21 May 2022 16:16:11 +0300 ▀│ │From: Narrator █│ │To: Stanley <427@example.com> █│ │Subject: The e-mail ending █│ │Message-ID: █│ │ █│ │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▄│ └────────────────────────────────────────────────────────────┘ .Ed .Bd -ragged -offset 3n .Em The\ pager\ displaying\ an\ e-mail\&. .Ed .Pp The pager is simple to use. Scroll with the following: .Bl -hang -width 27n .It Go to next pager page .Shortcut PageDown pager page_down .It Go to previous pager page .Shortcut PageUp pager page_up .It Scroll down pager. .Shortcut j pager scroll_down .It Scroll up pager. .Shortcut k pager scroll_up .El .sp All scrolling shortcuts can be prefixed with a number modifier .Tg number-modifier which will act as a multiplier. .Pp The pager can enter a special .Em url mode which will prefix all detected hyperlinks and e-mail addresses with a number inside square brackets .ShortcutPeriod u pager toggle_url_mode \&. Writing down a chosen number as a number modifier .Tg number-modifier and pressing .Shortcut g envelope_view go_to_url will attempt to open the link with the system's default open command .Po .Xr xdg-open 1 in supported OSes, and .Xr open 1 on MacOS .Pc Ns \&. To override with a custom launcher, see .Qo .Li pager .Qc configuration setting .Qo .Li url_launcher .Qc .Po see .Xr meli.conf 5 PAGER for more details .Pc Ns \&. .Sh MAIL VIEW Other things you can do when viewing e-mail: .Bl -bullet -compact .It Most importantly, you can exit the mail view with: .Shortcut i listing exit_entry .It Add addresses from the e-mail headers to contacts: .Shortcut c envelope_view add_addresses_to_contacts .It Open an attachment by entering its index as a number modifier and pressing: .Tg number-modifier .Shortcut a envelope_view open_attachment .It Open an attachment by its .Xr mailcap 4 entry by entering its index as a number modifier and pressing: .Shortcut m envelope_view open_mailcap .It Reply to envelope: .Shortcut R envelope_view reply .It Reply to author: .Shortcut Ctrl-r envelope_view reply_to_author .It Reply to all/Reply to list/Follow up: .Shortcut Ctrl-g envelope_view reply_to_all .It Forward email: .Shortcut Ctrl-f envelope_view forward .It Expand extra headers: (References and others) .Shortcut h envelope_view toggle_expand_headerk .It View envelope source in a pager: (toggles between raw and decoded source) .Shortcut M-r envelope_view view_raw_source .It Return to envelope_view if viewing raw source or attachment: .Shortcut r envelope_view return_to_normal_view .El .Sh COMPOSING To compose an e-mail, you can either start with an empty draft by pressing .Shortcut m 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: .sp .Bl -bullet -compact .It Reply to envelope. .Shortcut R envelope_view reply .It Reply to author. .Shortcut Ctrl-r envelope_view reply_to_author .It Reply to all. .Shortcut Ctrl-g envelope_view reply_to_all .El .sp To launch your editor, press .ShortcutPeriod e composing edit_mail \&. To send your draft, press .ShortcutPeriod s composing send_mail \&. To save the draft without submission, enter the command .Command close .sp and select .Qq save as draft Ns \&. You can return to the draft by going to your .Qq Drafts mailbox and selecting .ShortcutPeriod e envelope_view edit_mail \&. .Bd -literal -offset center ┌────────────────────────────────────────────────────────────┐ │ mail▐ contact list ▐ composing ▍███████████████████████│ │ COMPOSING MESSAGE │ │ Date Mon, 05 Sep 2022 17:49:19 +0300 │ │ From myself ░░░░ │ │ To friend ░░ │ │ Cc ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ Bcc ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ Subject This is my subject!░░░░░░░░░░░░ │ │ │ │ Hello friend!░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │ │ │ ☐ don't sign │ │ ☐ don't encrypt │ │ no attachments │ │ │ │NORMAL | Mailbox: Inbox, Messages: 25772, New: 3006 │ └────────────────────────────────────────────────────────────┘ .Ed .Bd -ragged -offset 3n .Em The\ lightly\ highlighted\ cells\ represent\ text\ input\ fields\&. .Ed .sp If you enable the embed terminal option, you can launch your terminal editor of choice when you press .Ic edit_mail Ns \&. .Bd -literal -offset center ┌────────────────────────────────────────────────────────────┐ │ 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 ║ │ │ ║ 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 │ └────────────────────────────────────────────────────────────┘ .Ed .Bd -ragged -offset 3n .Bf -emphasis .Xr neovim 1 Ns \ running\ inside\ the\ composing\ tab\&. .Ef The\ double\ line\ border\ annotates\ the\ area\ of\ the\ embedded\ terminal, the\ actual\ embedding\ is\ seamless\&. .Ed .Ss composing mail commands .Bl -tag -width 36n .It Cm add-attachment Ar PATH in composer, add .Ar PATH as an attachment .It Cm add-attachment < Ar CMD Ar ARGS in composer, pipe .Ar CMD Ar ARGS output into an attachment .It Cm add-attachment-file-picker Launch command defined in the configuration value .Ic file_picker_command in .Xr meli.conf 5 TERMINAL .It Cm add-attachment-file-picker < Ar CMD Ar ARGS Launch command .Ar CMD Ar ARGS Ns \&. The command should print file paths in stderr, separated by NULL bytes. .It Cm remove-attachment Ar INDEX remove attachment with given index .It Cm toggle sign toggle between signing and not signing this message. If the gpg invocation fails then the mail won't be sent. See .Xr meli.conf 5 PGP for PGP configuration. .It Cm save-draft saves a copy of the draft in the Draft folder .El .\" TODO add contacts section .Sh THEMES See .Xr meli-themes 5 for documentation on how to theme .Nm Ns \&. .Sh SEE ALSO .Xr meli 1 , .Xr meli.conf 5 , .Xr meli-themes 5 , .Xr xdg-open 1 , .Xr mailcap 5 .Sh AUTHORS Copyright 2017-2022 .An Manos Pitsidianakis Mt 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.) .Pp .Lk https://meli.delivery .Lk https://github.com/meli/meli .Lk https://crates.io/crates/meli