diff --git a/modules/modules.nix b/modules/modules.nix index 6c3707393..9745eb78e 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -337,6 +337,7 @@ let ./services/hound.nix ./services/hypridle.nix ./services/hyprpaper.nix + ./services/hyprpolkitagent.nix ./services/imapnotify.nix ./services/kanshi.nix ./services/kbfs.nix diff --git a/modules/services/hyprpolkitagent.nix b/modules/services/hyprpolkitagent.nix new file mode 100644 index 000000000..b9bf4c87b --- /dev/null +++ b/modules/services/hyprpolkitagent.nix @@ -0,0 +1,29 @@ +{ config, lib, pkgs, ... }: +let + inherit (lib) + mkEnableOption mkPackageOption types literalExpression mkIf maintainers; + cfg = config.services.hyprpolkitagent; +in { + meta.maintainers = [ maintainers.bobvanderlinden ]; + + options = { + services.hyprpolkitagent = { + enable = mkEnableOption "Hyprland Policykit Agent"; + package = mkPackageOption pkgs "hyprpolkitagent" { }; + }; + }; + + config = mkIf cfg.enable { + systemd.user.services.hyprpolkitagent = { + Unit = { + Description = "Hyprland PolicyKit Agent"; + After = [ "graphical-session-pre.target" ]; + PartOf = [ "graphical-session.target" ]; + }; + + Install = { WantedBy = [ "graphical-session.target" ]; }; + + Service = { ExecStart = "${cfg.package}/libexec/hyprpolkitagent"; }; + }; + }; +} diff --git a/tests/default.nix b/tests/default.nix index 89e668ee0..00ceb5f57 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -506,6 +506,7 @@ in import nmtSrc { ./modules/services/home-manager-auto-upgrade ./modules/services/hypridle ./modules/services/hyprpaper + ./modules/services/hyprpolkitagent ./modules/services/imapnotify ./modules/services/kanshi ./modules/services/lieer diff --git a/tests/modules/services/hyprpolkitagent/basic-configuration.nix b/tests/modules/services/hyprpolkitagent/basic-configuration.nix new file mode 100644 index 000000000..ab39fc2a2 --- /dev/null +++ b/tests/modules/services/hyprpolkitagent/basic-configuration.nix @@ -0,0 +1,23 @@ +{ + services.hyprpolkitagent.enable = true; + + nmt.script = '' + clientServiceFile=home-files/.config/systemd/user/hyprpolkitagent.service + + assertFileExists $clientServiceFile + assertFileContent $clientServiceFile ${ + builtins.toFile "expected.service" '' + [Install] + WantedBy=graphical-session.target + + [Service] + ExecStart=@hyprpolkitagent@/libexec/hyprpolkitagent + + [Unit] + After=graphical-session-pre.target + Description=Hyprland PolicyKit Agent + PartOf=graphical-session.target + '' + } + ''; +} diff --git a/tests/modules/services/hyprpolkitagent/default.nix b/tests/modules/services/hyprpolkitagent/default.nix new file mode 100644 index 000000000..87aca6dc4 --- /dev/null +++ b/tests/modules/services/hyprpolkitagent/default.nix @@ -0,0 +1 @@ +{ hyprpolkitagent-basic-configuration = ./basic-configuration.nix; }