Files
drunkendotfiles/.local/bin
dissimulo 7ec4c75d86 tmux: circled window numbers via an async hook, not a per-redraw conditional
The old format nested ten #{?#{==:#{window_index},N},...} conditionals inside
window-status-format, so tmux re-evaluated all ten for every window on every
redraw -- and redraws follow PANE ACTIVITY, not status-interval. A busy pane
ran them several times a second.

tmux-window-icons stamps each window with its symbol as a window-level user
option, so the format is a plain #{?#{@icon},#{@icon},#{window_index}} lookup.
It runs from run-shell -b on window-change hooks only, never on the render path.

Deliberately NOT a #() job: those expand EMPTY while restarting, which is the
bug that made status elements wink out in the first place. Reading a pre-set
option means a slow or failed run leaves the previous icon in place instead of
blanking the field.

Hooks are limited to those tmux 3.7b actually has -- after-kill-window,
after-move-window and after-swap-window do not exist and error on source.
window-unlinked covers kills; session-window-changed catches move/swap, which
have no hook of their own.
2026-08-25 12:09:36 -07:00
..
2026-04-21 06:16:16 -07:00
2026-04-21 06:16:16 -07:00
2026-04-21 06:16:16 -07:00
2026-04-21 06:16:16 -07:00
2026-04-21 06:16:16 -07:00
2026-04-21 06:16:16 -07:00
2026-04-21 06:16:16 -07:00