We have machines running SDDM, the KDE/Plasma display manager. One user prefers Gnome as her desktop environment. There is no problem selecting that session when logging in. The screen however never turns off and goes to power save mode when the session is inactive. Apparently, the Gnome desktop environment requires GDM for full functionality.
Previously she started gnome-screensaver manually after logging in, but that program has been deprecated for a while, and is no longer part of the distribution. We have tried some other screensavers, but they seem to have problems, perhaps because they are made for the X11 environment and not working properly with Wayland. Xscreensaver for example starts drawing its saver screens, but does so even when the user is active! It never seems to enter the power save mode.
Does anyone know a solution for this? Is it possible to have the screen deactivated during inactivity when running a Gnome session but using SDDM as display manager? In our use case the actual locking isn’t important, but the power save mode of the monitor is.
It looks like xset might be a better tool to use from within a graphical environment. There is a hint that it can be used in ACPI event handlers here: acpid - ArchWiki
Also, just running xset in my terminal shows what appear to be some promising options:
usage: xset [-display host:dpy] option ...
To turn bell off:
-b b off b 0
To set bell volume, pitch and duration:
b [vol [pitch [dur]]] b on
To disable bug compatibility mode:
To enable bug compatibility mode:
To turn keyclick off:
-c c off c 0
To set keyclick volume:
c [0-100] c on
To control Energy Star (DPMS) features:
-dpms Energy Star features off
+dpms Energy Star features on
dpms [standby [suspend [off]]]
(also implicitly enables DPMS features)
a timeout value of zero disables the mode
To set the font path:
To restore the default font path:
To have the server reread font databases:
To remove elements from font path:
-fp path[,path...] fp- path[,path...]
To prepend or append elements to font path:
+fp path[,path...] fp+ path[,path...]
To set LED states off or on:
-led [1-32] led off
led [1-32] led on
-led named 'name' led off
led named 'name' led on
To set mouse acceleration and threshold:
m [acc_mult[/acc_div] [thr]] m default
To set pixel colors:
p pixel_value color_name
To turn auto-repeat off or on:
-r [keycode] r off
r [keycode] r on
r rate [delay [rate]]
For screen-saver control:
s [timeout [cycle]] s default s on
s blank s noblank s off
s expose s noexpose
s activate s reset
For status information: q
To print version: -version
If setterm could work, I need help on how to run it. If I just run setterm --blank=2 in a terminal window it complains that the terminal type doesn’t support --blank. That makes sense, since it is talking to the pty. If I add the option --term linux and redirects to the vt < /dev/tty2 > /dev/tty2 there is no complaint, and some escape codes are written according to strace. But it doesn’t seem to have any effect. The --powerdown option is similarly ineffective in graphical mode as far as I can tell.
xset dpms … used to work for this purpose once upon a time, but seems to have gone away with wayland.
mimmi$ xset -q
DPMS (Energy Star):
Server does not have the DPMS Extension
My assumption is that the Xwayland server doesn’t forward these types of instructions, and some kind of Wayland way to activate screen saving is needed.
I guess that some such Wayland screen saving is what Gnome under GDM, and Plasma under SDDM, is doing. But unfortunately not in compatible ways, apparently. Gnome under SDDM doesn’t work. (I haven’t tried Plasma under GDM recently.)
To begin with, I realise I have been bad in saying “thank you” for your attempts to help. I do appreciate your efforts!
gsettings didn’t reveal anything strange, but the pointer to busctl command was a good one! It did succeed in turning off the monitor.
Of course it didn’t activate by just moving the mouse, but after SSH:ing in from another machine and setting the necessary environment vatiables I was also able to turn it on again!
After digging a bit more near your pointers I found the org.gnome.Mutter.IdleMonitor DBus destination where I can see the inactivity time too. With those tools, I should be able to put together some little bash or python script to act as a simple screen saver meeting my needs.