Skip to content

feat(greeter): auto-start external auth for howdy face recognition - #3128

Open
yuhaoxin wants to merge 1 commit into
AvengeMedia:stablefrom
yuhaoxin:greeter-howdy-auth
Open

feat(greeter): auto-start external auth for howdy face recognition#3128
yuhaoxin wants to merge 1 commit into
AvengeMedia:stablefrom
yuhaoxin:greeter-howdy-auth

Conversation

@yuhaoxin

Copy link
Copy Markdown

Problem

The greeter auto-starts PAM external authentication (via maybeAutoStartExternalAuth) only for fingerprint (pam_fprintd) and security keys (pam_u2f). When howdy face recognition (pam_howdy.so) is in the greetd PAM stack, the camera stays off until the user presses Enter once — defeating the purpose of face login.

Change

Treat pam_howdy like the other external auth modules:

  • greeterPamHasHowdy detects pam_howdy in the effective PAM stack (reusing greeterPamStackHasModule)
  • Included in greeterExternalAuthAvailable / greeterPamHasExternalAuth, so maybeAutoStartExternalAuth() fires and the camera activates as soon as the password view is shown
  • Status message "Awaiting face authentication" while howdy runs

No settings toggle is added: presence of pam_howdy.so in the PAM stack is an explicit admin choice, same as the module ordering. Unlike fprint, howdy has no D-Bus probe equivalent, so PAM-stack detection is authoritative (howdy exits quickly with PAM_AUTHINFO_UNAVAIL when disabled via its own config).

Testing

  • Arch Linux, greetd + niri, howdy-next 3.4.0 (pam_howdy.so), auth sufficient pam_howdy.so in /etc/pam.d/greetd
  • Before: camera only activated after pressing Enter
  • After: camera LED turns on automatically when the password view appears; face match completes login without keyboard input; password entry still works as fallback; qmllint clean

The greeter only auto-starts PAM external authentication for fprint and
U2F. With howdy (pam_howdy.so) in the greetd PAM stack, the user must
press Enter once before the camera activates.

Detect pam_howdy in the PAM stack like pam_fprintd/pam_u2f, include it
in greeterExternalAuthAvailable/greeterPamHasExternalAuth, and show a
matching status message. Presence in the PAM stack implies intent, so no
settings toggle is added.
@bbedward

Copy link
Copy Markdown
Collaborator

I'm ok to merge this to the stable branch, but it needs to go to the dank-greeter repo since 1.6+ will be using that one https://github.com/AvengeMedia/dank-greeter

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