{
  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;
  };

  quick.services = {
    swaync = "${getExe pkgs.swaynotificationcenter}";
    quickshell = "${getExe pkgs.quickshell}";
    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;
  };
}
