vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / security / fprintd.nix
blob87c3f1f6f9e429a09486a979850c1f851cb95ad2
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
7   cfg = config.services.fprintd;
8   fprintdPkg = if cfg.tod.enable then pkgs.fprintd-tod else pkgs.fprintd;
15   ###### interface
17   options = {
19     services.fprintd = {
21       enable = mkEnableOption "fprintd daemon and PAM module for fingerprint readers handling";
23       package = mkOption {
24         type = types.package;
25         default = fprintdPkg;
26         defaultText = literalExpression "if config.services.fprintd.tod.enable then pkgs.fprintd-tod else pkgs.fprintd";
27         description = ''
28           fprintd package to use.
29         '';
30       };
32       tod = {
34         enable = mkEnableOption "Touch OEM Drivers library support";
36         driver = mkOption {
37           type = types.package;
38           example = literalExpression "pkgs.libfprint-2-tod1-goodix";
39           description = ''
40             Touch OEM Drivers (TOD) package to use.
41           '';
42         };
43       };
44     };
45   };
48   ###### implementation
50   config = mkIf cfg.enable {
52     services.dbus.packages = [ cfg.package ];
54     environment.systemPackages = [ cfg.package ];
56     systemd.packages = [ cfg.package ];
58     systemd.services.fprintd.environment = mkIf cfg.tod.enable {
59       FP_TOD_DRIVERS_DIR = "${cfg.tod.driver}${cfg.tod.driver.driverPath}";
60     };
62   };