python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / security / fprintd.nix
blob28f9b5908b5365c763a9d03a296902288bf71f30
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 (lib.mdDoc "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 = lib.mdDoc ''
28           fprintd package to use.
29         '';
30       };
32       tod = {
34         enable = mkEnableOption (lib.mdDoc "Touch OEM Drivers library support");
36         driver = mkOption {
37           type = types.package;
38           example = literalExpression "pkgs.libfprint-2-tod1-goodix";
39           description = lib.mdDoc ''
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   };