{ config, pkgs, lib, dmsPkgs, ... }@args: let cfg = config.programs.dank-material-shell; common = import ./common.nix { inherit config pkgs lib dmsPkgs ; }; in { imports = [ (import ./options.nix args) ]; config = lib.mkIf cfg.enable { systemd.user.services.dms = lib.mkIf cfg.systemd.enable { description = "DankMaterialShell"; path = lib.mkForce [ ]; partOf = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ]; restartIfChanged = cfg.systemd.restartIfChanged; serviceConfig = { ExecStart = lib.getExe dmsPkgs.dms-shell + " run --session"; Restart = "on-failure"; }; }; environment.systemPackages = [ cfg.quickshell.package ] ++ common.packages; environment.etc = lib.mapAttrs' (name: value: { name = "xdg/quickshell/dms-plugins/${name}"; inherit value; }) common.plugins; services.power-profiles-daemon.enable = lib.mkDefault true; services.accounts-daemon.enable = lib.mkDefault true; }; }