meli/docs/meli.conf.5 -rw-r--r-- 51 KiB
1.\" meli - meli.conf.5
2.\"
3.\" Copyright 2017-2019 Manos Pitsidianakis
4.\"
5.\" This file is part of meli.
6.\"
7.\" meli is free software: you can redistribute it and/or modify
8.\" it under the terms of the GNU General Public License as published by
9.\" the Free Software Foundation, either version 3 of the License, or
10.\" (at your option) any later version.
11.\"
12.\" meli is distributed in the hope that it will be useful,
13.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
14.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15.\" GNU General Public License for more details.
16.\"
17.\" You should have received a copy of the GNU General Public License
18.\" along with meli. If not, see <http://www.gnu.org/licenses/>.
19.\"
20.de HorizontalRule
21.\"\l'\n(.l\(ru1.25'
22.sp
23..
24.de LiteralStringValue
25.Sm
26.Po Qo
27.Em Li \\$1
28.Qc Pc
29.Sm
30..
31.de LiteralStringValueRenders
32.LiteralStringValue \\$1
33.shift 1
34.Bo
35.Sm
36Rendered as:
37.Li r##
38.Qo
39\\$1
40.Qc
41.Li ##
42.Bc
43.Sm
44..
45.\".Dd November 11, 2022
46.Dd May 20, 2024
47.Dt MELI.CONF 5
48.Os
49.Sh NAME
50.Nm meli.conf
51.Nd configuration file for the
52.Xr meli 1
53terminal e-mail client
54.\"
55.\"
56.\"
57.\"
58.\"
59.Sh SYNOPSIS
60.Pa $XDG_CONFIG_HOME/meli/config.toml
61.\"
62.\"
63.\"
64.\"
65.\"
66.Sh DESCRIPTION
67Configuration for
68.Sy meli
69is written in
70.Em TOML
71which has a few things to consider (quoting the specification):
72.sp
73.Bl -dash -compact
74.It
75.Em TOML
76is case sensitive.
77.It
78A
79.Em TOML
80file must be a valid
81.Em UTF-8
82encoded Unicode document.
83.It
84White-space means
85.Sy tab
86.Pq Li 0x09
87or
88.Sy space
89.Pq Li 0x20 Ns
90\&.
91.It
92Newline means
93.Sy LF
94.Pq Li 0x0A
95or
96.Sy CRLF
97.Pq Li 0x0D 0x0A Ns
98\&.
99.El
100.sp
101Refer to
102.Em TOML
103documentation for valid
104.Em TOML
105syntax.
106.sp
107Though not part of
108.Em TOML
109syntax,
110.Nm
111can have nested configuration files by using the following
112.Xr m4 1
113include macro:
114.sp
115.Dl include(\&"/path/to/file\&")
116.\"
117.\"
118.\"
119.\"
120.\"
121.Sh SECTIONS
122The top level sections of the configuration are:
123.Bl -dash -compact
124.It
125accounts
126.It
127shortcuts
128.It
129notifications
130.It
131pager
132.It
133listing
134.It
135composing
136.It
137pgp
138.It
139terminal
140.It
141log
142.El
143.\"
144.\"
145.\"
146.\"
147.\"
148.Sh EXAMPLES
149An example configuration:
150.\"
151.\"
152.\"
153.Bd -literal
154# Setting up a Maildir account
155[accounts.account-name]
156root_mailbox = "/path/to/root/folder"
157format = "Maildir"
158listing.index_style = "Compact"
159identity="email@example.com"
160subscribed_mailboxes = ["folder", "folder/Sent"] # or [ "*", ] for all mailboxes
161display_name = "Name"
162
163# Set mailbox-specific settings
164 [accounts.account-name.mailboxes]
165 "INBOX" = { alias="Inbox" } #inline table
166 "drafts" = { alias="Drafts" } #inline table
167 [accounts.account-name.mailboxes."foobar-devel"] # or a regular table
168 ignore = true # don't show notifications for this mailbox
169
170# Setting up an mbox account
171[accounts.mbox]
172root_mailbox = "/var/mail/username"
173format = "mbox"
174listing.index_style = "Compact"
175identity="username@hostname.local"
176composing.send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
177
178[pager]
179filter = "COLUMNS=72 /usr/local/bin/pygmentize -l email"
180html_filter = "w3m -I utf-8 -T text/html"
181
182[notifications]
183script = "notify-send"
184
185[composing]
186# required for sending e-mail
187send_mail = 'msmtp --read-recipients --read-envelope-from'
188#send_mail = { hostname = "smtp.example.com", port = 587, auth = { type = "auto", username = "user", password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/user.gpg" } }, security = { type = "STARTTLS" } }
189editor_command = 'vim +/^$'
190
191[shortcuts]
192[shortcuts.composing]
193edit = 'e'
194
195[shortcuts.listing]
196new_mail = 'm'
197set_seen = 'n'
198
199[terminal]
200theme = "light"
201.Ed
202.\"
203.\"
204.\"
205.sp
206Available options are listed below.
207.\"
208.\"
209.\"
210.\"
211.\"
212.Sh ACCOUNTS
213.Ss Account configuration settings
214Default values are shown in parentheses.
215.Bl -tag -width 36n
216.It Ic root_mailbox Ar String
217The backend-specific path of the root_mailbox, usually
218.Sy INBOX Ns
219\&.
220.It Ic default_mailbox Ar String
221.Pq Em optional
222The mailbox that is the default to open or view for this account.
223Must be a valid mailbox path.
224If not specified, the default will be the root mailbox.
225.It Ic format Ar String Op maildir mbox imap notmuch jmap
226The format of the mail backend.
227.It Ic subscribed_mailboxes Ar [String,]
228An array of mailbox paths to display in the UI.
229Paths are relative to the root mailbox (e.g.
230.Sy INBOX/Sent Ns
231, not
232.Sy Sent Ns
233).
234The glob wildcard
235.Em \&*
236can be used to match every mailbox name and path.
237.It Ic identity Ar String
238Your e-mail address that is inserted in the
239.Li From Ns
240:
241headers of outgoing mail.
242.It Ic extra_identities Ar [String,]
243Extra e-mail address identities.
244When replying to an e-mail addressed to one of these identities, the
245.Li From Ns
246:
247header will be adjusted to its value instead of the default identity.
248.El
249.Bl -tag -width 36n
250.It Ic display_name Ar String
251.Pq Em optional
252A name which can be combined with your address:
253.Qq Li Name <email@example.com> Ns
254\&.
255.It Ic read_only Ar boolean
256Attempt to not make any changes to this account.
257.Pq Em false
258.It Ic manual_refresh Ar boolean
259.Pq Em optional
260If true, do not monitor account for changes
261.Po
262you can use shortcut
263.Li listing.refresh
264.Pc Ns
265\&.
266.Pq Em false
267.It Ic refresh_command Ar String
268.Pq Em optional
269command to execute when manually refreshing
270.Po
271shortcut
272.Li listing.refresh
273.Pc
274.Pq Em None
275.It Ic search_backend Ar String
276.Pq Em optional
277Choose which search backend to use.
278Available options are
279.Qq Li none
280and
281.Qq Li sqlite3 Ns
282\&.
283.Pq Qq sqlite3
284.It Ic vcard_folder Ar String
285.Pq Em optional
286Folder that contains
287.Sy .vcf
288files.
289They are parsed and imported read-only.
290.It Ic mutt_alias_file Ar String
291.Pq Em optional
292Path of
293.Xr mutt 1
294compatible alias file in the option
295They are parsed and imported read-only.
296.It Ic mailboxes Ar mailbox
297.Pq Em optional
298Configuration for each mailbox.
299Its format is described below in
300.Sx mailboxes Ns
301\&.
302.El
303.Ss notmuch only
304.HorizontalRule
305notmuch is supported by loading the dynamic library
306.Sy libnotmuch Ns
307\&.
308If its location is missing from your library paths, you must add it yourself.
309Alternatively, you can specify its path by using a setting.
310.sp
311notmuch mailboxes are virtual, since they are defined by user-given notmuch
312queries.
313You must explicitly state the mailboxes you want in the
314.Ic mailboxes
315field and set the
316.Ar query
317property to each of them.
318To create a tree hierarchy with virtual mailboxes, define the
319.Ar parent
320property to a mailbox as the name of the parent mailbox you have used in your
321configuration.
322.sp
323Account properties:
324.Bl -tag -width 36n
325.It Ic root_mailbox
326points to the directory which contains the
327.Pa .notmuch/
328subdirectory.
329.It Ic library_file_path Ar Path
330Use an arbitrary location of
331.Sy libnotmuch
332by specifying its full filesystem path.
333.Pq Em optional
334.El
335Mailbox properties:
336.Bl -tag -width 36n
337.It Ic query Ar String
338The
339.Sy notmuch
340query that defines what content this virtual mailbox has.
341Refer to
342.Xr notmuch-search-terms 7
343for
344.Sy notmuch Ns
345\&'s search syntax.
346.It Ic parent Ar String
347If you wish to build a mailbox hierarchy, define the name of a parent mailbox
348you have used in your configuration.
349.Pq Em optional
350.El
351.sp
352Example:
353.sp
354.\"
355.\"
356.\"
357.Bd -literal
358[accounts.notmuch]
359format = "notmuch"
360#library_file_path = "/opt/homebrew/lib/libnotmuch.5.dylib"
361\&...
362 [accounts.notmuch.mailboxes]
363 "INBOX" = { query="tag:inbox", subscribe = true }
364 "Drafts" = { query="tag:draft", subscribe = true }
365 "Sent" = { query="from:username@example.com from:username2@example.com", subscribe = true }
366 "Archives" = { query="tag:archived", subscribe = true }
367 "Archives/2019" = { query="tag:archived date:01-2019..12-2019", parent="Archives", subscribe = true }
368.Ed
369.\"
370.\"
371.\"
372.Ss IMAP only
373.HorizontalRule
374.Em IMAP
375specific options are:
376.Bl -tag -width 36n
377.It Ic server_hostname Ar String
378example:
379.Qq mail.example.com
380.It Ic server_username Ar String
381Server username
382.It Ic server_password Ar String
383Server password
384.It Ic server_password_command Ar String
385.Pq Em optional
386Use instead of
387.Ic server_password
388.It Ic server_port Ar number
389.Pq Em optional
390The port to connect to
391.Pq Em 143 \" default value
392.It Ic use_starttls Ar boolean
393.Pq Em optional
394If port is
395.Li 993
396and
397.Qq Li use_starttls
398is unspecified, it becomes false by default.
399.Pq Em true \" default value
400.It Ic use_tls Ar boolean
401.Pq Em optional
402Connect with
403.Em TLS
404.Po
405or upgrade from plain connection to
406.Em TLS
407if
408.Em STARTTLS
409is set.
410.Pc
411.Pq Em true \" default value
412.It Ic danger_accept_invalid_certs Ar boolean
413.Pq Em optional
414Do not validate
415.Em TLS
416certificates.
417.Pq Em false \" default value
418.It Ic offline_cache Ar boolean
419.Pq Em optional
420Keep mail headers in an
421.Sy sqlite3
422database.
423.Pq Em true \" default value
424.It Ic use_idle Ar boolean
425.Pq Em optional
426Use
427.Em IDLE
428extension.
429.Pq Em true \" default value
430.It Ic use_condstore Ar boolean
431.Pq Em optional
432Use
433.Em CONDSTORE
434extension.
435.Pq Em true \" default value
436.It Ic use_deflate Ar boolean
437.Pq Em optional
438Use
439.Em COMPRESS=DEFLATE
440extension
441.Po if built with
442.Em DEFLATE
443support
444.Pc
445.Pq Em true \" default value
446.It Ic use_oauth2 Ar boolean
447.Pq Em optional
448Use
449.Em OAUTH2
450authentication.
451Can only be used with
452.Ic server_password_command
453which should return a base64-encoded
454.Em OAUTH2
455token ready to be passed to
456.Em IMAP Ns
457\&.
458For help on setup with
459.Em Gmail Ns
460, see
461.Em Gmail
462section below.
463.Pq Em false \" default value
464.It Ic use_auth_anonymous Ar boolean
465.Pq Em optional
466Use
467.Em AUTH=ANONYMOUS
468extension for authentication.
469.Pq Em false \" default value
470.It Ic use_id Ar boolean
471.Pq Em optional
472Use
473.Em ID
474extension to retrieve server metadata, viewable at the account status page.
475Enabling this does not send any information to the server.
476.Pq Em false \" default value
477.It Ic timeout Ar integer
478.Pq Em optional
479Timeout to use for server connections in seconds.
480A timeout of
481.Li 0
482seconds means there is no timeout.
483.Pq Em 16 \" default value
484.El
485.Ss Gmail
486.HorizontalRule
487.Em Gmail
488has non-standard
489.Em IMAP
490behaviors that need to be worked around.
491.Ss Gmail - sending mail
492.HorizontalRule
493Option
494.Ic store_sent_mail
495should be disabled since
496.Em Gmail
497auto-saves sent mail by its own.
498.Ss Gmail OAUTH2
499.HorizontalRule
500To use
501.Em OAUTH2 Ns
502, you must go through a process to register your own private
503.Qq application
504with
505.Em Google
506that can use
507.Em OAUTH2
508tokens,
509and set the option
510.Ic use_oauth2
511as
512.Ql true
513in the account configuration section.
514For convenience in the
515.Sy meli
516repository under the
517.Pa contrib/
518directory you can find a
519.Sy python3
520file named
521.Li oauth2.py
522to generate and request the appropriate data to perform
523.Em OAUTH2
524authentication.
525.sp
526Steps:
527.Bl -dash -compact
528.It
529In
530.Em Google API Ns
531s, create a custom OAuth client ID and note down the Client ID and Client
532Secret.
533You may need to create a consent screen; follow the steps described in the
534website.
535.It
536Run the
537.Li oauth2.py
538script as follows
539.Pq after adjusting binary paths and credentials Ns
540:
541.sp
542.Cm python3 oauth2.py --user=xxx@gmail.com --client_id=1038[...].apps.googleusercontent.com --client_secret=VWFn8LIKAMC-MsjBMhJeOplZ --generate_oauth2_token
543and follow the instructions.
544Note down the refresh token.
545.It
546In
547.Ic server_password_command
548enter a command like this
549.Pq after adjusting binary paths and credentials Ns
550:
551.sp
552.Cm TOKEN=$(python3 oauth2.py --user=xxx@gmail.com --quiet --client_id=1038[...].apps.googleusercontent.com --client_secret=VWFn8LIKAMC-MsjBMhJeOplZ --refresh_token=1/Yzm6MRy4q1xi7Dx2DuWXNgT6s37OrP_DW_IoyTum4YA) && python3 oauth2.py --user=xxx@gmail.com --generate_oauth2_string --quiet --access_token=$TOKEN
553.It
554On startup,
555.Sy meli
556should evaluate this command which if successful must only return a
557.Em base64 Ns
558-encoded token ready to be passed to
559.Em IMAP.
560.Pp
561Your account section should look like this:
562.Bd -literal
563[accounts."gmail"]
564root_mailbox = '[Gmail]'
565format = "imap"
566server_hostname='imap.gmail.com'
567server_username="username@gmail.com"
568use_oauth2 = true
569server_password_command = "TOKEN=$(py...th2_string --quiet --access_token=$TOKEN"
570server_port="993"
571listing.index_style = "Conversations"
572identity = "username@gmail.com"
573display_name = "Name Name"
574subscribed_mailboxes = ["*" ]
575composing.store_sent_mail = false
576composing.send_mail = { hostname = "smtp.gmail.com", port = 587, auth = { type = "xoauth2", token_command = "...", require_auth = true }, security = { type = "STARTTLS" } }
577.Ed
578.El
579.Ss JMAP only
580.HorizontalRule
581.Em JMAP
582specific options
583.Bl -tag -width 36n
584.It Ic server_url Ar String
585example:
586.Qq http://mail.example.com
587.Qq http://mail.example.com:8080
588.Qq https://mail.example.com
589.It Ic server_username Ar String
590Server username
591.It Ic server_password Ar String
592Server password
593.It Ic server_password_command Ar String
594.Pq Em optional
595Use instead of
596.Ic server_password
597.It Ic use_token Ar boolean
598Authenticate using the API Bearer token method.
599If enabled, the token value must be provided as the configured password.
600.Pq Em false \" default value
601.It Ic danger_accept_invalid_certs Ar boolean
602.Pq Em optional
603Do not validate
604.Em TLS
605certificates.
606.Pq Em false \" default value
607.It Ic timeout Ar integer
608.Pq Em optional
609Timeout to use for server connections in seconds.
610A timeout of
611.Li 0
612seconds means there is no timeout.
613.Pq Em 16 \" default value
614.El
615.Ss mbox only
616.HorizontalRule
617.Em mbox
618specific options:
619.Bl -tag -width 36n
620.It Ic prefer_mbox_type Ar String
621.Pq Em optional
622Prefer specific
623.Em mbox
624format reader for each message.
625Default is
626.Qq Li mboxcl2
627format.
628If the preferred format fails, the message is retried with mboxrd and then if
629it fails again there is a recover attempt, which discards the invalid message.
630.sp
631Valid values
632.Bl -dash -compact
633.It
634.Ar auto
635.It
636.Ar mboxo
637.It
638.Ar mboxrd
639.It
640.Ar mboxcl
641.It
642.Ar mboxcl2
643.El
644.Pq Em auto \" default value
645.El
646To set multiple mailboxes, you have to explicitly state the mailboxes you want
647in the
648.Ic mailboxes
649field and set the
650.Ar path
651property to each of them.
652Example:
653.\"
654.\"
655.\"
656.Bd -literal
657[accounts.mbox]
658format = "mbox"
659mailboxes."Python mailing list" = { path = "~/.mail/python.mbox", subscribe = true, autoload = true }
660.Ed
661.\"
662.\"
663.\"
664.Ss NNTP
665.HorizontalRule
666.Em NNTP
667specific options
668.Bl -tag -width 36n
669.It Ic server_hostname Ar String
670example:
671.Qq nntp.example.com
672.It Ic server_username Ar String
673Server username
674.It Ic server_password Ar String
675Server password
676.It Ic require_auth Ar boolean
677.Pq Em optional
678require authentication in every case
679.Pq Em true \" default value
680.It Ic use_tls Ar boolean
681.Pq Em optional
682Connect with
683.Em TLS Ns
684\&.
685.Pq Em false \" default value
686.It Ic server_port Ar number
687.Pq Em optional
688The port to connect to
689.Pq Em 119 \" default value
690.It Ic danger_accept_invalid_certs Ar boolean
691.Pq Em optional
692Do not validate
693.Em TLS
694certificates.
695.Pq Em false \" default value
696.It Ic store_flags_locally Ar boolean
697.Pq Em optional
698Store seen status locally in an
699.Sy sqlite3
700database.
701.Pq Em true \" default value
702.El
703.Pp
704You have to explicitly state the groups you want to see in the
705.Ic mailboxes
706field.
707Example:
708.\"
709.\"
710.\"
711.Bd -literal
712[accounts.sicpm.mailboxes]
713 "sic.all" = {}
714.Ed
715.\"
716.\"
717.\"
718.Pp
719To submit articles directly to the
720.Em NNTP
721server, you must set the special value
722.Em server_submission
723in the
724.Ic send_mail
725field.
726Example:
727.\"
728.\"
729.\"
730.Bd -literal
731composing.send_mail = "server_submission"
732.Ed
733.\"
734.\"
735.\"
736.Ss MAILBOXES
737.HorizontalRule
738.Bl -tag -width 36n
739.It Ic alias Ar String
740.Pq Em optional
741Show a different name for this mailbox in the
742.Em UI Ns
743\&.
744.It Ic autoload Ar boolean
745.Pq Em optional
746Load this mailbox on startup
747.Pq Em true \" default value
748.It Ic collapsed Ar boolean
749.Pq Em optional
750Collapse this mailbox subtree in menu.
751.Pq Em false \" default value
752.It Ic subscribe Ar boolean
753.Pq Em optional
754Watch this mailbox for updates.
755.Pq Em true \" default value
756.It Ic ignore Ar boolean
757.Pq Em optional
758Silently insert updates for this mailbox, if any.
759.Pq Em false \" default value
760.It Ic usage Ar boolean
761.Pq Em optional
762special usage of this mailbox.
763Valid values are:
764.Bl -dash -compact
765.It
766.Ar Normal
767.Pq Em default
768.It
769.Ar Inbox
770.It
771.Ar Archive
772.It
773.Ar Drafts
774.It
775.Ar Flagged
776.It
777.Ar Junk
778.It
779.Ar Sent
780.It
781.Ar Trash
782.El
783otherwise usage is inferred from the mailbox title.
784If for example your Sent folder is not named
785.Qq Li Sent Ns
786, you must explicitly set it.
787.It Ic conf_override Ar boolean
788.Pq Em optional
789Override global settings for this mailbox.
790Available sections to override are
791.Em pager, notifications, shortcuts, composing
792and the account options
793.Em identity Ns
794\&.
795Example:
796.\"
797.\"
798.\"
799.Bd -literal
800[accounts."imap.example.com".mailboxes]
801 "INBOX" = { index_style = "plain" }
802 "INBOX/Lists/devlist" = { autoload = false, pager = { filter = "pygmentize -l diff -f 256"} }
803.Ed
804.\"
805.\"
806.\"
807.It Ic sort_order Ar unsigned integer
808.Pq Em optional
809Override sort order on the sidebar for this mailbox.
810Example:
811.\"
812.\"
813.\"
814.Bd -literal
815[accounts."imap.example.com".mailboxes]
816 "INBOX" = { index_style = "plain" }
817 "INBOX/Sent" = { sort_order = 0 }
818 "INBOX/Drafts" = { sort_order = 1 }
819 "INBOX/Lists" = { sort_order = 2 }
820.Ed
821.\"
822.\"
823.\"
824.It Ic encoding Ar String
825.Pq Em optional
826Override the default
827.Em UTF-8
828charset for the mailbox name.
829Useful only for
830.Em UTF-7
831mailboxes.
832.Pq Em "utf7", "utf-7", "utf8", "utf-8" \" default value
833.El
834.\"
835.\"
836.\"
837.\"
838.\"
839.Sh COMPOSING
840.Ss Composing specific configuration settings
841Default values are shown in parentheses.
842.Bl -tag -width 36n
843.It Ic send_mail Ar String|SmtpServerConf
844Command to pipe new mail to
845.Po
846exit code must be
847.Li 0
848for success
849.Pc
850or settings for an
851.Em SMTP
852server connection.
853See section
854.Sx SMTP Connections
855for its fields.
856.It Ic editor_command Ar String
857Command to launch editor.
858Can have arguments.
859Draft filename is given as the last argument.
860If it's missing, the environment variable
861.Ev EDITOR
862is looked up.
863.It Ic embedded_pty Ar boolean
864.Pq Em optional
865Embedded editor within
866.Sy meli Ns
867\&.
868Editor must be
869.Sy xterm
870compliant.
871.Pq Em false \" default value
872.It Ic format_flowed Ar boolean
873.Pq Em optional
874Set
875.Li format=flowed
876.Bq RFC3676
877in
878.Li text/plain
879attachments.
880.Pq Em true \" default value
881.It Ic insert_user_agent Ar boolean
882.Pq Em optional
883Add
884.Sy meli
885.Li User-Agent
886header in new drafts.
887.Pq Em true \" default value
888.It Ic default_header_values Ar hash table String[String]
889.Pq Em optional
890Default header values used when creating a new draft.
891.Pq Em {} \" default value
892.It Ic wrap_header_preamble Ar Option<(String, String)>
893.Pq Em optional
894Wrap header pre-ample when editing a draft in an editor.
895This allows you to write non-plain text email without the preamble creating
896syntax errors.
897They are stripped when you return from the editor.
898The values should be a two element array of strings, a prefix and suffix.
899This can be useful when for example you're writing Markdown; you can set the
900value to
901.Em ["<!--",\ "-->"]
902which wraps the headers in an
903.Em HTML
904comment.
905.Pq Em None \" default value
906.It Ic store_sent_mail Ar boolean
907.Pq Em optional
908Store sent mail after successful submission.
909This setting is meant to be disabled for non-standard behaviour in
910.Em Gmail Ns
911, which auto-saves sent mail on its own.
912.Pq Em true \" default value
913.It Ic attribution_format_string Ar String
914.Pq Em optional
915The attribution line appears above the quoted reply text.
916The format specifiers for the replied address are:
917.Bl -dash -compact
918.It
919.Li %+f
920โ€” the sender's name and email address.
921.It
922.Li %+n
923โ€” the sender's name (or email address, if no name is included).
924.It
925.Li %+a
926โ€” the sender's email address.
927.El
928The format string is passed to
929.Xr strftime 3
930with the replied envelope's date.
931.Pq Em "On %a, %0e %b %Y %H:%M, %+f wrote:%n" \" default value
932.It Ic attribution_use_posix_locale Ar boolean
933.Pq Em optional
934Whether the
935.Xr strftime 3
936call for the attribution string uses the
937.Em POSIX
938locale instead of the user's active locale.
939.Pq Em true \" default value
940.It Ic forward_as_attachment Ar boolean or "ask"
941.Pq Em optional
942Forward emails as attachment? (Alternative is inline).
943.Pq Em ask \" default value
944.It Ic reply_prefix_list_to_strip Ar [String]
945.Pq Em optional
946Alternative lists of reply prefixes (etc. ["Re:", "RE:", ...]) to strip.
947.Dl Em [Re:, RE:, Fwd:, Fw:, ๅ›žๅค:, ๅ›ž่ฆ†:, SV:, Sv:, VS:, Antw:, Doorst:, VS:, VL:, REF:, TR:, TR:, AW:, WG:, ฮ‘ฮ :, ฮ‘ฯ€:, ฮฑฯ€:, ฮ ฮกฮ˜:, ฮ ฯฮธ:, ฯ€ฯฮธ:, ฮฃฮงฮ•ฮค:, ฮฃฯ‡ฮตฯ„:, ฯƒฯ‡ฮตฯ„:, ฮ ฮกฮ˜:, ฮ ฯฮธ:, ฯ€ฯฮธ:, Vรก:, Tovรกbbรญtรกs:, R:, I:, RIF:, FS:, BLS:, TRS:, VS:, VB:, RV:, RES:, Res, ENC:, Odp:, PD:, YNT:, ฤฐLT:, ATB:, YML:] \" default value
948.It Ic reply_prefix Ar String
949.Pq Em optional
950The prefix to use in reply subjects.
951The default prefix is
952.Ns Ql Re: Ns
953\&.
954.Pq Ql Re: \" default value
955.Pp
956RFC 2822, "Internet Message Format" has this to say on the matter:
957.\"
958.\"
959.\"
960.Bd -literal -offset indent -compact
961When used in a reply, the field body MAY start with the string "Re: " (from
962the Latin "res", in the matter of) followed by the contents of the "Subject:"
963field body of the original message.
964.Ed
965.\"
966.\"
967.\"
968.It Ic custom_compose_hooks Ar [{ name = String, command = String }]
969.Pq Em optional
970Custom compose-hooks that run shell scripts.
971compose-hooks run before submitting an e-mail.
972They perform draft validation and/or transformations.
973If a custom hook exits with an error status or prints output to stdout and
974stderr, it will show up in the UI as a notification.
975.sp
976Example:
977.\"
978.\"
979.\"
980.Bd -literal
981[composing]
982editor_cmd = '~/.local/bin/vim +/^$'
983embed = true
984custom_compose_hooks = [ { name ="spellcheck", command="aspell --mode email --dont-suggest --ignore-case list" }]
985.Ed
986.\"
987.\"
988.\"
989.It Ic disabled_compose_hooks Ar [String]
990.Pq Em optional
991Disabled compose-hooks.
992compose-hooks run before submitting an e-mail.
993They perform draft validation and/or transformations.
994If a hook encounters an error or warning, it will show up as a notification.
995The currently available hooks are:
996.Bl -dash -compact
997.It
998.Ic past-date-warn
999โ€” Warn if
1000.Li Date
1001header value is far in the past or future.
1002.It
1003.Ic important-header-warn
1004โ€” Warn if important headers
1005.Po
1006.Li From Ns
1007,
1008.Li Date Ns
1009,
1010.Li To Ns
1011,
1012.Li Cc Ns
1013,
1014.Li Bcc
1015.Pc
1016are missing or invalid.
1017.It
1018.Ic missing-attachment-warn
1019โ€” Warn if
1020.Li Subject Ns
1021or draft body mention attachments but they are missing.
1022.It
1023.Ic empty-draft-warn
1024โ€” Warn if draft has no subject and no body.
1025.El
1026.El
1027.\"
1028.\"
1029.\"
1030.\"
1031.\"
1032.Sh SHORTCUTS
1033.Ss Values corresponding to keyboard keys, keycodes
1034Shortcuts can take the following values:
1035.sp
1036.Bl -dash -compact
1037.It
1038.Em Backspace
1039.It
1040.Em Left
1041.It
1042.Em Right
1043.It
1044.Em Up
1045.It
1046.Em Down
1047.It
1048.Em Home
1049.It
1050.Em End
1051.It
1052.Em PageUp
1053.It
1054.Em PageDown
1055.It
1056.Em Delete
1057.It
1058.Em Insert
1059.It
1060.Em Enter
1061.It
1062.Em Tab
1063.It
1064.Em Esc
1065.It
1066.Em F1..F12
1067.It
1068.Em M-char
1069.It
1070.Em C-char
1071.It
1072.Em char
1073.El
1074.sp
1075Where
1076.Em char
1077is a single character string, maximum 4 bytes long, like the corresponding type
1078in Rust.
1079.Pp
1080In the next subsection, you will find lists for each shortcut category.
1081The headings before each list indicate the map key of the shortcut list.
1082For example for the first list titled
1083.Em general
1084the configuration is typed as follows:
1085.\"
1086.\"
1087.\"
1088.Bd -literal
1089[shortcuts.general]
1090next_tab = 'T'
1091.Ed
1092.\"
1093.\"
1094.\"
1095.sp
1096and for
1097.Em listing Ns
1098:
1099.\"
1100.\"
1101.\"
1102.Bd -literal
1103[shortcuts.listing]
1104open_entry = "Enter"
1105exit_entry = 'i'
1106.Ed
1107.\"
1108.\"
1109.\"
1110.sp
1111.Pp
1112.Em commands
1113.sp
1114In addition, each shortcuts section supports a TOML array of commands to
1115associate a key to an array of
1116.Em COMMAND
1117mode commands.
1118.sp
1119.\"
1120.\"
1121.\"
1122.Bd -literal
1123[shortcuts.listing]
1124commands = [ { command = [ "tag remove trash", "flag unset trash" ], shortcut = "D" },
1125 { command = [ "tag add trash", "flag set trash" ], shortcut = "d" } ]
1126.Ed
1127.\"
1128.\"
1129.\"
1130.Ss Shortcut configuration settings
1131.HorizontalRule
1132Default values are shown in parentheses.
1133.sp
1134.Em general
1135.Bl -tag -width 36n
1136.It Ic toggle_help
1137Toggle help and shortcuts view.
1138.Pq Em \&? \" default value
1139.It Ic enter_command_mode
1140Enter
1141.Em COMMAND
1142mode.
1143.Pq Em \&: \" default value
1144.It Ic quit
1145Quit meli.
1146.Pq Em q \" default value
1147.It Ic go_to_tab
1148Go to the
1149.Em n Ns
1150th tab
1151.Pq Em M-n
1152.It Ic next_tab
1153Go to the next tab.
1154.Pq Em T \" default value
1155.It Ic scroll_right
1156Generic scroll right (catch-all setting)
1157.Pq Em l \" default value
1158.It Ic scroll_left
1159Generic scroll left (catch-all setting)
1160.Pq Em h \" default value
1161.It Ic scroll_up
1162Generic scroll up (catch-all setting)
1163.Pq Em k \" default value
1164.It Ic scroll_down
1165Generic scroll down (catch-all setting)
1166.Pq Em j \" default value
1167.It Ic next_page
1168Go to next page.
1169(catch-all setting)
1170.Pq Em PageDown \" default value
1171.It Ic prev_page
1172Go to previous page.
1173(catch-all setting)
1174.Pq Em PageUp \" default value
1175.It Ic home_page
1176Go to first page.
1177(catch-all setting)
1178.Pq Em Home \" default value
1179.It Ic end_page
1180Go to last page. (catch-all setting)
1181.Pq Em End \" default value
1182.It Ic open_entry
1183Open list entry. (catch-all setting)
1184.Pq Em Enter \" default value
1185.It Ic info_message_next
1186Show next info message, if any.
1187.Pq Em > \" default value
1188.It Ic info_message_previous
1189Show previous info message, if any.
1190.Pq Em < \" default value
1191.It Ic focus_in_text_field
1192Focus on a text field.
1193.Pq Em Enter \" default value
1194.It Ic next_search_result
1195Scroll to next search result.
1196.Pq Em n \" default value
1197.It Ic previous_search_result
1198Scroll to previous search result.
1199.Pq Em N
1200.El
1201.sp
1202.Em listing
1203.Bl -tag -width 36n
1204.It Ic scroll_up
1205Scroll up list.
1206.Pq Em k \" default value
1207.It Ic scroll_down
1208Scroll down list.
1209.Pq Em j \" default value
1210.It Ic next_page
1211Go to next page.
1212.Pq Em PageDown \" default value
1213.It Ic prev_page
1214Go to previous page.
1215.Pq Em PageUp \" default value
1216.It Ic new_mail
1217Start new mail draft in new tab.
1218.Pq Em m \" default value
1219.It Ic next_account
1220Go to next account.
1221.Pq Em H \" default value
1222.It Ic prev_account
1223Go to previous account.
1224.Pq Em L \" default value
1225.It Ic next_mailbox
1226Go to next mailbox.
1227.Pq Em J \" default value
1228.It Ic prev_mailbox
1229Go to previous mailbox.
1230.Pq Em K \" default value
1231.It Ic open_mailbox
1232Open selected mailbox
1233.Pq Em Enter \" default value
1234.It Ic toggle_mailbox_collapse
1235Toggle mailbox visibility in menu.
1236.Pq Em Space \" default value
1237.It Ic search
1238Search within list of e-mails.
1239.Pq Em / \" default value
1240.It Ic refresh
1241Manually request a mailbox refresh.
1242.Pq Em F5 \" default value
1243.It Ic set_seen
1244Set thread as seen.
1245.Pq Em n \" default value
1246.It Ic send_to_trash
1247Send entry to trash folder.
1248.Pq Em D \" default value
1249.It Ic union_modifier
1250Union modifier.
1251.Pq Em C-u \" default value
1252.It Ic diff_modifier
1253Difference modifier.
1254.Pq Em C-d \" default value
1255.It Ic intersection_modifier
1256Intersection modifier.
1257.Pq Em i \" default value
1258.It Ic select_entry
1259Select thread entry.
1260.Pq Em v \" default value
1261.It Ic increase_sidebar
1262Increase sidebar width.
1263.Pq Em C-f \" default value
1264.It Ic decrease_sidebar
1265Decrease sidebar width.
1266.Pq Em C-d \" default value
1267.It Ic next_entry
1268When reading a mail item, change focus on next entry according to the current
1269sorting.
1270.Pq Em C-n \" default value
1271.It Ic previous_entry
1272When reading a mail item, change focus on previous entry according to the
1273current sorting.
1274.Pq Em C-p \" default value
1275.It Ic toggle_menu_visibility
1276Toggle visibility of side menu in mail list.
1277.Pq Em \(ga \" default value
1278.It Ic focus_left
1279Switch focus on the left.
1280.Pq Em Left \" default value
1281.It Ic focus_right
1282Switch focus on the right.
1283.Pq Em Right \" default value
1284.It Ic exit_entry
1285Exit e-mail entry.
1286.Pq Em i \" default value
1287.It Ic open_entry
1288Open e-mail entry.
1289.Pq Em Enter \" default value
1290.El
1291.sp
1292.Em pager
1293.Bl -tag -width 36n
1294.It Ic page_down
1295Go to next page.
1296.Pq Em PageDown \" default value
1297.It Ic page_up
1298Go to previous page.
1299.Pq Em PageUp \" default value
1300.It Ic scroll_down
1301Scroll down pager.
1302.Pq Em j \" default value
1303.It Ic scroll_up
1304Scroll up pager.
1305.Pq Em k \" default value
1306.It Ic select_filter
1307Select content filter.
1308.Pq Em f \" default value
1309.Pp
1310See also
1311.Ic named_filters
1312setting.
1313.El
1314.sp
1315.Em contact-list
1316.Bl -tag -width 36n
1317.It Ic scroll_up
1318Scroll up list.
1319.Pq Em k \" default value
1320.It Ic scroll_down
1321Scroll down list.
1322.Pq Em j \" default value
1323.It Ic create_contact
1324Create new contact.
1325.Pq Em c \" default value
1326.It Ic edit_contact
1327Edit contact under cursor.
1328.Pq Em e \" default value
1329.It Ic export_contact
1330Export contact under cursor to .vcf.
1331.Pq Em E \" default value
1332.It Ic delete_contact
1333Delete contact under cursor.
1334.Pq Em d \" default value
1335.It Ic mail_contact
1336Mail contact under cursor.
1337.Pq Em m \" default value
1338.It Ic next_account
1339Go to next account.
1340.Pq Em H \" default value
1341.It Ic prev_account
1342Go to previous account.
1343.Pq Em L \" default value
1344.It Ic toggle_menu_visibility
1345Toggle visibility of side menu in mail list.
1346.Pq Em \(ga \" default value
1347.El
1348.sp
1349.sp
1350.Em composing
1351.Bl -tag -width 36n
1352.It Ic edit
1353Edit mail.
1354.Pq Em e \" default value
1355.It Ic send_mail
1356Deliver draft to mailer
1357.Pq Em s \" default value
1358.It Ic scroll_up
1359Change field focus.
1360.Pq Em k \" default value
1361.It Ic scroll_down
1362Change field focus.
1363.Pq Em j \" default value
1364.El
1365.sp
1366.Em envelope-view
1367.Pp
1368To select an attachment, type its index (you will see the typed result in the
1369command buffer on the bottom right of the status line), then issue the
1370corresponding command.
1371.Bl -tag -width 36n
1372.It Ic add_addresses_to_contacts Ns
1373Select addresses from envelope to add to contacts.
1374.Pq Em c \" default value
1375.It Ic edit
1376Open envelope in composer.
1377.Pq Em e \" default value
1378.It Ic go_to_url
1379Go to url of given index (with the command
1380.Ic url_launcher
1381setting in
1382.Sx PAGER
1383section)
1384.Pq Em g \" default value
1385.It Ic open_attachment
1386Opens selected attachment with
1387.Cm xdg-open
1388.Pq Em a \" default value
1389.It Ic open_mailcap
1390Opens selected attachment according to its mailcap entry.
1391See
1392.Xr meli 1 FILES
1393for the mailcap file locations.
1394.Pq Em m \" default value
1395.It Ic open_html
1396Opens html attachment in the default browser.
1397.Pq Em v \" default value
1398.It Ic reply
1399Reply to envelope.
1400.Pq Em R \" default value
1401.It Ic reply_to_author
1402Reply to author.
1403.Pq Em C-r \" default value
1404.It Ic reply_to_all
1405Reply to all/Reply to list/Follow up.
1406.Pq Em C-g \" default value
1407.It Ic forward
1408Forward email.
1409.Pq Em C-f \" default value
1410.It Ic return_to_normal_view
1411Return to envelope if viewing raw source or attachment.
1412.Pq Em r \" default value
1413.It Ic toggle_expand_headers
1414Expand extra headers (References and others)
1415.Pq Em h \" default value
1416.It Ic toggle_url_mode
1417Toggles url open mode.
1418When active, it prepends an index next to each url that you can select by
1419typing the index and open by issuing
1420.Ic go_to_url
1421.Pq Em u \" default value
1422.It Ic view_raw_source
1423View raw envelope source in a pager.
1424.Pq Em M-r \" default value
1425.It Ic change_charset
1426Force attachment charset for decoding.
1427.Pq Em d \" default value
1428.El
1429.sp
1430.Em thread-view
1431.Bl -tag -width 36n
1432.It Ic scroll_up
1433Scroll up list.
1434.Pq Em k \" default value
1435.It Ic scroll_down
1436Scroll down list.
1437.Pq Em j \" default value
1438.It Ic collapse_subtree
1439collapse thread branches.
1440.Pq Em h \" default value
1441.It Ic next_page
1442Go to next page.
1443.Pq Em PageDown \" default value
1444.It Ic prev_page
1445Go to previous page.
1446.Pq Em PageUp \" default value
1447.It Ic reverse_thread_order
1448reverse thread order.
1449.Pq Em C-r \" default value
1450.It Ic toggle_mailview
1451toggle mail view visibility.
1452.Pq Em p \" default value
1453.It Ic toggle_threadview
1454toggle thread view visibility.
1455.Pq Em t \" default value
1456.It Ic toggle_layout
1457Toggle between horizontal and vertical layout.
1458.Pq Em Space \" default value
1459.El
1460.sp
1461.\"
1462.\"
1463.\"
1464.\"
1465.\"
1466.Sh NOTIFICATIONS
1467.Ss Notification configuration settings
1468Default values are shown in parentheses.
1469.Bl -tag -width 36n
1470.It Ic enable Ar boolean
1471Enable notifications.
1472.Pq Em true \" default value
1473.It Ic script Ar String
1474.Pq Em optional
1475Script to pass notifications to, with title as 1st arg and body as 2nd
1476.Pq Em none \" default value
1477.It Ic new_mail_script Ar String
1478.Pq Em optional
1479A command to pipe new mail notifications through (preferred over
1480.Ic script Ns
1481), with title as 1st arg and body as 2nd.
1482.Pq Em none \" default value
1483.It Ic xbiff_file_path Ar String
1484.Pq Em optional
1485File that gets its size updated when new mail arrives.
1486.Pq Em none
1487.It Ic play_sound Ar boolean \" default value
1488.Pq Em optional
1489Play theme sound in notifications if possible.
1490.Pq Em false
1491.It Ic sound_file Ar String \" default value
1492.Pq Em optional
1493Play sound file in notifications if possible.
1494.Pq Em none \" default value
1495.El
1496.\"
1497.\"
1498.\"
1499.\"
1500.\"
1501.Sh PAGER
1502.Ss Pager (viewing text) configuration settings
1503Default values are shown in parentheses.
1504.Bl -tag -width 36n
1505.It Ic sticky_headers Ar boolean
1506.Pq Em optional
1507Always show headers when scrolling.
1508.Pq Em false \" default value
1509.It Ic html_filter Ar String
1510.Pq Em optional
1511Pipe html attachments through this filter before display
1512.Pq Em none \" default value
1513.It Ic html_open Ar String
1514.Pq Em optional
1515A command to open html files.
1516.Pq Em none \" default value
1517.It Ic filter Ar String
1518.Pq Em optional
1519A command to pipe mail output through for viewing in pager.
1520.It Ic named_filters Ar String[String]
1521.Pq Em optional
1522Named filter commands to use at will.
1523.Pq Em empty \" default value
1524.Pp
1525Show menu with an empty
1526.Cm filter
1527command.
1528Example:
1529.Bd -literal
1530[pager]
1531named_filters = { diff = "pygmentize -l diff -f 256", par = "par 72" }
1532.Ed
1533.It Ic format_flowed Ar boolean
1534.Pq Em optional
1535Respect format=flowed
1536.Pq Em true \" default value
1537.It Ic split_long_lines Ar boolean
1538.Pq Em optional
1539Split long lines that would overflow on the x axis.
1540.Pq Em true \" default value
1541.It Ic minimum_width Ar num
1542.Pq Em optional
1543Minimum text width in columns.
1544.Pq Em 80 \" default value
1545.It Ic auto_choose_multipart_alternative Ar boolean
1546.Pq Em optional
1547Choose
1548.Li text/html
1549alternative if
1550.Li text/plain
1551is empty in
1552.Li multipart/alternative
1553attachments.
1554.Pq Em true \" default value
1555.It Ic show_date_in_my_timezone Ar boolean
1556.Pq Em optional
1557Show
1558.Li Date Ns
1559: in local timezone
1560.Pq Em true \" default value
1561.It Ic url_launcher Ar String
1562.Pq Em optional
1563A command to launch URLs with.
1564The URL will be given as the first argument of the command.
1565.Pq Em xdg-open \" default value
1566.It Ic show_extra_headers Ar [String]
1567.Pq Em optional
1568Extra headers to display, if present, in the default header preamble of the
1569pager.
1570.Pq Em empty \" default value
1571.Pp
1572This setting is useful especially when used per-folder or per-account.
1573For example, if you use
1574.Sy rss2email
1575.Pq See Xr r2e 1
1576the e-mail you will receive will have the
1577.Sy X-RSS-Feed
1578header by default.
1579You can show them only in the folder where you keep your feed items:
1580.Pp
1581.\"
1582.\"
1583.\"
1584.Bd -literal -compact
1585[accounts."personal".mailboxes]
1586INBOX = {}
1587"INBOX/Sent" = { sort_order=0 }
1588"INBOX/Feeds" = { pager.show_extra_headers = ["X-RSS-Feed"] }
1589.Ed
1590.\"
1591.\"
1592.\"
1593.El
1594.\"
1595.\"
1596.\"
1597.\"
1598.\"
1599.Sh LISTING
1600.Ss Listing (lists of e-mail entries in a mailbox) configuration settings
1601Default values are shown in parentheses.
1602.Bl -tag -width 36n
1603.It Ic show_menu_scrollbar Ar boolean
1604.Pq Em optional
1605 Show auto-hiding scrollbar in accounts sidebar menu.
1606.Pq Em true \" default value
1607.It Ic datetime_fmt Ar String
1608.Pq Em optional
1609Datetime formatting passed verbatim to
1610.Xr strftime 3 Ns
1611\&.
1612.Pq Em \&%Y-\&%m-\&%d \&%T \" default value
1613.It Ic recent_dates Ar Boolean
1614.Pq Em optional
1615Show recent dates as
1616.Ns Ql X {minutes,hours,days} ago
1617.Ns , up to 7 days.
1618.Pq Em true \" default value
1619.It Ic filter Ar Query
1620.Pq Em optional
1621Show only envelopes matching this query.
1622.Po
1623For query syntax see
1624.Xr meli 1 QUERY ABNF SYNTAX
1625.Pc
1626.Pq Em None \" default value
1627.Pp
1628Example:
1629.\"
1630.\"
1631.\"
1632.Bd -literal
1633filter = "not flags:seen" # show only unseen messages
1634.Ed
1635.\"
1636.\"
1637.\"
1638.It Ic index_style Ar String
1639Sets the way mailboxes are displayed.
1640.TS
1641allbox tab(:);
1642lb l.
1643conversations:shows one entry per thread
1644compact:shows one row per thread
1645threaded:shows threads as a tree structure
1646plain:shows one row per mail, regardless of threading
1647.TE
1648.It Ic sidebar_mailbox_tree_has_sibling Ar String
1649.Pq Em optional
1650Sets the string to print in the mailbox tree for a level where its root has a
1651sibling.
1652See example below for a clear explanation and examples.
1653.It Ic sidebar_mailbox_tree_no_sibling Ar String
1654.Pq Em optional
1655Sets the string to print in the mailbox tree for a level where its root has no
1656sibling.
1657.It Ic sidebar_mailbox_tree_has_sibling_leaf Ar String
1658.Pq Em optional
1659Sets the string to print in the mailbox tree for a leaf level where its root
1660has a sibling.
1661.It Ic sidebar_mailbox_tree_no_sibling_leaf Ar String
1662.Pq Em optional
1663Sets the string to print in the mailbox tree for a leaf level where its root
1664has no sibling.
1665.It Ic sidebar_divider Ar char
1666.Pq Em optional
1667Sets the character to print as the divider between the accounts list and the
1668message list.
1669.It Ic sidebar_ratio Ar Integer
1670.Pq Em optional
1671This is the width of the right container to the entire screen width.
1672.Pq Em 90 \" default value
1673.It Ic unseen_flag Ar Option<String>
1674Flag to show if thread entry contains unseen mail.
1675.Pq Em "โ—" \" default value
1676.It Ic thread_snoozed_flag Ar Option<String>
1677Flag to show if thread has been snoozed.
1678.LiteralStringValueRenders ๐Ÿ’ค\e\uu{FE0E} ๐Ÿ’ค๏ธŽ \" default value
1679.It Ic selected_flag Ar Option<String>
1680Flag to show if thread entry has been selected.
1681.LiteralStringValueRenders โ˜‘๏ธโ€‡\e\uu{2007} โ˜‘๏ธโ€‡
1682.It Ic attachment_flag Ar Option<String>
1683Flag to show if thread entry contains attachments.
1684.LiteralStringValueRenders ๐Ÿ“Ž\e\uu{FE0E} ๐Ÿ“Ž๏ธŽ \" default value
1685.It Ic highlight_self_flag Ar Option<String>
1686Flag to show if any thread entry contains your address as a receiver.
1687Useful to make mailing list threads that CC you stand out.
1688.Pq Em "โœธ" \" default value
1689.It Ic highlight_self Ar boolean
1690Show
1691.Ic highlight_self_flag
1692or not.
1693.Pq Em false \" default value
1694.It Ic thread_subject_pack Ar boolean
1695Should threads with differentiating Subjects show a list of those subjects on
1696the entry title?
1697.Pq Em true \" default value
1698.It Ic threaded_repeat_identical_from_values Ar boolean
1699In threaded listing style, repeat identical From column values within a thread.
1700Not repeating adds empty space in the From column which might result in less
1701visual clutter.
1702.Pq Em false \" default value
1703.It Ic relative_menu_indices Ar boolean
1704Show relative indices in menu mailboxes to quickly help with jumping to them.
1705.Pq Em true \" default value
1706.It Ic relative_list_indices Ar boolean
1707Show relative indices in listings to quickly help with jumping to them.
1708.Pq Em true \" default value
1709.It Ic hide_sidebar_on_launch Ar boolean
1710Start app with sidebar hidden.
1711.Pq Em false \" default value
1712.It Ic mail_view_divider Ar char
1713Character to show in the divider space between mail view and listing.
1714.Pq Em ' ' \" default value
1715.It Ic thread_layout Ar "auto" | "vertical" | "horizontal"
1716Force specific layout in thread view.
1717The layout can also be toggled at runtime with the
1718.Li listing.toggle_layout
1719shortcut.
1720.Pq Em "auto"
1721.El
1722.Ss Examples of sidebar mailbox tree customization
1723.HorizontalRule
1724The default values
1725.sp
1726.\"
1727.\"
1728.\"
1729.Bd -literal
1730 has_sibling = " "
1731 no_sibling = " ";
1732 has_sibling_leaf = " "
1733 no_sibling_leaf = " "
1734.Ed
1735.\"
1736.\"
1737.\"
1738.sp
1739render a mailbox tree like the following:
1740.sp
1741.\"
1742.\"
1743.\"
1744.Bd -literal
17450 Inbox 3
17461 Archive
17472 Drafts
17483 Lists
17494 example-list-a
17505 example-list-b
17516 Sent
17527 Spam
17538 Trash
1754.Ed
1755.\"
1756.\"
1757.\"
1758.sp
1759Other possible trees:
1760.sp
1761.\"
1762.\"
1763.\"
1764.Bd -literal
1765has_sibling = " โ”ƒ"
1766no_sibling = " "
1767has_sibling_leaf = " โ”ฃโ”"
1768no_sibling_leaf = " โ”—โ”"
1769.Ed
1770.\"
1771.\"
1772.\"
1773.sp
1774.\"
1775.\"
1776.\"
1777.Bd -literal
17780 Inbox 3
17791 โ”ฃโ”Archive
17802 โ”ฃโ”Drafts
17813 โ”ฃโ”Lists
17824 โ”ƒ โ”ฃโ”example-list-a
17835 โ”ƒ โ”—โ”example-list-b
17846 โ”ฃโ”Sent
17857 โ”ฃโ”Spam
17868 โ”—โ”Trash
1787.Ed
1788.\"
1789.\"
1790.\"
1791.sp
1792A completely ASCII one:
1793.sp
1794.\"
1795.\"
1796.\"
1797.Bd -literal
1798has_sibling = " |"
1799no_sibling = " "
1800has_sibling_leaf = " |\\_"
1801no_sibling_leaf = " \\_"
1802.Ed
1803.\"
1804.\"
1805.\"
1806.sp
1807.\"
1808.\"
1809.\"
1810.Bd -literal
18110 Inbox 3
18121 |\\_Archive
18132 |\\_Drafts
18143 |\\_Lists
18154 | |\\_example-list-a
18165 | \\_example-list-b
18176 |\\_Sent
18187 |\\_Spam
18198 \\_Trash
1820.Ed
1821.\"
1822.\"
1823.\"
1824.sp
1825.\"
1826.\"
1827.\"
1828.\"
1829.\"
1830.Sh TAGS
1831.Ss Tags (e-mail metadata in backends that support them) configuration settings
1832Default values are shown in parentheses.
1833.Bl -tag -width 36n
1834.It Ic colours Ar hash table String[Color]
1835.Pq Em optional
1836Set UI colors for tags
1837.It Ic ignore_tags Ar Array String
1838.Pq Em optional
1839Hide tags (not the tagged messages themselves)
1840.El
1841.sp
1842Example:
1843.sp
1844.\"
1845.\"
1846.\"
1847.Bd -literal
1848[tags]
1849# valid inputs: #HHHHHH, #ABC -> #AABBCC, XTERM_NAME, 0-255 byte
1850colors = { signed="#Ff6600", replied="DeepSkyBlue4", draft="#f00", replied="8" }
1851[accounts.dummy]
1852\&...
1853 [accounts.dummy.mailboxes]
1854 # per mailbox override:
1855 "INBOX" = { tags.ignore_tags=["inbox", ] }
1856.Ed
1857.\"
1858.\"
1859.\"
1860.\"
1861.\"
1862.Sh PGP
1863Default values are shown in parentheses.
1864.Bl -tag -width 36n
1865.\" #[serde(default = "true_val", alias = "auto-verify-signatures")]
1866.\" pub auto_verify_signatures: bool,
1867.It Ic auto_verify_signatures Ar boolean
1868Auto verify signed e-mail according to RFC3156
1869.Pq Em true \" default value
1870.\" #[serde(default = "true_val", alias = "auto-decrypt")]
1871.\" pub auto_decrypt: bool,
1872.It Ic auto_decrypt Ar boolean
1873.Pq Em optional
1874Always decrypt encrypted e-mail
1875.Pq Em true \" default value
1876.\" #[serde(default = "false_val", alias = "auto-sign")]
1877.\" pub auto_sign: bool,
1878.It Ic auto_sign Ar boolean
1879.Pq Em optional
1880Always sign sent messages
1881.Pq Em false \" default value
1882.\" #[serde(default = "false_val", alias = "auto-encrypt")]
1883.\" pub auto_encrypt: bool,
1884.It Ic auto_encrypt Ar boolean
1885.Pq Em optional
1886Always encrypt sent messages
1887.Pq Em false \" default value
1888.\" #[serde(default = "none", alias = "sign-key")]
1889.\" pub sign_key: Option<String>,
1890.It Ic sign_key Ar String
1891.Pq Em optional
1892ID of key to be used for signatures
1893.Pq Em none \" default value
1894.\" #[serde(default = "none", alias = "decrypt-key")]
1895.\" pub decrypt_key: Option<String>,
1896.It Ic decrypt_key Ar String
1897.Pq Em optional
1898ID of key to be used for decryption
1899.Pq Em none \" default value
1900.\" #[serde(default = "none", alias = "encrypt-key")]
1901.\" pub encrypt_key: Option<String>,
1902.It Ic encrypt_key Ar String
1903.Pq Em optional
1904ID of key to be used for encryption
1905.Pq Em none \" default value
1906.\" #[serde(default = "internal_value_false", alias = "allow-remote-lookups")]
1907.\" pub allow_remote_lookup: ToggleFlag,
1908.It Ic auto_remote_lookup Ar boolean
1909.Pq Em optional
1910Allow remote lookups
1911.Pq Em false \" default value
1912.\" pub remote_lookup_mechanisms: melib::gpgme::LocateKey,
1913.It Ic remote_lookup_mechanisms Ar LocateKey
1914.Pq Em optional
1915Remote lookup mechanisms.
1916Use comma to separate values.
1917.Pq Em Local,WKD \" default value
1918.Pp
1919Possible mechanisms:
1920.Bl -dash -compact
1921.It
1922.Em cert
1923.It
1924.Em pka
1925.It
1926.Em dane
1927.It
1928.Em wkd
1929.It
1930.Em ldap
1931.It
1932.Em keyserver
1933.It
1934.Em keyserver-url
1935.It
1936.Em local
1937.El
1938.El
1939.\"
1940.\"
1941.\"
1942.\"
1943.\"
1944.Sh TERMINAL
1945.Ss Note about emojis and other multi-width characters in string values
1946Some useful unicode combining marks
1947.Po
1948invisible characters that modify the presentation of visible characters before
1949them
1950.Pc
1951are:
1952.sp
1953.Bl -tag -width 15n
1954.It Ns
1955.Li \e\uu{FE0E}
1956Emoji variation sequence select 15: renders an emoji as text style (monochrome)
1957.It Ns
1958.Li \e\uu{FE0F}
1959Emoji variation sequence select 16: renders an emoji in color
1960.It Ns
1961.Li \e\uu{2007}
1962Figure space, a space character with the width of a digit in a monospace
1963typeface
1964.El
1965.sp
1966.Ss Terminal configuration settings
1967.HorizontalRule
1968Default values are shown in parentheses.
1969.Bl -tag -width 36n
1970.It Ic theme Ar String
1971.Pq Em optional
1972Theme name to use.
1973.Pq Em dark \" default value
1974.It Ic ascii_drawing Ar boolean
1975.Pq Em optional
1976If true, box drawing will be done with ASCII characters.
1977.Pq Em false \" default value
1978.It Ic use_color Ar boolean
1979.Pq Em optional
1980If false, no
1981.Em ANSI
1982colors are used.
1983.Pq Em true \" default value
1984.It Ic force_text_presentation Ar boolean
1985.Pq Em optional
1986If true, text presentations of color symbols and emoji will be enforced as much as possible.
1987Might not work on all non-text symbols and is experimental.
1988.Pq Em false \" default value
1989.It Ic window_title Ar String
1990.Pq Em optional
1991Set window title in xterm compatible terminals An empty string means no window
1992title is set.
1993.Pq Em "meli" \" default value
1994.It Ic file_picker_command Ar String
1995.Pq Em optional
1996Set command that prints file paths in stderr, separated by NULL bytes.
1997Used with
1998.Ic add-attachment-file-picker
1999when composing new mail.
2000.Pq Em None \" default value
2001.It Ic themes Ar hash table String[String[Attribute]]
2002Define
2003.Em UI
2004themes.
2005See
2006.Xr meli-themes 5
2007for details.
2008.\"
2009.\"
2010.\"
2011.Bd -literal
2012[terminal]
2013theme = "themeB"
2014
2015[terminal.themes.themeA]
2016"mail.view.body" = {fg = "HotPink3", bg = "LightSalmon1"}
2017\&...
2018[terminal.themes.themeB]
2019"mail.view.body" = {fg = "CadetBlue", bg = "White"}
2020\&...
2021[terminal.themes.themeC]
2022\&...
2023.Ed
2024.\"
2025.\"
2026.\"
2027.It Ic use_mouse Ar boolean
2028Use mouse events.
2029This will disable text selection, but you will be able to resize some widgets.
2030This setting can be toggled with
2031.Cm toggle mouse Ns
2032\&.
2033.Pq Em false \" default value
2034.It Ic mouse_flag Ar String
2035String to show in status bar if mouse is active.
2036.Pq Em ๐Ÿ–ฑ๏ธ \" default value
2037.It Ic progress_spinner_sequence Ar Either \&< Integer, ProgressSpinner \&>
2038Choose between 37 built in sequences (integers between 0-36) or define your own
2039list of strings for the progress spinner animation.
2040Set to an empty array to disable the progress spinner.
2041.Pq Em 20 \" default value
2042.sp
2043Built-in sequences are:
2044.sp
2045.\"
2046.\"
2047.\"
2048.Bd -literal
20490 ["-", "\\", "|", "/"]
20501 ["โ–", "โ–‚", "โ–ƒ", "โ–„", "โ–…", "โ–†", "โ–‡", "โ–ˆ"]
20512 ["โฃ€", "โฃ„", "โฃค", "โฃฆ", "โฃถ", "โฃท", "โฃฟ"]
20523 ["โฃ€", "โฃ„", "โฃ†", "โฃ‡", "โฃง", "โฃท", "โฃฟ"]
20534 ["โ—‹", "โ—”", "โ—", "โ—•", "โฌค"]
20545 ["โ–ก", "โ—ฑ", "โ—ง", "โ–ฃ", "โ– "]
20556 ["โ–ก", "โ—ฑ", "โ–จ", "โ–ฉ", "โ– "]
20567 ["โ–ก", "โ—ฑ", "โ–ฅ", "โ–ฆ", "โ– "]
20578 ["โ–‘", "โ–’", "โ–“", "โ–ˆ"]
20589 ["โ–‘", "โ–ˆ"]
205910 ["โฌœ", "โฌ›"]
206011 ["โ–ฑ", "โ–ฐ"]
206112 ["โ–ญ", "โ—ผ"]
206213 ["โ–ฏ", "โ–ฎ"]
206314 ["โ—ฏ", "โฌค"]
206415 ["โšช", "โšซ"]
206516 ["โ––", "โ–—", "โ–˜", "โ–", "โ–ž", "โ–š", "โ–™", "โ–Ÿ", "โ–œ", "โ–›"]
206617 ["|", "/", "-", "\\"]
206718 [".", "o", "O", "@", "*"]
206819 ["โ—กโ—ก", "โŠ™โŠ™", "โ— โ— ", "โŠ™โŠ™"]
206920 ["โ—œ ", " โ—", " โ—ž", "โ—Ÿ "]
207021 ["โ†", "โ†–", "โ†‘", "โ†—", "โ†’", "โ†˜", "โ†“", "โ†™"]
207122 ["โ–", "โ–ƒ", "โ–„", "โ–…", "โ–†", "โ–‡", "โ–ˆ", "โ–‡", "โ–†", "โ–…", "โ–„", "โ–ƒ"]
207223 [ "โ–‰", "โ–Š", "โ–‹", "โ–Œ", "โ–", "โ–Ž", "โ–", "โ–Ž", "โ–", "โ–Œ", "โ–‹", "โ–Š", "โ–‰" ]
207324 ["โ––", "โ–˜", "โ–", "โ–—"]
207425 ["โ–Œ", "โ–€", "โ–", "โ–„"]
207526 ["โ”ค", "โ”˜", "โ”ด", "โ””", "โ”œ", "โ”Œ", "โ”ฌ", "โ”"]
207627 ["โ—ข", "โ—ฃ", "โ—ค", "โ—ฅ"]
207728 ["โ ", "โ ‚", "โ „", "โก€", "โข€", "โ  ", "โ ", "โ ˆ"]
207829 ["โขŽโกฐ", "โขŽโกก", "โขŽโก‘", "โขŽโ ฑ", "โ Žโกฑ", "โขŠโกฑ", "โขŒโกฑ", "โข†โกฑ"]
207930 [".", "o", "O", "ยฐ", "O", "o", "."]
208031 ["ใŠ‚", "ใŠ€", "ใŠ"]
208132 ["๐Ÿ’› ", "๐Ÿ’™ ", "๐Ÿ’œ ", "๐Ÿ’š ", "โค๏ธ "]
208233 [ "๐Ÿ•› ", "๐Ÿ• ", "๐Ÿ•‘ ", "๐Ÿ•’ ", "๐Ÿ•“ ", "๐Ÿ•” ", "๐Ÿ•• ", "๐Ÿ•– ", "๐Ÿ•— ", "๐Ÿ•˜ ", "๐Ÿ•™ ", "๐Ÿ•š " ]
208334 ["๐ŸŒ ", "๐ŸŒŽ ", "๐ŸŒ "]
208435 [ "[ ]", "[= ]", "[== ]", "[=== ]", "[ ===]", "[ ==]", "[ =]", "[ ]", "[ =]", "[ ==]", "[ ===]", "[====]", "[=== ]", "[== ]", "[= ]" ]
208536 ["๐ŸŒ‘ ", "๐ŸŒ’ ", "๐ŸŒ“ ", "๐ŸŒ” ", "๐ŸŒ• ", "๐ŸŒ– ", "๐ŸŒ— ", "๐ŸŒ˜ "]
2086.Ed
2087.\"
2088.\"
2089.\"
2090.sp
2091Or, define an array of strings each consisting of a frame in the progress
2092sequence indicator for a custom spinner:
2093.Bl -tag -width 36n
2094.It Ic interval_ms Ar u64
2095.Pq Em optional
2096Frame interval.
2097.Pq 50 \" default value
2098.It Ic frames Ar [String]
2099The animation frames.
2100.El
2101.Pp
2102Example:
2103.\"
2104.\"
2105.\"
2106.Bd -literal
2107progress_spinner_sequence = { interval_ms = 150, frames = [ "-", "=", "โ‰ก" ] }
2108.Ed
2109.\"
2110.\"
2111.\"
2112.El
2113.\"
2114.\"
2115.\"
2116.\"
2117.\"
2118.Sh LOG
2119.Ss Logging configuration settings
2120Default values are shown in parentheses.
2121.Bl -tag -width 36n
2122.It Ic log_file Ar String
2123.Pq Em optional
2124path of the log file
2125.Pq Pa $XDG_DATA_HOME/meli/meli.log \" default value
2126.It Ic maximum_level Ar String
2127.Pq Em optional
2128maximum level of messages to log.
2129All levels less or equal to the
2130.Ic maximum_level
2131will be appended to the log file.
2132Available levels are, in partial order:
2133.Bl -dash -compact
2134.It
2135.Em OFF
2136.It
2137.Em ERROR
2138.It
2139.Em WARN
2140.It
2141.Em INFO
2142.It
2143.Em DEBUG
2144.It
2145.Em TRACE
2146.El
2147This means that to turn logging off, set
2148.Ic maximum_level
2149to
2150.Em OFF Ns
2151\&.
2152.Pq Em INFO \" default value
2153.El
2154.\"
2155.\"
2156.\"
2157.\"
2158.\"
2159.Sh SMTP Connections
2160.Ss SMTP configuration settings
2161Default values are shown in parentheses.
2162.Bl -tag -width 36n
2163.It Ic hostname Ar String
2164server hostname
2165.It Ic port Ar Integer
2166server port
2167.It Ic envelope_from Ar String
2168.Pq Em optional
2169address to set as sender in SMTP transactions
2170.Pq Em none \" default value
2171.It Ic auth Ar SmtpAuth
2172.Em SMTP
2173server authentication.
2174See
2175.Sx SmtpAuth
2176subsection.
2177.It Ic security Ar SmtpSecurity
2178.Pq Em optional
2179.Sy gpg
2180binary name or file location to use.
2181.Po see \" default value
2182.Sx SmtpSecurity
2183subsection
2184.Pc
2185.It Ic extensions Ar SmtpExtensions
2186.Pq Em optional
2187set support for
2188.Em SMTP
2189extensions if they are advertised by the server.
2190.Po see \" default value
2191.Sx SmtpExtensions
2192subsection
2193.Pc
2194.El
2195.Ss SmtpAuth
2196.Bl -tag -width 36n
2197.It Ic type Ar "none" | "auto" | "xoauth2"
2198.El
2199.Pp
2200For type
2201.Qq auto Ns
2202:
2203.Bl -tag -width 36n
2204.It Ic username Ar String
2205.It Ic password Ar SmtpPassword
2206.It Ic require_auth Ar boolean
2207.Pq Em optional
2208require authentication in every case.
2209.Pq Em true \" default value
2210.El
2211.sp
2212For type
2213.Qq xoauth2 Ns
2214:
2215.Bl -tag -width 36n
2216.It Ic token_command Ar String
2217Command to evaluate that returns an
2218.Em XOAUTH2
2219token.
2220.It Ic require_auth Ar boolean
2221.Pq Em optional
2222require authentication in every case.
2223.Pq Em true \" default value
2224.El
2225.sp
2226Examples:
2227.\"
2228.\"
2229.\"
2230.Bd -literal
2231auth = { type = "auto", username = "user", password = { type = "raw", value = "hunter2" } }
2232.Ed
2233.\"
2234.\"
2235.\"
2236.Bd -literal
2237auth = { type = "auto", username = "user", password = "hunter2" }
2238.Ed
2239.\"
2240.\"
2241.\"
2242.Bd -literal
2243auth = { type = "none" }
2244.Ed
2245.sp
2246For
2247.Em Gmail
2248(see
2249.Sx Gmail OAUTH2
2250for details on the authentication token command):
2251.\"
2252.\"
2253.\"
2254.Bd -literal
2255auth = { type = "xoauth2", token_command = "TOKEN=$(python3 oauth2.py --user=xxx@gmail.com --quiet --client_id=1038[...].apps.googleusercontent.com --client_secret=[..] --refresh_token=[..] && python3 oauth2.py --user=xxx@gmail.com --generate_oauth2_string --quiet --access_token=$TOKEN" }
2256.Ed
2257.\"
2258.\"
2259.\"
2260.Ss SmtpPassword
2261.Bl -tag -width 36n
2262.It Ic type Ar "raw" | "command_evaluation"
2263.It Ic value Ar String
2264Either a raw password string, or command to execute.
2265.El
2266.sp
2267Examples:
2268.\"
2269.\"
2270.\"
2271.Bd -literal
2272password = { type = "raw", value = "hunter2" }
2273.Ed
2274.\"
2275.\"
2276.\"
2277.Bd -literal
2278password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/user.gpg" }
2279.Ed
2280.\"
2281.\"
2282.\"
2283.Ss SmtpSecurity
2284Default security type is
2285.Em auto Ns
2286\&.
2287.Bl -tag -width 36n
2288.It Ic type Ar "none" | "auto" | "starttls" | "tls"
2289.It Ic danger_accept_invalid_certs Ar boolean
2290Accept invalid
2291.Em SSL
2292/
2293.Em TLS
2294certificates
2295.Pq Em false \" default value
2296.El
2297.Ss SmtpExtensions
2298.Bl -tag -width 36n
2299.It Ic pipelining Ar boolean
2300RFC2920
2301.Pq Em true \" default value
2302.It Ic chunking Ar boolean
2303RFC3030
2304.Pq Em true \" default value
2305.It Ic prdr Ar boolean
2306draft-hall-prdr-00
2307.Pq Em true \" default value
2308.It Ic dsn_notify Ar String
2309RFC3461
2310.Pq Em FAILURE \" default value
2311.El
2312.\"
2313.\"
2314.\"
2315.\"
2316.\"
2317.Sh SEE ALSO
2318.Xr meli 1 ,
2319.Xr meli-themes 5
2320.Sh STANDARDS
2321.Bl -item -compact
2322.It
2323.Em TOML
2324Standard
2325.Li v.0.5.0
2326.Lk https://toml.io/en/v0.5.0
2327.El
2328.Sh AUTHORS
2329Copyright 2017\(en2024
2330.An Manos Pitsidianakis Aq Mt manos@pitsidianak.is
2331.Pp
2332Released under the GPL, version 3 or greater.
2333This software carries no warranty of any kind.
2334.Po
2335See
2336.Pa COPYING
2337for full copyright and warranty notices.
2338.Pc
2339.Ss Links
2340.Bl -item -compact
2341.It
2342.Lk https://meli\-email.org "Website"
2343.It
2344.Lk https://git.meli\-email.org/meli/meli "Main\ git\ repository\ and\ issue\ tracker"
2345.It
2346.Lk https://codeberg.org/meli/meli "Official\ read-only\ git\ mirror\ on\ codeberg.org"
2347.It
2348.Lk https://github.com/meli/meli "Official\ read-only\ git\ mirror\ on\ github.com"
2349.It
2350.Lk https://crates.io/crates/meli "meli\ crate\ on\ crates.io"
2351.El