1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.programs.soundmodem;
10in
11{
12 options = {
13 programs.soundmodem = {
14 enable = lib.mkOption {
15 type = lib.types.bool;
16 default = false;
17 description = ''
18 Whether to add Soundmodem to the global environment and configure a
19 wrapper for 'soundmodemconfig' for users in the 'soundmodem' group.
20 '';
21 };
22 package = lib.mkPackageOption pkgs "soundmodem" { };
23 };
24 };
25
26 config = lib.mkIf cfg.enable {
27 environment.systemPackages = [ cfg.package ];
28 users.groups.soundmodem = { };
29
30 security.wrappers.soundmodemconfig = {
31 source = "${cfg.package}/bin/soundmodemconfig";
32 owner = "root";
33 group = "soundmodem";
34 permissions = "u+rx,g+x";
35 };
36 };
37}