{ pkgs, lib, inputs, mainUser, getPkgs, getFlakePkg', ... }: let inherit (lib) getExe getExe'; in { # quickshell stuff user.packages = getPkgs { inherit (pkgs.kdePackages) qtbase qtdeclarative; inherit (pkgs) wl-clipboard quickshell; }; systemd.user.services.quickshell = { environment.PATH = lib.mkForce "/run/current-system/sw/bin:/run/current-system/sw/sbin:/etc/profiles/per-user/bolt/bin:/etc/profiles/per-user/bolt/sbin"; unitConfig = { Description = "Quickshell"; Requires = [ "graphical-session.target" ]; After = [ "graphical-session.target" "niri.target" ]; }; wantedBy = [ "graphical-session.target" ]; serviceConfig.ExecStart = "${getExe pkgs.quickshell}"; }; quick.services = { swaync = "${getExe pkgs.swaynotificationcenter}"; swayidle = let niri = getFlakePkg' inputs.niri "niri-unstable"; systemctl = getExe' pkgs.systemd "systemctl"; in '' ${lib.getExe pkgs.swayidle} -w \ timeout 1800 '${systemctl} suspend' \ timeout 600 '${niri} msg action power-off-monitors' ''; }; environment.files."/home/${mainUser}/.config/quickshell" = { source = "/home/${mainUser}/.nix/graphical/desktop/quickshell"; uid = 1000; gid = 100; }; }