Add nomarchy.nightlight (opt-in): a scheduled colour-temperature shift via the HM services.hyprsunset module -- warm (.temperature, default 4000K) at night, identity (no shift) by day, switching at .sunset / .sunrise. Two time-based hyprsunset profiles, so hyprsunset handles the schedule and the on-login state. New modules/home/nightlight.nix, imported in the home module. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
26 lines
857 B
Nix
26 lines
857 B
Nix
# Night light — a scheduled blue-light filter via hyprsunset (Hyprland's own
|
|
# gamma/temperature tool). Warm at night, identity (no shift) by day;
|
|
# hyprsunset's time-based `profile` entries handle the schedule and pick the
|
|
# right state on session start. Opt-in via nomarchy.nightlight.enable.
|
|
#
|
|
# The hyprsunset HM service module is provided by home-manager; this only
|
|
# configures it. Override anything with plain services.hyprsunset.* options.
|
|
{ config, lib, ... }:
|
|
|
|
let
|
|
cfg = config.nomarchy.nightlight;
|
|
in
|
|
{
|
|
config = lib.mkIf cfg.enable {
|
|
services.hyprsunset = {
|
|
enable = true;
|
|
settings.profile = [
|
|
# Daytime: identity = no colour change.
|
|
{ time = cfg.sunrise; identity = true; }
|
|
# Night: shift to the warm temperature.
|
|
{ time = cfg.sunset; temperature = cfg.temperature; }
|
|
];
|
|
};
|
|
};
|
|
}
|