Add a runtime toggle for the scheduled blue-light filter, the remaining optional item on the night-light roadmap entry. nomarchy-nightlight (nightlight.nix, always on PATH) starts/stops the hyprsunset *service* rather than poking its runtime gamma: `systemctl --user is-active` is the single source of truth, the screen restores to true colours when stopped, and it lets you force the filter off for colour-sensitive work (even at night) and back on without touching config. It self-gates — `status` prints nothing when the unit is absent — so the indicator hides itself when night-light isn't enabled. - Menu: `nomarchy-menu nightlight` toggles it; a self-gated row in the System submenu (shown only when the hyprsunset unit exists). - Waybar: a self-gating `custom/nightlight` indicator (moon = on, sun = off), in the generated bar and both summer whole-swap themes for parity. Verified: home generation builds, generated waybar config carries custom/nightlight, the menu has the dispatcher case + System row, both scripts pass bash -n, and status self-gates to empty with no unit. Pending an on-machine check that stopping hyprsunset cleanly restores the gamma. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
116 lines
2.9 KiB
JSON
116 lines
2.9 KiB
JSON
{
|
|
"margin-top": 0,
|
|
"margin-left": 120,
|
|
"margin-bottom": 0,
|
|
"margin-right": 120,
|
|
"height": 60,
|
|
"layer": "top",
|
|
"position": "top",
|
|
"spacing": 15,
|
|
"reload_style_on_change": true,
|
|
|
|
"modules-left": ["custom/launcher", "clock", "clock#date"],
|
|
"modules-center": ["hyprland/workspaces"],
|
|
"modules-right": ["pulseaudio", "custom/powerprofile", "custom/nightlight", "battery", "tray", "custom/notification", "custom/powermenu"],
|
|
|
|
"hyprland/workspaces": {
|
|
"disable-scroll": true,
|
|
"all-outputs": true,
|
|
"on-click": "activate",
|
|
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
|
"on-scroll-down": "hyprctl dispatch workspace e-1"
|
|
},
|
|
|
|
"custom/launcher": {
|
|
"interval": "once",
|
|
"format": "\uf000",
|
|
"on-click": "nomarchy-menu",
|
|
"tooltip-format": "Nomarchy menu"
|
|
},
|
|
|
|
"pulseaudio": {
|
|
"format": "{icon} {volume}%",
|
|
"format-bluetooth": "{icon} {volume}%",
|
|
"format-bluetooth-muted": " muted",
|
|
"format-muted": " muted",
|
|
"format-icons": {
|
|
"headphone": "",
|
|
"hands-free": "",
|
|
"headset": "",
|
|
"phone": "",
|
|
"portable": "",
|
|
"car": "",
|
|
"default": ["", "", ""]
|
|
},
|
|
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
|
|
"tooltip-format": "Playing at {volume}%"
|
|
},
|
|
|
|
"battery": {
|
|
"interval": 60,
|
|
"states": { "warning": 30, "critical": 15 },
|
|
"max-length": 10,
|
|
"format": "{icon} {capacity}%",
|
|
"format-charging": " {capacity}%",
|
|
"format-plugged": " {capacity}%",
|
|
"format-full": " 100%",
|
|
"format-icons": ["", "", "", "", ""],
|
|
"on-click": "nomarchy-menu power",
|
|
"tooltip-format": "Battery status"
|
|
},
|
|
|
|
"clock": {
|
|
"format": " {:%H:%M}",
|
|
"tooltip": true,
|
|
"tooltip-format": "<tt><small>{calendar}</small></tt>"
|
|
},
|
|
|
|
"clock#date": {
|
|
"format": " {:%A, %B %d, %Y}",
|
|
"tooltip": false
|
|
},
|
|
|
|
"tray": { "spacing": 8 },
|
|
|
|
"custom/powerprofile": {
|
|
"return-type": "json",
|
|
"interval": 5,
|
|
"exec": "nomarchy-powerprofile-status",
|
|
"on-click": "nomarchy-powerprofile-cycle"
|
|
},
|
|
|
|
"custom/nightlight": {
|
|
"return-type": "json",
|
|
"interval": 3,
|
|
"exec": "nomarchy-nightlight status",
|
|
"on-click": "nomarchy-nightlight toggle"
|
|
},
|
|
|
|
"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
|
|
}
|
|
}
|