UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

185 lines (115 loc) 8.42 kB
Related articles * [DPMS](/index.php/DPMS "DPMS") * [Xresources](/index.php/Xresources "Xresources") * [List of applications#Screen lockers](/index.php/List_of_applications#Screen_lockers "List of applications") [XScreenSaver](https://www.jwz.org/xscreensaver/) is a screen saver and locker for the X Window System. ## Contents * [1 Installation](#Installation) * [2 Configuration](#Configuration) * [2.1 DPMS and blanking settings](#DPMS_and_blanking_settings) * [3 Usage](#Usage) * [3.1 Lock on suspend](#Lock_on_suspend) * [3.2 User switching from the lock screen](#User_switching_from_the_lock_screen) * [3.2.1 LXDM](#LXDM) * [3.2.2 LightDM](#LightDM) * [4 Tips and tricks](#Tips_and_tricks) * [4.1 Disable during media playback](#Disable_during_media_playback) * [4.1.1 mpv](#mpv) * [4.1.2 mplayer](#mplayer) * [4.1.3 Kodi](#Kodi) * [4.1.4 Browser HTML5 video/Flash](#Browser_HTML5_video.2FFlash) * [4.2 Animated wallpaper](#Animated_wallpaper) * [5 Troubleshooting](#Troubleshooting) * [6 See also](#See_also) ## Installation [Install](/index.php/Install "Install") the [xscreensaver](https://www.archlinux.org/packages/?name=xscreensaver) package. For an Arch Linux branded experience, install the [xscreensaver-arch-logo](https://aur.archlinux.org/packages/xscreensaver-arch-logo/) 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](/index.php/Xresources "Xresources"). This includes theming support. See [[1]](https://gist.github.com/anonymous/682d8daf5631b588e12e) for the version 5.22 defaults. ### DPMS and blanking settings XScreenSaver manages screen blanking and display energy saving ([DPMS](/index.php/DPMS "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 [xscreensaver(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/xscreensaver.1) for a full list of options. In the [Xfce](/index.php/Xfce "Xfce"), [LXDE](/index.php/LXDE "LXDE") and [LXQt](/index.php/LXQt "LXQt") environments, XScreenSaver is autostarted automatically if it is available - no further action is required. For other environments, see [Autostarting](/index.php/Autostarting "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](/index.php/Power_management#xss-lock "Power management"). 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](https://www.archlinux.org/packages/?name=light-locker) and run it alongside XscreenSaver. Alternatively, use a different screen locking program altogether - see [List of applications/Security#Screen lockers](/index.php/List_of_applications/Security#Screen_lockers "List of applications/Security"). By default, XScreenSaver's *New Login* button in the lock screen will call `/usr/bin/gdmflexiserver` to switch users. Other [display managers](/index.php/Display_manager "Display manager") than [GDM](/index.php/GDM "GDM") or KDM that support user switching (such as [LightDM](/index.php/LightDM "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](#Configuration) 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](/index.php/LightDM "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). ## Tips and tricks ### Disable during media playback #### mpv By default [mpv](/index.php/Mpv "Mpv") turns off the screensaver at startup and turns it on again on exit. The screensaver is always re-enabled when the player is paused. The option can be controlled in mpv's config file located in `~/.config/mpv/mpv.conf`: ``` stop-screensaver = "yes" ``` This is not supported on all video outputs or platforms. If you face some issues you might use the `heartbeat-cmd` which runs a command every 30 seconds (by default). The following can be added in the config file: ``` heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &" ``` #### mplayer Add the following to `~/.mplayer/config`: ``` heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &" ``` #### Kodi [Kodi](/index.php/Kodi "Kodi") has no native support to disable XScreenSaver (it uses its own screensaver). [Install](/index.php/Install "Install") the [kodi-prevent-xscreensaver](https://aur.archlinux.org/packages/kodi-prevent-xscreensaver/) package as a workaround. #### Browser HTML5 video/Flash There is no native way to disable XScreenSaver for [Flash](/index.php/Flash "Flash") or HTML5 fullscreen video, but there is a script named [lightsonplus](https://github.com/devkral/lightsonplus) with support for Firefox's Flash plugin, Chromium's Flash plugin, HTML5 fullscreen video in Firefox and Chromium, MPlayer, and VLC. Another script based solution would be [firefox-dpms-git](https://aur.archlinux.org/packages/firefox-dpms-git/) which makes use of PulseAudio output detection of Firefox and thus also works in windowed mode (but not without audio playback). ### 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](/index.php/Xcompmgr "Xcompmgr") causes problems, [install](/index.php/Install "Install") the [shantz-xwinwrap-bzr](https://aur.archlinux.org/packages/shantz-xwinwrap-bzr/) 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](http://www.jwz.org/xscreensaver/)