Screens never turn off on Plasma Wayland greeter and after first lock — workaround

Danilo Falcão danilo at falcao.org
Sun Apr 12 00:15:14 BST 2026


Hi everyone,

I'm running Plasma 6 on Wayland across several machines and encountered 
two related issues where screens never turn off, which is particularly 
damaging for OLED displays.

Issue 1: No DPMS at the plasmalogin greeter

When the machine boots to the plasmalogin login screen, there is no idle 
timeout at all. The display stays on indefinitely at the greeter, 
waiting for the user to log in. For machines that sit at the login 
screen for long periods, this means permanent burn-in risk on OLEDs.

Issue 2: DPMS and screen lock broken after first lock

Once a user session is active, after the first screen lock, DPMS stops 
working entirely. The locker activates but the display never turns off. 
Subsequent locks also fail to trigger any screen-off. Additionally, the 
lock timeout itself breaks — the screen stays on forever instead of 
locking after the configured idle period.

Root causes I found:

- org.freedesktop.ScreenSaver.GetSessionIdleTime always returns 0 on Wayland
- org.freedesktop.login1.Session IdleHint is never set by Plasma
- The KWin ScreenSaver DBus interface (/ScreenSaver) is not available on 
the greeter session, so there's no way to detect or trigger lock/DPMS at 
the login screen
- After the first lock, PowerDevil's DPMS pipeline stops functioning 
entirely

Workaround:

I wrote a small system daemon called kidle that works around both issues:

- Monitors /dev/input devices directly for idle activity (no dependency 
on broken Plasma idle APIs)
- On the greeter screen: uses loginctl lock-sessions for locking and 
kscreen-doctor --dpms off for screen-off, with env vars 
(DBUS_SESSION_BUS_ADDRESS, WAYLAND_DISPLAY, XDG_RUNTIME_DIR, 
QT_QPA_PLATFORM=wayland) pointing at the greeter's session
- On user sessions: listens to KWin's ActiveChanged signal to detect 
when the locker activates, then forces kscreen-doctor --dpms off
- Falls back to loginctl lock-sessions when KWin ScreenSaver isn't reachable
- Runs as a system service, auto-discovers the active session, and steps 
back when PowerDevil should handle screen-on

Source: https://github.com/danilofalcao/kidle

Happy to help test any patches.

Best regards,
Danilo



More information about the kde-devel mailing list