diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-07 18:25:02 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-07 18:25:02 +0200 |
| commit | d0ebda2fb2576544fecb99c5dd1375231ff6514b (patch) | |
| tree | 5a7b630282e6b9ece678b69776cf5c25141d67c6 /desktop/modules/mail/README.md | |
| parent | d52951a31ad8207db6f7dc56ba9e9bc11e3cbe83 (diff) | |
| download | quickshell-d0ebda2fb2576544fecb99c5dd1375231ff6514b.tar.gz quickshell-d0ebda2fb2576544fecb99c5dd1375231ff6514b.zip | |
fix(mail): recount unread when the notmuch database commits
Accounts counted only at shell start and when the mail page opened, so the
drawer tile drifted behind the inbox for the rest of the session: it read 14
while notmuch and the waybar pill both said 16. The waybar pill never drifted
because waybar-mail.sh watches the database; the drawer had no watcher.
Accounts now runs its own inotifywait -m on the xapian directory (the
directory, because Xapian replaces files on commit) and refreshes 300ms after
a commit burst settles. The watcher respawns after 5s if it exits, since a
dead one reproduces the drift with no visible error.
This is the prerequisite for removing waybar: the drawer becomes the only
place the unread count is shown.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/modules/mail/README.md')
| -rw-r--r-- | desktop/modules/mail/README.md | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/desktop/modules/mail/README.md b/desktop/modules/mail/README.md index 3b9f89e..ced87f3 100644 --- a/desktop/modules/mail/README.md +++ b/desktop/modules/mail/README.md @@ -61,6 +61,12 @@ back is a legitimate path for an account with no label. ## Counting +**The counts follow the database, not the drawer.** `Accounts` runs its own +`inotifywait -m` on the xapian directory and recounts 300ms after a commit +burst settles. Before that it counted only at shell start and on opening the +page, so the tile read 14 while the inbox held 16. The watcher respawns after +5s if it dies, since a dead one reproduces that drift silently. + Every count is `tag:unread and tag:inbox`. Plain `tag:unread` also counts archived-but-unread mail and mailing list traffic that was never in the inbox, which for one account here was the difference between 32 and 41; the |
