From 95e43a9599d37893467fe1ae4165ff9a988b4173 Mon Sep 17 00:00:00 2001 From: demesm Date: Thu, 30 Jul 2026 16:45:44 -0500 Subject: [PATCH 1/2] Fix sequential PAM prompt handling --- src/greeter.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/greeter.rs b/src/greeter.rs index e10dc3b..c170fcb 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -1188,6 +1188,12 @@ impl cosmic::Application for App { fn update(&mut self, message: Self::Message) -> Task { match message { Message::Common(common_message) => { + if matches!(&common_message, common::Message::Prompt(_, _, Some(_))) + && self.authenticating + { + self.authenticating = false; + self.common.prompt_opt = None; + } // In greetd's IPC protocol, the greeter must acknowledge auth messages by // sending PostAuthMessageResponse. For non-interactive "info" messages // (fingerprint prompts typically come through here), the correct response From 0f9958209ca10f1e9ad33cb2d16f7025e2e13a95 Mon Sep 17 00:00:00 2001 From: demesm Date: Thu, 30 Jul 2026 16:45:44 -0500 Subject: [PATCH 2/2] Handle sequential PAM prompts in locker --- src/locker.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/locker.rs b/src/locker.rs index 5bf0569..ba9e8ab 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -704,6 +704,12 @@ impl cosmic::Application for App { match message { Message::None => {} Message::Common(common_message) => { + if matches!(&common_message, common::Message::Prompt(_, _, Some(_))) + && self.authenticating + { + self.authenticating = false; + self.common.prompt_opt = None; + } return self.common.update(common_message); } Message::OutputEvent(output_event, output) => {