Various manpage touchups and URL updates

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
pull/369/head
Manos Pitsidianakis 2 months ago
parent a88b8c5ea0
commit e481880321
No known key found for this signature in database
GPG Key ID: 7729C7707F7E09D0

6
debian/control vendored

@ -5,9 +5,9 @@ Maintainer: Manos Pitsidianakis <manos@pitsidianak.is>
Build-Depends: debhelper-compat (=13), mandoc (>=1.14.4-1), quilt, libsqlite3-dev Build-Depends: debhelper-compat (=13), mandoc (>=1.14.4-1), quilt, libsqlite3-dev
Standards-Version: 4.1.4 Standards-Version: 4.1.4
Rules-Requires-Root: no Rules-Requires-Root: no
Vcs-Git: https://git.meliemail.org/meli/meli.git Vcs-Git: https://git.meli-email.org/meli/meli.git
Vcs-Browser: https://git.meliemail.org/meli/meli Vcs-Browser: https://git.meli-email.org/meli/meli
Homepage: https://meliemail.org Homepage: https://meli-email.org
Package: meli Package: meli
Architecture: any Architecture: any

@ -7,8 +7,8 @@ rust-version = "1.68.2"
license = "GPL-3.0-or-later" license = "GPL-3.0-or-later"
readme = "README.md" readme = "README.md"
description = "terminal e-mail client" description = "terminal e-mail client"
homepage = "https://meli.delivery" homepage = "https://meli-email.org"
repository = "https://git.meli.delivery/meli/meli.git" repository = "https://git.meli-email.org/meli/meli.git"
keywords = ["mail", "mua", "maildir", "terminal", "imap"] keywords = ["mail", "mua", "maildir", "terminal", "imap"]
categories = ["command-line-utilities", "email"] categories = ["command-line-utilities", "email"]
default-run = "meli" default-run = "meli"

@ -17,7 +17,8 @@
.\" You should have received a copy of the GNU General Public License .\" You should have received a copy of the GNU General Public License
.\" along with meli. If not, see <http://www.gnu.org/licenses/>. .\" along with meli. If not, see <http://www.gnu.org/licenses/>.
.\" .\"
.Dd November 11, 2022 .\".Dd November 11, 2022
.Dd March 10, 2024
.Dt MELI-THEMES 5 .Dt MELI-THEMES 5
.Os .Os
.Sh NAME .Sh NAME
@ -31,15 +32,15 @@ comes with two themes,
.Ic dark .Ic dark
(default) and (default) and
.Ic light . .Ic light .
.sp .Pp
Custom themes are defined as lists of key-values in the configuration files: Custom themes are defined as lists of key-values in the configuration files:
.Bl -bullet -compact .Bl -item -compact -offset 2
.It .It
.Pa $XDG_CONFIG_HOME/meli/config.toml .Pa $XDG_CONFIG_HOME/meli/config.toml
.It .It
.Pa $XDG_CONFIG_HOME/meli/themes/*.toml .Pa $XDG_CONFIG_HOME/meli/themes/*.toml
.El .El
.sp .Pp
The application theme is defined in the configuration as follows: The application theme is defined in the configuration as follows:
.Bd -literal .Bd -literal
[terminal] [terminal]
@ -56,9 +57,9 @@ keys are settings for the
.Ic compact .Ic compact
mail listing style. mail listing style.
A setting contains three fields: fg for foreground color, bg for background color, and attrs for text attribute. A setting contains three fields: fg for foreground color, bg for background color, and attrs for text attribute.
.sp .Pp
.Dl \&"widget.key.label\&" = { fg = \&"Default\&", bg = \&"Default\&", attrs = \&"Default\&" } .Dl \&"widget.key.label\&" = { fg = \&"Default\&", bg = \&"Default\&", attrs = \&"Default\&" }
.sp .Pp
Each field contains a value, which may be either a color/attribute, a link (key name) or a valid alias. 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 An alias is a string starting with the \&"\&$\&" character and must be declared in advance in the
.Ic color_aliases .Ic color_aliases
@ -69,10 +70,14 @@ An alias' value can be any valid value, including links and other aliases, as lo
In the case of a link the setting's real value depends on the value of the referred key. 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. This allows for defaults within a group of associated values.
Cyclic references in a theme results in an error: Cyclic references in a theme results in an error:
.sp .Pp
.Dl spooky theme contains a cycle: fg: mail.listing.compact.even -> mail.listing.compact.highlighted -> mail.listing.compact.odd -> mail.listing.compact.even .Dl spooky theme contains a cycle: fg: mail.listing.compact.even -> mail.listing.compact.highlighted -> mail.listing.compact.odd -> mail.listing.compact.even
.Pp .Pp
Two themes are included by default, `light` and `dark`. Two themes are included by default,
.Ql light
and
.Ql dark Ns
\&.
.Sh EXAMPLES .Sh EXAMPLES
Specific settings from already defined themes can be overwritten: Specific settings from already defined themes can be overwritten:
.Bd -literal .Bd -literal
@ -100,18 +105,18 @@ Custom themes can be included in your configuration files or be saved independen
.Pa $XDG_CONFIG_HOME/meli/themes/ .Pa $XDG_CONFIG_HOME/meli/themes/
directory as TOML files. directory as TOML files.
To start creating a theme right away, you can begin by editing the default theme keys and values: To start creating a theme right away, you can begin by editing the default theme keys and values:
.sp .Pp
.Dl meli print-default-theme > ~/.config/meli/themes/new_theme.toml .Dl meli print-default-theme > ~/.config/meli/themes/new_theme.toml
.sp .Pp
.Pa new_theme.toml .Pa new_theme.toml
will now include all keys and values of the "dark" theme. will now include all keys and values of the "dark" theme.
.sp .Pp
.Dl meli print-loaded-themes .Dl meli print-loaded-themes
.sp .Pp
will print all loaded themes with the links resolved. will print all loaded themes with the links resolved.
.Sh VALID ATTRIBUTE VALUES .Sh VALID ATTRIBUTE VALUES
Case-sensitive. Case-sensitive.
.Bl -bullet -compact .Bl -dash -compact
.It .It
"Default" "Default"
.It .It
@ -133,7 +138,7 @@ Any combo of the above separated by a bitwise XOR "\&|" eg "Dim | Italics"
.El .El
.Sh VALID COLOR VALUES .Sh VALID COLOR VALUES
Color values are of type String with the following valid contents: Color values are of type String with the following valid contents:
.Bl -bullet -compact .Bl -dash -compact
.It .It
"Default" is the terminal default. (Case-sensitive) "Default" is the terminal default. (Case-sensitive)
.It .It
@ -146,8 +151,10 @@ Three character shorthand is also valid, e.g. #09c → #0099cc (Case-insensitive
name but with some modifications (for a full table see COLOR NAMES addendum) (Case-sensitive) name but with some modifications (for a full table see COLOR NAMES addendum) (Case-sensitive)
.El .El
.Sh NO COLOR .Sh NO COLOR
To completely disable ANSI colors, there are two options: To completely disable
.Bl -bullet -compact .Tn ANSI
colors, there are two options:
.Bl -dash -compact
.It .It
Set the Set the
.Ic use_color .Ic use_color
@ -157,17 +164,22 @@ option (section
.It .It
The The
.Ev NO_COLOR .Ev NO_COLOR
environmental variable, when present (regardless of its value), prevents the addition of ANSI color. environmental variable, when present (regardless of its value), prevents the addition of
.Tn ANSI
color.
When the configuration value When the configuration value
.Ic use_color .Ic use_color
is explicitly set to true by the user, is explicitly set to true by the user,
.Ev NO_COLOR .Ev NO_COLOR
is ignored. is ignored.
.El .El
.sp .Pp
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. In this mode, cursor locations (i.e., currently selected entries/items) will use the
.Ql reverse video
.Tn ANSI
attribute to invert the terminal's default foreground/background colors.
.Sh VALID KEYS .Sh VALID KEYS
.Bl -bullet -compact .Bl -dash -compact
.It .It
theme_default theme_default
.It .It
@ -312,7 +324,7 @@ pager.highlight_search_current
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
Aqua:14:_:Black:0 Aqua:14:_:Black:0
Aquamarine1:122:_:Maroon:1 Aquamarine1:122:_:Maroon:1
Aquamarine2:86:_:Green:2 Aquamarine2:86:_:Green:2
@ -348,7 +360,7 @@ DarkMagenta1:91:_:SpringGreen6:29
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
DarkOliveGreen1:192:_:Turquoise4:30 DarkOliveGreen1:192:_:Turquoise4:30
DarkOliveGreen2:155:_:DeepSkyBlue3:31 DarkOliveGreen2:155:_:DeepSkyBlue3:31
DarkOliveGreen3:191:_:DeepSkyBlue4:32 DarkOliveGreen3:191:_:DeepSkyBlue4:32
@ -384,7 +396,7 @@ DeepPink4:125:_:Grey37:59
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
DeepPink6:162:_:MediumPurple6:60 DeepPink6:162:_:MediumPurple6:60
DeepPink7:89:_:SlateBlue2:61 DeepPink7:89:_:SlateBlue2:61
DeepPink8:53:_:SlateBlue3:62 DeepPink8:53:_:SlateBlue3:62
@ -420,7 +432,7 @@ Grey19:236:_:DeepPink7:89
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
Grey23:237:_:DarkMagenta:90 Grey23:237:_:DarkMagenta:90
Grey27:238:_:DarkMagenta1:91 Grey27:238:_:DarkMagenta1:91
Grey3:232:_:DarkViolet1:92 Grey3:232:_:DarkViolet1:92
@ -456,7 +468,7 @@ HotPink2:169:_:LightGreen:119
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
HotPink3:132:_:LightGreen1:120 HotPink3:132:_:LightGreen1:120
HotPink4:168:_:PaleGreen1:121 HotPink4:168:_:PaleGreen1:121
IndianRed:131:_:Aquamarine1:122 IndianRed:131:_:Aquamarine1:122
@ -492,7 +504,7 @@ LightSlateGrey:103:_:DarkOliveGreen6:149
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
LightSteelBlue:147:_:DarkSeaGreen6:150 LightSteelBlue:147:_:DarkSeaGreen6:150
LightSteelBlue1:189:_:DarkSeaGreen3:151 LightSteelBlue1:189:_:DarkSeaGreen3:151
LightSteelBlue3:146:_:LightCyan3:152 LightSteelBlue3:146:_:LightCyan3:152
@ -528,7 +540,7 @@ NavajoWhite3:144:_:LightGoldenrod3:179
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
Navy:4:_:Tan:180 Navy:4:_:Tan:180
NavyBlue:17:_:MistyRose3:181 NavyBlue:17:_:MistyRose3:181
Olive:3:_:Thistle3:182 Olive:3:_:Thistle3:182
@ -564,7 +576,7 @@ Purple5:55:_:Salmon1:209
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
Red:9:_:LightCoral:210 Red:9:_:LightCoral:210
Red1:196:_:PaleVioletRed1:211 Red1:196:_:PaleVioletRed1:211
Red2:124:_:Orchid2:212 Red2:124:_:Orchid2:212
@ -600,7 +612,7 @@ Tan:180:_:Grey30:239
allbox tab(:); allbox tab(:);
lb|lb|l|lb|lb lb|lb|l|lb|lb
l l|l|l l. l l|l|l l.
name ↓:byte:_:name:byte ↓ name \(da:byte:_:name:byte \(da
Teal:6:_:Grey35:240 Teal:6:_:Grey35:240
Thistle1:225:_:Grey39:241 Thistle1:225:_:Grey39:241
Thistle3:182:_:Grey42:242 Thistle3:182:_:Grey42:242
@ -621,16 +633,34 @@ Yellow6:148:_:Grey93:255
.Sh SEE ALSO .Sh SEE ALSO
.Xr meli 1 , .Xr meli 1 ,
.Xr meli.conf 5 .Xr meli.conf 5
.Sh CONFORMING TO .Sh STANDARDS
TOML Standard v.0.5.0 .Bl -item -compact
.Lk https://toml.io/en/v0.5.0 .It
.sp .Lk https://toml.io/en/v0.5.0 "TOML Standard v.0.5.0"
.Lk https://no-color.org/ .It
.Lk https://no\-color.org/ "NO_COLOR: disabling ANSI color output by default"
.El
.Sh AUTHORS .Sh AUTHORS
Copyright 2017-2019 Copyright 2017\(en2024
.An Manos Pitsidianakis Aq manos@pitsidianak.is .An Manos Pitsidianakis Aq Mt manos@pitsidianak.is
.Pp
Released under the GPL, version 3 or greater. Released under the GPL, version 3 or greater.
This software carries no warranty of any kind. This software carries no warranty of any kind.
(See COPYING for full copyright and warranty notices.) .Po
.sp See
.Lk https://meli.delivery .Pa COPYING
for full copyright and warranty notices.
.Pc
.Ss Links
.Bl -item -compact
.It
.Lk https://meli\-email.org "Website"
.It
.Lk https://git.meli\-email.org/meli/meli "Main\ git\ repository\ and\ issue\ tracker"
.It
.Lk https://codeberg.org/meli/meli "Official\ read-only\ git\ mirror\ on\ codeberg.org"
.It
.Lk https://github.com/meli/meli "Official\ read-only\ git\ mirror\ on\ github.com"
.It
.Lk https://crates.io/crates/meli "meli\ crate\ on\ crates.io"
.El

@ -17,6 +17,10 @@
.\" You should have received a copy of the GNU General Public License .\" You should have received a copy of the GNU General Public License
.\" along with meli. If not, see <http://www.gnu.org/licenses/>. .\" along with meli. If not, see <http://www.gnu.org/licenses/>.
.\" .\"
.de HorizontalRule
.\"\l'\n(.l\(ru1.25'
.sp
..
.de Shortcut .de Shortcut
.Sm .Sm
.Aq \\$1 .Aq \\$1
@ -40,12 +44,13 @@
.Ed .Ed
.sp .sp
.. ..
.Dd November 11, 2022 .\".Dd November 11, 2022
.Dd March 10, 2024
.Dt MELI 1 .Dt MELI 1
.Os .Os
.Sh NAME .Sh NAME
.Nm meli .Nm meli
.Nd terminal e-mail client .Nd terminal e\-mail client
.Em μέλι .Em μέλι
is the Greek word for honey is the Greek word for honey
.Sh SYNOPSIS .Sh SYNOPSIS
@ -71,7 +76,7 @@ Test a configuration file for syntax issues or missing options.
Print documentation page and exit (Piping to a pager is recommended). Print documentation page and exit (Piping to a pager is recommended).
.It Cm install-man Op Ar path .It Cm install-man Op Ar path
Install manual pages to the first location provided by Install manual pages to the first location provided by
.Ar MANPATH .Ev MANPATH
or or
.Xr manpath 1 , .Xr manpath 1 ,
unless you specify the directory as an argument. unless you specify the directory as an argument.
@ -87,8 +92,8 @@ or
Prints help information or the help of the given subcommand(s). Prints help information or the help of the given subcommand(s).
.It Cm print-app-directories .It Cm print-app-directories
Print all directories that Print all directories that
.Nm Ns .Ns Nm
creates and uses. creates and uses.
.It Cm print-config-path .It Cm print-config-path
Print location of configuration file that will be loaded on normal app startup. Print location of configuration file that will be loaded on normal app startup.
.It Cm print-default-theme .It Cm print-default-theme
@ -102,7 +107,7 @@ View mail from input file.
.El .El
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
is a terminal mail client aiming for extensive and user-frendly configurability. is a terminal mail client aiming for extensive and user-friendly configurability.
.Bd -literal .Bd -literal
^^ .-=-=-=-. ^^ ^^ .-=-=-=-. ^^
^^ (`-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-`) ^^
@ -136,11 +141,28 @@ At any time, you may press
for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports. for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports.
.Pp .Pp
The main visual navigation tool, the left-side sidebar may be toggled with The main visual navigation tool, the left-side sidebar may be toggled with
.ShortcutPeriod ` listing toggle_menu_visibility .ShortcutPeriod \(ga listing toggle_menu_visibility
\&. \&.
.Pp .Pp
Each mailbox may be viewed in 4 modes: 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. .Bl -dash -compact
.It
.Tg index-style-plain
.Em Plain
views each mail individually,
.It
.Tg index-style-threaded
.Em Threaded
shows their thread relationship visually,
.It
.Tg index-style-conversations
.Em Conversations
collapses each thread of e\-mails into a single entry,
.It
.Tg index-style-compact
.Em Compact
shows one row per thread.
.El
.Pp .Pp
If you're using a light color palette in your terminal, you should set If you're using a light color palette in your terminal, you should set
.Em theme = "light" .Em theme = "light"
@ -156,6 +178,10 @@ See
for a more detailed tutorial on using for a more detailed tutorial on using
.Nm Ns .Nm Ns
\&. \&.
.Sh SHORTCUTS
See
.Xr meli.conf 5 SHORTCUTS
for shortcuts and their default values.
.Sh VIEWING MAIL .Sh VIEWING MAIL
Open attachments by typing their index in the attachments list and then Open attachments by typing their index in the attachments list and then
.ShortcutPeriod a envelope_view open_attachment .ShortcutPeriod a envelope_view open_attachment
@ -181,7 +207,7 @@ If the path provided is a directory, the attachment is saved with its filename s
If the 0th index is provided, the entire message is saved. 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. If the path provided is a directory, the message is saved as an eml file with its filename set to the messages message-id.
.Sh SEARCH .Sh SEARCH
Each e-mail storage backend has a default search method assigned. Each e\-mail storage backend has a default search method assigned.
.Em IMAP .Em IMAP
uses the SEARCH command, uses the SEARCH command,
.Em notmuch .Em notmuch
@ -230,9 +256,8 @@ alias:
.Pc .Pc
String keywords with spaces must be quoted. String keywords with spaces must be quoted.
Quotes should always be escaped. Quotes should always be escaped.
.sp .Ss Important Notice about IMAP/JMAP
.Sy Important Notice about IMAP/JMAP .HorizontalRule
.sp
To prevent downloading all your messages from your IMAP/JMAP server, don't set To prevent downloading all your messages from your IMAP/JMAP server, don't set
.Em search_backend .Em search_backend
to to
@ -243,7 +268,8 @@ will relay your queries to the IMAP server.
Expect a delay between query and response. Expect a delay between query and response.
Sqlite3 on the contrary at reasonable mailbox sizes should have a non noticeable delay. Sqlite3 on the contrary at reasonable mailbox sizes should have a non noticeable delay.
.Ss QUERY ABNF SYNTAX .Ss QUERY ABNF SYNTAX
.Bl -bullet .HorizontalRule
.Bl -dash -compact
.It .It
.Li query = \&"(\&" query \&")\&" | from | to | cc | bcc | alladdresses | subject | flags | has_attachments | query \&"or\&" query | query \&"and\&" query | not query .Li query = \&"(\&" query \&")\&" | from | to | cc | bcc | alladdresses | subject | flags | has_attachments | query \&"or\&" query | query \&"and\&" query | not query
.It .It
@ -276,14 +302,20 @@ Sqlite3 on the contrary at reasonable mailbox sizes should have a non noticeable
.Sh FLAGS .Sh FLAGS
.Nm .Nm
supports the basic maildir flags: passed, replied, seen, trashed, draft and flagged. supports the basic maildir flags: passed, replied, seen, trashed, draft and flagged.
Flags can be searched with the `flags:` prefix in a search query, and can be modified by Flags can be searched with the
.Ns Ql flags:
prefix in a search query, and can be modified by
.Command flag set FLAG .Command flag set FLAG
and and
.Command flag unset FLAG .Command flag unset FLAG
.Sh TAGS .Sh TAGS
.Nm .Nm
supports tagging in notmuch and IMAP/JMAP backends. 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 Tags can be searched with the
.Ns Ql tags:
or
.Ns Ql flags:
prefix in a search query, and can be modified by
.Command tag add TAG .Command tag add TAG
and and
.Command tag remove TAG .Command tag remove TAG
@ -304,7 +336,8 @@ To reply to a mail, press
\&. \&.
Both these actions open the mail composer view in a new tab. Both these actions open the mail composer view in a new tab.
.Ss Editing text .Ss Editing text
.Bl -bullet -compact .HorizontalRule
.Bl -dash -compact
.It .It
Edit the header fields by selecting with the arrow keys and pressing Edit the header fields by selecting with the arrow keys and pressing
.Shortcut Enter general focus_in_text_field .Shortcut Enter general focus_in_text_field
@ -347,12 +380,14 @@ and to resume editing press the
command again. command again.
.El .El
.Ss Attachments .Ss Attachments
.HorizontalRule
Attachments may be handled with the Attachments may be handled with the
.Cm add-attachment Ns .Cm add-attachment Ns
, ,
.Cm remove-attachment .Cm remove-attachment
commands (see below). commands (see below).
.Ss Sending .Ss Sending
.HorizontalRule
Finally, pressing Finally, pressing
.Shortcut s composing send_mail .Shortcut s composing send_mail
will send your message according to your settings will send your message according to your settings
@ -370,6 +405,7 @@ On complete failure to save your draft or sent message it will be saved in your
.Em tmp .Em tmp
directory instead and you will be notified of its location. directory instead and you will be notified of its location.
.Ss Drafts .Ss Drafts
.HorizontalRule
To save your draft without sending it, issue To save your draft without sending it, issue
.Em COMMAND .Em COMMAND
.Cm close .Cm close
@ -381,8 +417,7 @@ To open a draft for further editing, select your draft in the mail listing and p
.Sh CONTACTS .Sh CONTACTS
.Nm .Nm
supports three kinds of contact backends: supports three kinds of contact backends:
.sp .Bl -enum -compact
.Bl -enum -compact -offset indent
.It .It
an internal format that gets saved under an internal format that gets saved under
.Pa $XDG_DATA_HOME/meli/account_name/addressbook Ns .Pa $XDG_DATA_HOME/meli/account_name/addressbook Ns
@ -404,7 +439,7 @@ compatible alias file in the option
.sp .sp
See See
.Xr meli.conf 5 ACCOUNTS .Xr meli.conf 5 ACCOUNTS
for the complete account configuration values. for the complete account contact configuration values.
.Sh MODES .Sh MODES
.Bl -tag -compact -width 8n .Bl -tag -compact -width 8n
.It NORMAL .It NORMAL
@ -424,8 +459,9 @@ captures all input as text input, and is exited with
.Cm Esc .Cm Esc
key. key.
.El .El
.Ss COMMAND Mode .Sh COMMAND
.Ss Mail listing commands .Ss Mail listing commands
.HorizontalRule
.Bl -tag -width 36n .Bl -tag -width 36n
.It Cm set Ar plain | threaded | compact | conversations .It Cm set Ar plain | threaded | compact | conversations
set the way mailboxes are displayed set the way mailboxes are displayed
@ -469,25 +505,26 @@ Import mail from file into given mailbox.
.It Cm copyto, moveto Ar MAILBOX_PATH .It Cm copyto, moveto Ar MAILBOX_PATH
Copy or move to other mailbox. Copy or move to other mailbox.
.It Cm copyto, moveto Ar ACCOUNT Ar MAILBOX_PATH .It Cm copyto, moveto Ar ACCOUNT Ar MAILBOX_PATH
Copy or move to another account's mailbox. Copy or move to another account's mailbox.
.It Cm delete .It Cm delete
Delete selected threads. Delete selected threads.
.It Cm export-mbox Ar FILEPATH .It Cm export-mbox Ar FILEPATH
Export selected threads to mboxcl2 file. Export selected threads to mboxcl2 file.
.It Cm create-mailbox Ar ACCOUNT Ar MAILBOX_PATH .It Cm create\-mailbox Ar ACCOUNT Ar MAILBOX_PATH
create mailbox with given path. create mailbox with given path.
Be careful with backends and separator sensitivity (eg IMAP) Be careful with backends and separator sensitivity (eg IMAP)
.It Cm subscribe-mailbox Ar ACCOUNT Ar MAILBOX_PATH .It Cm subscribe\-mailbox Ar ACCOUNT Ar MAILBOX_PATH
subscribe to mailbox with given path subscribe to mailbox with given path
.It Cm unsubscribe-mailbox Ar ACCOUNT Ar MAILBOX_PATH .It Cm unsubscribe\-mailbox Ar ACCOUNT Ar MAILBOX_PATH
unsubscribe to mailbox with given path unsubscribe to mailbox with given path
.It Cm rename-mailbox Ar ACCOUNT Ar MAILBOX_PATH_SRC Ar MAILBOX_PATH_DEST .It Cm rename\-mailbox Ar ACCOUNT Ar MAILBOX_PATH_SRC Ar MAILBOX_PATH_DEST
rename mailbox rename mailbox
.It Cm delete-mailbox Ar ACCOUNT Ar MAILBOX_PATH .It Cm delete\-mailbox Ar ACCOUNT Ar MAILBOX_PATH
deletes mailbox in the mail backend. deletes mailbox in the mail backend.
This action is unreversible. This action is irreversible.
.El .El
.Ss Mail view commands .Ss Mail view commands
.HorizontalRule
.Bl -tag -width 36n .Bl -tag -width 36n
.It Cm pipe Ar EXECUTABLE Ar ARGS .It Cm pipe Ar EXECUTABLE Ar ARGS
pipe pager contents to binary pipe pager contents to binary
@ -501,7 +538,8 @@ unsubscribe automatically from list of viewed envelope
open list archive with open list archive with
.Cm xdg-open .Cm xdg-open
.El .El
.Ss composing mail commands .Ss Composing mail commands
.HorizontalRule
.Bl -tag -width 36n .Bl -tag -width 36n
.It Cm mailto Ar MAILTO_ADDRESS .It Cm mailto Ar MAILTO_ADDRESS
Opens a composer tab with initial values parsed from the Opens a composer tab with initial values parsed from the
@ -536,7 +574,8 @@ for PGP configuration.
.It Cm save-draft .It Cm save-draft
saves a copy of the draft in the Draft folder saves a copy of the draft in the Draft folder
.El .El
.Ss generic commands .Ss Generic commands
.HorizontalRule
.Bl -tag -width 36n .Bl -tag -width 36n
.It Cm open-in-tab .It Cm open-in-tab
opens envelope view in new tab opens envelope view in new tab
@ -560,10 +599,6 @@ Useful if you want to reload some settings without restarting
.Nm Ns .Nm Ns
\&. \&.
.El .El
.Sh SHORTCUTS
See
.Xr meli.conf 5 SHORTCUTS
for shortcuts and their default values.
.Sh EXIT STATUS .Sh EXIT STATUS
.Nm .Nm
exits with 0 on a successful run. exits with 0 on a successful run.
@ -581,7 +616,9 @@ Specifies the editor to use
.It Ev MELI_CONFIG .It Ev MELI_CONFIG
Override the configuration file Override the configuration file
.It Ev NO_COLOR .It Ev NO_COLOR
When present (regardless of its value), prevents the addition of ANSI color. When defined (regardless of its value), prevents the addition of
.Tn ANSI
color.
The configuration value The configuration value
.Ic use_color .Ic use_color
overrides this. overrides this.
@ -638,75 +675,265 @@ Mailcap entries are searched for in the following files, in this order:
.It .It
.Pa /usr/local/etc/mailcap .Pa /usr/local/etc/mailcap
.El .El
.Sh STANDARDS
.Bl -dash -compact
.It
.Rs
.%B XDG Base Directory Specification
.%O Version 0.8
.%A Waldo Bastian
.%A Allison Karlitskaya
.%A Lennart Poettering
.%A Johannes Löthberg
.%U https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
.%D May 08, 2021
.Re
.It
.Rs
.%B maildir
.%A Daniel J. Bernstein
.%U https://cr.yp.to/proto/maildir.html
.%D 1995
.Re
.It
.Rs
.%B RFC1524 A User Agent Configuration Mechanism For Multimedia Mail Format Information
.%O mailcap file
.%I Legacy
.%D September 01, 1993
.%A Dr. Nathaniel S. Borenstein
.%U https://datatracker.ietf.org/doc/rfc1524/
.Re
.It
.Rs
.%B RFC2047 MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text
.%I IETF
.%D November 01, 1996
.%A Keith Moore
.%U https://datatracker.ietf.org/doc/rfc2047/
.Re
.It
.Rs
.%B RFC2183 Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
.%I Legacy
.%D August 01, 1997
.%A Rens Troost
.%A Steve Dorner
.%A Keith Moore
.%U https://datatracker.ietf.org/doc/rfc2183/
.Re
.It
.Rs
.%B RFC2369 The Use of URLs as Meta-Syntax for Core Mail List Commands and their Transport through Message Header Fields
.%I Legacy
.%D July 01, 1998
.%A Joshua D. Baer
.%A Grant Neufeld
.%U https://datatracker.ietf.org/doc/rfc2369/
.Re
.It
.Rs
.%B RFC2426 vCard MIME Directory Profile
.%O vCard Version 3
.%I IETF
.%D September 01, 1998
.%A Frank Dawson
.%A Tim Howes
.%U https://datatracker.ietf.org/doc/rfc2426/
.Re
.It
.Rs
.%B RFC3156 MIME Security with OpenPGP
.%I IETF
.%D August 01, 2001
.%A Thomas Roessler
.%A Michael Elkins
.%A Raph Levien
.%A Dave Del Torto
.%U https://datatracker.ietf.org/doc/rfc3156/
.Re
.It
.Rs
.%B RFC3461 Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs)
.%I IETF
.%D January 23, 2003
.%A Keith Moore
.%U https://datatracker.ietf.org/doc/rfc3461/
.Re
.It
.Rs
.%B RFC3501 INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
.%I IETF
.%D March 18, 2003
.%A Mark Crispin
.%U https://datatracker.ietf.org/doc/rfc3501/
.Re
.It
.Rs
.%B RFC3676 The Text/Plain Format and DelSp Parameters
.%I IETF
.%D February 19, 2004
.%A Randall Gellens
.%U https://datatracker.ietf.org/doc/rfc3676/
.Re
.It
.Rs
.%B RFC3691 Internet Message Access Protocol (IMAP) UNSELECT command
.%I IETF
.%D February 20, 2004
.%A Alexey Melnikov
.%U https://datatracker.ietf.org/doc/rfc3691/
.Re
.It
.Rs
.%B RFC3977 Network News Transfer Protocol (NNTP)
.%I IETF
.%D October 26, 2006
.%A Clive Feather
.%U https://datatracker.ietf.org/doc/rfc3977/
.Re
.It
.Rs
.%B RFC4549 Synchronization Operations for Disconnected IMAP4 Clients
.%I IETF
.%D June 16, 2006
.%A Alexey Melnikov
.%U https://datatracker.ietf.org/doc/rfc4549/
.Re
.It
.Rs
.%B RFC4616 The PLAIN Simple Authentication and Security Layer (SASL) Mechanism
.%I IETF
.%D August 31, 2006
.%A Kurt Zeilenga
.%U https://datatracker.ietf.org/doc/rfc4616/
.Re
.It
.Rs
.%B RFC4954 SMTP Service Extension for Authentication
.%I IETF
.%D July 23, 2007
.%A Rob Siemborski
.%A Alexey Melnikov
.%U https://datatracker.ietf.org/doc/rfc4954/
.Re
.It
.Rs
.%B RFC5321 Simple Mail Transfer Protocol
.%I IETF
.%D October 01, 2008
.%A Dr. John C. Klensin
.%U https://datatracker.ietf.org/doc/rfc5321/
.Re
.It
.Rs
.%B RFC5322 Internet Message Format
.%I IETF
.%D October 01, 2008
.%A Pete Resnick
.%U https://datatracker.ietf.org/doc/rfc5322/
.Re
.It
.Rs
.%B RFC6048 Network News Transfer Protocol (NNTP) Additions to LIST Command
.%I IETF
.%D November 22, 2010
.%A Julien ÉLIE
.%U https://datatracker.ietf.org/doc/rfc6048/
.Re
.It
.Rs
.%B RFC6152 SMTP Service Extension for 8-bit MIME Transport
.%I IETF
.%D March 07, 2011
.%A Dave Crocker
.%A Dr. John C. Klensin
.%A Dr. Marshall T. Rose
.%A Ned Freed
.%U https://datatracker.ietf.org/doc/rfc6152/
.Re
.It
.Rs
.%B RFC6350 vCard Format Specification
.%O vCard Version 4
.%I IETF
.%D August 31, 2011
.%A Simon Perreault
.%U https://datatracker.ietf.org/doc/rfc6350/
.Re
.It
.Rs
.%B RFC6532 Internationalized Email Headers
.%I IETF
.%D February 17, 2012
.%A Abel Yang
.%A Shawn Steele
.%A Ned Freed
.%U https://datatracker.ietf.org/doc/rfc6532/
.Re
.It
.Rs
.%B RFC6868 Parameter Value Encoding in iCalendar and vCard
.%I IETF
.%D February 14, 2013
.%A Cyrus Daboo
.%U https://datatracker.ietf.org/doc/rfc6868/
.Re
.It
.Rs
.%B RFC7162 IMAP Extensions: Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC)
.%I IETF
.%D May 23, 2014
.%A Alexey Melnikov
.%A Dave Cridland
.%U https://datatracker.ietf.org/doc/rfc7162/
.Re
.It
.Rs
.%B RFC8620 The JSON Meta Application Protocol (JMAP)
.%I IETF
.%D July 18, 2019
.%A Neil Jenkins
.%A Chris Newman
.%U https://datatracker.ietf.org/doc/rfc8620/
.Re
.It
.Rs
.%B RFC8621 The JSON Meta Application Protocol (JMAP) for Mail
.%I IETF
.%D August 08, 2019
.%A Neil Jenkins
.%A Chris Newman
.%U https://datatracker.ietf.org/doc/rfc8621/
.Re
.El
.Sh SEE ALSO .Sh SEE ALSO
.Xr meli.conf 5 , .Xr meli.conf 5 ,
.Xr meli-themes 5 , .Xr meli-themes 5 ,
.Xr meli 7 , .Xr meli 7 ,
.Xr xdg-open 1 , .Xr xdg-open 1 ,
.Xr mailcap 5 .Xr mailcap 5
.Sh CONFORMING TO .Sh AUTHORS
.Bl -bullet -compact Copyright 2017\(en2024
.It .An Manos Pitsidianakis Aq Mt manos@pitsidianak.is
XDG Standard .Pp
.Lk https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html Ns Released under the GPL, version 3 or greater.
\&. This software carries no warranty of any kind.
.It .Po
mailcap file, RFC 1524: A User Agent Configuration Mechanism For Multimedia Mail Format Information See
.It .Pa COPYING
RFC 5322: Internet Message Format for full copyright and warranty notices.
.It .Pc
RFC 6532: Internationalized Email Headers .Ss Links
.It .Bl -item -compact
RFC 2047: MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text
.It
RFC 3676: The Text/Plain Format and DelSp Parameters
.It
RFC 3156: MIME Security with OpenPGP
.It
RFC 2183: Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
.It
RFC 2369: The Use of URLs as Meta-Syntax for Core Mail List Commands and their Transport through Message Header Fields
.It
.Li maildir
.Lk https://cr.yp.to/proto/maildir.html Ns
\&.
.It
RFC 5321: Simple Mail Transfer Protocol
.It
RFC 3461: Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs)
.It
RFC 4954: SMTP Service Extension for Authentication
.It
RFC 6152: SMTP Service Extension for 8-bit MIME Transport
.It
RFC 4616: The PLAIN Simple Authentication and Security Layer (SASL) Mechanism
.It
RFC 3501: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
.It
RFC 3691: Internet Message Access Protocol (IMAP) UNSELECT command
.It
RFC 4549: Synch Ops for Disconnected IMAP4 Clients
.It
RFC 7162: IMAP Extensions: Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC)
.It
RFC 8620: The JSON Meta Application Protocol (JMAP)
.It
RFC 8621: The JSON Meta Application Protocol (JMAP) for Mail
.It .It
RFC 3977: Network News Transfer Protocol (NNTP) .Lk https://meli\-email.org "Website"
.It .It
RFC 6048: Network News Transfer Protocol (NNTP) Additions to LIST Command .Lk https://git.meli\-email.org/meli/meli "Main\ git\ repository\ and\ issue\ tracker"
.It .It
vCard Version 3, RFC 2426: vCard MIME Directory Profile .Lk https://codeberg.org/meli/meli "Official\ read-only\ git\ mirror\ on\ codeberg.org"
.It .It
vCard Version 4, RFC 6350: vCard Format Specification .Lk https://github.com/meli/meli "Official\ read-only\ git\ mirror\ on\ github.com"
.It .It
RFC 6868 Parameter Value Encoding in iCalendar and vCard .Lk https://crates.io/crates/meli "meli\ crate\ on\ crates.io"
.El .El
.Sh AUTHORS
Copyright 2017-2022
.An Manos Pitsidianakis Aq 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

@ -40,22 +40,23 @@
.Pc Ns .Pc Ns
.. ..
.de Command .de Command
.Bd -offset 1n -ragged .Bd -ragged -offset 1n
.Cm \\$* .Cm \\$*
.Ed .Ed
.. ..
.Dd November 11, 2022 .\".Dd November 11, 2022
.Dd March 10, 2024
.Dt MELI 7 .Dt MELI 7
.Os .Os
.Sh NAME .Sh NAME
.Nm meli .Nm meli
.Nd Tutorial for the meli terminal e-mail client .Nd Tutorial for the meli terminal e\-mail client
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm .Nm
.Op ... .Op ...
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
is a terminal mail client aiming for extensive and user-frendly configurability. is a terminal mail client aiming for extensive and user\-friendly configurability.
.Bd -literal -offset center .Bd -literal -offset center
^^ .-=-=-=-. ^^ ^^ .-=-=-=-. ^^
^^ (`-=-=-=-=-`) ^^ ^^ (`-=-=-=-=-`) ^^
@ -158,9 +159,9 @@ key.
.It EMBED .It EMBED
This is the mode of the embed terminal emulator. This is the mode of the embed terminal emulator.
To exit an embedded application, issue To exit an embedded application, issue
.Aq Ctrl-C .Aq Ctrl\-C
to kill it or to kill it or
.Aq Ctrl-Z .Aq Ctrl\-Z
to stop the program and follow the instructions on to stop the program and follow the instructions on
.Nm .Nm
to exit. to exit.
@ -229,7 +230,7 @@ This is the view you will spend more time with in
\&. \&.
.Pp .Pp
Press Press
.Shortcut ` listing toggle_menu_visibility .Shortcut \(ga listing toggle_menu_visibility
to toggle the sidebars visibility. to toggle the sidebars visibility.
.Pp .Pp
Press Press
@ -237,16 +238,16 @@ Press
to switch focus on the sidebar menu. to switch focus on the sidebar menu.
Press Press
.Shortcut Right listing focus_left .Shortcut Right listing focus_left
to switch focus on the e-mail list. to switch focus on the e\-mail list.
.Pp .Pp
On the e-mail list, press On the e\-mail list, press
.Shortcut k listing scroll_up .Shortcut k listing scroll_up
to scroll up, and to scroll up, and
.Shortcut j listing scroll_down .Shortcut j listing scroll_down
to scroll down. to scroll down.
Press Press
.Shortcut Enter listing open_entry .Shortcut Enter listing open_entry
to open an e-mail entry and to open an e\-mail entry and
.Shortcut i listing exit_entry .Shortcut i listing exit_entry
to exit it. to exit it.
.Bd -ragged .Bd -ragged
@ -294,9 +295,9 @@ See
for details. for details.
.Pp .Pp
You can increase the sidebar's width with You can increase the sidebar's width with
.Shortcut Ctrl-p listing increase_sidebar .Shortcut Ctrl\-p listing increase_sidebar
and decrease with and decrease with
.ShortcutPeriod Ctrl-o listing decrease_sidebar .ShortcutPeriod Ctrl\-o listing decrease_sidebar
\&. \&.
.Bd -ragged .Bd -ragged
.Sy The status bar. .Sy The status bar.
@ -310,7 +311,7 @@ and decrease with
The status bar shows which mode you are, and the status message of the current view. 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 In the pictured example, it shows the status of a mailbox called
.Dq Inbox .Dq Inbox
with lots of e-mails. with lots of e\-mails.
.Bd -ragged .Bd -ragged
.Sy The number modifier buffer. .Sy The number modifier buffer.
.Ed .Ed
@ -330,7 +331,7 @@ entries.
Another use of the number buffer is opening URLs inside the pager. Another use of the number buffer is opening URLs inside the pager.
See See
.Sx PAGER .Sx PAGER
for an explanation of interacting with URLs in e-mails. for an explanation of interacting with URLs in e\-mails.
.Pp .Pp
Pressing numbers in Pressing numbers in
.Sy NORMAL .Sy NORMAL
@ -343,16 +344,16 @@ There are four different list styles:
.Bl -hyphen -compact .Bl -hyphen -compact
.It .It
.Qq plain .Qq plain
which shows one line per e-mail. which shows one line per e\-mail.
.It .It
.Qq threaded .Qq threaded
which shows a threaded view with drawn tree structure. which shows a threaded view with drawn tree structure.
.It .It
.Qq compact .Qq compact
which shows one line per thread which can include multiple e-mails. which shows one line per thread which can include multiple e\-mails.
.It .It
.Qq conversations .Qq conversations
which shows more than one line per thread which can include multiple e-mails with more details about the thread. which shows more than one line per thread which can include multiple e\-mails with more details about the thread.
.El .El
.Bd -ragged .Bd -ragged
.Sy Plain view\&. .Sy Plain view\&.
@ -421,13 +422,13 @@ Simple set operations can be performed on a selection with these shortcut modifi
.Bl -hyphen -compact .Bl -hyphen -compact
.It .It
Union modifier: Union modifier:
.Shortcut Ctrl-u listing union_modifier .Shortcut Ctrl\-u listing union_modifier
.It .It
Difference modifier: Difference modifier:
.Shortcut Ctrl-d listing diff_modifier .Shortcut Ctrl\-d listing diff_modifier
.It .It
Intersection modifier: Intersection modifier:
.Shortcut Ctrl-i listing intersection_modifier .Shortcut Ctrl\-i listing intersection_modifier
.El .El
.Pp .Pp
To set an entry as To set an entry as
@ -445,11 +446,11 @@ which also has its complement
.sp .sp
action. action.
.Pp .Pp
For e-mail backends that support flags you can use the following commands on entries and selections to modify them: For e\-mail backends that support flags you can use the following commands on entries and selections to modify them:
.Command flag set FLAG .Command flag set FLAG
.Command flag unset FLAG .Command flag unset FLAG
.Pp .Pp
For e-mail backends that support tags For e\-mail backends that support tags
.Po .Po
like like
.Qq IMAP .Qq IMAP
@ -471,9 +472,9 @@ You can clear the selection with the
.Aq Esc .Aq Esc
key. key.
.Sh PAGER .Sh PAGER
You can open an e-mail entry by pressing You can open an e\-mail entry by pressing
.ShortcutPeriod Enter listing open_entry .ShortcutPeriod Enter listing open_entry
\&. This brings up the e-mail view with the e-mail content inside a pager. \&. This brings up the e\-mail view with the e\-mail content inside a pager.
.Bd -literal -offset center .Bd -literal -offset center
┌────────────────────────────────────────────────────────────┐ ┌────────────────────────────────────────────────────────────┐
│Date: Sat, 21 May 2022 16:16:11 +0300 ▀│ │Date: Sat, 21 May 2022 16:16:11 +0300 ▀│
@ -501,14 +502,14 @@ You can open an e-mail entry by pressing
└────────────────────────────────────────────────────────────┘ └────────────────────────────────────────────────────────────┘
.Ed .Ed
.Bd -ragged -offset 3n .Bd -ragged -offset 3n
.Em The\ pager\ displaying\ an\ e-mail\&. .Em The\ pager\ displaying\ an\ e\-mail\&.
.Ed .Ed
.Pp .Pp
The pager is simple to use. The pager is simple to use.
Scroll with the following: Scroll with the following:
.Bl -hang -width 27n .Bl -hang -width 27n
.It Go to next pager page .It Go to next pager page
.Shortcut PageDown pager page_down .Shortcut PageDown pager page_down
.It Go to previous pager page .It Go to previous pager page
.Shortcut PageUp pager page_up .Shortcut PageUp pager page_up
.It Scroll down pager. .It Scroll down pager.
@ -523,7 +524,7 @@ which will act as a multiplier.
.Pp .Pp
The pager can enter a special The pager can enter a special
.Em url .Em url
mode which will prefix all detected hyperlinks and e-mail addresses with a number inside square brackets mode which will prefix all detected hyperlinks and e\-mail addresses with a number inside square brackets
.ShortcutPeriod u pager toggle_url_mode .ShortcutPeriod u pager toggle_url_mode
\&. \&.
Writing down a chosen number as a number modifier Writing down a chosen number as a number modifier
@ -554,13 +555,13 @@ for more details
.Pc Ns .Pc Ns
\&. \&.
.Sh MAIL VIEW .Sh MAIL VIEW
Other things you can do when viewing e-mail: Other things you can do when viewing e\-mail:
.Bl -bullet -compact .Bl -dash -compact
.It .It
Most importantly, you can exit the mail view with: Most importantly, you can exit the mail view with:
.Shortcut i listing exit_entry .Shortcut i listing exit_entry
.It .It
Add addresses from the e-mail headers to contacts: Add addresses from the e\-mail headers to contacts:
.Shortcut c envelope_view add_addresses_to_contacts .Shortcut c envelope_view add_addresses_to_contacts
.It .It
Open an attachment by entering its index as a number modifier and pressing: Open an attachment by entering its index as a number modifier and pressing:
@ -576,39 +577,39 @@ Reply to envelope:
.Shortcut R envelope_view reply .Shortcut R envelope_view reply
.It .It
Reply to author: Reply to author:
.Shortcut Ctrl-r envelope_view reply_to_author .Shortcut Ctrl\-r envelope_view reply_to_author
.It .It
Reply to all/Reply to list/Follow up: Reply to all/Reply to list/Follow up:
.Shortcut Ctrl-g envelope_view reply_to_all .Shortcut Ctrl\-g envelope_view reply_to_all
.It .It
Forward email: Forward e\-mail:
.Shortcut Ctrl-f envelope_view forward .Shortcut Ctrl\-f envelope_view forward
.It .It
Expand extra headers: (References and others) Expand extra headers: (References and others)
.Shortcut h envelope_view toggle_expand_headerk .Shortcut h envelope_view toggle_expand_headerk
.It .It
View envelope source in a pager: (toggles between raw and decoded source) View envelope source in a pager: (toggles between raw and decoded source)
.Shortcut M-r envelope_view view_raw_source .Shortcut M\-r envelope_view view_raw_source
.It .It
Return to envelope_view if viewing raw source or attachment: Return to envelope_view if viewing raw source or attachment:
.Shortcut r envelope_view return_to_normal_view .Shortcut r envelope_view return_to_normal_view
.El .El
.Sh COMPOSING .Sh COMPOSING
To compose an e-mail, you can either start with an empty draft by pressing To compose an e\-mail, you can either start with an empty draft by pressing
.Shortcut m listing new_mail .Shortcut m listing new_mail
which opens a composer view in a new tab. 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: To reply to a specific e\-mail, when in envelope view you can select the specific action you want to take:
.sp .sp
.Bl -bullet -compact .Bl -dash -compact
.It .It
Reply to envelope. Reply to envelope.
.Shortcut R envelope_view reply .Shortcut R envelope_view reply
.It .It
Reply to author. Reply to author.
.Shortcut Ctrl-r envelope_view reply_to_author .Shortcut Ctrl\-r envelope_view reply_to_author
.It .It
Reply to all. Reply to all.
.Shortcut Ctrl-g envelope_view reply_to_all .Shortcut Ctrl\-g envelope_view reply_to_all
.El .El
.sp .sp
To launch your editor, press To launch your editor, press
@ -695,25 +696,25 @@ the\ actual\ embedding\ is\ seamless\&.
.Ed .Ed
.Ss composing mail commands .Ss composing mail commands
.Bl -tag -width 36n .Bl -tag -width 36n
.It Cm add-attachment Ar PATH .It Cm add\-attachment Ar PATH
in composer, add in composer, add
.Ar PATH .Ar PATH
as an attachment as an attachment
.It Cm add-attachment < Ar CMD Ar ARGS .It Cm add\-attachment < Ar CMD Ar ARGS
in composer, pipe in composer, pipe
.Ar CMD Ar ARGS .Ar CMD Ar ARGS
output into an attachment output into an attachment
.It Cm add-attachment-file-picker .It Cm add\-attachment\-file\-picker
Launch command defined in the configuration value Launch command defined in the configuration value
.Ic file_picker_command .Ic file_picker_command
in in
.Xr meli.conf 5 TERMINAL .Xr meli.conf 5 TERMINAL
.It Cm add-attachment-file-picker < Ar CMD Ar ARGS .It Cm add\-attachment\-file\-picker < Ar CMD Ar ARGS
Launch command Launch command
.Ar CMD Ar ARGS Ns .Ar CMD Ar ARGS Ns
\&. \&.
The command should print file paths in stderr, separated by NULL bytes. The command should print file paths in stderr, separated by NULL bytes.
.It Cm remove-attachment Ar INDEX .It Cm remove\-attachment Ar INDEX
remove attachment with given index remove attachment with given index
.It Cm toggle sign .It Cm toggle sign
toggle between signing and not signing this message. toggle between signing and not signing this message.
@ -721,7 +722,7 @@ If the gpg invocation fails then the mail won't be sent.
See See
.Xr meli.conf 5 PGP .Xr meli.conf 5 PGP
for PGP configuration. for PGP configuration.
.It Cm save-draft .It Cm save\-draft
saves a copy of the draft in the Draft folder saves a copy of the draft in the Draft folder
.El .El
.\" [ref:TODO]: add contacts section .\" [ref:TODO]: add contacts section
@ -738,12 +739,26 @@ for documentation on how to theme
.Xr xdg-open 1 , .Xr xdg-open 1 ,
.Xr mailcap 5 .Xr mailcap 5
.Sh AUTHORS .Sh AUTHORS
Copyright 2017-2022 Copyright 2017\(en2024
.An Manos Pitsidianakis Aq manos@pitsidianak.is .An Manos Pitsidianakis Aq Mt manos@pitsidianak.is
.Pp
Released under the GPL, version 3 or greater. Released under the GPL, version 3 or greater.
This software carries no warranty of any kind. This software carries no warranty of any kind.
(See COPYING for full copyright and warranty notices.) .Po
.Pp See
.Lk https://meli.delivery .Pa COPYING
.Lk https://github.com/meli/meli for full copyright and warranty notices.
.Lk https://crates.io/crates/meli .Pc
.Ss Links
.Bl -item -compact
.It
.Lk https://meli\-email.org "Website"
.It
.Lk https://git.meli\-email.org/meli/meli "Main\ git\ repository\ and\ issue\ tracker"
.It
.Lk https://codeberg.org/meli/meli "Official\ read-only\ git\ mirror\ on\ codeberg.org"
.It
.Lk https://github.com/meli/meli "Official\ read-only\ git\ mirror\ on\ github.com"
.It
.Lk https://crates.io/crates/meli "meli\ crate\ on\ crates.io"
.El

@ -18,7 +18,7 @@
.\" along with meli. If not, see <http://www.gnu.org/licenses/>. .\" along with meli. If not, see <http://www.gnu.org/licenses/>.
.\" .\"
.de HorizontalRule .de HorizontalRule
\l'\n(.l/1.25' .\"\l'\n(.l\(ru1.25'
.sp .sp
.. ..
.de LiteralStringValue .de LiteralStringValue
@ -42,7 +42,8 @@ Rendered as:
.Bc .Bc
.Sm .Sm
.. ..
.Dd November 11, 2022 .\".Dd November 11, 2022
.Dd March 10, 2024
.Dt MELI.CONF 5 .Dt MELI.CONF 5
.Os .Os
.Sh NAME .Sh NAME
@ -69,7 +70,7 @@ is written in
.Tn TOML .Tn TOML
which has a few things to consider (quoting the specification): which has a few things to consider (quoting the specification):
.sp .sp
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Tn TOML .Tn TOML
is case sensitive. is case sensitive.
@ -119,7 +120,7 @@ include macro:
.\" .\"
.Sh SECTIONS .Sh SECTIONS
The top level sections of the configuration are: The top level sections of the configuration are:
.Bl -bullet -compact .Bl -dash -compact
.It .It
accounts accounts
.It .It
@ -240,14 +241,6 @@ When replying to an e-mail addressed to one of these identities, the
: :
header will be adjusted to its value instead of the default identity. header will be adjusted to its value instead of the default identity.
.El .El
.TS
allbox tab(:);
lb l.
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
.TE
.Bl -tag -width 36n .Bl -tag -width 36n
.It Ic display_name Ar String .It Ic display_name Ar String
.Pq Em optional .Pq Em optional
@ -502,7 +495,7 @@ to generate and request the appropriate data to perform
authentication. authentication.
.sp .sp
Steps: Steps:
.Bl -bullet -compact .Bl -dash -compact
.It .It
In In
.Tn Google API Ns .Tn Google API Ns
@ -574,7 +567,7 @@ If the preferred format fails, the message is retried with mboxrd and then if
it fails again there is a recover attempt, which discards the invalid message. it fails again there is a recover attempt, which discards the invalid message.
.sp .sp
Valid values Valid values
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Ar auto .Ar auto
.It .It
@ -706,7 +699,7 @@ Silently insert updates for this mailbox, if any.
.Pq Em optional .Pq Em optional
special usage of this mailbox. special usage of this mailbox.
Valid values are: Valid values are:
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Ar Normal .Ar Normal
.Pq Em default .Pq Em default
@ -859,7 +852,7 @@ This setting is meant to be disabled for non-standard behaviour in
.Pq Em optional .Pq Em optional
The attribution line appears above the quoted reply text. The attribution line appears above the quoted reply text.
The format specifiers for the replied address are: The format specifiers for the replied address are:
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Li %+f .Li %+f
— the sender's name and email address. — the sender's name and email address.
@ -893,8 +886,10 @@ Alternative lists of reply prefixes (etc. ["Re:", "RE:", ...]) to strip.
.It Ic reply_prefix Ar String .It Ic reply_prefix Ar String
.Pq Em optional .Pq Em optional
The prefix to use in reply subjects. The prefix to use in reply subjects.
The default prefix is "Re:". The default prefix is
.Pq Em `Re:` \" default value .Ns Ql Re: Ns
\&.
.Pq Ql Re: \" default value
.Pp .Pp
RFC 2822, "Internet Message Format" has this to say on the matter: RFC 2822, "Internet Message Format" has this to say on the matter:
.\" .\"
@ -936,7 +931,7 @@ compose-hooks run before submitting an e-mail.
They perform draft validation and/or transformations. They perform draft validation and/or transformations.
If a hook encounters an error or warning, it will show up as a notification. If a hook encounters an error or warning, it will show up as a notification.
The currently available hooks are: The currently available hooks are:
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Ic past-date-warn .Ic past-date-warn
— Warn if — Warn if
@ -976,7 +971,7 @@ or draft body mention attachments but they are missing.
.Ss Values corresponding to keyboard keys, keycodes .Ss Values corresponding to keyboard keys, keycodes
Shortcuts can take the following values: Shortcuts can take the following values:
.sp .sp
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Em Backspace .Em Backspace
.It .It
@ -1214,7 +1209,7 @@ current sorting.
.Pq Em C-p \" default value .Pq Em C-p \" default value
.It Ic toggle_menu_visibility .It Ic toggle_menu_visibility
Toggle visibility of side menu in mail list. Toggle visibility of side menu in mail list.
.Pq Em ` \" default value .Pq Em \(ga \" default value
.It Ic focus_left .It Ic focus_left
Switch focus on the left. Switch focus on the left.
.Pq Em Left \" default value .Pq Em Left \" default value
@ -1273,7 +1268,7 @@ Go to previous account.
.Pq Em L \" default value .Pq Em L \" default value
.It Ic toggle_menu_visibility .It Ic toggle_menu_visibility
Toggle visibility of side menu in mail list. Toggle visibility of side menu in mail list.
.Pq Em ` \" default value .Pq Em \(ga \" default value
.El .El
.sp .sp
.sp .sp
@ -1529,7 +1524,9 @@ Datetime formatting passed verbatim to
.Pq Em \&%Y-\&%m-\&%d \&%T \" default value .Pq Em \&%Y-\&%m-\&%d \&%T \" default value
.It Ic recent_dates Ar Boolean .It Ic recent_dates Ar Boolean
.Pq Em optional .Pq Em optional
Show recent dates as `X {minutes,hours,days} ago`, up to 7 days. Show recent dates as
.Ns Ql X {minutes,hours,days} ago
.Ns , up to 7 days.
.Pq Em true \" default value .Pq Em true \" default value
.It Ic filter Ar Query .It Ic filter Ar Query
.Pq Em optional .Pq Em optional
@ -1552,6 +1549,14 @@ filter = "not flags:seen" # show only unseen messages
.\" .\"
.It Ic index_style Ar String .It Ic index_style Ar String
Sets the way mailboxes are displayed. Sets the way mailboxes are displayed.
.TS
allbox tab(:);
lb l.
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
.TE
.It Ic sidebar_mailbox_tree_has_sibling Ar String .It Ic sidebar_mailbox_tree_has_sibling Ar String
.Pq Em optional .Pq Em optional
Sets the string to print in the mailbox tree for a level where its root has a Sets the string to print in the mailbox tree for a level where its root has a
@ -1750,7 +1755,7 @@ colors = { signed="#Ff6600", replied="DeepSkyBlue4", draft="#f00", replied="8" }
\&... \&...
[accounts.dummy.mailboxes] [accounts.dummy.mailboxes]
# per mailbox override: # per mailbox override:
"INBOX" = { tags.ignore_tags=["inbox", ] } "INBOX" = { tags.ignore_tags=["inbox", ] }
.Ed .Ed
.\" .\"
.\" .\"
@ -1815,7 +1820,7 @@ Use comma to separate values.
.Pq Em Local,WKD \" default value .Pq Em Local,WKD \" default value
.Pp .Pp
Possible mechanisms: Possible mechanisms:
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Em cert .Em cert
.It .It
@ -1875,7 +1880,9 @@ If true, box drawing will be done with ASCII characters.
.Pq Em false \" default value .Pq Em false \" default value
.It Ic use_color Ar boolean .It Ic use_color Ar boolean
.Pq Em optional .Pq Em optional
If false, no ANSI colors are used. If false, no
.Tn ANSI
colors are used.
.Pq Em true \" default value .Pq Em true \" default value
.It Ic window_title Ar String .It Ic window_title Ar String
.Pq Em optional .Pq Em optional
@ -2021,7 +2028,7 @@ All levels less or equal to the
.Ic maximum_level .Ic maximum_level
will be appended to the log file. will be appended to the log file.
Available levels are, in partial order: Available levels are, in partial order:
.Bl -bullet -compact .Bl -dash -compact
.It .It
.Em OFF .Em OFF
.It .It
@ -2208,16 +2215,35 @@ RFC3461
.Sh SEE ALSO .Sh SEE ALSO
.Xr meli 1 , .Xr meli 1 ,
.Xr meli-themes 5 .Xr meli-themes 5
.Sh CONFORMING TO .Sh STANDARDS
.Bl -item -compact
.It
.Tn TOML .Tn TOML
Standard Standard
.Li v.0.5.0 .Li v.0.5.0
.Lk https://toml.io/en/v0.5.0 .Lk https://toml.io/en/v0.5.0
.El
.Sh AUTHORS .Sh AUTHORS
Copyright 2017-2019 Copyright 2017\(en2024
.An Manos Pitsidianakis Aq manos@pitsidianak.is .An Manos Pitsidianakis Aq Mt manos@pitsidianak.is
.Pp
Released under the GPL, version 3 or greater. Released under the GPL, version 3 or greater.
This software carries no warranty of any kind. This software carries no warranty of any kind.
(See COPYING for full copyright and warranty notices.) .Po
.Pp See
.Lk https://meli.delivery .Pa COPYING
for full copyright and warranty notices.
.Pc
.Ss Links
.Bl -item -compact
.It
.Lk https://meli\-email.org "Website"
.It
.Lk https://git.meli\-email.org/meli/meli "Main\ git\ repository\ and\ issue\ tracker"
.It
.Lk https://codeberg.org/meli/meli "Official\ read-only\ git\ mirror\ on\ codeberg.org"
.It
.Lk https://github.com/meli/meli "Official\ read-only\ git\ mirror\ on\ github.com"
.It
.Lk https://crates.io/crates/meli "meli\ crate\ on\ crates.io"
.El

@ -131,7 +131,7 @@ class ManFixer(HTMLParser):
@functools.cache @functools.cache
def give_me_head(url, url_, name, section): def give_me_head(url_):
o = urlparse(url_) o = urlparse(url_)
conn = http.client.HTTPSConnection(o.hostname, timeout=6) conn = http.client.HTTPSConnection(o.hostname, timeout=6)
conn.request(HTTPMethod.HEAD, o.path) conn.request(HTTPMethod.HEAD, o.path)
@ -148,7 +148,7 @@ def give_me_head(url, url_, name, section):
return None return None
if response.getheader("Location"): if response.getheader("Location"):
# print("for ", url_, "following redirect to ", response.getheader("Location")) # print("for ", url_, "following redirect to ", response.getheader("Location"))
return give_me_head(url, response.getheader("Location"), name, section) return give_me_head(response.getheader("Location"))
print("bailout") print("bailout")
return None return None
# print("for ", url_, "code is ", response.status) # print("for ", url_, "code is ", response.status)
@ -342,7 +342,7 @@ if __name__ == "__main__":
) )
url_ = url.replace("%N", name).replace("%S", section) url_ = url.replace("%N", name).replace("%S", section)
try: try:
got = give_me_head(url, url_, name, section) got = give_me_head(url_, name, section)
if got: if got:
link["href"] = got link["href"] = got
found = True found = True

@ -0,0 +1,140 @@
# meli - scripts/make_html_manual_page.py
#
# Copyright 2023 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 <http://www.gnu.org/licenses/>.
from urllib.parse import urlparse
import json
from datetime import datetime
import http.client
from http import HTTPMethod, HTTPStatus
import functools
@functools.cache
def give_me_get(url_):
o = urlparse(url_)
conn = http.client.HTTPSConnection(o.hostname, timeout=6)
conn.request(HTTPMethod.GET, o.path)
response = conn.getresponse()
if response.status in (
HTTPStatus.FOUND,
HTTPStatus.TEMPORARY_REDIRECT,
HTTPStatus.PERMANENT_REDIRECT,
HTTPStatus.MOVED_PERMANENTLY,
):
give_me_get.redirects += 1
if give_me_get.redirects > 3:
return None
if response.getheader("Location"):
return give_me_get(response.getheader("Location"))
return None
give_me_get.redirects = 0
if response.status == http.HTTPStatus.OK:
return response.read()
return None
give_me_get.redirects = 0
@functools.cache
def give_me_head(url_):
o = urlparse(url_)
conn = http.client.HTTPSConnection(o.hostname, timeout=6)
conn.request(HTTPMethod.HEAD, o.path)
response = conn.getresponse()
if response.status in (
HTTPStatus.FOUND,
HTTPStatus.TEMPORARY_REDIRECT,
HTTPStatus.PERMANENT_REDIRECT,
HTTPStatus.MOVED_PERMANENTLY,
):
give_me_head.redirects += 1
if give_me_head.redirects > 3:
return None
if response.getheader("Location"):
return give_me_head(response.getheader("Location"))
return None
give_me_head.redirects = 0
if response.status == http.HTTPStatus.OK:
return url_
return None
give_me_head.redirects = 0
def fetch_rfc_json(ident: str) -> str:
url = f"https://datatracker.ietf.org/doc/{ident.lower()}/doc.json"
body = give_me_get(url)
response_dict = json.loads(body)
with open(f"/tmp/rfcs/{ident}.json", "a") as f:
f.write(json.dumps(response_dict))
url_path = f"/doc/{ident}/"
retval = ".Rs\n"
retval += f".%B {response_dict['name'].upper()} {response_dict['title']}\n"
retval += f".%I {response_dict['stream']}\n"
dateval = datetime.strptime(response_dict["time"].split(" ")[0], "%Y-%m-%d")
for rev in response_dict["rev_history"]:
if rev["name"] != ident:
continue
dateval = datetime.strptime(rev["published"].split("T")[0], "%Y-%m-%d")
if "url" in rev:
url_path = rev["url"]
retval += f".%D {dateval.strftime('%B %d, %Y')}\n"
if "authors" in response_dict:
for author in response_dict["authors"]:
if "name" not in author:
continue
retval += f".%A {author['name']}\n"
doc_url = give_me_head(f"https://datatracker.ietf.org{url_path}")
if doc_url:
retval += f".%U {doc_url}\n"
retval += ".Re"
return retval
RFCS = [
"rfc1524",
"rfc2047",
"rfc2183",
"rfc2369",
"rfc2426",
"rfc3156",
"rfc3461",
"rfc3501",
"rfc3676",
"rfc3691",
"rfc3977",
"rfc4549",
"rfc4616",
"rfc4954",
"rfc5321",
"rfc5322",
"rfc6048",
"rfc6152",
"rfc6350",
"rfc6532",
"rfc6868",
"rfc7162",
"rfc8620",
"rfc8621",
]
for rfc in RFCS:
print(fetch_rfc_json(rfc))
Loading…
Cancel
Save