feat(bar): doctor tripwire indicator (LATER item)
All checks were successful
Check / eval (push) Successful in 3m3s

nomarchy-doctor-status: silent while nomarchy-doctor exits 0 (or is
absent), so the module only exists when something is actually broken —
then a red warning glyph with the first ✖ lines jq-escaped into the
tooltip; clicking opens the full sheet (nomarchy-menu doctor).
Interval 300s: the health check is real work (unit/disk/git sweeps),
and this is a tripwire, not a monitor. Added to the generated bar
(status group, after battery) and to BOTH summer whole-swap bars
(module list + jsonc block + CSS membership + @red rule) per the
parity rule.

Verified: V0; V1 — template-home builds with the module in config +
CSS, the status script passes bash -n, both summer jsonc still parse;
functional — the self-gate exits silently, and a shimmed failing
doctor yields jq-valid JSON with class "bad" and the ✖ lines in the
tooltip. Live render queued for hardware.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-05 21:46:29 +01:00
parent 4ad564bd80
commit 808a3febdd
8 changed files with 84 additions and 8 deletions

View File

@@ -55,6 +55,7 @@ window#waybar {
#custom-updates,
#battery,
#tray,
#custom-doctor,
#custom-notification,
#custom-powermenu {
background-color: @bg0;
@@ -127,3 +128,8 @@ window#waybar {
#custom-recording.recording {
color: @red;
}
/* Doctor tripwire: only rendered when something is broken. */
#custom-doctor {
color: @red;
}

View File

@@ -11,7 +11,7 @@
"modules-left": ["custom/launcher", "clock", "clock#date"],
"modules-center": ["hyprland/workspaces"],
"modules-right": ["custom/recording", "idle_inhibitor", "pulseaudio", "custom/powerprofile", "custom/nightlight", "hyprland/language", "custom/updates", "battery", "tray", "custom/vpn", "custom/notification", "custom/powermenu"],
"modules-right": ["custom/recording", "idle_inhibitor", "pulseaudio", "custom/powerprofile", "custom/nightlight", "hyprland/language", "custom/updates", "battery", "tray", "custom/vpn", "custom/doctor", "custom/notification", "custom/powermenu"],
"hyprland/workspaces": {
"disable-scroll": true,
@@ -95,6 +95,13 @@
"on-click": "nomarchy-record stop"
},
"custom/doctor": {
"return-type": "json",
"interval": 300,
"exec": "nomarchy-doctor-status",
"on-click": "nomarchy-menu doctor"
},
"custom/vpn": {
"return-type": "json",
"interval": 5,