The xscreensaver-systemd program is a helper daemon launched by xscreensaver(1) for systemd(1) or elogind(8) integration. It does two things:
- When the system is about to go to sleep (e.g., the laptop lid has just been closed) it locks the screen just before the system sleeps, by running xscreensaver-command --suspend. When the system wakes up again, it runs xscreensaver-command --deactivate to make the unlock dialog appear immediately. It does this through the org.freedesktop.login1(5) D-Bus interface.
- When another process asks for the screen saver to be inhibited (e.g. because a video is playing) this program periodically runs xscreensaver-command --deactivate to keep the display un-blanked. It does this until that other program asks for it to stop, or exits. It does this through the org.freedesktop.ScreenSaver(5), org.gnome.SessionManager(5) and org.kde.Solid.PowerManagement.PolicyAgent(5) D-Bus interfaces.
Blanking-related problems take two forms: failing to connect to D-Bus; and other programs requesting stupid things.
Only one program at a time can register with systemd(1) or elogind(8) for screen-saver-related events, so if another screen saver is running as a part of the desktop environment, xscreensaver-systemd will be unable to launch. This program has workarounds for Gnome and KDE, but if you are using something else, that might be a problem.
Chrome & Chromium (101.0)
- Playing only audio in Chrome will prevent your screen from blanking. Chrome sends the exact same "inhibit" reason for audio as for video, so we can't tell them apart.
Chrome prevents your screen from blanking when playing short, looping videos. This means that your screen won't blank when Chrome is showing a Twitter page (because those animated GIFs aren't really GIFs, they are MP4s). This affects Tweetdeck as well.
The proper way to fix this would be for Chrome to stop inhibiting once a video loops. That way your multi-hour movie inhibits properly, but your looping GIF only inhibits for the first few seconds.
Firefox does not have either of these problems.
Makes no attempt to inhibit the screen saver. Use VLC or MPV instead.
Most programs fail to inhibit screen blanking if they crash or are killed while playing. We try to detect when this has happened and auto-uninhibit, but that might not work with all versions of systemd, resulting in blanking remaining permanently inhibited. If that happens, killing and restarting xscreensaver-systemd is a workaround.
X(1), xscreensaver(1), xscreensaver-settings(1), xscreensaver-command(1), systemd(1), sd-bus(3), elogind(8)
Copyright © 2019-2022 by Martin Lucina and Jamie Zawinski. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
The software is provided "as is" and the author disclaims all warranties with regard to this software including all implied warranties of merchantability and fitness. in no event shall the author be liable for any special, direct, indirect, or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software.
Martin Lucina <email@example.com>, 4-Jun-2019
xscreensaver(1), xscreensaver-auth(6), xscreensaver-gfx(6).