๐Ÿ My patches for macos etc...
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1276 lines
30 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  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. .Dd September 16, 2019
  21. .Dt MELI.CONF 5
  22. .Os
  23. .Sh NAME
  24. .Nm meli.conf
  25. .Nd configuration file for the Meli Mail User Agent
  26. .Sh SYNOPSIS
  27. .Pa $XDG_CONFIG_HOME/meli/config.toml
  28. .Sh DESCRIPTION
  29. Configuration for meli is written in TOML which has a few things to consider (quoting the spec):
  30. .Pp
  31. .Bl -bullet -compact
  32. .It
  33. TOML is case sensitive.
  34. .It
  35. A TOML file must be a valid UTF-8 encoded Unicode document.
  36. .It
  37. Whitespace means tab (0x09) or space (0x20).
  38. .It
  39. Newline means LF (0x0A) or CRLF (0x0D 0x0A).
  40. .El
  41. .Pp
  42. Refer to TOML documentation for valid TOML syntax.
  43. .sp
  44. Though not part of TOML syntax,
  45. .Nm
  46. can have nested configuration files by using the following
  47. .Xr m4 1
  48. include macro:
  49. .Dl include(\&"/path/to/file\&")
  50. .Sh SECTIONS
  51. The top level sections of the config are:
  52. .Bl -bullet -compact
  53. .It
  54. accounts
  55. .It
  56. shortcuts
  57. .It
  58. notifications
  59. .It
  60. pager
  61. .It
  62. listing
  63. .It
  64. composing
  65. .It
  66. pgp
  67. .It
  68. terminal
  69. .It
  70. log
  71. .El
  72. .Sh EXAMPLES
  73. example configuration
  74. .sp
  75. .Bd -literal
  76. # Setting up a Maildir account
  77. [accounts.account-name]
  78. root_mailbox = "/path/to/root/folder"
  79. format = "Maildir"
  80. index_style = "Compact"
  81. identity="email@example.com"
  82. subscribed_mailboxes = ["folder", "folder/Sent"] # or [ "*", ] for all mailboxes
  83. display_name = "Name"
  84. # Set mailbox-specific settings
  85. [accounts.account-name.mailboxes]
  86. "INBOX" = { alias="Inbox" } #inline table
  87. "drafts" = { alias="Drafts" } #inline table
  88. [accounts.account-name.mailboxes."foobar-devel"] # or a regular table
  89. ignore = true # don't show notifications for this mailbox
  90. # Setting up an mbox account
  91. [accounts.mbox]
  92. root_mailbox = "/var/mail/username"
  93. format = "mbox"
  94. index_style = "Compact"
  95. identity="username@hostname.local"
  96. composing.send_mail = { hostname = "localhost", port = 25, auth = { type = "none" }, security = { type = "none" } }
  97. [pager]
  98. filter = "COLUMNS=72 /usr/local/bin/pygmentize -l email"
  99. html_filter = "w3m -I utf-8 -T text/html"
  100. [notifications]
  101. script = "notify-send"
  102. [composing]
  103. # required for sending e-mail
  104. send_mail = 'msmtp --read-recipients --read-envelope-from'
  105. #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" } }
  106. editor_command = 'vim +/^$'
  107. [shortcuts]
  108. [shortcuts.composing]
  109. edit_mail = 'e'
  110. [shortcuts.listing]
  111. new_mail = 'm'
  112. set_seen = 'n'
  113. [terminal]
  114. theme = "light"
  115. .Ed
  116. .Pp
  117. Available options are listed below.
  118. Default values are shown in parentheses.
  119. .Sh ACCOUNTS
  120. .Bl -tag -width 36n
  121. .It Ic root_mailbox Ar String
  122. The backend-specific path of the root_mailbox, usually INBOX.
  123. .It Ic format Ar String Op maildir mbox imap notmuch jmap
  124. The format of the mail backend.
  125. .It Ic subscribed_mailboxes Ar [String,]
  126. An array of mailbox paths to display in the UI.
  127. Paths are relative to the root mailbox (eg "INBOX/Sent", not "Sent").
  128. The glob wildcard
  129. .Em \&*
  130. can be used to match every mailbox name and path.
  131. .It Ic identity Ar String
  132. Your e-mail address that is inserted in the From: headers of outgoing mail.
  133. .It Ic index_style Ar String
  134. Sets the way mailboxes are displayed.
  135. .El
  136. .TS
  137. allbox tab(:);
  138. lb l.
  139. conversations:shows one entry per thread
  140. compact:shows one row per thread
  141. threaded:shows threads as a tree structure
  142. plain:shows one row per mail, regardless of threading
  143. .TE
  144. .Bl -tag -width 36n
  145. .It Ic display_name Ar String
  146. .Pq Em optional
  147. A name which can be combined with your address: "Name <email@example.com>".
  148. .It Ic read_only Ar boolean
  149. Attempt to not make any changes to this account.
  150. .Pq Em false
  151. .It Ic manual_refresh Ar boolean
  152. .Pq Em optional
  153. If true, do not monitor account for changes (you can use shortcut listing.refresh)
  154. .Pq Em false
  155. .It Ic refresh_command Ar String
  156. .Pq Em optional
  157. command to execute when manually refreshing (shortcut listing.refresh)
  158. .Pq Em None
  159. .It Ic search_backend Ar String
  160. .Pq Em optional
  161. Choose which search backend to use.
  162. Available options are 'none' and 'sqlite3'
  163. .Pq Em "sqlite3"
  164. .It Ic vcard_folder Ar String
  165. .Pq Em optional
  166. Folder that contains .vcf files.
  167. They are parsed and imported read-only.
  168. .It Ic mailboxes Ar mailbox
  169. .Pq Em optional
  170. Configuration for each mailbox.
  171. Its format is described below in
  172. .Sx mailboxes Ns
  173. \&.
  174. .El
  175. .Ss notmuch only
  176. .Ic root_mailbox
  177. points to the directory which contains the
  178. .Pa .notmuch/
  179. subdirectory.
  180. notmuch mailboxes are virtual, since they are defined by user-given notmuch queries.
  181. You must explicitly state the mailboxes you want in the
  182. .Ic mailboxes
  183. field and set the
  184. .Ar query
  185. property to each of them.
  186. Example:
  187. .Bd -literal
  188. [accounts.notmuch]
  189. format = "notmuch"
  190. \&...
  191. [accounts.notmuch.mailboxes]
  192. "INBOX" = { query="tag:inbox", subscribe = true }
  193. "Drafts" = { query="tag:draft", subscribe = true }
  194. "Sent" = { query="from:username@example.com from:username2@example.com", subscribe = true }
  195. .Ed
  196. .Ss IMAP only
  197. IMAP specific options are:
  198. .Bl -tag -width 36n
  199. .It Ic server_hostname Ar String
  200. example:
  201. .Qq mail.example.com
  202. .It Ic server_username Ar String
  203. Server username
  204. .It Ic server_password Ar String
  205. Server password
  206. .It Ic server_password_command Ar String
  207. .Pq Em optional
  208. Use instead of
  209. .Ic server_password
  210. .It Ic server_port Ar number
  211. .Pq Em optional
  212. The port to connect to
  213. .\" default value
  214. .Pq Em 143
  215. .It Ic use_starttls Ar boolean
  216. .Pq Em optional
  217. If port is 993 and use_starttls is unspecified, it becomes false by default.
  218. .\" default value
  219. .Pq Em true
  220. .It Ic danger_accept_invalid_certs Ar boolean
  221. .Pq Em optional
  222. Do not validate TLS certificates.
  223. .\" default value
  224. .Pq Em false
  225. .It Ic use_idle Ar boolean
  226. .Pq Em optional
  227. Use IDLE extension.
  228. .\" default value
  229. .Pq Em true
  230. .It Ic use_condstore Ar boolean
  231. .Pq Em optional
  232. Use CONDSTORE extension.
  233. .\" default value
  234. .Pq Em true
  235. .It Ic use_deflate Ar boolean
  236. .Pq Em optional
  237. Use COMPRESS=DEFLATE extension (if built with DEFLATE support).
  238. .\" default value
  239. .Pq Em true
  240. .It Ic use_oauth2 Ar boolean
  241. .Pq Em optional
  242. Use OAUTH2 authentication.
  243. Can only be used with
  244. .Ic server_password_command
  245. which should return a base64-encoded OAUTH2 token ready to be passed to IMAP.
  246. For help on setup with Gmail, see Gmail section below.
  247. .\" default value
  248. .Pq Em false
  249. .It Ic timeout Ar integer
  250. .Pq Em optional
  251. Timeout to use for server connections in seconds.
  252. A timeout of 0 seconds means there's no timeout.
  253. .\" default value
  254. .Pq Em 16
  255. .El
  256. .Ss Gmail
  257. Gmail has non-standard IMAP behaviors that need to be worked around.
  258. .Ss Gmail - sending mail
  259. Option
  260. .Ic store_sent_mail
  261. should be disabled since Gmail auto-saves sent mail by its own.
  262. .Ss Gmail OAUTH2
  263. To use OAUTH2, you must go through a process to register your own private "application" with Google that can use OAUTH2 tokens.
  264. For convenience in the meli repository under the
  265. .Pa contrib/
  266. directory you can find a python3 file named oauth2.py to generate and request the appropriate data to perform OAUTH2 authentication.
  267. Steps:
  268. .Bl -bullet -compact
  269. .It
  270. In Google APIs, create a custom OAuth client ID and note down the Client ID and Client Secret.
  271. You may need to create a consent screen; follow the steps described in the website.
  272. .It
  273. Run the oauth2.py script as follows (after adjusting binary paths and credentials):
  274. .Cm python3 oauth2.py --user=xxx@gmail.com --client_id=1038[...].apps.googleusercontent.com --client_secret=VWFn8LIKAMC-MsjBMhJeOplZ --generate_oauth2_token
  275. and follow the instructions.
  276. Note down the refresh token.
  277. .It
  278. In
  279. .Ic server_password_command
  280. enter a command like this (after adjusting binary paths and credentials):
  281. .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
  282. .It
  283. On startup, meli should evaluate this command which if successful must only return a base64-encoded token ready to be passed to IMAP.
  284. .El
  285. .Ss JMAP only
  286. JMAP specific options
  287. .Bl -tag -width 36n
  288. .It Ic server_hostname Ar String
  289. example:
  290. .Qq mail.example.com
  291. .It Ic server_username Ar String
  292. Server username
  293. .It Ic server_password Ar String
  294. Server password
  295. .It Ic server_port Ar number
  296. .Pq Em optional
  297. The port to connect to
  298. .\" default value
  299. .Pq Em 443
  300. .It Ic danger_accept_invalid_certs Ar boolean
  301. .Pq Em optional
  302. Do not validate TLS certificates.
  303. .\" default value
  304. .Pq Em false
  305. .El
  306. .Ss mbox only
  307. mbox specific options
  308. .Bl -tag -width 36n
  309. .It Ic prefer_mbox_type Ar String
  310. .Pq Em optional
  311. Prefer specific mbox format reader for each message.
  312. Default is mboxcl2 format.
  313. If the preferred format fails, the message is retried with mboxrd and then if it fails again there's a recover attempt, which discards the invalid message.
  314. Valid values
  315. .Bl -bullet -compact
  316. .It
  317. .Ar auto
  318. .It
  319. .Ar mboxo
  320. .It
  321. .Ar mboxrd
  322. .It
  323. .Ar mboxcl
  324. .It
  325. .Ar mboxcl2
  326. .El
  327. .\" default value
  328. .Pq Em auto
  329. .El
  330. To set multiple mailboxes, you have to explicitly state the mailboxes you want in the
  331. .Ic mailboxes
  332. field and set the
  333. .Ar path
  334. property to each of them.
  335. Example:
  336. .Bd -literal
  337. [accounts.mbox]
  338. format = "mbox"
  339. mailboxes."Python mailing list" = { path = "~/.mail/python.mbox", subscribe = true, autoload = true }
  340. .Ed
  341. .Ss MAILBOXES
  342. .Bl -tag -width 36n
  343. .It Ic alias Ar String
  344. .Pq Em optional
  345. Show a different name for this mailbox in the UI
  346. .It Ic autoload Ar boolean
  347. .Pq Em optional
  348. Load this mailbox on startup
  349. .\" default value
  350. .Pq Em true
  351. .It Ic subscribe Ar boolean
  352. .Pq Em optional
  353. Watch this mailbox for updates
  354. .\" default value
  355. .Pq Em true
  356. .It Ic ignore Ar boolean
  357. .Pq Em optional
  358. Silently insert updates for this mailbox, if any
  359. .\" default value
  360. .Pq Em false
  361. .It Ic usage Ar boolean
  362. .Pq Em optional
  363. special usage of this mailbox.
  364. Valid values are:
  365. .Bl -bullet -compact
  366. .It
  367. .Ar Normal
  368. .Pq Em default
  369. .It
  370. .Ar Inbox
  371. .It
  372. .Ar Archive
  373. .It
  374. .Ar Drafts
  375. .It
  376. .Ar Flagged
  377. .It
  378. .Ar Junk
  379. .It
  380. .Ar Sent
  381. .It
  382. .Ar Trash
  383. .El
  384. otherwise usage is inferred from the mailbox title.
  385. If for example your Sent folder is not named "Sent", you must explicitly set it.
  386. .It Ic conf_override Ar boolean
  387. .Pq Em optional
  388. Override global settings for this mailbox.
  389. Available sections to override are
  390. .Em pager, notifications, shortcuts, composing
  391. and the account options
  392. .Em identity
  393. and
  394. .Em index_style Ns
  395. \&.
  396. Example:
  397. .Bd -literal
  398. [accounts."imap.example.com".mailboxes."INBOX"]
  399. index_style = "plain"
  400. [accounts."imap.example.com".mailboxes."INBOX".pager]
  401. filter = ""
  402. .Ed
  403. .El
  404. .Sh COMPOSING
  405. Composing specific options
  406. .Bl -tag -width 36n
  407. .It Ic send_mail Ar String|SmtpServerConf
  408. Command to pipe new mail to (exit code must be 0 for success) or settings for an SMTP server connection.
  409. See section
  410. .Sx SMTP Connections
  411. for its fields.
  412. .It Ic editor_command Ar String
  413. Command to launch editor.
  414. Can have arguments.
  415. Draft filename is given as the last argument.
  416. If it's missing, the environment variable $EDITOR is looked up.
  417. .It Ic embed Ar boolean
  418. .Pq Em optional
  419. Embed editor within meli.
  420. Editor must be xterm compliant.
  421. .\" default value
  422. .Pq Em false
  423. .It Ic format_flowed Ar boolean
  424. .Pq Em optional
  425. Set format=flowed [RFC3676] in text/plain attachments.
  426. .\" default value
  427. .Pq Em true
  428. .It Ic insert_user_agent Ar boolean
  429. .Pq Em optional
  430. Add meli User-Agent header in new drafts
  431. .\" default value
  432. .Pq Em true
  433. .It Ic default_header_values Ar hash table String[String]
  434. Default header values used when creating a new draft.
  435. .It Ic store_sent_mail Ar boolean
  436. .Pq Em optional
  437. Store sent mail after successful submission.
  438. This setting is meant to be disabled for non-standard behaviour in gmail, which auto-saves sent mail on its own.
  439. .\" default value
  440. .Pq Em true
  441. .It Ic attribution_format_string Ar String
  442. .Pq Em optional
  443. The attribution line appears above the quoted reply text.
  444. The format specifiers for the replied address are:
  445. .Bl -bullet -compact
  446. .It
  447. .Li %+f
  448. โ€” the sender's name and email address.
  449. .It
  450. .Li %+n
  451. โ€” the sender's name (or email address, if no name is included).
  452. .It
  453. .Li %+a
  454. โ€” the sender's email address.
  455. .El
  456. The format string is passed to
  457. .Xr strftime 3
  458. with the replied envelope's date.
  459. .\" default value
  460. .Pq Em "On %a, %0e %b %Y %H:%M, %+f wrote:%n"
  461. .It Ic attribution_use_posix_locale Ar boolean
  462. .Pq Em optional
  463. Whether the strftime call for the attribution string uses the POSIX locale instead of the user's active locale.
  464. .\" default value
  465. .Pq Em true
  466. .El
  467. .Sh SHORTCUTS
  468. Shortcuts can take the following values:
  469. .Bl -bullet -compact
  470. .It
  471. .Em Backspace
  472. .It
  473. .Em Left
  474. .It
  475. .Em Right
  476. .It
  477. .Em Up
  478. .It
  479. .Em Down
  480. .It
  481. .Em Home
  482. .It
  483. .Em End
  484. .It
  485. .Em PageUp
  486. .It
  487. .Em PageDown
  488. .It
  489. .Em Delete
  490. .It
  491. .Em Insert
  492. .It
  493. .Em Enter
  494. .It
  495. .Em Tab
  496. .It
  497. .Em Esc
  498. .It
  499. .Em F1..F12
  500. .It
  501. .Em M-char
  502. .It
  503. .Em C-char
  504. .It
  505. .Em char
  506. .El
  507. .Em char
  508. is a single character string.
  509. .sp
  510. The headings before each list indicate the map key of the shortcut list.
  511. For example for the first list titled
  512. .Em general
  513. the configuration is typed as follows:
  514. .Bd -literal
  515. [shortcuts.general]
  516. next_tab = 'T'
  517. .Ed
  518. .sp
  519. and for
  520. .Em compact-listing Ns
  521. :
  522. .Bd -literal
  523. [shortcuts.compact-listing]
  524. open_thread = "Enter"
  525. exit_thread = 'i'
  526. .Ed
  527. .sp
  528. .Pp
  529. .Em general
  530. .Bl -tag -width 36n
  531. .It Ic toggle_help
  532. Toggle help and shortcuts view.
  533. .\" default value
  534. .Pq Em \&?
  535. .It Ic quit
  536. Quit application.
  537. .\" default value
  538. .Pq Ql Em q
  539. .It Ic enter_command_mode
  540. Enter
  541. .Em COMMAND
  542. mode.
  543. .\" default value
  544. .Pq Ql Em \&:
  545. .It Ic next_tab
  546. Go to next tab.
  547. .\" default value
  548. .Pq Em T
  549. .It Ic go_to_tab
  550. Go to the
  551. .Em n Ns
  552. th tab
  553. .Pq Em cannot be redefined
  554. .El
  555. .sp
  556. .Em listing
  557. .Bl -tag -width 36n
  558. .It Ic prev_page
  559. Go to previous page.
  560. .\" default value
  561. .Pq Em PageUp
  562. .It Ic next_page
  563. Go to next page.
  564. .\" default value
  565. .Pq Em PageDown
  566. .It Ic prev_mailbox
  567. Go to previous mailbox.
  568. .\" default value
  569. .Pq Em K
  570. .It Ic next_mailbox
  571. Go to next mailbox.
  572. .\" default value
  573. .Pq Em J
  574. .It Ic prev_account
  575. Go to previous account.
  576. .\" default value
  577. .Pq Em l
  578. .It Ic next_account
  579. Go to next account.
  580. .\" default value
  581. .Pq Em h
  582. .It Ic new_mail
  583. Start new mail draft in new tab
  584. .\" default value
  585. .Pq Em m
  586. .It Ic set_seen
  587. Set thread as seen.
  588. .\" default value
  589. .Pq Em n
  590. .It Ic refresh
  591. Manually request a mailbox refresh.
  592. .\" default value
  593. .Pq Em F5
  594. .It Ic search
  595. Search within list of e-mails.
  596. .\" default value
  597. .Pq Em /
  598. .It Ic toggle_menu_visibility
  599. Toggle visibility of side menu in mail list.
  600. .\" default value
  601. .Pq Em `
  602. .El
  603. .sp
  604. .Em compact-listing
  605. .Bl -tag -width 36n
  606. .It Ic exit_thread
  607. Exit thread view
  608. .\" default value
  609. .Pq Em i
  610. .It Ic open_thread
  611. Open thread.
  612. .\" default value
  613. .Pq Em Enter
  614. .It Ic select_entry
  615. Select thread entry.
  616. .\" default value
  617. .Pq Em v
  618. .El
  619. .sp
  620. .Em pager
  621. .Bl -tag -width 36n
  622. .It Ic scroll_up
  623. Scroll up pager.
  624. .\" default value
  625. .Pq Em k
  626. .It Ic scroll_down
  627. Scroll down pager.
  628. .\" default value
  629. .Pq Em j
  630. .It Ic page_up
  631. Go to previous pager page
  632. .\" default value
  633. .Pq Em PageUp
  634. .It Ic page_down
  635. Go to next pager pag
  636. .\" default value
  637. .Pq Em PageDown
  638. .El
  639. .sp
  640. .Em contact-list
  641. .Bl -tag -width 36n
  642. .It Ic create_contact
  643. Create new contact.
  644. .\" default value
  645. .Pq Em c
  646. .It Ic edit_contact
  647. Edit contact under cursor
  648. .\" default value
  649. .Pq Em e
  650. .It Ic mail_contact
  651. Mail contact under cursor
  652. .\" default value
  653. .Pq Em m
  654. .It Ic toggle_menu_visibility
  655. Toggle visibility of side menu in mail list.
  656. .\" default value
  657. .Pq Em `
  658. .El
  659. .sp
  660. .sp
  661. .Em composing
  662. .Bl -tag -width 36n
  663. .It Ic send_mail
  664. Deliver draft to mailer
  665. .\" default value
  666. .Pq Em s
  667. .It Ic edit_mail
  668. Edit mail.
  669. .\" default value
  670. .Pq Em e
  671. .El
  672. .sp
  673. .Em envelope-view
  674. .Pp
  675. To select an attachment, type its index (you will see the typed result in the command buffer on the bottom right of the status line), then issue the corresponding command.
  676. .Bl -tag -width 36n
  677. .It Ic add_addresses_to_contacts Ns
  678. Select addresses from envelope to add to contacts.
  679. .\" default value
  680. .Pq Em c
  681. .It Ic view_raw_source
  682. View raw envelope source in a pager.
  683. .\" default value
  684. .Pq Em M-r
  685. .It Ic reply
  686. Reply to envelope.
  687. .\" default value
  688. .Pq Em R
  689. .It Ic edit
  690. Open envelope in composer.
  691. .\" default value
  692. .Pq Em e
  693. .It Ic return_to_normal_view
  694. Return to envelope if viewing raw source or attachment.
  695. .\" default value
  696. .Pq Em r
  697. .It Ic open_attachment
  698. Opens selected attachment with
  699. .Cm xdg-open
  700. .\" default value
  701. .Pq Em a
  702. .It Ic open_mailcap
  703. Opens selected attachment according to its mailcap entry.
  704. See
  705. .Xr meli 1 FILES
  706. for the mailcap file locations.
  707. .\" default value
  708. .Pq Em m
  709. .It Ic go_to_url
  710. Go to url of given index
  711. .\" default value
  712. .Pq Em g
  713. .It Ic toggle_url_mode
  714. Toggles url open mode.
  715. When active, it prepends an index next to each url that you can select by typing the index and open by issuing
  716. .Ic go_to_url
  717. .\" default value
  718. .Pq Em u
  719. .It Ic toggle_expand_headers
  720. Expand extra headers (References and others)
  721. .\" default value
  722. .Pq Em h
  723. .El
  724. .sp
  725. .Em thread-view
  726. .Bl -tag -width 36n
  727. .It Ic reverse_thread_order
  728. Reverse thread order.
  729. .\" default value
  730. .Pq Em r
  731. .It Ic toggle_mailview
  732. Toggle mail view visibility.
  733. .\" default value
  734. .Pq Em p
  735. .It Ic toggle_threadview
  736. Toggle thread view visibility.
  737. .\" default value
  738. .Pq Em t
  739. .It Ic collapse_subtree
  740. Collapse thread branches.
  741. .\" default value
  742. .Pq Em h
  743. .It Ic prev_page
  744. Go to previous page.
  745. .\" default value
  746. .Pq Em PageUp
  747. .It Ic next_page
  748. Go to next page.
  749. .\" default value
  750. .Pq Em PageDown
  751. .El
  752. .sp
  753. .Sh NOTIFICATIONS
  754. .Bl -tag -width 36n
  755. .It Ic enable Ar boolean
  756. Enable notifications.
  757. .\" default value
  758. .Pq Em true
  759. .It Ic script Ar String
  760. .Pq Em optional
  761. Script to pass notifications to, with title as 1st arg and body as 2nd
  762. .\" default value
  763. .Pq Em none Ns
  764. \&.
  765. .It Ic xbiff_file_path Ar String
  766. .Pq Em optional
  767. File that gets its size updated when new mail arrives.
  768. .Pq Em none
  769. .\" default value
  770. .It Ic play_sound Ar boolean
  771. .Pq Em optional
  772. Play theme sound in notifications if possible.
  773. .Pq Em false
  774. .\" default value
  775. .It Ic sound_file Ar String
  776. .Pq Em optional
  777. Play sound file in notifications if possible.
  778. .\" default value
  779. .Pq Em none
  780. .El
  781. .Sh PAGER
  782. .Bl -tag -width 36n
  783. .It Ic headers_sticky Ar boolean
  784. .Pq Em optional
  785. Always show headers when scrolling.
  786. .\" default value
  787. .Pq Em true
  788. .It Ic html_filter Ar String
  789. .Pq Em optional
  790. Pipe html attachments through this filter before display
  791. .\" default value
  792. .Pq Em none
  793. .It Ic filter Ar String
  794. .Pq Em optional
  795. A command to pipe mail output through for viewing in pager.
  796. .\" default value
  797. .Pq Em none
  798. .It Ic format_flowed Ar bool
  799. .Pq Em optional
  800. Respect format=flowed
  801. .\" default value
  802. .Pq Em true
  803. .It Ic split_long_lines Ar bool
  804. .Pq Em optional
  805. Split long lines that would overflow on the x axis.
  806. .\" default value
  807. .Pq Em true
  808. .It Ic minimum_width Ar num
  809. .Pq Em optional
  810. Minimum text width in columns.
  811. .\" default value
  812. .Pq Em 80
  813. .It Ic auto_choose_multipart_alternative Ar boolean
  814. .Pq Em optional
  815. Choose `text/html` alternative if `text/plain` is empty in `multipart/alternative` attachments.
  816. .\" default value
  817. .Pq Em true
  818. .El
  819. .Sh LISTING
  820. .Bl -tag -width 36n
  821. .It Ic datetime_fmt Ar String
  822. .Pq Em optional
  823. Datetime formatting passed verbatim to strftime(3).
  824. .\" default value
  825. .Pq Em \&%Y-\&%m-\&%d \&%T
  826. .It Ic recent_dates Ar Boolean
  827. .Pq Em optional
  828. Show recent dates as `X {minutes,hours,days} ago`, up to 7 days.
  829. .\" default value
  830. .Pq Em true
  831. .It Ic filter Ar Query
  832. .Pq Em optional
  833. Show only envelopes matching this query.
  834. .Po
  835. For query syntax see
  836. .Xr meli 1 QUERY ABNF SYNTAX
  837. .Pc
  838. .\" default value
  839. .Pq Em None
  840. .Pp
  841. Example:
  842. .Bd -literal
  843. filter = "not flags:seen" # show only unseen messages
  844. .Ed
  845. .It Ic index_style Ar String
  846. Sets the way mailboxes are displayed.
  847. .It Ic sidebar_mailbox_tree_has_sibling Ar String
  848. .Pq Em optional
  849. Sets the string to print in the mailbox tree for a level where its root has a sibling.
  850. See example below for a clear explanation and examples.
  851. .It Ic sidebar_mailbox_tree_no_sibling Ar String
  852. .Pq Em optional
  853. Sets the string to print in the mailbox tree for a level where its root has no sibling.
  854. .It Ic sidebar_mailbox_tree_has_sibling_leaf Ar String
  855. .Pq Em optional
  856. Sets the string to print in the mailbox tree for a leaf level where its root has a sibling.
  857. .It Ic sidebar_mailbox_tree_no_sibling_leaf Ar String
  858. .Pq Em optional
  859. Sets the string to print in the mailbox tree for a leaf level where its root has no sibling.
  860. .It Ic sidebar_divider Ar char
  861. .Pq Em optional
  862. Sets the character to print as the divider between the accounts list and the message list.
  863. .It Ic show_menu_scrollbar Ar boolean
  864. .Pq Em optional
  865. Show auto-hiding scrollbar in accounts sidebar menu.
  866. .\" default value
  867. .Pq Em true
  868. .El
  869. .Ss Examples of sidebar mailbox tree customization
  870. The default values
  871. .sp
  872. .Bd -literal
  873. has_sibling = " "
  874. no_sibling = " ";
  875. has_sibling_leaf = " "
  876. no_sibling_leaf = " "
  877. .Ed
  878. .sp
  879. render a mailbox tree like the following:
  880. .sp
  881. .Bd -literal
  882. 0 Inbox 3
  883. 1 Archive
  884. 2 Drafts
  885. 3 Lists
  886. 4 example-list-a
  887. 5 example-list-b
  888. 6 Sent
  889. 7 Spam
  890. 8 Trash
  891. .Ed
  892. .sp
  893. Other possible trees:
  894. .sp
  895. .Bd -literal
  896. has_sibling = " โ”ƒ"
  897. no_sibling = " "
  898. has_sibling_leaf = " โ”ฃโ”"
  899. no_sibling_leaf = " โ”—โ”"
  900. .Ed
  901. .sp
  902. .Bd -literal
  903. 0 Inbox 3
  904. 1 โ”ฃโ”Archive
  905. 2 โ”ฃโ”Drafts
  906. 3 โ”ฃโ”Lists
  907. 4 โ”ƒ โ”ฃโ”example-list-a
  908. 5 โ”ƒ โ”—โ”example-list-b
  909. 6 โ”ฃโ”Sent
  910. 7 โ”ฃโ”Spam
  911. 8 โ”—โ”Trash
  912. .Ed
  913. .sp
  914. A completely ASCII one:
  915. .sp
  916. .Bd -literal
  917. has_sibling = " |"
  918. no_sibling = " "
  919. has_sibling_leaf = " |\\_"
  920. no_sibling_leaf = " \\_"
  921. .Ed
  922. .sp
  923. .Bd -literal
  924. 0 Inbox 3
  925. 1 |\\_Archive
  926. 2 |\\_Drafts
  927. 3 |\\_Lists
  928. 4 | |\\_example-list-a
  929. 5 | \\_example-list-b
  930. 6 |\\_Sent
  931. 7 |\\_Spam
  932. 8 \\_Trash
  933. .Ed
  934. .sp
  935. .Sh TAGS
  936. .Bl -tag -width 36n
  937. .It Ic colours Ar hash table String[Color]
  938. .Pq Em optional
  939. Set UI colors for tags
  940. .It Ic ignore_tags Ar Array String
  941. .Pq Em optional
  942. Hide tags (not the tagged messages themselves)
  943. .El
  944. .sp
  945. Example:
  946. .sp
  947. .Bd -literal
  948. [tags]
  949. # valid inputs: #HHHHHH, #ABC -> #AABBCC, XTERM_NAME, 0-255 byte
  950. colors = { signed="#Ff6600", replied="DeepSkyBlue4", draft="#f00", replied="8" }
  951. [accounts.dummy]
  952. \&...
  953. [accounts.dummy.mailboxes]
  954. # per mailbox override:
  955. "INBOX" = { tags.ignore_tags=["inbox", ] }
  956. .Ed
  957. .Sh PGP
  958. .Bl -tag -width 36n
  959. .It Ic auto_verify_signatures Ar boolean
  960. Auto verify signed e-mail according to RFC3156
  961. .\" default value
  962. .Pq Em true
  963. .It Ic auto_sign Ar boolean
  964. .Pq Em optional
  965. Always sign sent messages
  966. .\" default value
  967. .Pq Em false
  968. .It Ic key Ar String
  969. .Pq Em optional
  970. Key to be used when signing/encrypting (not functional yet)
  971. .\" default value
  972. .Pq Em none
  973. .El
  974. .Sh TERMINAL
  975. .Bl -tag -width 36n
  976. .It Ic theme Ar String
  977. .Pq Em optional
  978. Theme name to use.
  979. .\" default value
  980. .Pq Em dark
  981. .It Ic ascii_drawing Ar boolean
  982. .Pq Em optional
  983. If true, box drawing will be done with ascii characters.
  984. .\" default value
  985. .Pq Em false
  986. .It Ic use_color Ar boolean
  987. .Pq Em optional
  988. If false, no ANSI colors are used.
  989. .\" default value
  990. .Pq Em true
  991. .It Ic window_title Ar String
  992. .Pq Em optional
  993. Set window title in xterm compatible terminals An empty string means no window title is set.
  994. .\" default value
  995. .Pq Em "meli"
  996. .It Ic file_picker_command Ar String
  997. .Pq Em optional
  998. Set command that prints file paths in stderr, separated by NULL bytes.
  999. Used with
  1000. .Ic add-attachment-file-picker
  1001. when composing new mail.
  1002. .\" default value
  1003. .Pq Em None
  1004. .It Ic themes Ar hash table String[String[Attribute]]
  1005. Define UI themes.
  1006. See
  1007. .Xr meli-themes 5
  1008. for details.
  1009. .Bd -literal
  1010. [terminal]
  1011. theme = "themeB"
  1012. [terminal.themes.themeA]
  1013. "mail.view.body" = {fg = "HotPink3", bg = "LightSalmon1"}
  1014. \&...
  1015. [terminal.themes.themeB]
  1016. "mail.view.body" = {fg = "CadetBlue", bg = "White"}
  1017. \&...
  1018. [terminal.themes.themeC]
  1019. \&...
  1020. .Ed
  1021. .It Ic use_mouse Ar bool
  1022. Use mouse events.
  1023. This will disable text selection, but you will be able to resize some widgets.
  1024. This setting can be toggled with
  1025. .Cm toggle mouse Ns
  1026. \&.
  1027. .\" default value
  1028. .Pq Em false
  1029. .It Ic mouse_flag Ar String
  1030. String to show in status bar if mouse is active.
  1031. .\" default value
  1032. .Pq Em ๐Ÿ–ฑ๏ธ
  1033. .It Ic progress_spinner_sequence Ar Either \&< Integer, ProgressSpinner \&>
  1034. Choose between 37 built in sequences (integers between 0-36) or define your own list of strings for the progress spinner animation.
  1035. Set to an empty array to disable the progress spinner.
  1036. .\" default value
  1037. .Pq Em 20
  1038. .Pp
  1039. Builtin sequences are:
  1040. .Bd -literal
  1041. 0 ["-", "\\", "|", "/"]
  1042. 1 ["โ–", "โ–‚", "โ–ƒ", "โ–„", "โ–…", "โ–†", "โ–‡", "โ–ˆ"]
  1043. 2 ["โฃ€", "โฃ„", "โฃค", "โฃฆ", "โฃถ", "โฃท", "โฃฟ"]
  1044. 3 ["โฃ€", "โฃ„", "โฃ†", "โฃ‡", "โฃง", "โฃท", "โฃฟ"]
  1045. 4 ["โ—‹", "โ—”", "โ—", "โ—•", "โฌค"]
  1046. 5 ["โ–ก", "โ—ฑ", "โ—ง", "โ–ฃ", "โ– "]
  1047. 6 ["โ–ก", "โ—ฑ", "โ–จ", "โ–ฉ", "โ– "]
  1048. 7 ["โ–ก", "โ—ฑ", "โ–ฅ", "โ–ฆ", "โ– "]
  1049. 8 ["โ–‘", "โ–’", "โ–“", "โ–ˆ"]
  1050. 9 ["โ–‘", "โ–ˆ"]
  1051. 10 ["โฌœ", "โฌ›"]
  1052. 11 ["โ–ฑ", "โ–ฐ"]
  1053. 12 ["โ–ญ", "โ—ผ"]
  1054. 13 ["โ–ฏ", "โ–ฎ"]
  1055. 14 ["โ—ฏ", "โฌค"]
  1056. 15 ["โšช", "โšซ"]
  1057. 16 ["โ––", "โ–—", "โ–˜", "โ–", "โ–ž", "โ–š", "โ–™", "โ–Ÿ", "โ–œ", "โ–›"]
  1058. 17 ["|", "/", "-", "\\"]
  1059. 18 [".", "o", "O", "@", "*"]
  1060. 19 ["โ—กโ—ก", "โŠ™โŠ™", "โ— โ— ", "โŠ™โŠ™"]
  1061. 20 ["โ—œ ", " โ—", " โ—ž", "โ—Ÿ "]
  1062. 21 ["โ†", "โ†–", "โ†‘", "โ†—", "โ†’", "โ†˜", "โ†“", "โ†™"]
  1063. 22 ["โ–", "โ–ƒ", "โ–„", "โ–…", "โ–†", "โ–‡", "โ–ˆ", "โ–‡", "โ–†", "โ–…", "โ–„", "โ–ƒ"]
  1064. 23 [ "โ–‰", "โ–Š", "โ–‹", "โ–Œ", "โ–", "โ–Ž", "โ–", "โ–Ž", "โ–", "โ–Œ", "โ–‹", "โ–Š", "โ–‰" ]
  1065. 24 ["โ––", "โ–˜", "โ–", "โ–—"]
  1066. 25 ["โ–Œ", "โ–€", "โ–", "โ–„"]
  1067. 26 ["โ”ค", "โ”˜", "โ”ด", "โ””", "โ”œ", "โ”Œ", "โ”ฌ", "โ”"]
  1068. 27 ["โ—ข", "โ—ฃ", "โ—ค", "โ—ฅ"]
  1069. 28 ["โ ", "โ ‚", "โ „", "โก€", "โข€", "โ  ", "โ ", "โ ˆ"]
  1070. 29 ["โขŽโกฐ", "โขŽโกก", "โขŽโก‘", "โขŽโ ฑ", "โ Žโกฑ", "โขŠโกฑ", "โขŒโกฑ", "โข†โกฑ"]
  1071. 30 [".", "o", "O", "ยฐ", "O", "o", "."]
  1072. 31 ["ใŠ‚", "ใŠ€", "ใŠ"]
  1073. 32 ["๐Ÿ’› ", "๐Ÿ’™ ", "๐Ÿ’œ ", "๐Ÿ’š ", "โค๏ธ "]
  1074. 33 [ "๐Ÿ•› ", "๐Ÿ• ", "๐Ÿ•‘ ", "๐Ÿ•’ ", "๐Ÿ•“ ", "๐Ÿ•” ", "๐Ÿ•• ", "๐Ÿ•– ", "๐Ÿ•— ", "๐Ÿ•˜ ", "๐Ÿ•™ ", "๐Ÿ•š " ]
  1075. 34 ["๐ŸŒ ", "๐ŸŒŽ ", "๐ŸŒ "]
  1076. 35 [ "[ ]", "[= ]", "[== ]", "[=== ]", "[ ===]", "[ ==]", "[ =]", "[ ]", "[ =]", "[ ==]", "[ ===]", "[====]", "[=== ]", "[== ]", "[= ]" ]
  1077. 36 ["๐ŸŒ‘ ", "๐ŸŒ’ ", "๐ŸŒ“ ", "๐ŸŒ” ", "๐ŸŒ• ", "๐ŸŒ– ", "๐ŸŒ— ", "๐ŸŒ˜ "]
  1078. .Ed
  1079. .Pp
  1080. Or, define an array of strings each consisting of a frame in the progress sequence indicator for a custom spinner:
  1081. .Bl -tag -width 36n
  1082. .It Ic interval_ms Ar u64
  1083. .Pq Em optional
  1084. Frame interval.
  1085. .\" default value
  1086. .Pq 50
  1087. .It Ic frames Ar [String]
  1088. The animation frames.
  1089. .El
  1090. .Pp
  1091. Example:
  1092. .Bd -literal
  1093. progress_spinner_sequence = { interval_ms = 150, frames = [ "-", "=", "โ‰ก" ] }
  1094. .Ed
  1095. .El
  1096. .Sh LOG
  1097. .Bl -tag -width 36n
  1098. .It Ic log_file Ar String
  1099. .Pq Em optional
  1100. path of the log file
  1101. .\" default value
  1102. .Pq Pa $XDG_DATA_HOME/meli/meli.log
  1103. .It Ic maximum_level Ar String
  1104. .Pq Em optional
  1105. maximum level of messages to log.
  1106. All levels less or equal to the
  1107. .Ic maximum_level
  1108. will be appended to the log file.
  1109. Available levels are, in partial order:
  1110. .Bl -bullet -compact
  1111. .It
  1112. .Em OFF
  1113. .It
  1114. .Em FATAL
  1115. .It
  1116. .Em ERROR
  1117. .It
  1118. .Em WARN
  1119. .It
  1120. .Em INFO
  1121. .It
  1122. .Em DEBUG
  1123. .It
  1124. .Em TRACE
  1125. .El
  1126. This means that to turn logging off, set
  1127. .Ic maximum_level
  1128. to
  1129. .Em OFF Ns
  1130. \&.
  1131. .\" default value
  1132. .Pq Em INFO
  1133. .El
  1134. .Sh SMTP Connections
  1135. .Bl -tag -width 36n
  1136. .It Ic hostname Ar String
  1137. server hostname
  1138. .It Ic port Ar Integer
  1139. server port
  1140. .It Ic envelope_from Ar String
  1141. .Pq Em optional
  1142. address to set as sender in SMTP transactions
  1143. .\" default value
  1144. .Pq Em none
  1145. .It Ic auth Ar SmtpAuth
  1146. SMTP server authentication.
  1147. See
  1148. .Sx SmtpAuth
  1149. subsection.
  1150. .It Ic security Ar SmtpSecurity
  1151. .Pq Em optional
  1152. gpg binary name or file location to use
  1153. .\" default value
  1154. .Po see
  1155. .Sx SmtpSecurity
  1156. subsection
  1157. .Pc
  1158. .It Ic extensions Ar SmtpExtensions
  1159. .Pq Em optional
  1160. set support for SMTP extensions if they are advertised by the server
  1161. .\" default value
  1162. .Po see
  1163. .Sx SmtpExtensions
  1164. subsection
  1165. .Pc
  1166. .El
  1167. .Ss SmtpAuth
  1168. .Bl -tag -width 36n
  1169. .It Ic type Ar "none" | "auto" | "xoauth2"
  1170. .El
  1171. .Pp
  1172. For type "auto":
  1173. .Bl -tag -width 36n
  1174. .It Ic username Ar String
  1175. .It Ic password Ar SmtpPassword
  1176. .It Ic require_auth Ar bool
  1177. .Pq Em optional
  1178. require authentication in every case
  1179. .\" default value
  1180. .Pq Em true
  1181. .El
  1182. .sp
  1183. For type "xoauth2":
  1184. .Bl -tag -width 36n
  1185. .It Ic token_command Ar String
  1186. Command to evaluate that returns an XOAUTH2 token.
  1187. .It Ic require_auth Ar bool
  1188. .Pq Em optional
  1189. require authentication in every case
  1190. .\" default value
  1191. .Pq Em true
  1192. .El
  1193. .sp
  1194. Examples:
  1195. .Bd -literal
  1196. auth = { type = "auto", username = "user", password = { type = "raw", value = "hunter2" } }
  1197. .Ed
  1198. .Bd -literal
  1199. auth = { type = "auto", username = "user", password = "hunter2" }
  1200. .Ed
  1201. .Bd -literal
  1202. auth = { type = "none" }
  1203. .Ed
  1204. .sp
  1205. For Gmail (see
  1206. .Sx Gmail OAUTH2
  1207. for details on the authentication token command):
  1208. .Bd -literal
  1209. auth = { 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" }
  1210. .Ed
  1211. .Ss SmtpPassword
  1212. .Bl -tag -width 36n
  1213. .It Ic type Ar "raw" | "command_evaluation"
  1214. .It Ic value Ar String
  1215. Either a raw password string, or command to execute.
  1216. .El
  1217. .sp
  1218. Examples:
  1219. .Bd -literal
  1220. password = { type = "raw", value = "hunter2" }
  1221. .Ed
  1222. .Bd -literal
  1223. password = { type = "command_eval", value = "gpg2 --no-tty -q -d ~/.passwords/user.gpg" }
  1224. .Ed
  1225. .Ss SmtpSecurity
  1226. Default security type is
  1227. .Em auto Ns
  1228. \&.
  1229. .Bl -tag -width 36n
  1230. .It Ic type Ar "none" | "auto" | "starttls" | "tls"
  1231. .It Ic danger_accept_invalid_certs Ar bool
  1232. Accept invalid SSL/TLS certificates
  1233. .\" default value
  1234. .Pq Em false
  1235. .El
  1236. .Ss SmtpExtensions
  1237. .Bl -tag -width 36n
  1238. .It Ic pipelining Ar bool
  1239. rfc2920
  1240. .\" default value
  1241. .Pq Em true
  1242. .It Ic chunking Ar bool
  1243. rfc3030
  1244. .\" default value
  1245. .Pq Em true
  1246. .It Ic prdr Ar bool
  1247. draft-hall-prdr-00
  1248. .\" default value
  1249. .Pq Em true
  1250. .It Ic dsn_notify Ar String
  1251. RFC3461
  1252. .\" default value
  1253. .Pq Em FAILURE
  1254. .El
  1255. .Sh SEE ALSO
  1256. .Xr meli 1 ,
  1257. .Xr meli-themes 5
  1258. .Sh CONFORMING TO
  1259. TOML Standard v.0.5.0 https://toml.io/en/v0.5.0
  1260. .Sh AUTHORS
  1261. Copyright 2017-2019
  1262. .An Manos Pitsidianakis Aq epilys@nessuent.xyz
  1263. Released under the GPL, version 3 or greater.
  1264. This software carries no warranty of any kind.
  1265. (See COPYING for full copyright and warranty notices.)
  1266. .Pp
  1267. .Aq https://meli.delivery