nerdfonts: fix wrong attribute name in error message (#364463)
[NixPkgs.git] / nixos / modules / hardware / video / uvcvideo / default.nix
blob0b8d70dcbc0b1a16e3886df5d5a2270e4e19a6cc
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
7 let
9   cfg = config.services.uvcvideo;
11   uvcdynctrl-udev-rules =
12     packages:
13     pkgs.callPackage ./uvcdynctrl-udev-rules.nix {
14       drivers = packages;
15       udevDebug = false;
16     };
22   options = {
23     services.uvcvideo.dynctrl = {
25       enable = lib.mkOption {
26         type = lib.types.bool;
27         default = false;
28         description = ''
29           Whether to enable {command}`uvcvideo` dynamic controls.
31           Note that enabling this brings the {command}`uvcdynctrl` tool
32           into your environment and register all dynamic controls from
33           specified {command}`packages` to the {command}`uvcvideo` driver.
34         '';
35       };
37       packages = lib.mkOption {
38         type = lib.types.listOf lib.types.path;
39         example = lib.literalExpression "[ pkgs.tiscamera ]";
40         description = ''
41           List of packages containing {command}`uvcvideo` dynamic controls
42           rules. All files found in
43           {file}`«pkg»/share/uvcdynctrl/data`
44           will be included.
46           Note that these will serve as input to the {command}`libwebcam`
47           package which through its own {command}`udev` rule will register
48           the dynamic controls from specified packages to the {command}`uvcvideo`
49           driver.
50         '';
51         apply = map lib.getBin;
52       };
53     };
54   };
56   config = lib.mkIf cfg.dynctrl.enable {
58     services.udev.packages = [
59       (uvcdynctrl-udev-rules cfg.dynctrl.packages)
60     ];
62     environment.systemPackages = [
63       pkgs.libwebcam
64     ];
66   };