Thanks for the starter code. I was able to get fingerprint reader working on Arch/Plasma 6/SDDM using the following guides:
In summary:
# Install necessary packages
pacman -S fprintd
pacman -S pam-fprint-grosshack
# Enroll fingerprint(s)
fprintd-enroll
# Verify
fprintd-verify
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
- #0: right-index-finger
- #1: right-thumb
Verify started!
Verifying: right-index-finger
Verify result: verify-match (done)
Alternatively, use the Users
GUI application, for your local user, to add fingerprint(s). Under Configure Fingerprint Authentication...
At this point, lock screen fingerprint should work for unlocking an existing session:
To get login fingerprint working, update /etc/pam.d/sddm
:
# add to top:
auth [success=1 new_authtok_reqd=1 default=ignore] pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_fprintd.so
Press ENTER at the empty password prompt and touch the fingerprint sensor. You should be able to log in. (There is no GUI feedback)
You can also login via password normally.
To get sudo/su fingerprint working, update /etc/pam.d/sudo
and /etc/pam.d/su
:
# add to top:
# Disallow fingerprint in sudo/su without tty
auth [success=1 default=ignore] pam_succeed_if.so service in sudo:su:su-l tty in :unknown
auth sufficient pam_fprintd.so
Example:
# Fingerprint
02:05 AM:~ $ sudo date
Place your finger on the fingerprint reader
Sat May 3 02:05:27 AM PDT 2025
# Password (ctrl+c)
02:05 AM:~ $ sudo date
Place your finger on the fingerprint reader
^C[sudo] password for kish:
Sat May 3 02:05:44 AM PDT 2025
To get polkit agent fingerprint working:
First:
sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1
Then edit the new file:
auth sufficient pam_fprintd_grosshack.so
auth sufficient pam_unix.so try_first_pass nullok
# Optional, will show UI message below when pressing ENTER on empty passwd
auth sufficient pam_fprintd.so
Example: