# 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.]` 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`.