1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.programs.slock;
10
11in
12{
13 options = {
14 programs.slock = {
15 enable = lib.mkOption {
16 default = false;
17 type = lib.types.bool;
18 description = ''
19 Whether to install slock screen locker with setuid wrapper.
20 '';
21 };
22 package = lib.mkPackageOption pkgs "slock" { };
23 };
24 };
25
26 config = lib.mkIf cfg.enable {
27 environment.systemPackages = [ cfg.package ];
28 security.wrappers.slock = {
29 setuid = true;
30 owner = "root";
31 group = "root";
32 source = lib.getExe cfg.package;
33 };
34 };
35}