{ pkgs, lib, inputs, mainUser, getPkgs, config, ... }: let inherit (lib) getExe; in { user.packages = getPkgs { # quickshell stuff inherit (pkgs.kdePackages) qtbase qtdeclarative; inherit (pkgs) wl-clipboard quickshell; }; imports = [ inputs.stasis.nixosModules.default inputs.stash.nixosModules.default ]; services.stasis = { enable = true; extraPathPackages = [ (config.programs.niri.package) ]; extraConfig = '' default: dpms_off: timeout 300 command "niri msg action power-off-monitors" end suspend: timeout 600 command "systemctl suspend" end end ''; }; services.stash-clipboard = { enable = true; excludedApps = [ "Bitwarden" ]; }; quick.services = { noti = "${getExe pkgs.swaynotificationcenter}"; shell = "${getExe pkgs.quickshell}"; pwManager = "${getExe config.apps.passwordManager}"; # music = "${getExe config.apps.streamPlayer}"; }; user.systemd.services.music = { environment.PATH = lib.mkForce "/run/current-system/sw/bin:/run/current-system/sw/sbin:/etc/profiles/per-user/${mainUser}/bin:/etc/profiles/per-user/${mainUser}/sbin"; unitConfig = { Description = "airdrome"; Requires = [ "graphical-session.target" ]; After = [ "graphical-session.target" "niri.target" ]; PartOf = [ "graphical-session.target" ]; }; serviceConfig = { ExecStart = "${getExe config.apps.streamPlayer}"; Type = "forking"; }; wantedBy = [ "graphical-session.target" ]; }; environment.files."/home/${mainUser}/.config/quickshell" = { source = "/home/${mainUser}/.nix/graphical/desktop/quickshell"; uid = 1000; gid = 100; }; }