1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.programs.k40-whisperer;
10 pkg = cfg.package.override {
11 udevGroup = cfg.group;
12 };
13in
14{
15 options.programs.k40-whisperer = {
16 enable = lib.mkEnableOption "K40-Whisperer";
17
18 group = lib.mkOption {
19 type = lib.types.str;
20 description = ''
21 Group assigned to the device when connected.
22 '';
23 default = "k40";
24 };
25
26 package = lib.mkPackageOption pkgs "k40-whisperer" { };
27 };
28
29 config = lib.mkIf cfg.enable {
30 users.groups.${cfg.group} = { };
31
32 environment.systemPackages = [ pkg ];
33 services.udev.packages = [ pkg ];
34 };
35}