diff options
author | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-09-20 14:11:22 +0300 |
---|---|---|
committer | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-09-20 15:00:03 +0300 |
commit | 559de5e1403bc5cb94062b793a0ee05d803e6d33 (patch) | |
tree | 8b9b15954340827a026e0186fc21af26c82b7c05 /docs | |
parent | baa44109f25577756428262bba35c71f830ecc91 (diff) |
Add docs/ folder
Diffstat (limited to 'docs')
-rw-r--r-- | docs/meli-themes.5 | 613 | ||||
-rw-r--r-- | docs/meli.1 | 564 | ||||
-rw-r--r-- | docs/meli.conf.5 | 1076 |
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 |