From e331fd63eaa51a51a6af06560bbe226a6d47fa16 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:29 +0100 Subject: feat(notifications): persistent-pending model + wofi history picker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Notifications now behave like a phone: pop briefly, auto-disappear, and remain "pending" until the user explicitly acknowledges them. The waybar count reflects pending only; idle uses a quieter glyph. State model: pending = ids in mako history/list MINUS dismissed-set state file: $XDG_RUNTIME_DIR/mako-dismissed (per-session id list) Glyph change: idle (0 pending) bell_outline U+F009C has pending bell_ring U+F009E (the previous bell_check_outline U+F11E8 "history present but nothing pending" branch is gone — there is no separate history concept now) Bindings (all now go through wrappers that maintain the dismissed-set): Super+n dismiss top visible + mark seen Super+Shift+n dismiss all visible + mark seen Super+Ctrl+n restore most recent + pop it from dismissed-set XF86Favorites history picker (rewritten on wofi) History picker (dot_config/waybar/executable_mako-history.py): - wofi --hide-search: arrow-only navigation, no fuzzy input - lines tagged [pending] / [seen] with app + summary + body - Enter re-emit via notify-send (re-shows the bubble) + mark seen - Alt-c copy "summary\nbody" to clipboard via wl-copy - Alt-d mark seen without re-showing - empty history shows a sentinel, no-op on Enter New scripts: executable_dismiss-visible.sh capture id(s) then makoctl dismiss executable_restore-pending.sh capture top-of-history id, restore, then drop that id from dismissed-set executable_mako-history.py Python rewrite (parses makoctl text output, drives wofi) Other: meta/wayland.txt add wofi (only used by this picker) dot_config/wofi/style.css minimal gruvbox style; hides input row as belt-and-suspenders even though --hide-search already does it --- KEYBINDS.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'KEYBINDS.md') diff --git a/KEYBINDS.md b/KEYBINDS.md index 3f203c1..892bbf4 100644 --- a/KEYBINDS.md +++ b/KEYBINDS.md @@ -327,10 +327,10 @@ Mod key: `Super` (Mod4). Only personal additions beyond sway defaults listed. | `Super+i` | Dictate toggle (whisper.cpp → wtype + clipboard) | | `Super+Shift+o` | OCR region (tesseract → clipboard) | | `Super+Shift+s` | Lock screen + pause media | -| `Super+n` | Dismiss notification | -| `Super+Shift+n` | Dismiss all notifications | -| `Super+Ctrl+n` | Restore last dismissed notification | -| `XF86Favorites` | Notification history picker (copy to clipboard) | +| `Super+n` | Dismiss visible notification (also marks it seen) | +| `Super+Shift+n` | Dismiss all visible notifications (mark all seen) | +| `Super+Ctrl+n` | Restore last dismissed; pop it back into the pending set | +| `XF86Favorites` | Notification history picker (Enter re-shows + marks seen, Alt-c copies, Alt-d marks seen) | | `Super+p` | Clipboard history picker (cliphist + fuzzel) | | `Super+Shift+p` | Clipboard history delete entry | | `Super+Tab` | Next workspace | -- cgit v1.3.1