fix(waybar): inhibited notification state reads by shape, not color alone
All checks were successful
Check / eval (push) Successful in 2m59s
All checks were successful
Check / eval (push) Successful in 2m59s
Item 28 color-only accessibility sweep. Swept every Waybar status indicator for shape/glyph redundancy: all already carry non-color distinction (updates shows a count + self-hides; vpn/doctor/nightlight/ recording self-gate; battery/idle/muted are glyph-distinct) except the swaync notification module — its `inhibited-*` states reused the normal bells (/), so an app-inhibited (suppressed) state was distinguished from a normal one by color alone. Route every suppressed state (DND + inhibited) to the bell-off glyph + @muted, so "notifications are off right now" reads by SHAPE. Applied to the generated bar and all four whole-swaps (summer-day/night use their own bell-off glyph; executive-slate/boreal use ) — parity rule. Reuses the glyph DND already ships, so no new codepoint / tofu risk. Verified: V0 (flake check --no-build; 4 jsoncs valid JSON) + V1 (built homeConfigurations.nomarchy.activationPackage — the built config has inhibited-* = U+F009B and style.css routes .inhibited-* → @muted). V3 pending: live inhibited-state render with an app holding an inhibitor (HARDWARE-QUEUE). MEMORY gains the "status is never color-only" invariant. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -291,7 +291,10 @@ let
|
||||
# swaync notification bell + Do-Not-Disturb state. `-swb` streams JSON
|
||||
# (text/tooltip/class) on every change, so it tracks count and DND with
|
||||
# no polling. Left-click toggles the panel; right-click toggles DND.
|
||||
# The `dnd-*` classes (bell-off glyph) are styled muted below.
|
||||
# Every *suppressed* state — DND or app-inhibited — maps to the bell-off
|
||||
# glyph and the muted color below, so "notifications are off right now"
|
||||
# reads by SHAPE, not color alone (color-blind sweep, item 28): inhibited
|
||||
# used to reuse the normal / bells, distinguishable only by color.
|
||||
"custom/notification" = {
|
||||
exec = "swaync-client -swb";
|
||||
return-type = "json";
|
||||
@@ -302,8 +305,8 @@ let
|
||||
notification = "";
|
||||
dnd-none = "";
|
||||
dnd-notification = "";
|
||||
inhibited-none = "";
|
||||
inhibited-notification = "";
|
||||
inhibited-none = "";
|
||||
inhibited-notification = "";
|
||||
dnd-inhibited-none = "";
|
||||
dnd-inhibited-notification = "";
|
||||
};
|
||||
@@ -405,10 +408,13 @@ let
|
||||
size them up a touch more so they read at a glance. */
|
||||
#custom-powerprofile, #idle_inhibitor { font-size: ${toString (t.fonts.size + 3)}pt; }
|
||||
|
||||
/* notifications waiting → accent; Do-Not-Disturb → muted bell-off */
|
||||
/* notifications waiting → accent; suppressed (DND or app-inhibited) →
|
||||
muted bell-off, so it reads by shape+color, never color alone. */
|
||||
#custom-notification.notification { color: @accent; }
|
||||
#custom-notification.dnd-none,
|
||||
#custom-notification.dnd-notification { color: @muted; }
|
||||
#custom-notification.dnd-notification,
|
||||
#custom-notification.inhibited-none,
|
||||
#custom-notification.inhibited-notification { color: @muted; }
|
||||
|
||||
#pulseaudio.muted { color: @muted; }
|
||||
#battery.warning { color: @warn; }
|
||||
|
||||
Reference in New Issue
Block a user