1XScreenSaver(1) General Commands Manual XScreenSaver(1)
2
3
4
6 xscreensaver - extensible screen saver and screen locking framework
7
9 xscreensaver [--display host:display.screen] [--verbose] [--no-splash]
10 [--log filename]
11
13 XScreenSaver waits until the user is idle, and then runs graphics demos
14 chosen at random. It can also lock your screen, and provides configu‐
15 ration and control of display power management.
16
17 XScreenSaver is also available on macOS, iOS and Android.
18
20 XScreenSaver is a daemon that runs in the background. You configure it
21 with the xscreensaver-settings(1) program.
22
23 xscreensaver &
24 xscreensaver-settings
25
26
27
29 When it is time to activate the screensaver, a full-screen black window
30 is created that covers each monitor. A sub-process is launched for
31 each one running a graphics demo, pointed at the appropriate window.
32 Because of this, any program which can draw on a provided window can be
33 used as a screensaver. The various graphics demos are, in fact, just
34 standalone programs that do that.
35
36 When the user becomes active again, the screensaver windows are un‐
37 mapped, and the running subprocesses are killed.
38
39 The display modes are run at a low process priority, and spend most of
40 their time sleeping/idle by default, so they should not consume signif‐
41 icant system resources.
42
43
45 --display host:display.screen
46 The X display to use. For displays with multiple screens,
47 XScreenSaver will manage all screens on the display simultane‐
48 ously.
49
50 --verbose
51 Print diagnostics to stderr.
52
53 --log filename
54 Append all diagnostic output to the given file. This also im‐
55 plies --verbose. Use this when reporting bugs.
56
57 --no-splash
58 Don't display the splash screen at startup.
59
60
62 The xscreensaver-settings(1) program is where you configure if and when
63 your monitor should power off. It saves the settings in your
64 ~/.xscreensaver file.
65
66 If the power management section is grayed out in the xscreensaver-set‐
67 tings(1) window, then that means that your X server does not support
68 the XDPMS extension, and so control over the monitor's power state is
69 not available.
70
71 When the monitor is powered down, the display hacks are stopped (though
72 it may take a minute or two for XScreenSaver to notice).
73
74 Note: if you use xset(1) to change the power management settings,
75 XScreenSaver will override those changes. Whatever is in the
76 ~/.xscreensaver file takes precedence.
77
78
80 If your system has systemd(1) 221 or newer, or elogind(8), then closing
81 the lid of your laptop will cause the screen to lock immediately.
82
83 If not, then the screen might not lock until a few seconds after you
84 re-open the lid. Which is less than ideal. So if you don't use sys‐
85 temd, you might want to get in the habit of doing xscreensaver-command
86 --lock before closing the lid.
87
88
90 Likewise, if you have systemd(1) 221 or newer, or elogind(8), then all
91 of the popular video players and web browsers will prevent XScreenSaver
92 from blanking the screen while video is playing.
93
94 Both of these features require that xscreensaver-systemd(6) be able
95 connect to the systemd bus. Parts of KDE and GNOME may need to be dis‐
96 abled first for that to work; see below.
97
98
100 Each desktop environment has its own system for launching long-running
101 daemons like XScreenSaver, and since many of them come bundled with
102 their own (buggy, insecure, inferior) screen-locking frameworks, it is
103 also necessary to disable those other frameworks before XScreenSaver
104 can work.
105
106
107 INSTALLING XSCREENSAVER ON GNOME OR UNITY
108 For many years, GNOME shipped XScreenSaver as-is, and everything just
109 worked. In 2005, however, they decided to needlessly re-invent the
110 wheel and ship their own replacement for the xscreensaver daemon called
111 gnome-screensaver(1) rather than improving XScreenSaver and contribut‐
112 ing their changes back. As a result, the gnome-screensaver program is
113 insecure, bug-ridden, and missing many features of XScreenSaver. In
114 fact, in 2011 it lost the ability to run display modes at all.
115
116 In 2012 some distros forked and renamed it as both mate-screensaver(1)
117 and cinnamon-screensaver(1), which seem to be basically the same.
118
119 To replace gnome-screensaver with XScreenSaver:
120
121 1: Fully uninstall the other screen saver packages:
122
123 sudo apt-get remove gnome-screensaver
124 sudo apt-get remove mate-screensaver
125 sudo apt-get remove cinnamon-screensaver
126 or
127 sudo rpm -e gnome-screensaver
128 sudo rpm -e mate-screensaver
129 sudo rpm -e cinnamon-screensaver
130
131 Be careful that it doesn't try to uninstall all of GNOME.
132
133
134 2: Launch XScreenSaver at login.
135
136 Select "Startup Applications" from the menu (or manually launch
137 "gnome-session-properties") and add "xscreensaver". Do this as
138 your normal user account, not as root.
139
140 3: Make GNOME's "Lock Screen" use XScreenSaver.
141
142 sudo ln -sf /usr/bin/xscreensaver-command \
143 /usr/bin/gnome-screensaver-command
144
145
146 4: Turn off Unity's built-in blanking.
147
148 Open "System Settings / Brightness & Lock";
149 Un-check "Start Automatically";
150 Set "Turn screen off when inactive for" to "Never".
151
152 Or possibly that has been randomly renamed again:
153 Set "Settings / Power / Power Settings" to "Never".
154
155 5: Stop GNOME from blocking XScreenSaver's "systemd" integration:
156
157 sudo systemctl --user mask gsd-screensaver-proxy.service
158 sudo systemctl --user mask \
159 org.gnome.SettingsDaemon.ScreensaverProxy.service
160
161 Without the above, video players will not be able to tell
162 XScreenSaver not to blank the screen while videos are playing,
163 and the screen will not auto-lock when you close your laptop's
164 lid.
165
166 After running those commands, reboot. Yes, you have to reboot;
167 it won't let you simply stop the service. Logging out won't do
168 it either.
169
170
171 INSTALLING XSCREENSAVER ON KDE
172 Like GNOME, KDE also decided to invent their own screen saver framework
173 from scratch instead of simply using XScreenSaver. To replace the KDE
174 screen saver with XScreenSaver, do the following:
175
176 1: Turn off KDE's screen saver.
177 Open the "Control Center" and select the "Appearance & Themes /
178 Screensaver" page. Un-check "Start Automatically".
179
180 Or possibly: Open "System Settings" and select "Screen Locking".
181 Un-check "Lock Screen Automatically".
182
183 2: Find your Autostart directory.
184 Open the "System Administration / Paths" page, and see what your
185 "Autostart path" is set to: it will probably be something like
186 ~/.kde/Autostart/ or ~/.config/autostart/
187
188 If that doesn't work, then try this:
189
190 Open "System Settings / Startup/Shutdown / Autostart", and then
191 add "/usr/bin/xscreensaver".
192
193 If you are lucky, that will create an "xscreensaver.desktop"
194 file for you in ~/.config/autostart/ or ~/.kde/Autostart/.
195
196 3: Make XScreenSaver be an Autostart program.
197 If it does not already exist, create a file in your autostart
198 directory called xscreensaver.desktop that contains the follow‐
199 ing six lines:
200
201 [Desktop Entry]
202 Exec=xscreensaver
203 Name=XScreenSaver
204 Type=Application
205 StartupNotify=false
206 X-KDE-StartupNotify=false
207
208
209 4: Make the various "lock session" buttons call XScreenSaver.
210 The file you want to replace next has moved around over the
211 years. It might be called /usr/libexec/kde4/kscreenlocker, or it
212 might be called "kdesktop_lock" or "krunner_lock" or "kscreen‐
213 locker_greet", and it might be in /usr/lib/kde4/libexec/ or in
214 /usr/kde/3.5/bin/ or even in /usr/bin/, depending on the distro
215 and phase of the moon. Replace the contents of that file with
216 these two lines:
217
218 #!/bin/sh
219 xscreensaver-command --lock
220
221 Make sure the file is executable (chmod a+x).
222
223 This change will probably get blown away the next time your sys‐
224 tem upgrades KDE.
225
226 5: Stop KDE from blocking XScreenSaver's "systemd" integration:
227 You must arrange for KDE's ksmserver(1) daemon to be launched
228 with the command line option --no-lockscreen.
229
230 Under KDE 5.00 through 5.16, you can accomplish that by editing
231 the startkde(1) script in /usr/bin/ by hand, then logging out
232 and back in again.
233
234 Under KDE 5.17 through 5.20, you must wrap ksmserver(1) instead:
235
236 mv /usr/bin/ksmserver /usr/bin/ksmserver-orig
237
238 and replace /usr/bin/ksmserver with:
239
240 #!/bin/sh
241 ksmserver-orig --no-lockscreen
242
243 Either change will, of course, get blown away the next time your
244 system upgrades KDE.
245
246 Instead of being in /usr/bin/, the ksmserver program might be in
247 /usr/lib/ or /usr/lib*/libexec/ or usr/lib/*/libexec/ or some‐
248 where else, depending on your distro.
249
250 Under KDE 5.21+ this might work instead, and might persist
251 through upgrades:
252
253 systemctl edit plasma-ksmserver.service
254
255 and then put this in the file you get to edit:
256
257 [Service]
258 ExecStart=/usr/bin/ksmserver --no-lockscreen
259
260 Regardless of which approach you need to use, if you do not
261 force ksmserver(1) to stop squatting on the DBus endpoint, video
262 players will not be able to tell XScreenSaver not to blank the
263 screen while videos are playing, and the screen will not auto-
264 lock when you close your laptop's lid.
265
266 LAUNCHING XSCREENSAVER FROM SYSTEMD
267 If the above didn't do it, and your system has systemd(1), maybe this
268 is how it works:
269
270 1: Create a service.
271 Create the file ~/.config/systemd/user/xscreensaver.service con‐
272 taining:
273
274 [Unit]
275 Description=XScreenSaver
276 [Service]
277 ExecStart=/usr/bin/xscreensaver
278 Restart=on-failure
279 [Install]
280 WantedBy=default.target
281
282
283 2. Enable it.
284
285 systemctl --user enable xscreensaver
286
287 Then restart X11.
288
289
290 LAUNCHING XSCREENAVER FROM UPSTART
291 If your system has upstart(7) instead of systemd(1), maybe this will
292 work: launch the "Startup Applications" applet, click "Add", enter
293 these lines, then restart X11:
294
295 Name: XScreenSaver
296 Command: xscreensaver
297 Comment: XScreenSaver
298
299
300
301 LAUNCHING XSCREENSAVER FROM GDM
302 You can run xscreensaver from your gdm(1) session, so that the screen‐
303 saver will run even when nobody is logged in on the console. To do
304 this, run gdmconfig(1).
305
306 On the General page set the Local Greeter to Standard Greeter.
307
308 On the Background page, type the command "xscreensaver --nosplash" into
309 the Background Program field. That will cause gdm to run XScreenSaver
310 while nobody is logged in, and kill it as soon as someone does log in.
311 (The user will then be responsible for starting XScreenSaver on their
312 own, if they want.)
313
314 If that doesn't work, you can edit the config file directly. Edit
315 /etc/X11/gdm/gdm.conf to include:
316
317 Greeter=/usr/bin/gdmlogin
318 BackgroundProgram=xscreensaver --nosplash
319 RunBackgroundProgramAlways=true
320
321 In this situation, the xscreensaver process will probably be running as
322 user gdm instead of as root. You can configure the settings for this
323 nobody-logged-in state (timeouts, DPMS, etc.) by editing the
324 ~gdm/.xscreensaver file.
325
326 It is safe to run xscreensaver as root (as xdm or gdm may do). If run
327 as root, xscreensaver changes its effective user and group ids to some‐
328 thing safe (like "nobody") before connecting to the X server or launch‐
329 ing user-specified programs.
330
331 An unfortunate side effect of this (important) security precaution is
332 that it may conflict with cookie-based authentication.
333
334 If you get "connection refused" errors when running xscreensaver from
335 gdm, then this probably means that you have xauth(1) or some other se‐
336 curity mechanism turned on. For information on the X server's access
337 control mechanisms, see the man pages for X(1), Xsecurity(1), xauth(1),
338 and xhost(1).
339
340
341 LAPTOP LIDS WITHOUT SYSTEMD
342 BSD systems or other systems without systemd(1) or elogind(8) might
343 have luck by adding xscreensaver-command --suspend to some appropriate
344 spot in /etc/acpi/events/anything or in /etc/acpi/handler.sh, if those
345 files exist.
346
347
349 Wayland is a completely different window system that is intended to re‐
350 place X11. After 13+ years of trying, some Linux distros have finally
351 begun enabling it by default. Most deployments of it also include
352 XWayland, which is a compatibility layer that allows some X11 programs
353 to continue to work within a Wayland environment.
354
355 Unfortunately, XScreenSaver is not one of those programs.
356
357 If your system is running XWayland, XScreenSaver will malfunction in
358 two ways:
359
360 1: It will be unable to detect user activity in non-X11 programs.
361
362 This means that while a native Wayland program is selected, XScreen‐
363 Saver will think that you are idle, and may blank the screen prema‐
364 turely.
365
366 2: It will be unable to lock the screen.
367
368 This is because X11 grabs don't work properly under XWayland, so
369 there is no way for XScreenSaver to prevent the user from switching
370 away from the screen locker to another application.
371
372 In short, for XScreenSaver to work properly, you will need to switch
373 off Wayland and use the X Window System like in the "good old days".
374
375 TO DISABLE WAYLAND UNDER GNOME
376 The login screen should have a gear-icon menu that lets you change the
377 session type from "GNOME" (the Wayland session) to "GNOME on Xorg" (the
378 X11 session).
379
380 Alternately, edit /etc/gdm/custom.conf and make sure it includes this
381 line:
382
383 WaylandEnable=false
384
385 TO DISABLE WAYLAND UNDER KDE
386 The login screen should have a menu that lets you change the session
387 type to "Plasma (X11)".
388
389 Alternately, edit /etc/sddm.conf and change the SessionDir line under
390 the [Wayland] section to say:
391
392 SessionDir=/dev/null
393
394
396 XScreenSaver has a decades-long track record of securely locking your
397 screen. However, there are many things that can go wrong. X11 is a
398 very old system, and has a number of design flaws that make it suscep‐
399 tible to foot-shooting.
400
401 MAGIC BACKDOOR KEYSTROKES
402 The XFree86 and Xorg X servers, as well as the Linux kernel, both trap
403 certain magic keystrokes before X11 client programs ever see them. If
404 you care about keeping your screen locked, this is a big problem.
405
406
407 Ctrl+Alt+Backspace
408 This keystroke kills the X server, and on some systems, leaves you
409 at a text console. If the user launched X11 manually, that text
410 console will still be logged in. To disable this keystroke globally
411 and permanently, you need to set the DontZap flag in your xorg.conf
412 or XF86Config or XF86Config-4 file, depending which is in use on
413 your system. See XF86Config(5) for details.
414
415
416 Ctrl-Alt-F1, Ctrl-Alt-F2, etc.
417 These keystrokes will switch to a different virtual console, while
418 leaving the console that X11 is running on locked. If you left a
419 shell logged in on another virtual console, it is unprotected. So
420 don't leave yourself logged in on other consoles. You can disable
421 VT switching globally and permanently by setting DontVTSwitch in
422 your xorg.conf, but that might make your system harder to use, since
423 VT switching is an actual useful feature.
424
425 There is no way to disable VT switching only when the screen is
426 locked. It's all or nothing.
427
428
429 Ctrl-Alt-KP_Multiply
430 This keystroke kills any X11 app that holds a lock, so typing this
431 will kill XScreenSaver and unlock the screen. You can disable it by
432 turning off AllowClosedownGrabs in xorg.conf.
433
434
435 Alt-SysRq-F
436 This is the Linux kernel "OOM-killer" keystroke. It shoots down
437 random long-running programs of its choosing, and so might target
438 and kill XScreenSaver. You can disable this keystroke globally
439 with:
440
441 echo 176 > /proc/sys/kernel/sysrq
442
443 There's little that I can do to make the screen locker be secure so
444 long as the kernel and X11 developers are actively working against
445 security like this. The strength of the lock on your front door
446 doesn't matter much so long as someone else in the house insists on
447 leaving a key under the welcome mat.
448
449 THE OOM-KILLER
450 Even if you have disabled the Alt-SysRq-F OOM-killer keystroke, the
451 OOM-killer might still decide to assassinate XScreenSaver at random,
452 which will unlock your screen. If the xscreensaver-auth(6) program is
453 installed setuid, it attempts to tell the OOM-killer to leave the
454 XScreenSaver daemon alone, but that may or may not work.
455
456 You would think that the OOM-killer would pick the process using the
457 most memory, but most of the time it seems to pick the process that
458 would be most comically inconvenient, such as your screen locker, or
459 crond(8). You can disable the OOM-killer entirely with:
460
461 echo 2 > /proc/sys/vm/overcommit_memory
462 echo vm.overcommit_memory = 2 >> /etc/sysctl.conf
463
464
465
466 X SERVER ACCESS IS GAME OVER
467 X11's security model is all-or-nothing. If a program can connect to
468 your X server at all, either locally or over the network, it can log
469 all of your keystrokes, simulate keystrokes, launch arbitrary programs,
470 and change the settings of other programs. Assume that anything that
471 can connect to your X server can execute arbitrary code as the logged-
472 in user. See Xsecurity(1) and xauth(1).
473
474
475 PAM PASSWORDS
476 If your system uses PAM (Pluggable Authentication Modules), then PAM
477 must be configured for XScreenSaver. If it is not, then you might be
478 in a situation where you can't unlock. Probably the file you need is
479 /etc/pam.d/xscreensaver.
480
481
482 DON'T LOG IN AS ROOT
483 In order for it to be safe for XScreenSaver to be launched by xdm, cer‐
484 tain precautions had to be taken, among them that XScreenSaver never
485 runs as root. In particular, if it is launched as root (as xdm is
486 likely to do), XScreenSaver will disavow its privileges, and switch it‐
487 self to a safe user id (such as nobody).
488
489 An implication of this is that if you log in as root on the console,
490 XScreenSaver will refuse to lock the screen (because it can't tell the
491 difference between root being logged in on the console, and a normal
492 user being logged in on the console but XScreenSaver having been
493 launched by the xdm(1) Xsetup file).
494
495 Proper Unix hygiene dictates that you should log in as yourself, and
496 sudo(1) to root as necessary. People who spend their day logged in as
497 root are just begging for disaster.
498
499
501 For a single user, the proper way to configure XScreenSaver is to sim‐
502 ply run the xscreensaver-settings(1) program, and change the settings
503 through the GUI. The rest of this manual describes lower-level ways of
504 changing settings. You shouldn't need to know any of the stuff de‐
505 scribed below unless you are trying to do something complicated.
506
507 Options to XScreenSaver are stored in one of two places: in a file
508 called .xscreensaver in your home directory; or in the X resource
509 database. If the .xscreensaver file exists, it overrides any settings
510 in the resource database.
511
512 The syntax of the .xscreensaver file is similar to that of the .Xde‐
513 faults file; for example, to set the timeout parameter n the .xscreen‐
514 saver file, you would write the following:
515
516 timeout: 5
517
518 whereas, in the .Xdefaults file, you would write
519
520 xscreensaver.timeout: 5
521
522 If you change a setting in the .xscreensaver file while XScreenSaver is
523 already running, it will notice this, and reload the file as needed.
524
525 If you change a setting in your X resource database, or if you want
526 XScreenSaver to notice your changes immediately instead of the next
527 time it wakes up, then you will need to reload your .Xdefaults file,
528 and then tell the running xscreensaver process to restart itself, like
529 so:
530
531 xrdb < ~/.Xdefaults
532 xscreensaver-command --restart
533
534 If you want to set the system-wide defaults, then make your edits to
535 the XScreenSaver app-defaults file, which should have been installed
536 when XScreenSaver itself was installed. The app-defaults file will
537 usually be named /etc/X11/app-defaults/XScreenSaver, but different sys‐
538 tems might keep it in a different place.
539
540 When settings are changed in the Preferences dialog box, those settings
541 are written to the .xscreensaver file. The .Xdefaults file and the
542 app-defaults file will never be written by XScreenSaver itself.
543
544
546 These are the X resources use by XScreenSaver program. You probably
547 won't need to change these manually: that's what the xscreensaver-set‐
548 tings(1) program is for.
549
550
551 timeout (class Time)
552 The screensaver will activate (blank the screen) after the key‐
553 board and mouse have been idle for this many minutes. Default
554 10 minutes.
555
556
557 cycle (class Time)
558 After the screensaver has been running for this many minutes,
559 the currently running graphics-hack sub-process will be killed
560 (with SIGTERM), and a new one started. If this is 0, then the
561 graphics hack will never be changed: only one demo will run un‐
562 til the screensaver is deactivated by user activity. Default
563 10 minutes.
564
565 If there are multiple screens, the savers are staggered
566 slightly so that while they all change every cycle minutes,
567 they don't all change at the same time.
568
569
570 lock (class Boolean)
571 Enable locking: before the screensaver will turn off, it will
572 require you to type the password of the logged-in user.
573
574
575 lockTimeout (class Time)
576 If locking is enabled, this controls the length of the "grace
577 period" between when the screensaver activates, and when the
578 screen becomes locked. For example, if this is 5, and timeout
579 is 10, then after 10 minutes, the screen would blank. If there
580 was user activity at 12 minutes, no password would be required
581 to un-blank the screen. But, if there was user activity at 15
582 minutes or later (that is, lockTimeout minutes after activa‐
583 tion) then a password would be required. The default is 0,
584 meaning that if locking is enabled, then a password will be re‐
585 quired as soon as the screen blanks.
586
587
588 passwdTimeout (class Time)
589 If the screen is locked, then this is how many seconds the
590 password dialog box should be left on the screen before giving
591 up (default 30 seconds). A few seconds are added each time you
592 type a character.
593
594
595 dpmsEnabled (class Boolean)
596 Whether power management is enabled.
597
598
599 dpmsStandby (class Time)
600 If power management is enabled, how long until the monitor goes
601 solid black.
602
603
604 dpmsSuspend (class Time)
605 If power management is enabled, how long until the monitor goes
606 into power-saving mode.
607
608
609 dpmsOff (class Time)
610 If power management is enabled, how long until the monitor pow‐
611 ers down completely. Note that these settings will have no ef‐
612 fect unless both the X server and the display hardware support
613 power management; not all do. See the Power Management sec‐
614 tion, below, for more information.
615
616
617 dpmsQuickOff (class Boolean)
618 If mode is blank and this is true, then the screen will be pow‐
619 ered down immediately upon blanking, regardless of other power-
620 management settings.
621
622
623 verbose (class Boolean)
624 Whether to print diagnostics. Default false.
625
626
627 splash (class Boolean)
628 Whether to display a splash screen at startup. Default true.
629
630
631 splashDuration (class Time)
632 How long the splash screen should remain visible; default 5
633 seconds.
634
635
636 helpURL (class URL)
637 The splash screen has a Help button on it. When you press it,
638 it will display the web page indicated here in your web
639 browser.
640
641
642 loadURL (class LoadURL)
643 This is the shell command used to load a URL into your web
644 browser. The default setting will load it into Mozilla/Net‐
645 scape if it is already running, otherwise, will launch a new
646 browser looking at the helpURL.
647
648
649 demoCommand (class DemoCommand)
650 This is the shell command run when the Demo button on the
651 splash window is pressed. It defaults to xscreensaver-set‐
652 tings(1).
653
654
655 newLoginCommand (class NewLoginCommand)
656 If set, this is the shell command that is run when the "New Lo‐
657 gin" button is pressed on the unlock dialog box, in order to
658 create a new desktop session without logging out the user who
659 has locked the screen. Typically this will be some variant of
660 gdmflexiserver(1), kdmctl(1), lxdm(1) or dm-tool(1).
661
662
663 nice (class Nice)
664 The sub-processes launched by XScreenSaver will be "niced" to
665 this level, so that they are given lower priority than other
666 processes on the system, and don't increase the load unneces‐
667 sarily. The default is 10. (Higher numbers mean lower prior‐
668 ity; see nice(1) for details.)
669
670
671 fade (class Boolean)
672 If this is true, then when the screensaver activates, the cur‐
673 rent contents of the screen will fade to black instead of sim‐
674 ply winking out. Default: true.
675
676
677 unfade (class Boolean)
678 If this is true, then when the screensaver deactivates, the
679 original contents of the screen will fade in from black instead
680 of appearing immediately. This is only done if fade is true as
681 well. Default: true.
682
683
684 fadeSeconds (class Time)
685 If fade is true, this is how long the fade will be in seconds.
686 Default 3 seconds.
687
688
689 ignoreUninstalledPrograms (class Boolean)
690 There may be programs in the list that are not installed on the
691 system, yet are marked as "enabled". If this preference is
692 true, then such programs will simply be ignored. If false,
693 then a warning will be printed if an attempt is made to run the
694 nonexistent program. Also, the xscreensaver-settings(1) pro‐
695 gram will suppress the non-existent programs from the list if
696 this is true. Default: false.
697
698
699 authWarningSlack (class Integer)
700 After you successfully unlock the screen, a dialog may pop up
701 informing you of previous failed login attempts. If all of
702 those login attemps were within this amount of time, they are
703 ignored. The assumption is that incorrect passwords entered
704 within a few seconds of a correct one are user error, rather
705 than hostile action. Default 20 seconds.
706
707
708 mode (class Mode)
709 Controls the screen-saving behavior. Valid values are:
710
711
712 random When blanking the screen, select a random display mode
713 from among those that are enabled and applicable. This
714 is the default.
715
716
717 random-same
718 Like random, but if there are multiple screens, each
719 screen will run the same random display mode, instead
720 of each screen running a different one.
721
722
723 one When blanking the screen, only ever use one particular
724 display mode (the one indicated by the selected set‐
725 ting).
726
727
728 blank When blanking the screen, just go black: don't run any
729 graphics hacks.
730
731
732 off Don't ever blank the screen, and don't ever allow the
733 monitor to power down.
734
735
736 selected (class Integer)
737 When mode is set to one, this is the one, indicated by its in‐
738 dex in the programs list. You're crazy if you count them and
739 set this number by hand: let xscreensaver-settings(1) do it for
740 you!
741
742
743 programs (class Programs)
744 The graphics hacks which XScreenSaver runs when the user is
745 idle. The value of this resource is a multi-line string, one
746 sh-syntax command per line. Each line must contain exactly one
747 command: no semicolons, no ampersands.
748
749 When the screensaver starts up, one of these is selected (ac‐
750 cording to the mode setting), and run. After the cycle period
751 expires, it is killed, and another is selected and run.
752
753 If a line begins with a dash (-) then that particular program
754 is disabled: it won't be selected at random (though you can
755 still select it explicitly using the xscreensaver-settings(1)
756 program).
757
758 If all programs are disabled, then the screen will just be made
759 blank, as when mode is set to blank.
760
761 To disable a program, you must mark it as disabled with a dash
762 instead of removing it from the list. This is because the sys‐
763 tem-wide (app-defaults) and per-user (.xscreensaver) settings
764 are merged together, and if a user just deletes an entry from
765 their programs list, but that entry still exists in the system-
766 wide list, then it will come back. However, if the user dis‐
767 ables it, then their setting takes precedence.
768
769 If the display has multiple screens, then a different program
770 will be run for each screen. (All screens are blanked and un‐
771 blanked simultaneously.)
772
773 Note that you must escape the newlines; here is an example of
774 how you might set this in your ~/.xscreensaver file:
775
776 programs: \
777 qix -root \n\
778 ico -r -faces -sleep 1 -obj ico \n\
779 xdaliclock -builtin2 -root \n\
780 xv -root -rmode 5 image.gif -quit \n
781
782 The default XScreenSaver hacks directory (typically
783 /usr/libexec/xscreensaver/) is prepended to $PATH before
784 searching for these programs.
785
786 To use a program as a screensaver, it must be able to render
787 onto the window provided to it in the $XSCREENSAVER_WINDOW en‐
788 vironment variable. If it creates and maps its own window in‐
789 stead, it won't work. It must render onto the provided window.
790
791 Visuals:
792
793 Because XScreenSaver was created back when dinosaurs roamed the
794 earth, it still contains support for some things you've proba‐
795 bly never seen, such as 1-bit monochrome monitors, grayscale
796 monitors, and monitors capable of displaying only 8-bit col‐
797 ormapped images.
798
799 If there are some programs that you want to run only when using
800 a color display, and others that you want to run only when us‐
801 ing a monochrome display, you can specify that like this:
802
803 mono: mono-program -root \n\
804 color: color-program -root \n\
805
806 More generally, you can specify the kind of visual that should
807 be used for the window on which the program will be drawing.
808 For example, if one program works best if it has a colormap,
809 but another works best if it has a 24-bit visual, both can be
810 accommodated:
811
812 PseudoColor: cmap-program -root \n\
813 TrueColor: 24bit-program -root \n\
814
815 In addition to the symbolic visual names described above (in
816 the discussion of the visualID resource) one other visual name
817 is supported in the programs list:
818
819 default-n
820 This is like default, but also requests the use of the de‐
821 fault colormap, instead of a private colormap.
822
823 If you specify a particular visual for a program, and that vis‐
824 ual does not exist on the screen, then that program will not be
825 chosen to run. This means that on displays with multiple
826 screens of different depths, you can arrange for appropriate
827 hacks to be run on each. For example, if one screen is color
828 and the other is monochrome, hacks that look good in mono can
829 be run on one, and hacks that only look good in color will show
830 up on the other.
831
832
833 visualID (class VisualID)
834 This is an historical artifact left over from when 8-bit dis‐
835 plays were still common. You should probably ignore this.
836
837 Specify which X visual to use by default. (Note carefully that
838 this resource is called visualID, not merely visual; if you set
839 the visual resource instead, things will malfunction in obscure
840 ways for obscure reasons.)
841
842 Valid values for the VisualID resource are:
843
844 default Use the screen's default visual (the visual of the root
845 window). This is the default.
846
847 best Use the visual which supports the most colors. Note,
848 however, that the visual with the most colors might be
849 a TrueColor visual, which does not support colormap an‐
850 imation. Some programs have more interesting behavior
851 when run on PseudoColor visuals than on TrueColor.
852
853 mono Use a monochrome visual, if there is one.
854
855 gray Use a grayscale or staticgray visual, if there is one
856 and it has more than one plane (that is, it's not mono‐
857 chrome).
858
859 color Use the best of the color visuals, if there are any.
860
861 GL Use the visual that is best for OpenGL programs.
862 (OpenGL programs have somewhat different requirements
863 than other X programs.)
864
865 class where class is one of StaticGray, StaticColor, True‐
866 Color, GrayScale, PseudoColor, or DirectColor. Selects
867 the deepest visual of the given class.
868
869 N where number (decimal or hex) is interpreted as a vis‐
870 ual id number, as reported by the xdpyinfo(1) program;
871 in this way you can have finer control over exactly
872 which visual gets used, for example, to select a shal‐
873 lower one than would otherwise have been chosen.
874
875 Note that this option specifies only the default visual that
876 will be used: the visual used may be overridden on a program-
877 by-program basis. See the description of the programs re‐
878 source, above.
879
880
881 installColormap (class Boolean)
882 This is an historical artifact left over from when 8-bit dis‐
883 plays were still common. On PseudoColor (8-bit) displays, in‐
884 stall a private colormap while the screensaver is active, so
885 that the graphics hacks can get as many colors as possible.
886 This is the default. (This only applies when the screen's de‐
887 fault visual is being used, since non-default visuals get their
888 own colormaps automatically.) This can also be overridden on a
889 per-hack basis: see the discussion of the default-n name in the
890 section about the programs resource.
891
892 This does nothing if you have a TrueColor (16-bit or deeper)
893 display. (Which, in this century, you do.)
894
895
896 pointerHysteresis (class Integer)
897 If the mouse moves less than this-many pixels in a second, ig‐
898 nore it (do not consider that to be "activity"). This is so
899 that the screen doesn't un-blank (or fail to blank) just be‐
900 cause you bumped the desk. Default: 10 pixels.
901
902 A single pixel of motion will still cause the monitor to power
903 back on, but not un-blank. This is because the X11 server it‐
904 self unfortunately handles power-management-related activity
905 detection rather than XScreenSaver.
906
908 https://www.jwz.org/xscreensaver/bugs.html explains how to write the
909 most useful bug reports. If you find a bug, please let me know!
910
911
913 DISPLAY to get the default host and display number, and to inform the
914 sub-programs of the screen on which to draw.
915
916 XSCREENSAVER_WINDOW
917 Passed to sub-programs to indicate the ID of the window on
918 which they should draw. This is necessary on Xinerama/RANDR
919 systems where multiple physical monitors share a single X11
920 "Screen".
921
922 PATH to find the sub-programs to run, including the display modes.
923
924 HOME for the directory in which to read the .xscreensaver file.
925
926 XENVIRONMENT
927 to get the name of a resource file that overrides the global
928 resources stored in the RESOURCE_MANAGER property.
929
931 The latest version of XScreenSaver, an online version of this manual,
932 and a FAQ can always be found at https://www.jwz.org/xscreensaver/
933
935 X(1), Xsecurity(1), xauth(1), xdm(1), gdm(1), xhost(1), systemd(1), el‐
936 ogind(8), xscreensaver-settings(1), xscreensaver-command(1), xscreen‐
937 saver-systemd(6), xscreensaver-gl-helper(6), xscreensaver-getimage(6),
938 xscreensaver-text(6).
939
941 Copyright © 1991-2021 by Jamie Zawinski. Permission to use, copy, mod‐
942 ify, distribute, and sell this software and its documentation for any
943 purpose is hereby granted without fee, provided that the above copy‐
944 right notice appear in all copies and that both that copyright notice
945 and this permission notice appear in supporting documentation. No rep‐
946 resentations are made about the suitability of this software for any
947 purpose. It is provided "as is" without express or implied warranty.
948
950 Jamie Zawinski <jwz@jwz.org>. Written in late 1991; version 1.0 posted
951 to comp.sources.x on 17-Aug-1992.
952
953 Please let me know if you find any bugs or make any improvements.
954
955 And a huge thank you to the hundreds of people who have contributed, in
956 large ways and small, to the XScreenSaver collection over the past
957 three decades!
958
959
960
961X Version 11 6.02-4.fc35 (09-Nov-2021) XScreenSaver(1)