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.