48 lines
1.7 KiB
Nix
48 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;
|
||
|
};
|
||
|
};
|
||
|
services.gnome.gnome-online-accounts.enable = lib.mkForce false;
|
||
|
services.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;
|
||
|
security.pam.services.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
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
security.sudo.extraConfig = ''
|
||
|
Defaults timestamp_timeout=500
|
||
|
Defaults timestamp_type=global
|
||
|
'';
|
||
|
security.pam.services.gdm.enableGnomeKeyring = true;
|
||
|
}
|