https://bugs.kde.org/show_bug.cgi?id=527491

            Bug ID: 527491
           Summary: kscreenlocker_greet fails to prompt for password, only
                    shows unlock button even if it is set in config file
    Classification: Plasma
           Product: plasmashell
      Version First 6.7.4
       Reported In:
          Platform: Debian testing
                OS: Linux
            Status: REPORTED
          Severity: major
          Priority: NOR
         Component: Screen locking
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: 1.0

STEPS TO REPRODUCE
1. Setup kscreenlocker either through its rc file in ~/.config/ or through
systemsettings
2. Lock screen

OBSERVED RESULT
  Does not ask for a password and only shows Unlock button.

EXPECTED RESULT
  Should ask for a password. 

SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a
terminal window):
KDE Plasma Version: 6.7.4
KDE Frameworks Version: 6.30.0
Qt Version: 6.11.2
Graphics Platform: Wayland
Tested Themes: vanilla/standard Breeze, Oxygen, Debian's Breeze

With the inlined kscreenlockerrc, I'm not getting any password prompts on KDE
Plasma lock screen (tried all the lock methods there are and also via libexec's
--testing).

-- .config/kscreenlockerrc --
[Daemon]
Autolock=true
RequirePassword=true
LockGrace=0
Timeout=15
LockOnResume=true
-- .config/kscreenlockerrc --

Instead, I get just the "unlock" button. (I played around with setting
LockGrace=1. But still, after waiting 5 minutes. The lockscreen will only show
the "unlock" buttton and no prompt.

Running '/usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet --testing'
produced some funny looking errors:
---
Locked at 1792506286
qrc:/qt/qml/org/kde/breeze/components/SessionManagementScreen.qml:160:
TypeError: Cannot read property 'implicitWidth' of undefined
qrc:/qt/qml/org/kde/breeze/components/SessionManagementScreen.qml:160:
TypeError: Cannot read property 'implicitWidth' of undefined
Unlocked
---

And going through KStart -> Session -> Lock yields the following from
journalctl -xe
---
Oct 20 16:29:29 linux kscreenlocker_greet[37859]:
pam_kwallet5(kde-smartcard:auth): pam_kwallet5: pam_sm_authenticate
Oct 20 16:29:29 linux kscreenlocker_greet[37859]:
pam_kwallet5(kde-smartcard:auth): pam_kwallet5: we were already executed
Oct 20 16:29:29 linux kscreenlocker_greet[37859]:
pam_kwallet5(kde-smartcard:setcred): pam_kwallet5: pam_sm_setcred
Oct 20 16:29:29 linux kwin_wayland_wrapper[37859]:
qrc:/qt/qml/org/kde/breeze/components/SessionManagementScreen.qml:160:
TypeError: Cannot read property 'implicitWidth' of undefined
Oct 20 16:29:29 isd-backlinux kwin_wayland_wrapper[37859]:
qrc:/qt/qml/org/kde/breeze/components/SessionManagementScreen.qml:160:
TypeError: Cannot read property 'implicitWidth' of undefined
Oct 20 16:29:29 isd-backlinux kscreenlocker_greet[37859]:
pam_kwallet5(kde-fingerprint:auth): pam_kwallet5: pam_sm_authenticate
Oct 20 16:29:29 linux kscreenlocker_greet[37859]:
pam_kwallet5(kde-fingerprint:auth): pam_kwallet5: we were already executed
---

--- nsswitch.conf ---
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files
group:          files
shadow:         files
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
--- 

Stumped, I asked AI for "stupid ideas", it suggested deleting
/usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/NoPasswordUnlock.qml
. While this "worked" on first glance and the lockscreen showed the password
prompt, a bad/empty password just causes the prompt to shake a bit like but let
anyone in anyways. 


Intrigued I pressed on, restored the deleted NoPasswordUnlock.qml and did the
following changes to LockScreenUi.qml in the same directory:

--- LockScreenUi.qml.orig       2026-10-20 17:28:28.448228211 +0200
+++ LockScreenUi.qml    2026-10-20 17:25:07.809642544 +0200
@@ -48,7 +48,7 @@ Item {

             const msg = i18ndc("plasma_shell_org.kde.plasma.desktop",
"@info:status", "Unlocking failed");
             lockScreenUi.handleMessage(msg);
-            graceLockTimer.restart();
+//          graceLockTimer.restart();
             notificationRemoveTimer.restart();
             rejectPasswordAnimation.start();
         }
@@ -57,12 +57,12 @@ Item {
             if (authenticator.hadPrompt) {
                 Qt.quit();
             } else {
-                mainStack.replace(null,
Qt.resolvedUrl("NoPasswordUnlock.qml"),
+                /*mainStack.replace(null,
Qt.resolvedUrl("NoPasswordUnlock.qml"),
                     {
                         userListModel: users
                     },
                     StackView.Immediate,
-                );
+                ); */
                 mainStack.forceActiveFocus();
             }
         }
---
with this, I get the password prompt. If I enter the right password, the
lockscreen unlocks and I'm back in my session. And if I enter the wrong
password/bad password/emtpy the prompt shakes and shows the "failed message" as
before but it's now "stuck". You now have to press the "switch user" button,
which switches to sddm's main login screen on other vt and there more attempt
can be made.

I have no idea what up with reaming the graceLockTimer to let one "pass"
regardless if the password is correct or not. Nor what's wrong with the
mainStack.replace. Anyone has any insight? I'm also open for experiments
(though, I can only run this from Monday to Wednesday during normal business
hours)

Cheers
Christian Lamparter

PS.: While the severity is set to "major". I'm not in a rush to have a fix,
since that janky solution prevents unauthorized access until this is fixed
again.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to