<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/dot_config/waybar/executable_mako-status.sh, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/dot_config/waybar/executable_mako-status.sh?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/dot_config/waybar/executable_mako-status.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>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): mako-status counts ids by parsing text dump</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=ce97dd5d68dfca687db0bdcd5adb6add6ed45e50'/>
<id>urn:sha1:ce97dd5d68dfca687db0bdcd5adb6add6ed45e50</id>
<content type='text'>
Same root cause as 3205afc: this makoctl version has no -f flag, so the
'%i' lookup silently produced no ids and the bar always showed empty.
Switch to a sed extraction of 'Notification N:' lines from list+history.
Verified against simulated input matching the user's real makoctl
output: 0/some/all dismissed all render correctly.
</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>
<entry>
<title>style(waybar): swap obvious literal labels for Nerd Font glyphs</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=0af53da3eb2574ca23758e6658b7683bcee4d6da'/>
<id>urn:sha1:0af53da3eb2574ca23758e6658b7683bcee4d6da</id>
<content type='text'>
Numeric/identity labels stay (CPU, MEM, °C, network arrows, clock).
Iconic labels are replaced with codepoints from ttf-noto-nerd:

  battery       BAT/CHR/PLG  -&gt; nf-md-battery_*, _charging, power_plug
                               (U+F0079..F0084, U+F06A5)
  pulseaudio    VOL/MUTE     -&gt; nf-md-volume_low/medium/high/off
                               (U+F057E..F0581)
  bluetooth     BT on/off    -&gt; nf-md-bluetooth/_off/_connect
                               (U+F00AF/B0/B2)
  idle_inhib.   INH/IDL      -&gt; nf-md-eye_off_outline/_outline
                               (U+F06D1, F06D0)
  custom/wifi   text only    -&gt; prefix nf-md-wifi/_off
                               (U+F05A9, F05AA)
  custom/webcam CAM          -&gt; nf-md-camera (U+F0D5D)
  custom/notif. NTF          -&gt; nf-md-bell_outline/_check_outline/_ring
                               (U+F009C, F11E8, F009E)
  custom/tb     MAIL         -&gt; nf-md-email/_alert (U+F01EE, F0D42)

style.css font-family widened from 'mono' to a declarative fallback
chain so glyph rendering doesn't depend on fontconfig auto-fallback.
</content>
</entry>
<entry>
<title>fix(waybar): parse mako's plain-text list output directly</title>
<updated>2026-05-13T12:43:21Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:21Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=c4020395efc666b7bd005d4774154cdbebb01b84'/>
<id>urn:sha1:c4020395efc666b7bd005d4774154cdbebb01b84</id>
<content type='text'>
--format is not supported by this mako version. Parse the native text
output (Notification N: summary / App name: X) with awk for the picker
and grep '^Notification ' for the counter.
</content>
</entry>
<entry>
<title>fix(waybar): use makoctl --format for text output, not JSON grep</title>
<updated>2026-05-13T12:43:20Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:20Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=570a8973d8594db9a72cb93a1e2c2350368051d0'/>
<id>urn:sha1:570a8973d8594db9a72cb93a1e2c2350368051d0</id>
<content type='text'>
makoctl outputs plain text by default on this version. Use --format
strings for both the history picker (%a/%s/%b) and the counter script
(%i + wc), instead of trying to parse JSON that isn't there.
</content>
</entry>
<entry>
<title>style(waybar): label and color idle/privacy/notifications modules</title>
<updated>2026-05-13T12:43:19Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:19Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=ea448973b2cb570d27c03483f64474be57e6ddb3'/>
<id>urn:sha1:ea448973b2cb570d27c03483f64474be57e6ddb3</id>
<content type='text'>
The idle_inhibitor em-dash and bare mako '0' blended with the clock.
- mako counter: prefix 'NTF', gray when empty, aqua for history, orange
  for pending.
- idle_inhibitor: 'IDL'/'INH' with gray/yellow.
- privacy: red (only visible when screensharing or mic-active).
- Add padding rules so the new modules line up with the rest.
</content>
</entry>
<entry>
<title>chore(fmt): apply shfmt and prettier formatting</title>
<updated>2026-05-13T12:43:19Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:19Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=083a99063d5092e0895424f652804065c84463f8'/>
<id>urn:sha1:083a99063d5092e0895424f652804065c84463f8</id>
<content type='text'>
- shfmt -i 2 -ci -s on the four updated shell scripts (tabs → 2 spaces)
- prettier --write on KEYBINDS.md and README.md
</content>
</entry>
<entry>
<title>feat(waybar): add mako notification counter module</title>
<updated>2026-05-13T12:43:18Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:18Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=9859c0ab03e16d64080c44d559df737a0b5771b3'/>
<id>urn:sha1:9859c0ab03e16d64080c44d559df737a0b5771b3</id>
<content type='text'>
New mako-status.sh emits JSON with pending / history counts. Click to
dismiss latest, right-click to dismiss all, middle-click to restore the
last dismissed notification.
</content>
</entry>
</feed>
