aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/qtmaildir/README.md
blob: 4bbcbfd217a92e387b651f0318a687d62d8f809c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# qtmaildir

Four settings pages, under Mail, for qtmaildir's
`~/.config/qtmaildir/qtmaildir.conf`:

- **Mail**: `[general]`, `[sync]` and `[completion]`: startup query and
  account, language, toolbar size, message zoom, date format, forward
  prefixes, mark-read and auto-sync delays, sync on quit, the sync command
  and log, contacts, calendars and their sync command, the notmuch config.
- **Compose**: `[compose]`.
- **Accounts**: one card per `[account.<key>]` with every key qtmaildir
  reads; Add appends a section with `trash = Trash` and `spam = Spam`,
  Remove asks once and deletes the section. The key is the account's
  identity and is not renamed here.
- **Tags & shortcuts**: `[tagcolors]` and `[keys]`, a row each, removable,
  with an add row.

qtmaildir reads the file at startup and never writes it, so editing it
under a running qtmaildir is safe; the pages say when it is running and a
change waits for its restart. A field saves on Enter, and emptied it unsets
the key, so qtmaildir's default applies; the placeholders name those
defaults, from qtmaildir's README. Numbers are range-checked before writing.

`Ini.js` edits the file a line at a time so its comments and order survive:
a key unset is commented out with `;`, a commented key set again is
activated, and a tag or shortcut row removed is deleted outright. Section
headers are only lines that are nothing but `[name]`, never "everything up
to the next `[`": values hold brackets (`[Gmail]/Bozze`), which is the trap
AGENTS.md records. Values follow QSettings' reading: an unquoted `;` starts a
comment, and a value holding `;` or `"` is written quoted.

The shortcut actions offered are copied from qtmaildir's
`KeyMap::knownActions()`, a `ponytail:` ceiling in `TagsKeysPage.qml`: a
new action there needs adding here, and meanwhile can be typed, since the
field takes free text.

`Qtm.qml` is the singleton the four pages share. Check:
`node desktop/modules/qtmaildir/test_ini.js`.