{ pkgs, lib, theme, ... }: let mkService = lib.recursiveUpdate { Unit.PartOf = ["graphical-session.target"]; Unit.After = ["graphical-session.target"]; Install.WantedBy = ["graphical-session.target"]; }; in { imports = [./config.nix]; home.packages = with pkgs; [pamixer]; services = { wlsunset = { # TODO: fix opaque red screen issue enable = true; latitude = "52.0"; longitude = "21.0"; temperature = { day = 6200; night = 3750; }; systemdTarget = "niri.service"; }; cliphist.enable = true; }; systemd.user.targets = { # fake a tray to let apps start # https://github.com/nix-community/home-manager/issues/2064 tray = { Unit = { Description = "Home Manager System Tray"; Requires = ["graphical-session-pre.target"]; }; }; }; systemd.user.services = { swaybg = mkService { Unit = { Description = "Wallpaper chooser"; After = "niri.service"; }; Service = { ExecStart = "${lib.getExe pkgs.swaybg} -i ${theme.wallpaper}"; Restart = "always"; }; }; }; }