<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/dot_config/waybar/executable_dismiss-visible.sh, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/dot_config/waybar/executable_dismiss-visible.sh?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/dot_config/waybar/executable_dismiss-visible.sh?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-05-13T12:43:42Z</updated>
<entry>
<title>refactor(notifications): drop dismissed-state machinery; pending = visible</title>
<updated>2026-05-13T12:43:42Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:42Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=26ceab690dff09d5162443b14adccfbe0e9bcd5d'/>
<id>urn:sha1:26ceab690dff09d5162443b14adccfbe0e9bcd5d</id>
<content type='text'>
Set mako default-timeout=0 so notifications stay until acted upon. With
auto-timeout off, mako's list IS the pending set, so the
$XDG_RUNTIME_DIR/mako-dismissed bridge becomes dead weight.

- mako/config: default-timeout=0; drop redundant [urgency=critical]
  default-timeout=0 override.
- Delete dismiss-visible.sh and restore-pending.sh; sway calls makoctl
  directly (Mod+n=dismiss, Mod+Shift+n=dismiss --all,
  Mod+Ctrl+n=restore as undo).
- Shrink mako-status.sh to a 20-line counter of makoctl list.
- Rename mako-history.py -&gt; notification-picker.py; lists only
  visible, dismisses via makoctl dismiss -n &lt;id&gt;.
- Update waybar config.jsonc on-click path.
- Update KEYBINDS.md wording (no more 'marks seen' / 'pending set').
</content>
</entry>
<entry>
<title>fix(mako): Super+Shift+n also clears history from pending count</title>
<updated>2026-05-13T12:43:37Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=f726a9afa6ba815ac8b5f4ce94a6295e74ff3980'/>
<id>urn:sha1:f726a9afa6ba815ac8b5f4ce94a6295e74ff3980</id>
<content type='text'>
dismiss-visible.sh's 'all' mode previously only recorded visible
notification ids and ran 'makoctl dismiss --all'. Notifications already
in mako's history (auto-expired) still counted as pending in waybar's
mako-status. Now also append history ids to the dismissed state file so
the pending counter actually drops to zero.
</content>
</entry>
<entry>
<title>style: apply formatter drift across repo</title>
<updated>2026-05-13T12:43:32Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:32Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=0c15212f4f2389f743b17cb6ceff50f1f9267a1b'/>
<id>urn:sha1:0c15212f4f2389f743b17cb6ceff50f1f9267a1b</id>
<content type='text'>
Pre-existing whitespace/style drift caught by `just check`. Touch
nothing semantic — pure formatter output (shfmt -i 2 -ci -s, ruff,
prettier, taplo). Excludes dot_config/clangd/config.yaml whose manual
indentation is intentionally preserved.
</content>
</entry>
<entry>
<title>fix(waybar): dismiss/restore wrappers parse mako text format</title>
<updated>2026-05-13T12:43:29Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:29Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=0a5c53a1198e9645501ec17af06478e0efb3bcc3'/>
<id>urn:sha1:0a5c53a1198e9645501ec17af06478e0efb3bcc3</id>
<content type='text'>
Same -f-doesn't-exist regression as 3205afc / d76ff3c. Without -f the
inner pipeline produced no ids, so the dismissed-set never grew and
notifications stayed pending forever after Mod+n.

Switch to sed extraction of 'Notification N:' lines for both
dismiss-visible.sh (list) and restore-pending.sh (history). Verified
the dismissed-set is populated correctly for top/all modes.
</content>
</entry>
<entry>
<title>feat(notifications): persistent-pending model + wofi history picker</title>
<updated>2026-05-13T12:43:29Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:29Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=e331fd63eaa51a51a6af06560bbe226a6d47fa16'/>
<id>urn:sha1:e331fd63eaa51a51a6af06560bbe226a6d47fa16</id>
<content type='text'>
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
</content>
</entry>
</feed>
