# Light theme during the day, dark theme during the night (not automatic) { pkgs, lib, config, ... }: let phases = [ { command = "jour"; polarity = "light"; } { command = "crepuscule"; polarity = "dark"; } { command = "nuit"; polarity = "dark"; } ]; phasesBrightness = config.frogeye.desktop.phasesBrightness; in { config = { home.packages = map (phase: (pkgs.writeShellApplication { name = "${phase.command}"; runtimeInputs = [ pkgs.brightnessctl ]; text = (lib.optionalString phasesBrightness.enable '' brightnessctl set ${builtins.getAttr phase.command phasesBrightness} '') + '' switch="/nix/var/nix/profiles/system/specialisation/${phase.polarity}/bin/switch-to-configuration" if [ -x "$switch" ] then # In two steps to get the visual changes slightly earlier sudo "$switch" test sudo "$switch" boot fi ''; }) ) phases; xsession.windowManager.i3.config.keybindings = { "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set +5%"; "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"; }; }; }