summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2020-09-20 14:11:22 +0300
committerManos Pitsidianakis <el13635@mail.ntua.gr>2020-09-20 15:00:03 +0300
commit559de5e1403bc5cb94062b793a0ee05d803e6d33 (patch)
tree8b9b15954340827a026e0186fc21af26c82b7c05 /docs
parentbaa44109f25577756428262bba35c71f830ecc91 (diff)
Add docs/ folder
Diffstat (limited to 'docs')
-rw-r--r--docs/meli-themes.5613
-rw-r--r--docs/meli.1564
-rw-r--r--docs/meli.conf.51076
3 files changed, 2253 insertions, 0 deletions
diff --git a/docs/meli-themes.5 b/docs/meli-themes.5
new file mode 100644
index 00000000..7545d0b4
--- /dev/null
+++ b/docs/meli-themes.5
@@ -0,0 +1,613 @@
+.\" meli - meli-themes.5
+.\"
+.\" Copyright 2017-2020 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/>.
+.\"
+.Dd January 23, 2020
+.Dt MELI-THEMES 5
+.Os
+.Sh NAME
+.Nm meli-themes
+.Nd themes for the
+.Nm meli
+mail client
+.Sh SYNOPSIS
+.Nm meli
+comes with two themes,
+.Ic dark
+(default) and
+.Ic light .
+.sp
+Custom themes are defined as lists of key-values in the configuration files:
+.Bl -bullet -compact
+.It
+.Pa $XDG_CONFIG_HOME/meli/config.toml
+.It
+.Pa $XDG_CONFIG_HOME/meli/themes/*.toml
+.El
+.sp
+The application theme is defined in the configuration as follows:
+.Bd -literal
+[terminal]
+theme = "dark"
+.Ed
+.Sh DESCRIPTION
+Themes for
+.Nm meli
+are described in the configuration language TOML, as they are key-value tables defined in the TERMINAL section of the configuration file.
+Each key defines the semantic location of the theme attribute within the application.
+For example,
+.Ic mail.listing.compact.*
+keys are settings for the
+.Ic compact
+mail listing style.
+A setting contains three fields: fg for foreground color, bg for background color, and attrs for text attribute.
+.sp
+.Dl \&"widget.key.label\&" = { fg = \&"Default\&", bg = \&"Default\&", attrs = \&"Default\&" }
+.sp
+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
+.Ic color_aliases
+or
+.Ic attr_aliases
+fields of a theme.
+An alias' value can be any valid value, including links and other aliases, as long as they are valid.
+In the case of a link the setting's real value depends on the value of the referred key.
+This allows for defaults within a group of associated values.
+Cyclic references in a theme results in an error:
+.sp
+.Dl spooky theme contains a cycle: fg: mail.listing.compact.even -> mail.listing.compact.highlighted -> mail.listing.compact.odd -> mail.listing.compact.even
+.Pp
+Two themes are included by default, `light` and `dark`.
+.Sh EXAMPLES
+Specific settings from already defined themes can be overwritten:
+.Bd -literal
+[terminal]
+theme = "dark"
+.sp
+[terminal.themes.dark]
+"mail.sidebar_highlighted_account" = { bg = "#ff4529" }
+"mail.listing.attachment_flag" = { fg = "#ff4529" }
+"mail.view.headers" = { fg = "30" }
+"mail.view.body" = {fg = "HotPink3", bg = "LightSalmon1"}
+# Linked value keys can be whatever key:
+"mail.listing.compact.even_unseen" = { bg = "mail.sidebar_highlighted_account" }
+# Linked color value keys can optionally refer to another field:
+"mail.listing.compact.odd_unseen" = { bg = "mail.sidebar_highlighted_account.fg" }
+.sp
+# define new theme. Undefined settings will inherit from the default "dark" theme.
+[terminal.themes."hunter2"]
+color_aliases= { "Jebediah" = "#b4da55" }
+"mail.listing.tag_default" = { fg = "$Jebediah" }
+"mail.view.headers" = { fg = "White", bg = "Black" }
+.Ed
+.Sh CUSTOM THEMES
+Custom themes can be included in your configuration files or be saved independently in your
+.Pa $XDG_CONFIG_HOME/meli/themes/
+directory as TOML files.
+To start creating a theme right away, you can begin by editing the default theme keys and values:
+.sp
+.Dl meli --print-default-theme > ~/.config/meli/themes/new_theme.toml
+.sp
+.Pa new_theme.toml
+will now include all keys and values of the "dark" theme.
+.sp
+.Dl meli --print-loaded-themes
+.sp
+will print all loaded themes with the links resolved.
+.Sh VALID ATTRIBUTE VALUES
+Case-sensitive.
+.Bl -bullet -compact
+.It
+"Default"
+.It
+"Bold"
+.It
+"Dim"
+.It
+"Italics"
+.It
+"Underline"
+.It
+"Blink"
+.It
+"Reverse"
+.It
+"Hidden"
+.It
+Any combo of the above separated by a bitwise XOR "\&|" eg "Dim | Italics"
+.El
+.Sh VALID COLOR VALUES
+Color values are of type String with the following valid contents:
+.Bl -bullet -compact
+.It
+"Default" is the terminal default. (Case-sensitive)
+.It
+Hex triplet e.g. #FFFFFF for RGB colors.
+Three character shorthand is also valid, e.g. #09c → #0099cc (Case-insensitive)
+.It
+0-255 byte for 256 colors.
+.It
+.Xr xterm 1
+name but with some modifications (for a full table see COLOR NAMES addendum) (Case-sensitive)
+.El
+.Sh NO COLOR
+To completely disable ANSI colors, there are two options:
+.Bl -bullet -compact
+.It
+Set the
+.Ic use_color
+option (section
+.Ic terminal Ns
+) to false, which is true by default.
+.It
+The
+.Ev NO_COLOR
+environmental variable, when present (regardless of its value), prevents the addition of ANSI color.
+When the configuration value
+.Ic use_color
+is explicitly set to true by the user,
+.Ev NO_COLOR
+is ignored.
+.El
+.sp
+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.
+.Sh VALID KEYS
+.Bl -bullet -compact
+.It
+theme_default
+.It
+status.bar
+.It
+status.notification
+.It
+tab.focused
+.It
+tab.unfocused
+.It
+tab.bar
+.It
+widgets.list.header
+.It
+widgets.form.label
+.It
+widgets.form.field
+.It
+widgets.form.highlighted
+.It
+widgets.options.highlighted
+.It
+mail.sidebar
+.It
+mail.sidebar_unread_count
+.It
+mail.sidebar_index
+.It
+mail.sidebar_highlighted
+.It
+mail.sidebar_highlighted_unread_count
+.It
+mail.sidebar_highlighted_index
+.It
+mail.sidebar_highlighted_account
+.It
+mail.sidebar_highlighted_account_unread_count
+.It
+mail.sidebar_highlighted_account_index
+.It
+mail.listing.compact.even
+.It
+mail.listing.compact.odd
+.It
+mail.listing.compact.even_unseen
+.It
+mail.listing.compact.odd_unseen
+.It
+mail.listing.compact.even_selected
+.It
+mail.listing.compact.odd_selected
+.It
+mail.listing.compact.even_highlighted
+.It
+mail.listing.compact.odd_highlighted
+.It
+mail.listing.plain.even
+.It
+mail.listing.plain.odd
+.It
+mail.listing.plain.even_unseen
+.It
+mail.listing.plain.odd_unseen
+.It
+mail.listing.plain.even_selected
+.It
+mail.listing.plain.odd_selected
+.It
+mail.listing.plain.even_highlighted
+.It
+mail.listing.plain.odd_highlighted
+.It
+mail.listing.conversations
+.It
+mail.listing.conversations.subject
+.It
+mail.listing.conversations.from
+.It
+mail.listing.conversations.date
+.It
+mail.listing.conversations.padding
+.It
+mail.listing.conversations.unseen
+.It
+mail.listing.conversations.unseen_padding
+.It
+mail.listing.conversations.highlighted
+.It
+mail.listing.conversations.selected
+.It
+mail.view.headers
+.It
+mail.view.body
+.It
+mail.view.thread.indentation.a
+.It
+mail.view.thread.indentation.b
+.It
+mail.view.thread.indentation.c
+.It
+mail.view.thread.indentation.d
+.It
+mail.view.thread.indentation.e
+.It
+mail.view.thread.indentation.f
+.It
+mail.listing.attachment_flag
+.It
+mail.listing.thread_snooze_flag
+.It
+mail.listing.tag_default
+.It
+pager.highlight_search
+.It
+pager.highlight_search_current
+.El
+.Sh COLOR NAMES
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+Aqua:14:_:Black:0
+Aquamarine1:122:_:Maroon:1
+Aquamarine2:86:_:Green:2
+Aquamarine3:79:_:Olive:3
+Black:0:_:Navy:4
+Blue:12:_:Purple1:5
+Blue1:21:_:Teal:6
+Blue2:19:_:Silver:7
+Blue3:20:_:Grey:8
+BlueViolet:57:_:Red:9
+CadetBlue:72:_:Lime:10
+CadetBlue1:73:_:Yellow:11
+Chartreuse1:118:_:Blue:12
+Chartreuse2:112:_:Fuchsia:13
+Chartreuse3:82:_:Aqua:14
+Chartreuse4:70:_:White:15
+Chartreuse5:76:_:Grey0:16
+Chartreuse6:64:_:NavyBlue:17
+CornflowerBlue:69:_:DarkBlue:18
+Cornsilk1:230:_:Blue2:19
+Cyan1:51:_:Blue3:20
+Cyan2:50:_:Blue1:21
+Cyan3:43:_:DarkGreen:22
+DarkBlue:18:_:DeepSkyBlue5:23
+DarkCyan:36:_:DeepSkyBlue6:24
+DarkGoldenrod:136:_:DeepSkyBlue7:25
+DarkGreen:22:_:DodgerBlue3:26
+DarkKhaki:143:_:DodgerBlue2:27
+DarkMagenta:90:_:Green4:28
+DarkMagenta1:91:_:SpringGreen6:29
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+DarkOliveGreen1:192:_:Turquoise4:30
+DarkOliveGreen2:155:_:DeepSkyBlue3:31
+DarkOliveGreen3:191:_:DeepSkyBlue4:32
+DarkOliveGreen4:107:_:DodgerBlue1:33
+DarkOliveGreen5:113:_:Green2:34
+DarkOliveGreen6:149:_:SpringGreen4:35
+DarkOrange:208:_:DarkCyan:36
+DarkOrange2:130:_:LightSeaGreen:37
+DarkOrange3:166:_:DeepSkyBlue2:38
+DarkRed:52:_:DeepSkyBlue1:39
+DarkRed2:88:_:Green3:40
+DarkSeaGreen:108:_:SpringGreen5:41
+DarkSeaGreen1:158:_:SpringGreen2:42
+DarkSeaGreen2:193:_:Cyan3:43
+DarkSeaGreen3:151:_:DarkTurquoise:44
+DarkSeaGreen4:157:_:Turquoise2:45
+DarkSeaGreen5:115:_:Green1:46
+DarkSeaGreen6:150:_:SpringGreen3:47
+DarkSeaGreen7:65:_:SpringGreen1:48
+DarkSeaGreen8:71:_:MediumSpringGreen:49
+DarkSlateGray1:123:_:Cyan2:50
+DarkSlateGray2:87:_:Cyan1:51
+DarkSlateGray3:116:_:DarkRed:52
+DarkTurquoise:44:_:DeepPink8:53
+DarkViolet:128:_:Purple4:54
+DarkViolet1:92:_:Purple5:55
+DeepPink1:199:_:Purple3:56
+DeepPink2:197:_:BlueViolet:57
+DeepPink3:198:_:Orange3:58
+DeepPink4:125:_:Grey37:59
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+DeepPink6:162:_:MediumPurple6:60
+DeepPink7:89:_:SlateBlue2:61
+DeepPink8:53:_:SlateBlue3:62
+DeepPink9:161:_:RoyalBlue1:63
+DeepSkyBlue1:39:_:Chartreuse6:64
+DeepSkyBlue2:38:_:DarkSeaGreen7:65
+DeepSkyBlue3:31:_:PaleTurquoise4:66
+DeepSkyBlue4:32:_:SteelBlue:67
+DeepSkyBlue5:23:_:SteelBlue3:68
+DeepSkyBlue6:24:_:CornflowerBlue:69
+DeepSkyBlue7:25:_:Chartreuse4:70
+DodgerBlue1:33:_:DarkSeaGreen8:71
+DodgerBlue2:27:_:CadetBlue:72
+DodgerBlue3:26:_:CadetBlue1:73
+Fuchsia:13:_:SkyBlue3:74
+Gold1:220:_:SteelBlue1:75
+Gold2:142:_:Chartreuse5:76
+Gold3:178:_:PaleGreen4:77
+Green:2:_:SeaGreen4:78
+Green1:46:_:Aquamarine3:79
+Green2:34:_:MediumTurquoise:80
+Green3:40:_:SteelBlue2:81
+Green4:28:_:Chartreuse3:82
+GreenYellow:154:_:SeaGreen3:83
+Grey:8:_:SeaGreen1:84
+Grey0:16:_:SeaGreen2:85
+Grey100:231:_:Aquamarine2:86
+Grey11:234:_:DarkSlateGray2:87
+Grey15:235:_:DarkRed2:88
+Grey19:236:_:DeepPink7:89
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+Grey23:237:_:DarkMagenta:90
+Grey27:238:_:DarkMagenta1:91
+Grey3:232:_:DarkViolet1:92
+Grey30:239:_:Purple2:93
+Grey35:240:_:Orange4:94
+Grey37:59:_:LightPink3:95
+Grey39:241:_:Plum4:96
+Grey42:242:_:MediumPurple4:97
+Grey46:243:_:MediumPurple5:98
+Grey50:244:_:SlateBlue1:99
+Grey53:102:_:Yellow4:100
+Grey54:245:_:Wheat4:101
+Grey58:246:_:Grey53:102
+Grey62:247:_:LightSlateGrey:103
+Grey63:139:_:MediumPurple:104
+Grey66:248:_:LightSlateBlue:105
+Grey69:145:_:Yellow5:106
+Grey7:233:_:DarkOliveGreen4:107
+Grey70:249:_:DarkSeaGreen:108
+Grey74:250:_:LightSkyBlue2:109
+Grey78:251:_:LightSkyBlue3:110
+Grey82:252:_:SkyBlue2:111
+Grey84:188:_:Chartreuse2:112
+Grey85:253:_:DarkOliveGreen5:113
+Grey89:254:_:PaleGreen3:114
+Grey93:255:_:DarkSeaGreen5:115
+Honeydew2:194:_:DarkSlateGray3:116
+HotPink:205:_:SkyBlue1:117
+HotPink1:206:_:Chartreuse1:118
+HotPink2:169:_:LightGreen:119
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+HotPink3:132:_:LightGreen1:120
+HotPink4:168:_:PaleGreen1:121
+IndianRed:131:_:Aquamarine1:122
+IndianRed1:167:_:DarkSlateGray1:123
+IndianRed2:204:_:Red2:124
+IndianRed3:203:_:DeepPink4:125
+Khaki1:228:_:MediumVioletRed:126
+Khaki3:185:_:Magenta4:127
+LightCoral:210:_:DarkViolet:128
+LightCyan2:195:_:Purple:129
+LightCyan3:152:_:DarkOrange2:130
+LightGoldenrod1:227:_:IndianRed:131
+LightGoldenrod2:222:_:HotPink3:132
+LightGoldenrod3:179:_:MediumOrchid3:133
+LightGoldenrod4:221:_:MediumOrchid:134
+LightGoldenrod5:186:_:MediumPurple2:135
+LightGreen:119:_:DarkGoldenrod:136
+LightGreen1:120:_:LightSalmon2:137
+LightPink1:217:_:RosyBrown:138
+LightPink2:174:_:Grey63:139
+LightPink3:95:_:MediumPurple3:140
+LightSalmon1:216:_:MediumPurple1:141
+LightSalmon2:137:_:Gold2:142
+LightSalmon3:173:_:DarkKhaki:143
+LightSeaGreen:37:_:NavajoWhite3:144
+LightSkyBlue1:153:_:Grey69:145
+LightSkyBlue2:109:_:LightSteelBlue3:146
+LightSkyBlue3:110:_:LightSteelBlue:147
+LightSlateBlue:105:_:Yellow6:148
+LightSlateGrey:103:_:DarkOliveGreen6:149
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+LightSteelBlue:147:_:DarkSeaGreen6:150
+LightSteelBlue1:189:_:DarkSeaGreen3:151
+LightSteelBlue3:146:_:LightCyan3:152
+LightYellow3:187:_:LightSkyBlue1:153
+Lime:10:_:GreenYellow:154
+Magenta1:201:_:DarkOliveGreen2:155
+Magenta2:165:_:PaleGreen2:156
+Magenta3:200:_:DarkSeaGreen4:157
+Magenta4:127:_:DarkSeaGreen1:158
+Magenta5:163:_:PaleTurquoise1:159
+Magenta6:164:_:Red3:160
+Maroon:1:_:DeepPink9:161
+MediumOrchid:134:_:DeepPink6:162
+MediumOrchid1:171:_:Magenta5:163
+MediumOrchid2:207:_:Magenta6:164
+MediumOrchid3:133:_:Magenta2:165
+MediumPurple:104:_:DarkOrange3:166
+MediumPurple1:141:_:IndianRed1:167
+MediumPurple2:135:_:HotPink4:168
+MediumPurple3:140:_:HotPink2:169
+MediumPurple4:97:_:Orchid:170
+MediumPurple5:98:_:MediumOrchid1:171
+MediumPurple6:60:_:Orange2:172
+MediumSpringGreen:49:_:LightSalmon3:173
+MediumTurquoise:80:_:LightPink2:174
+MediumVioletRed:126:_:Pink3:175
+MistyRose1:224:_:Plum3:176
+MistyRose3:181:_:Violet:177
+NavajoWhite1:223:_:Gold3:178
+NavajoWhite3:144:_:LightGoldenrod3:179
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+Navy:4:_:Tan:180
+NavyBlue:17:_:MistyRose3:181
+Olive:3:_:Thistle3:182
+Orange1:214:_:Plum2:183
+Orange2:172:_:Yellow3:184
+Orange3:58:_:Khaki3:185
+Orange4:94:_:LightGoldenrod5:186
+OrangeRed1:202:_:LightYellow3:187
+Orchid:170:_:Grey84:188
+Orchid1:213:_:LightSteelBlue1:189
+Orchid2:212:_:Yellow2:190
+PaleGreen1:121:_:DarkOliveGreen3:191
+PaleGreen2:156:_:DarkOliveGreen1:192
+PaleGreen3:114:_:DarkSeaGreen2:193
+PaleGreen4:77:_:Honeydew2:194
+PaleTurquoise1:159:_:LightCyan2:195
+PaleTurquoise4:66:_:Red1:196
+PaleVioletRed1:211:_:DeepPink2:197
+Pink1:218:_:DeepPink3:198
+Pink3:175:_:DeepPink1:199
+Plum1:219:_:Magenta3:200
+Plum2:183:_:Magenta1:201
+Plum3:176:_:OrangeRed1:202
+Plum4:96:_:IndianRed3:203
+Purple:129:_:IndianRed2:204
+Purple1:5:_:HotPink:205
+Purple2:93:_:HotPink1:206
+Purple3:56:_:MediumOrchid2:207
+Purple4:54:_:DarkOrange:208
+Purple5:55:_:Salmon1:209
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+Red:9:_:LightCoral:210
+Red1:196:_:PaleVioletRed1:211
+Red2:124:_:Orchid2:212
+Red3:160:_:Orchid1:213
+RosyBrown:138:_:Orange1:214
+RoyalBlue1:63:_:SandyBrown:215
+Salmon1:209:_:LightSalmon1:216
+SandyBrown:215:_:LightPink1:217
+SeaGreen1:84:_:Pink1:218
+SeaGreen2:85:_:Plum1:219
+SeaGreen3:83:_:Gold1:220
+SeaGreen4:78:_:LightGoldenrod4:221
+Silver:7:_:LightGoldenrod2:222
+SkyBlue1:117:_:NavajoWhite1:223
+SkyBlue2:111:_:MistyRose1:224
+SkyBlue3:74:_:Thistle1:225
+SlateBlue1:99:_:Yellow1:226
+SlateBlue2:61:_:LightGoldenrod1:227
+SlateBlue3:62:_:Khaki1:228
+SpringGreen1:48:_:Wheat1:229
+SpringGreen2:42:_:Cornsilk1:230
+SpringGreen3:47:_:Grey100:231
+SpringGreen4:35:_:Grey3:232
+SpringGreen5:41:_:Grey7:233
+SpringGreen6:29:_:Grey11:234
+SteelBlue:67:_:Grey15:235
+SteelBlue1:75:_:Grey19:236
+SteelBlue2:81:_:Grey23:237
+SteelBlue3:68:_:Grey27:238
+Tan:180:_:Grey30:239
+.TE
+.TS
+allbox tab(:);
+lb|lb|l|lb|lb
+l l|l|l l.
+name ↓:byte:_:name:byte ↓
+Teal:6:_:Grey35:240
+Thistle1:225:_:Grey39:241
+Thistle3:182:_:Grey42:242
+Turquoise2:45:_:Grey46:243
+Turquoise4:30:_:Grey50:244
+Violet:177:_:Grey54:245
+Wheat1:229:_:Grey58:246
+Wheat4:101:_:Grey62:247
+White:15:_:Grey66:248
+Yellow:11:_:Grey70:249
+Yellow1:226:_:Grey74:250
+Yellow2:190:_:Grey78:251
+Yellow3:184:_:Grey82:252
+Yellow4:100:_:Grey85:253
+Yellow5:106:_:Grey89:254
+Yellow6:148:_:Grey93:255
+.TE
+.Sh SEE ALSO
+.Xr meli 1 ,
+.Xr meli.conf 5
+.Sh CONFORMING TO
+TOML Standard v.0.5.0 https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.5.0.md
+.sp
+https://no-color.org/
+.Sh AUTHORS
+Copyright 2017-2019
+.An Manos Pitsidianakis Aq epilys@nessuent.xyz
+Released under the GPL, version 3 or greater.
+This software carries no warranty of any kind.
+(See COPYING for full copyright and warranty notices.)
+.Pp
+.Aq https://meli.delivery
diff --git a/docs/meli.1 b/docs/meli.1
new file mode 100644
index 00000000..174c41e6
--- /dev/null
+++ b/docs/meli.1
@@ -0,0 +1,564 @@
+.\" meli - meli.1
+.\"
+.\" Copyright 2017-2019 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/>.
+.\"
+.Dd July 29, 2019
+.Dt MELI 1
+.Os
+.Sh NAME
+.Nm meli
+.Nd Meli Mail User Agent. meli is the Greek word for honey
+.Sh SYNOPSIS
+.Nm
+.Op Fl -help | h
+.Op Fl -version | v
+.Op Fl -config Ar path
+.Bl -tag -width flag -offset indent
+.It Fl -help | h
+Show help message and exit.
+.It Fl -version | v
+Show version and exit.
+.It Fl -config Ar path
+Start meli with given configuration file.
+.It Cm create-config Op Ar path
+Create configuration file in
+.Pa path
+if given, or at
+.Pa $XDG_CONFIG_HOME/meli/config.toml
+.It Cm test-config Op Ar path
+Test a configuration file for syntax issues or missing options.
+.It Cm man Op Ar page
+Print documentation page and exit (Piping to a pager is recommended.)
+.It Cm print-default-theme
+Print default theme keys and values in TOML syntax, to be used as a blueprint.
+.It Cm print-loaded-themes
+Print all loaded themes in TOML syntax.
+.It Cm view
+View mail from input file.
+.El
+.Sh DESCRIPTION
+.Nm
+is a terminal mail client aiming for extensive and user-frendly configurability.
+.Bd -literal
+ ^^ .-=-=-=-. ^^
+ ^^ (`-=-=-=-=-`) ^^
+ (`-=-=-=-=-=-=-`) ^^ ^^
+ ^^ (`-=-=-=-=-=-=-=-`) ^^
+ ( `-=-=-=-(@)-=-=-` ) ^^
+ (`-=-=-=-=-=-=-=-=-`) ^^
+ (`-=-=-=-=-=-=-=-=-`) ^^
+ (`-=-=-=-=-=-=-=-=-`)
+^^ (`-=-=-=-=-=-=-=-=-`) ^^
+ ^^ (`-=-=-=-=-=-=-=-`) ^^
+ (`-=-=-=-=-=-=-`) ^^
+ ^^ (`-=-=-=-=-`)
+ `-=-=-=-=-` ^^
+.Ed
+.Sh STARTING WITH meli
+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
+.Cm \&?
+for a searchable list of all available actions and shortcuts, along with every possible setting and command that your version supports.
+.Pp
+The main visual navigation tool, the left-side sidebar may be toggled with
+.Cm `
+(shortcuts.listing:
+.Ic toggle_menu_visibility Ns
+).
+.Pp
+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.
+.Pp
+If you're using a light color palette in your terminal, you should set
+.Em theme = "light"
+in the
+.Em terminal
+section of your configuration.
+See
+.Xr meli-themes 5
+for complete documentation on user themes.
+.Sh VIEWING MAIL
+Open attachments by typing their index in the attachments list and then
+.Cm a
+.Po
+shortcut
+.Ic open_attachment
+.Pc .
+.Nm
+will attempt to open text inside its pager, and other content via
+.Cm xdg-open Ns
+\&.
+Press
+.Cm m
+.Po
+shortcut
+.Ic open_mailcap
+.Pc
+instead to use the mailcap entry for the MIME type of the attachment, if any.
+See
+.Sx FILES
+for the location of the mailcap files and
+.Xr mailcap 5
+for their syntax.
+You can save individual attachments with the
+.Em COMMAND
+.Cm save-attachment Ar INDEX Ar path-to-file
+where
+.Ar INDEX
+is the attachment's index in the listing.
+If the zeroth 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.
+.Sh SEARCH
+Each e-mail storage backend has a default search method assigned.
+.Em IMAP
+uses the SEARCH command,
+.Em notmuch
+uses libnotmuch and
+.Em Maildir/mbox
+performs a slow linear search.
+It is advised to use a search backend on
+.Em Maildir/mbox
+accounts.
+.Nm Ns
+, if built with sqlite3, includes the ability to perform full text search on the following fields:
+.Em From ,
+.Em To ,
+.Em Cc ,
+.Em Bcc ,
+.Em In-Reply-To ,
+.Em References ,
+.Em Subject
+and
+.Em Date .
+The message body (in plain text human readable form) and the flags can also be queried.
+To enable sqlite3 indexing for an account set
+.Em search_backend
+to
+.Em sqlite3
+in the configuration file and to create the sqlite3 index issue command
+.Cm index Ar ACCOUNT_NAME Ns \&.
+.sp
+To search in the message body type your keywords without any special formatting.
+To search in specific fields, prepend your search keyword with "field:" like so:
+.Pp
+.D1 subject:helloooo or subject:\&"call for help\&" or \&"You remind me today of a small, Mexican chihuahua.\&"
+.Pp
+.D1 not ((from:unrealistic and (to:complex or not "query")) or flags:seen,draft)
+.Pp
+.D1 alladdresses:mailing@list.tld and cc:me@domain.tld
+.Pp
+Boolean operators are
+.Em or Ns
+,
+.Em and
+and
+.Em not
+.Po
+alias:
+.Em \&!
+.Pc
+String keywords with spaces must be quoted.
+Quotes should always be escaped.
+.sp
+.Sy Important Notice about IMAP/JMAP
+.sp
+To prevent downloading all your messages from your IMAP/JMAP server, don't set
+.Em search_backend
+to
+.Em sqlite3 Ns
+\&.
+.Nm
+will relay your queries to the IMAP server.
+Expect a delay between query and response.
+Sqlite3 on the contrary at reasonable mailbox sizes should have a non noticable delay.
+.Ss QUERY ABNF SYNTAX
+.Bl -bullet
+.It
+.Li query = \&"(\&" query \&")\&" | from | to | cc | bcc | alladdresses | subject | flags | has_attachments | query \&"or\&" query | query \&"and\&" query | not query
+.It
+.Li not = \&"not\&" | \&"!\&"
+.It
+.Li quoted = ALPHA / SP *(ALPHA / DIGIT / SP)
+.It
+.Li term = ALPHA *(ALPHA / DIGIT) | DQUOTE quoted DQUOTE
+.It
+.Li tagname = term
+.It
+.Li flagval = \&"passed\&" | \&"replied\&" | \&"seen\&" | \&"read\&" | \&"junk\&" | \&"trash\&" | \&"trashed\&" | \&"draft\&" | \&"flagged\&" | tagname
+.It
+.Li flagterm = flagval | flagval \&",\&" flagterm
+.It
+.Li from = \&"from:\&" term
+.It
+.Li to = \&"to:\&" term
+.It
+.Li cc = \&"cc:\&" term
+.It
+.Li bcc = \&"bcc:\&" term
+.It
+.Li alladdresses = \&"alladdresses:\&" term
+.It
+.Li subject = \&"subject:\&" term
+.It
+.Li flags = \&"flags:\&" flag | \&"tags:\&" flag | \&"is:\&" flag
+.El
+.Sh TAGS
+.Nm
+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
+.Cm tag add TAG
+and
+.Cm tag remove TAG
+(see
+.Xr meli.conf 5 TAGS Ns
+, settings
+.Ic colors
+and
+.Ic ignore_tags
+for how to set tag colors and tag visiblity)
+.Sh COMPOSING
+.Ss Opening the message Composer tab
+To create a new mail message, press
+.Cm m
+(shortcut
+.Ic new_mail Ns
+) while viewing a mailbox.
+To reply to a mail, press
+.Cm R
+.Po
+shortcut
+.Ic reply
+.Pc .
+Both these actions open the mail composer view in a new tab.
+.Ss Editing text
+.Bl -bullet -compact
+.It
+Edit the header fields by selecting with the arrow keys and pressing
+.Cm enter
+to enter
+.Em INSERT
+mode and
+.Cm Esc
+key to exit.
+.It
+At any time you may press
+.Cm e
+(shortcut
+.Ic edit_mail Ns
+) to launch your editor (see
+.Xr meli.conf 5 COMPOSING Ns
+, setting
+.Ic editor_command
+for how to select which editor to launch).
+.It
+Your editor can be used in
+.Nm Ns
+\&'s embed terminal emulator by setting
+.Ic embed
+to
+.Em true
+in your composing settings.
+.It
+When launched, your editor captures all input until it exits or stops.
+.It
+To stop your editor and return to
+.Nm
+press Ctrl-z and to resume editing press the
+.Ic edit_mail
+command again
+.Po
+default
+.Em e
+.Pc .
+.El
+.Ss Attachments
+Attachments may be handled with the
+.Cm add-attachment Ns
+,
+.Cm remove-attachment
+commands (see below).
+.Ss Sending
+Finally, pressing
+.Cm s
+(shortcut
+.Ic send_mail Ns
+) will send your message according to your settings
+.Po
+see
+.Xr meli.conf 5 COMPOSING Ns
+, setting
+.Ic send_mail
+.Pc Ns
+\&.
+With no Draft or Sent mailbox,
+.Nm
+tries first saving mail in your INBOX and then at any other mailbox.
+On complete failure to save your draft or sent message it will be saved in your
+.Em tmp
+directory instead and you will be notified of its location.
+.Ss Drafts
+To save your draft without sending it, issue
+.Em COMMAND
+.Cm close
+and select 'save as draft'.
+.sp
+To open a draft for further editing, select your draft in the mail listing and press
+.Ic edit_mail Ns
+\&.
+.Sh CONTACTS
+.Nm
+supports two kinds of contact backends:
+.sp
+.Bl -enum -compact -offset indent
+.It
+an internal format that gets saved under
+.Pa $XDG_DATA_HOME/meli/account_name/addressbook Ns
+\&.
+.It
+vCard files (v3, v4) through the
+.Ic vcard_folder
+option in the account section.
+The path defined as
+.Ic vcard_folder
+can hold multiple vCards per file.
+They are loaded read only.
+.El
+.sp
+See
+.Xr meli.conf 5 ACCOUNTS
+for the complete account configuration values.
+.Sh MODES
+.Bl -tag -compact -width 8n
+.It NORMAL
+is the default mode
+.It COMMAND
+commands are issued in
+.Em COMMAND
+mode, by default started with Space and exited with
+.Cm Esc
+key.
+.It EMBED
+is the mode of the embed terminal emulator
+.It INSERT
+captures all input as text input, and is exited with
+.Cm Esc
+key.
+.El
+.Ss COMMAND Mode
+.Ss Mail listing commands
+.Bl -tag -width 36n
+.It Cm set Ar plain | threaded | compact | conversations
+set the way mailboxes are displayed
+.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
+.It Cm sort Ar subject | date \ Ar asc | desc
+sort mail listing
+.It Cm subsort Ar subject | date \ Ar asc | desc
+sorts only the first level of replies.
+.It Cm go Ar n
+where
+.Ar n
+is a mailbox prefixed with the
+.Ar n
+number in the side menu for the current account
+.It Cm toggle_thread_snooze
+don't issue notifications for thread under cursor in thread listing
+.It Cm search Ar STRING
+search mailbox with
+.Ar STRING
+key.
+Escape exits search results
+.It Cm set read, set unread
+Set read status of message.
+.It Cm create-mailbox Ar ACCOUNT Ar MAILBOX_PATH
+create mailbox with given path.
+Be careful with backends and separator sensitivity (eg IMAP)
+.It Cm subscribe-mailbox Ar ACCOUNT Ar MAILBOX_PATH
+subscribe to mailbox with given path
+.It Cm unsubscribe-mailbox Ar ACCOUNT Ar MAILBOX_PATH
+unsubscribe to mailbox with given path
+.It Cm rename-mailbox Ar ACCOUNT Ar MAILBOX_PATH_SRC Ar MAILBOX_PATH_DEST
+rename mailbox
+.It Cm delete-mailbox Ar ACCOUNT Ar MAILBOX_PATH
+deletes mailbox in the mail backend.
+This action is unreversible.
+.El
+.Ss Mail view commands
+.Bl -tag -width 36n
+.It Cm pipe Ar EXECUTABLE Ar ARGS
+pipe pager contents to binary
+.It Cm list-post
+post in list of viewed envelope
+.It Cm list-unsubscribe
+unsubscribe automatically from list of viewed envelope
+.It Cm list-archive
+open list archive with
+.Cm xdg-open
+.El
+.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 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
+.Ss generic commands
+.Bl -tag -width 36n
+.It Cm open-in-tab
+opens envelope view in new tab
+.It Cm close
+closes closeable tabs
+.It Cm setenv Ar KEY=VALUE
+set environment variable
+.Ar KEY
+to
+.Ar VALUE
+.It Cm printenv Ar KEY
+print environment variable
+.Ar KEY
+.El
+.Sh SHORTCUTS
+See
+.Xr meli.conf 5 SHORTCUTS
+for shortcuts and their default values.
+.Sh EXIT STATUS
+.Nm
+exits with 0 on a successful run.
+Other exit statuses are:
+.Bl -tag -width 5n
+.It 1
+catchall for general errors
+.It 101
+process panic
+.El
+.Sh ENVIRONMENT
+.Bl -tag -width "$XDG_CONFIG_HOME/meli/plugins/*" -offset indent
+.It Ev EDITOR
+Specifies the editor to use
+.It Ev MELI_CONFIG
+Override the configuration file
+.It Ev NO_COLOR
+When present (regardless of its value), prevents the addition of ANSI color.
+The configuration value
+.Ic use_color
+overrides this.
+.El
+.Sh FILES
+.Nm
+uses the following parts of the XDG standard:
+.Bl -tag -width "$XDG_CONFIG_HOME/meli/plugins/*" -offset indent
+.It Ev XDG_CONFIG_HOME
+defaults to
+.Pa ~/.config/
+.It Ev XDG_CACHE_HOME
+defaults to
+.Pa ~/.cache/
+.El
+.Pp
+and appropriates the following locations:
+.Bl -tag -width "$XDG_CONFIG_HOME/meli/plugins/*" -offset indent
+.It Pa $XDG_CONFIG_HOME/meli/
+User configuration directory
+.It Pa $XDG_CONFIG_HOME/meli/config.toml
+User configuration file, see
+.Xr meli.conf 5
+for its syntax and values.
+.It Pa $XDG_CONFIG_HOME/meli/hooks/*
+Reserved for event hooks.
+.It Pa $XDG_CONFIG_HOME/meli/plugins/*
+Reserved for plugin files.
+.It Pa $XDG_CACHE_HOME/meli/*
+Internal cached data used by meli.
+.It Pa $XDG_DATA_HOME/meli/*
+Internal data used by meli.
+.It Pa $XDG_DATA_HOME/meli/meli.log
+Operation log.
+.It Pa /tmp/meli/*
+Temporary files generated by
+.Nm Ns
+\&.
+.El
+.Pp
+Mailcap entries are searched for in the following files, in this order:
+.Pp
+.Bl -enum -compact -offset indent
+.It
+.Pa $XDG_CONFIG_HOME/meli/mailcap
+.It
+.Pa $XDG_CONFIG_HOME/.mailcap
+.It
+.Pa $HOME/.mailcap
+.It
+.Pa /etc/mailcap
+.It
+.Pa /usr/etc/mailcap
+.It
+.Pa /usr/local/etc/mailcap
+.El
+.Sh SEE ALSO
+.Xr meli.conf 5 ,
+.Xr meli-themes 5 ,
+.Xr xdg-open 1 ,
+.Xr mailcap 5
+.Sh CONFORMING TO
+XDG Standard
+.Aq https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html Ns
+, maildir
+.Aq https://cr.yp.to/proto/maildir.html Ns
+, IMAPv4rev1 RFC3501, The JSON Meta Application Protocol (JMAP) RFC8620, The JSON Meta Application Protocol (JMAP) for Mail RFC8621.
+.Sh AUTHORS
+Copyright 2017-2019
+.An Manos Pitsidianakis Aq epilys@nessuent.xyz
+Released under the GPL, version 3 or greater.
+This software carries no warranty of any kind.
+(See COPYING for full copyright and warranty notices.)
+.Pp
+.Aq https://meli.delivery
diff --git a/docs/meli.conf.5 b/docs/meli.conf.5
new file mode 100644
index 00000000..a183251e
--- /dev/null
+++ b/docs/m