meli/docs/meli.7

25 KiB
Raw Blame History

MELI(7)                Miscellaneous Information Manual                MELI(7)

NAME
     meli  Tutorial for the Meli Mail User Agent

SYNOPSIS
     meli [...]

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                     ▄│
           └────────────────────────────────────────────────────────────┘

        Shows active shortcuts in order of the widget hierarchy.

MAIN VIEW
            ┌───────────────────────┐
            ├────┼──────────────────┤
            │___ │  ___________     │
            │ _  │ _______________  │
            │ _  │__________________│
            │ _  │      ___________ │
            │    │  _____           │
            │    │                  │
            └────┴──────────────────┘

        The main view's layout.

     This is the view you will spend more time with in meli.

     Press ⟨`⟩ (shortcuts.listing.toggle_menu_visibility) to toggle the
     sidebars visibility.

     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.

     The sidebar.

           ┌─────────────┉┉┉┉┉✂
           │ 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).

     The status bar.

           ┌────────────────────────────────────────────────────┈┈
           │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.

     The number modifier buffer.

            ┈┈────────────┐
                       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.

     Plain view.

           │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│

     Threaded view.

           │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│

     Compact view.

           │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)   │

     Conversations view.

           │[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 displaying an e-mail.

     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         │
           └────────────────────────────────────────────────────────────┘

        The lightly highlighted cells represent text input fields.

     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          │
           └────────────────────────────────────────────────────────────┘

        neovim(1) running inside the composing tab.
        The double line border annotates the area of the embedded terminal,
        the actual embedding is seamless.

   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

Debian                         September 4, 2022                        Debian