mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 08:53:21 +00:00
a9e48492ae
(cherry picked from commit 53712fa4a1
)
51 lines
1.2 KiB
Nix
51 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
|
|
let
|
|
cfg = config.security.soteria;
|
|
in
|
|
{
|
|
options.security.soteria = {
|
|
enable = lib.mkEnableOption null // {
|
|
description = ''
|
|
Whether to enable Soteria, a Polkit authentication agent
|
|
for any desktop environment.
|
|
|
|
::: {.note}
|
|
You should only enable this if you are on a Desktop Environment that
|
|
does not provide a graphical polkit authentication agent, or you are on
|
|
a standalone window manager or Wayland compositor.
|
|
:::
|
|
'';
|
|
};
|
|
package = lib.mkPackageOption pkgs "soteria" { };
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
security.polkit.enable = true;
|
|
environment.systemPackages = [ cfg.package ];
|
|
|
|
systemd.user.services.polkit-soteria = {
|
|
description = "Soteria, Polkit authentication agent for any desktop environment";
|
|
|
|
wantedBy = [ "graphical-session.target" ];
|
|
wants = [ "graphical-session.target" ];
|
|
after = [ "graphical-session.target" ];
|
|
|
|
script = lib.getExe cfg.package;
|
|
serviceConfig = {
|
|
Type = "simple";
|
|
Restart = "on-failure";
|
|
RestartSec = 1;
|
|
TimeoutStopSec = 10;
|
|
};
|
|
};
|
|
};
|
|
|
|
meta.maintainers = with lib.maintainers; [ johnrtitor ];
|
|
}
|