feat(nightlight): menu + Waybar on/off toggle
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>
This commit is contained in:
@@ -378,10 +378,18 @@ how to override it. Items marked ✓ are shipped.
|
||||
warm at night, identity (no shift) by day. `modules/home/nightlight.nix`
|
||||
drives the HM `services.hyprsunset` with two time-based profiles
|
||||
(`sunrise` → identity, `sunset` → `temperature`), so hyprsunset handles the
|
||||
schedule and the on-login state. Needs an on-hardware check that hyprsunset
|
||||
applies the active profile at session start. Remaining (optional): a menu +
|
||||
Waybar toggle to force it on/off, and geo (lat/long) auto sunset/sunrise
|
||||
(would mean wlsunset, which schedules by location).
|
||||
schedule and the on-login state. Active-profile-at-session-start was
|
||||
confirmed on hardware (2026-06-18). ✓ **Menu + Waybar toggle:**
|
||||
`nomarchy-nightlight` (in `nightlight.nix`, on PATH) starts/stops the
|
||||
hyprsunset *service* — `systemctl --user is-active` is the single source of
|
||||
truth, the screen restores to true colours when stopped, and it forces the
|
||||
filter off for colour-sensitive work and back on without touching config. A
|
||||
`nomarchy-menu nightlight` entry (System submenu, self-gated on the unit
|
||||
existing) and a self-gating Waybar `custom/nightlight` indicator (moon = on,
|
||||
sun = off; in the generated bar and both summer whole-swaps) drive it.
|
||||
Remaining (optional): geo (lat/long) auto sunset/sunrise (would mean
|
||||
wlsunset, which schedules by location). Pending an on-machine check that
|
||||
stopping hyprsunset cleanly restores the gamma.
|
||||
- **Keyboard layouts (per-device + switching):**
|
||||
- ✓ **Per-device declarative layout:** `nomarchy.keyboard.devices`
|
||||
(`{ "<hyprctl-device-name>" = { layout; variant; }; }`) generates Hyprland
|
||||
|
||||
Reference in New Issue
Block a user