summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-03 15:41:56 +0200
committerDanilo M. <danix@danix.xyz>2026-08-03 15:41:56 +0200
commitf62ced3c2c85675e746bff7ef8aca5c75c9737e0 (patch)
treec962e91fc502ec57d92df386e773033fe42fd17b /README.md
parentdb7bbb81f02b52c2a1b299fe140abffab7e74642 (diff)
downloadqtmaildir-f62ced3c2c85675e746bff7ef8aca5c75c9737e0.tar.gz
qtmaildir-f62ced3c2c85675e746bff7ef8aca5c75c9737e0.zip
feat: use the application iconfeature/qaction-menus
The icon was committed in a previous session and referenced nowhere: no qrc, no .desktop entry, no setWindowIcon. It is wired up now, as a window icon, a desktop entry, and install rules placing both into hicolor and share/applications. resources.qrc belongs to the executable rather than to qtmaildir_lib. A qrc compiled into a static library registers itself from a global initialiser, and the linker discards that object because nothing references it: the build succeeded, qInitResources_resources() was present in the .a, and QFile::exists(":/icons/qtmaildir.svg") still returned false at runtime. Verified loading at 16, 32 and 64 pixels after the move. Toolbar and menu actions take icons from the system theme by their standard names, so they match the rest of the desktop rather than shipping bespoke art. A theme lacking one leaves that action as text, which still works.
Diffstat (limited to 'README.md')
-rw-r--r--README.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/README.md b/README.md
index f7e2444..37ea3c9 100644
--- a/README.md
+++ b/README.md
@@ -91,6 +91,8 @@ name = Your Name
address = you@example.org
maildir = work-mail ; relative to notmuch's database.path
drafts = Drafts ; recorded for v2; unused today
+label = W ; optional chip text; defaults to the key
+color = #2f6fa8 ; optional chip colour; generated when unset
[account.personal]
name = Your Name
@@ -98,6 +100,13 @@ address = you@example.net
maildir = personal
drafts = Drafts
+[tagcolors]
+; Optional. Colours resolve by exact tag first, then by top-level prefix, so
+; one entry covers a whole hierarchy.
+shopping = #3366cc ; also colours shopping/amazon, shopping/nike, ...
+shopping/amazon = #ff9900 ; ... unless the exact tag overrides it
+work = #cc4444
+
[queries]
Inbox = tag:inbox
Unread = tag:unread
@@ -114,6 +123,32 @@ Saved-query buttons appear in alphabetical order rather than file order:
QSettings returns keys sorted, and preserving file order would mean
hand-rolling an INI parser.
+## Tags
+
+Tags render as coloured chips, and fall into two kinds.
+
+**Account tags** (`account-<key>`, matching an `[account.<key>]` stanza) say
+which mailbox a thread arrived in. They appear as a chip in front of the
+subject in the thread list, coloured by that account's `color` key and labelled
+by its `label` key. `label` changes the chip text only; the notmuch tag is
+never renamed, so queries and external tagging are unaffected.
+
+**Functional tags** say what state a thread is in. They fill one row under the
+message pane, sorted, with whatever does not fit collapsing into a `+N` chip
+whose tooltip lists the rest. Colours come from `[tagcolors]`, falling back to
+built-in defaults for the usual state tags (`flagged`, `unread`, `deleted`,
+`spam`, `attachment`, `replied`, and others), and finally to a colour derived
+from the tag name so no chip is ever unstyled.
+
+Lookup is exact tag first, then top-level prefix. One `shopping` entry
+therefore covers `shopping/amazon` and `shopping/nike`, while a
+`shopping/amazon` entry still overrides its own.
+
+Note that a `/` in an INI key is a group separator to QSettings, so
+`shopping/amazon = #ff9900` is stored as a nested key and written to the file
+as `shopping\amazon`. It is read back correctly; the escaping is QSettings'
+own.
+
## Keybindings
Defaults, all rebindable through `[keys]`: