Files
Nomarchy/themes/boreal/waybar.jsonc
Bernardo Magri 6bd03747c9
All checks were successful
Check / eval (push) Successful in 2m59s
fix(waybar): inhibited notification state reads by shape, not color alone
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>
2026-07-08 21:07:10 +01:00

178 lines
4.3 KiB
JSON

{
"margin-top": 8,
"margin-left": 14,
"margin-right": 14,
"margin-bottom": 0,
"height": 38,
"layer": "bottom",
"position": "top",
"spacing": 4,
"reload_style_on_change": true,
"modules-left": [
"custom/nomarchy",
"clock",
"clock#date"
],
"modules-center": [
"hyprland/workspaces"
],
"modules-right": [
"custom/recording",
"custom/updates",
"custom/doctor",
"idle_inhibitor",
"custom/nightlight",
"hyprland/language",
"custom/vpn",
"pulseaudio",
"battery",
"custom/powerprofile",
"tray",
"custom/notification",
"custom/powermenu"
],
"custom/nomarchy": {
"interval": "once",
"format": "",
"on-click": "nomarchy-menu",
"tooltip-format": "Nomarchy menu"
},
"clock": {
"format": "{:%H:%M}",
"on-click": "nomarchy-calendar",
"tooltip": true,
"tooltip-format": "{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>"
},
"clock#date": {
"format": "{:%a %d %b}",
"tooltip": false
},
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace r+1",
"on-scroll-down": "hyprctl dispatch workspace r-1"
},
"custom/recording": {
"return-type": "json",
"interval": 10,
"signal": 8,
"exec": "nomarchy-record status",
"on-click": "nomarchy-record stop"
},
"custom/updates": {
"return-type": "json",
"interval": 1800,
"signal": 9,
"exec": "nomarchy-updates status",
"on-click": "sh -c '$TERMINAL -e nomarchy-updates upgrade'"
},
"custom/doctor": {
"return-type": "json",
"interval": 300,
"exec": "nomarchy-doctor-status",
"on-click": "nomarchy-menu doctor"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": " 󰅶 ",
"deactivated": " 󰾪 "
}
},
"custom/nightlight": {
"return-type": "json",
"interval": 3,
"exec": "nomarchy-nightlight status",
"on-click": "nomarchy-nightlight toggle"
},
"hyprland/language": {
"format": "<span size='13pt'>󰌌</span> {short}",
"tooltip": false
},
"custom/vpn": {
"return-type": "json",
"interval": 5,
"exec": "nomarchy-vpn-status",
"on-click": "nomarchy-vpn"
},
"pulseaudio": {
"scroll-step": 5,
"format": "<span size='13pt'>{icon}</span> {volume}%",
"format-bluetooth": "<span size='13pt'>{icon}</span> {volume}%",
"format-bluetooth-muted": " {icon}",
"format-muted": "<span size='13pt'></span> muted",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"",
"",
""
]
},
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "pwvucontrol",
"tooltip-format": "{desc} | {volume}%"
},
"battery": {
"interval": 30,
"states": {
"warning": 25,
"critical": 10
},
"format": "<span size='13pt'>{icon}</span> {capacity}%",
"format-charging": "<span size='13pt'></span> {capacity}%",
"format-plugged": "<span size='13pt'></span> {capacity}%",
"format-icons": [
"",
"",
"",
"",
""
],
"on-click": "nomarchy-menu powermgmt",
"tooltip-format": "Battery status"
},
"custom/powerprofile": {
"return-type": "json",
"interval": 5,
"exec": "nomarchy-powerprofile-status",
"on-click": "nomarchy-menu powermgmt"
},
"tray": {
"icon-size": 15,
"spacing": 10
},
"custom/notification": {
"format": "{icon}",
"return-type": "json",
"exec": "swaync-client -swb",
"exec-if": "which swaync-client",
"escape": true,
"tooltip": true,
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw",
"format-icons": {
"none": "󰂜",
"notification": "󰂚",
"dnd-none": "󰂛",
"dnd-notification": "󰂛",
"inhibited-none": "󰂛",
"inhibited-notification": "󰂛",
"dnd-inhibited-none": "󰂛",
"dnd-inhibited-notification": "󰂛"
}
},
"custom/powermenu": {
"format": "",
"on-click": "nomarchy-menu power",
"tooltip": false
}
}