flakes/nixos/system/desktop/fingerprint.nix
Chinmay D. Pai b14c62da0e
feat: migrate to new flake structure for modularity
coolcoolcool

Signed-off-by: Chinmay D. Pai <chinmay.pai@zerodha.com>
2023-12-08 10:08:21 +05:30

54 lines
1.7 KiB
Nix

{
config,
lib,
pkgs,
...
}: {
# Enable fingerprint using fprintd
services = {
fprintd = {
enable = true;
package = pkgs.fprintd-tod;
tod = {
enable = true;
driver = pkgs.libfprint-2-tod1-vfs0090;
};
};
gnome.gnome-online-accounts.enable = lib.mkForce false;
gnome.gnome-keyring.enable = lib.mkForce false;
};
# PAM login hacks to allow password + fingerprint login
# ref: https://github.com/NixOS/nixpkgs/issues/171136#issuecomment-1627779037
security = {
pam.services = {
login.fprintAuth = false;
gdm.enableGnomeKeyring = true;
gdm-fingerprint = lib.mkIf config.services.fprintd.enable {
text = ''
auth required pam_shells.so
auth requisite pam_nologin.so
auth requisite pam_faillock.so preauth
auth required ${pkgs.fprintd}/lib/security/pam_fprintd.so
auth optional pam_permit.so
auth required pam_env.so
auth [success=ok default=1] ${pkgs.gnome.gdm}/lib/security/pam_gdm.so
auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so
account include login
password required pam_deny.so
session include login
session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
'';
};
};
sudo.extraConfig = ''
Defaults timestamp_timeout=500
Defaults timestamp_type=global
'';
};
}