XScreenSaver is great. However, building it needs a little meticulous so as not to cause conflict in the system when the screensaver activates. If you want to build the package yourself, follow the instructions below:
1) Package configuration
./configure --prefix=/usr --with-systemd
Run the following installation command, as the
The package has been configured using the
libsystemd library and the compilation process creates an
xscreensaver-systemd helper program. However, the default installation does not copy this program file. Therefore you need to install it manually, as a
cp driver/xscreensaver-systemd /usr/bin/
4) Creating user service
You create the
xscreensaver service as follows, as the
cat > /usr/lib/systemd/user/xscreensaver.service << "EOF"
When the service is run, there will be
xscreensaver-systemd process in addition to
Configuration without using libsystemd
On systems with systemd, XScreenSaver is configured by default to use libsystemd. That means the
--with-systemd option is not needed. However, if you don't want to use libsystemd you need to explicitly configure
./configure --prefix=/usr --without-systemd
Note when using XScreenSaver
XScreenSaver demo programs are programs that draw graphics demos. They are in the directory
Some programs may crash. You can disable them via configuration, for example, disable the
sed -i '/glhanoi/s,^ ,-,' ~/.xscreensaver
You can also do that through the
If there is still a problem, remove all OpenGL display modes of the demo programs that have been marked as GL: by default
sed -i 's,GL:, ,' .xscreensaver
An important configuration item is
Cycle After. That is the life cycle of a demo program. After this time, the process of the current program will be killed and replaced with the new demo program
This value must be set to be less than or equal to and be a divisor of the period from when the screensaver is activated until the screen becomes solid black, ie (
Standby After -
Blank After), otherwise a demo program may run over time and cause the screen section to crash
Off After, the
Suspend After parameter usually doesn't work on laptops. On the contrary, it may trigger screensaver unexpectedly. Set it to its maximum value, which is 1440.
Automatically starting xscreensaver using desktop file
Another way to start automatically xscreensaver is to use a desktop file instead of the xscreensaver service. This approach is appropriate for XFCE because XFCE is an XScreenSaver-aware desktop environment and it needs to manage xscreensaver in its session.
To use the desktop file, create the file
xscreensaver.desktop in the directory /etc/xdg/autostart, as the
cat > /etc/xdg/autostart/xscreensaver.desktop << "EOF"
Comment=Launch screensaver and locker program
xscreensaver.service or xscreensaver.desktop?
Which one to use depends on your preference. If you are not interested in controlling how xscreensaver operates and want it to run safely during a desktop environment session, use the desktop file.
If you want to control xscreensaver running, stopping, even disabling automatic startup without affecting other users, and want screensaver and screen locking activities to be performed exactly, use the systemd service.
So how is the "safety" different?
The difference is mostly at startup time (when logging into the desktop environment). If you run xscreensaver from the desktop file, the desktop environment is ready to run it at the appropriate time.
If you run xscreensaver from the systemd service, in case you set
Blank After to be too small, the screensaver will be activated too soon, leading to the creation of the root window and drawing operation of the demo program may fail.
However, this can be easily overcome by increasing the service's waiting time to restart, for example
Omarine uses the service by default.
Using XScreenSaver in conjunction with the desktop environment's Power Manager program
Because we have
xscreensaver-systemd, before the system goes to sleep it immediately locks the screen. At this point the screensaver is activated as if the user has not touched the mouse or keyboard until
Blank After. However,
Lock Screen After is ignored and the screen is locked immediately. No demo program is run and the screen is turned off.
When the system wakes up, the screensaver is deactivated as if there's user activity. The password dialog will pop up for the user to unlock.
We apply that to the situation of closing the laptop lid, the system goes to sleep and the screen is locked by XScreenSaver, in XFCE.
Applications → Settings → Power Manager menu. In the
Plugged in section, select
Suspend, and then click
Close your laptop lid and enjoy.
Share on Twitter Share on Facebook
Can't see mail in Inbox? Check your Spam folder.