this post was submitted on 28 Mar 2026
25 points (96.3% liked)

Linux

13047 readers
210 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
 

Hi everyone, I’m running KDE Plasma 6 with Wayland and I’m trying to find a way to turn on the screen programmatically via the command line. In X11, I could use xset dpms force on, but this doesn’t work in Wayland due to its security model. Has anyone found a reliable method to wake or turn on the screen from the command line in a Wayland session? I’m aware of the security and architectural reasons behind this limitation, but I’m curious if there are any workarounds, compositor-specific DBus calls, or third-party tools that might help. What I’ve tried so far: xset dpms force on (fails, as expected)

Simulating keyboard input with wtype/ydotool (unreliable)

Checking KWin’s DBus interface (no obvious method exposed)

Context: I’m automating some tasks and would like to avoid switching back to X11 just for this feature. Any insights, scripts, or suggestions would be greatly appreciated! Thanks in advance for your help.

top 9 comments
sorted by: hot top controversial new old
[–] Hominine@lemmy.world 6 points 4 days ago* (last edited 4 days ago)

screen_off = "qdbus org.kde.kglobalaccel /component/org_kde_powerdevil invokeShortcut 'Turn Off Screen'" I use this on deck and the following on desktop where the monitors automatically shut off: "kscreen-doctor output.DP-2.disable" hope it helps!

[–] gartheom@lemmy.world 2 points 3 days ago (1 children)

I use this in a cronjob to turn a raspberry pi screen off at night and back on in the morning:

wlr-randr --output "HDMI-A-1" --off

wlr-randr --output "HDMI-A-1" --on

I've also go this environment variable set but I don't know if it is needed outside of cron:

XDG_RUNTIME_DIR=/run/user/1000

[–] blackbeard 1 points 1 day ago

Thank you for sharing your setup. Your solution using wlr-randr in a cron job is indeed useful for wlroots-based compositors (such as Sway, Hyprland, or labwc), where the wlr-output-management protocol is supported.

For those (like me) encountering the error 'compositor doesn’t support wlr-output-management-unstable-v1', this indicates that the compositor in use (e.g., KDE/KWin, GNOME/Mutter, or other non-wlroots compositors) does not support wlr-randr. In such cases, alternatives should be considered.

I will be post my findings, I can't believe I'm the only or just one of the few looking to archive this in a laptop..

[–] minfapper@piefed.social 2 points 3 days ago (1 children)

I think it's something like

kscreen-doctor --dpms off  

works the same as xset dpms

[–] blackbeard 1 points 21 hours ago* (last edited 21 hours ago)

This works!

Key Commands

  1. List Connected Displays To see all connected outputs and their status:

kscreen-doctor -o

Example output:

Output: 1 eDP-1
        enabled
        connected
        Modes: 1:2560x1600@60.00*!

This helps identify your display names (e.g., eDP-1 or HDMI-A-1).

  1. Turn Off All Displays (DPMS) To put all displays into low-power mode:

kscreen-doctor --dpms off

Uses DPMS (Display Power Management Signaling) to turn off displays safely.

  1. Turn On All Displays To wake all displays:

kscreen-doctor --dpms on

  1. Disable/Enable a Specific Output To control a specific display (e.g., HDMI-A-1):
kscreen-doctor output.HDMI-A-1.disable
kscreen-doctor output.HDMI-A-1.enable

Note: Avoid disabling your primary/laptop panel (e.g., eDP-1) unless you have another display connected.

  1. Bonus: Adjust Brightness or Scale
kscreen-doctor output.eDP-1.brightness.50  # 0-100
kscreen-doctor output.eDP-1.scale.1.5     # Scale factor
[–] frongt@lemmy.zip 1 points 3 days ago

Like the monitor has gone to sleep? Maybe ddcutil?

Probablyrtcwake