2024-03-28 16:13:46 -04:00
|
|
|
{ pkgs, lib, config, ... }: {
|
|
|
|
|
|
|
|
options = {
|
2024-04-05 16:43:19 -04:00
|
|
|
desktopConfig.desktopEnvironments.gnome.fprintdFix.enable =
|
|
|
|
lib.mkEnableOption
|
2024-03-28 16:40:23 -04:00
|
|
|
"Fixes fprintd and pam issues with GNOME Display Manager.";
|
2024-03-28 16:13:46 -04:00
|
|
|
};
|
|
|
|
|
2024-04-05 16:43:19 -04:00
|
|
|
config =
|
|
|
|
lib.mkIf config.desktopConfig.desktopEnvironments.gnome.fprintdFix.enable {
|
|
|
|
# Need to change the order pam loads its modules
|
|
|
|
# to get proper fingerprint behavior on GDM and the lockscreen.
|
|
|
|
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
|
2024-03-28 16:13:46 -04:00
|
|
|
|
2024-04-05 16:43:19 -04:00
|
|
|
account include login
|
2024-03-28 16:13:46 -04:00
|
|
|
|
2024-04-05 16:43:19 -04:00
|
|
|
password required pam_deny.so
|
2024-03-28 16:13:46 -04:00
|
|
|
|
2024-04-05 16:43:19 -04:00
|
|
|
session include login
|
|
|
|
session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
2024-03-28 16:40:23 -04:00
|
|
|
}
|