diff options
Diffstat (limited to 'desktop/modules/mail/README.md')
| -rw-r--r-- | desktop/modules/mail/README.md | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/desktop/modules/mail/README.md b/desktop/modules/mail/README.md index 2349da6..5083c34 100644 --- a/desktop/modules/mail/README.md +++ b/desktop/modules/mail/README.md @@ -156,15 +156,19 @@ login. The same applies to a restart, so mail that arrived while it was down is never notified. The drawer count is still right and still shows it, so nothing is lost but a stale popup. -The notification is sent with dunstify. The icon is passed as an **absolute -path** to the active icon theme's `mail-unread-multiple`, because this dunst -resolves an icon *name* only through the `icon_path` in `dunstrc`, and that -path holds no mail icon, so a name renders no icon at all. The click action -(`-A default,open`) makes dunst prepend an `(A)` action indicator when -`show_indicators` is on, so `dunstrc` sets `show_indicators = no`. A middle -click (dunst's `do_action`) opens qtmaildir, but not the account it belongs -to: `qtmaildir` takes no arguments and `startup_account` is a static setting -rather than a flag, the same limitation the thread rows have. +The notification is sent with `notify-send` (libnotify 0.8), whose `-A +NAME=Text` prints the picked action's name; dunstify is not installed. The +icon is passed as an **absolute path** to the active icon theme's +`mail-unread-multiple`, so it does not depend on how the daemon resolves icon +names. + +Each listed thread is an action, keyed by its thread id, and the account is +the `default` one. A click on the balloon offers them in the notifications' +picker. The picked one runs `mail-open.sh`: the account opens qtmaildir on that +account, a thread on its newest unread message. Thread ids rather than +Message-IDs are the keys because they are hex, so a key never carries the `=` +that separates it from its label; the message is looked up when the action is +picked, and if it was read in the meantime the whole thread opens instead. `test-mail-notify.sh` is the check. It sources the script as a library and asserts on the functions that only move text around, so it needs no mail and no @@ -191,15 +195,15 @@ respected. `Keys.onEscapePressed` on a `PanelWindow` never fires, so the focus sits on an inner `Item`. -## Thread rows are read-only +## Opening mail from the page -Each account shows its three newest unread threads as author, relative date and -subject. Clicking one launches qtmaildir and nothing more, because `qtmaildir` -accepts no command line arguments: there is no way to tell it which thread to -open. `startup_account` in its config is a static setting, not a flag, so -"open on this account" is unavailable for the same reason. Marking read from -here was rejected rather than deferred: it would write the database behind a -possibly running client. +A click on an account's header opens qtmaildir on that account, and a click on +a thread row opens that thread's newest unread message, through the same +`mail-open.sh` the notifications use. qtmaildir hands a second launch's +selectors to the running window, so neither opens a second client. Launches +are detached: a first launch *is* the client, and a reused `Process` would kill +it on the next click. Marking read from here was rejected rather than +deferred: it would write the database behind a possibly running client. "Open qtmaildir" launches the client. There is no "Sync now" button: the watcher triggers a sync the moment mail lands, the cron tick is the backstop, |
