# XScreenSaver

Related articles

- DPMS
- Xresources
- List of applications#Screen lockers

XScreenSaver is a screen saver and locker for the X Window System.

## Installation

Install the xscreensaver package.

For an Arch Linux branded experience, install the xscreensaver-arch-logoAUR package.

## Configuration

Most options are configured on a user-by-user basis by running xscreensaver-demo. xscreensaver-demo writes the chosen configuration to `~/.xscreensaver`, discarding any manual modifications to the file. Global options are defined in `/usr/share/X11/app-defaults/XScreenSaver`.

Since at least XScreenSaver 5.22, there is another way to edit XScreenSaver's user configuration, using Xresources. This includes theming support. See [1] for the version 5.22 defaults.

### DPMS and blanking settings

This article or section needs language, wiki syntax or style improvements.

Reason: "overrides DPMS" is vague - xscreensaver does the equivalent of `xset s 0 0`, uses its own timer for the various animations, but sets the DPMS timeout to the values in Display Power Management (Discuss in Talk:XScreenSaver#)

XScreenSaver manages screen blanking and display energy saving (DPMS) independently of X itself and overrides it. To configure the timings for blanking, standby, display poweroff and such, use xscreensaver-demo or edit the configuration file manually, e.g. `~/.xscreensaver`:

    timeout:	1:00:00
    cycle:		0:05:00
    lock:		False
    lockTimeout:	0:00:00
    passwdTimeout:	0:00:30
    fade:		True
    unfade:		False
    fadeSeconds:	0:00:03
    fadeTicks:	20
    dpmsEnabled:	True
    dpmsStandby:	2:00:00
    dpmsSuspend:	2:00:00
    dpmsOff:	4:00:00

DPMS and screen blanking can be disabled by starting xscreensaver-demo and, for the Mode setting, choosing Disable Screen Saver.

Note: If Lock Screen After in xscreensaver-demo is ticked and set to 0 minutes, the screen will be locked immediately upon blanking. If Power Manager Enabled is unticked, DPMS is disabled; it does not mean that XScreenSaver will relinquish control of DPMS settings.

## Usage

Tip: To start XScreenSaver without the splash screen, use the `-no-splash` switch. See `man xscreensaver` for a full list of options.

In the Xfce, LXDE and LXQt environments, XScreenSaver is autostarted automatically if it is available - no further action is required. For other environments, see Autostarting.

To immediately trigger `xscreensaver`, if it is running, and lock the screen, execute the following command:

    $ xscreensaver-command --lock

### Lock on suspend

See Power management#xss-lock. You may want to set XScreenSaver's fade out time to 0.

### User switching from the lock screen

Warning: When switching users using a display manager such as GDM or LightDM, XScreenSaver will not lock the original session - it can be accessed without a password simply by switching TTY's to the session in question. If you are using LightDM, as a workaround, install light-locker and run it alongside XscreenSaver. Alternatively, use a different screen locking program altogether - see List of applications/Security#Screen lockers.

By default, XScreenSaver's New Login button in the lock screen will call `/usr/bin/gdmflexiserver` to switch users. Other display managers than GDM or KDM that support user switching (such as LightDM) require a different command.

Tip: Adding xscreensaver.newLoginCommand: to `~/.Xresources` whilst leaving the argument blank will make the New Login button disappear.

As modifications in `~/.xscreensaver` are discarded by xscreensaver-demo, `~/.Xresources` is used in this section.

#### LXDM

To use LXDM's switching mode:

    xscreensaver.newLoginCommand: lxdm -c USER_SWITCH

#### LightDM

To use LightDM's switching mode:

    xscreensaver.newLoginCommand: dm-tool switch-to-greeter

Note: If you use this to switch to an already-logged-in user, you might have to enter the password twice (once for LightDM, and once for the XScreenSaver dialog of the user you logged in to).

#### KDM

To use KDM's switching mode:

    xscreensaver.newLoginCommand: kdmctl reserve

## Tips and tricks

### Disable during media playback

#### mplayer/mpv

Add the following to `~/.mplayer/config` or `~/.mpv/config`:

    heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &"

#### Kodi

Kodi has no native support to disable XScreenSaver (it uses its own screensaver). Install the kodi-prevent-xscreensaverAUR package as a workaround.

#### Flash

There is no native way to disable XScreenSaver for Flash, but there is script named lightsOn with support for Firefox's Flash plugin, Chromium's Flash plugin, MPlayer, and VLC.

### Animated wallpaper

One can run `xscreensaver` in the background, just like a wallpaper. First, kill any process that is controlling the background (the root window).

Then, locate the desired XScreenSaver executable (typically in `/usr/lib/xscreensaver/`) and run it with the `-root` flag, for example:

    $ /usr/lib/xscreensaver/glslideshow -root &

Note: If xcompmgr causes problems, install the shantz-xwinwrap-bzrAUR package, and run:

    $ xwinwrap -b -fs -sp -fs -nf -ov  -- /usr/lib/xscreensaver/glslideshow -root -window-id WID &

## Troubleshooting

You can configure xscreensaver to write to a log file by creating the logfile `# touch /var/log/xscreensaver.log` and then specifying its X resource logFile.

    ~/.Xresources

    xscreensaver.logFile:/var/log/xscreensaver.log

To log verbose debugging information to the logFile as well start xscreensaver with the `-verbose` command line option, or add this to `~/.Xresources`

    ~/.Xresources

    xscreensaver.logFile:/var/log/xscreensaver.log
    xscreensaver.verbose:true

## See also

- Homepage for XScreenSaver

Category:

- X server

Hidden category:

- Pages or sections flagged with Template:Style