Skip to content

feat(lockscreen): add fprintd fingerprint authentication#137

Open
LordHerdier wants to merge 4 commits intoAxenide:mainfrom
LordHerdier:feat/fprintd
Open

feat(lockscreen): add fprintd fingerprint authentication#137
LordHerdier wants to merge 4 commits intoAxenide:mainfrom
LordHerdier:feat/fprintd

Conversation

@LordHerdier
Copy link
Copy Markdown

Adds fingerprint authentication to the lockscreen via fprintd, as an automatic companion to the existing PAM password flow.

What this does

  • On lock, runs fprintd-list to check whether the current user has any enrolled fingers. If so, fprintd-verify is started automatically in the background.
  • If the fingerprint matches, the lockscreen unlocks via the same animation/timer path as a successful password.
  • If the user submits a password instead, the fingerprint scan is cancelled for the duration of that attempt, then restarted on failure.
  • On success or if fprintd is not available, everything falls back gracefully — no changes to the PAM config or existing password flow.

UI

  • The existing user icon in the password field switches to the Phosphor fingerprint glyph (U+E23E) while scanning, with a slow breathing pulse animation.
  • The animation and icon only appear when fprintd is running and the user has at least one enrolled finger — devices without fingerprint support see no difference.

Testing

Tested on NixOS with a Goodix reader. It should work for any fprintd-supported reader since it uses the standard fprintd-verify / fprintd-list CLI.

Notes

Happy to change anything here — the animation timing, icon placement, behaviour on scan failure, etc. Would love feedback on whether the approach fits the project's conventions. This is my first contribution so please don't hesitate to point out anything that should be done differently!

@Axenide
Copy link
Copy Markdown
Owner

Axenide commented Mar 28, 2026

UI changes should have some screenshot or recording please :D

@LordHerdier
Copy link
Copy Markdown
Author

Sure!

fingerprint.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants