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
28 When it is time to activate the screensaver, a full-screen black window
29 is created that covers each monitor. A sub-process is launched for
30 each one running a graphics demo, pointed at the appropriate window.
31 Because of this, any program which can draw on a provided window can be
32 used as a screensaver. The various graphics demos are, in fact, just
33 standalone programs that do that.
34
35 When the user becomes active again, the screensaver windows are un‐
36 mapped, and the running subprocesses are killed.
37
38 The display modes are run at a low process priority, and spend most of
39 their time sleeping/idle by default, so they should not consume signif‐
40 icant system resources.
41
43 --display host:display.screen
44 The X display to use. For displays with multiple screens,
45 XScreenSaver will manage all screens on the display simultane‐
46 ously.
47
48 --verbose
49 Print diagnostics to stderr.
50
51 --log filename
52 Append all diagnostic output to the given file. This also im‐
53 plies --verbose. Use this when reporting bugs.
54
55 --no-splash
56 Don't display the splash screen at startup.
57
59 The xscreensaver-settings(1) program is where you configure if and when
60 your monitor should power off. It saves the settings in your
61 ~/.xscreensaver file.
62
63 If the power management section is grayed out in the xscreensaver-set‐
64 tings(1) window, then that means that your X server does not support
65 the XDPMS extension, and so control over the monitor's power state is
66 not available.
67
68 When the monitor is powered down, the display hacks are stopped (though
69 it may take a minute or two for XScreenSaver to notice).
70
71 Note: if you use xset(1) to change the power management settings,
72 XScreenSaver will override those changes. Whatever is in the
73 ~/.xscreensaver file takes precedence.
74
76 If your system uses systemd(1) or elogind(8), then closing the lid of
77 your laptop will cause the screen to lock immediately.
78
79 If not, then the screen might not lock until a few seconds after you
80 re-open the lid. Which is less than ideal. So if you do not have sys‐
81 temd(1), you might want to get in the habit of manually locking your
82 screen before closing the lid (xscreensaver-command --lock).
83
85 Likewise, if you have systemd(1) or elogind(8), then all of the popular
86 video players and web browsers will prevent XScreenSaver from blanking
87 the screen while video is playing.
88
89 Both of these features require that xscreensaver-systemd(6) be able
90 connect to D-Bus.
91
93 Each desktop environment has its own system for launching long-running
94 daemons like XScreenSaver, and since many of them come bundled with
95 their own (buggy, insecure, inferior) screen-locking frameworks, it is
96 also necessary to disable those other frameworks before XScreenSaver
97 can work.
98
99 INSTALLING XSCREENSAVER ON GNOME OR UNITY
100 For many years, GNOME included XScreenSaver as-is, and everything just
101 worked. Not any more!
102
103 1: Fully uninstall the other screen saver packages:
104
105 sudo apt remove gnome-screensaver
106 sudo apt remove mate-screensaver
107 sudo apt remove cinnamon-screensaver
108 sudo apt remove light-locker
109 or
110 sudo rpm -e gnome-screensaver
111 sudo rpm -e mate-screensaver
112 sudo rpm -e cinnamon-screensaver
113 sudo rpm -e light-locker
114
115 Be careful that it doesn't try to uninstall all of GNOME.
116
117 2: Turn off GNOME's built-in blanking.
118 Set all of the following settings to "Never" or "Off", as these
119 are all controlled by xscreensaver-settings(1) now:
120
121 "Settings / Privacy / Screen Lock / Blank Screen Delay"
122 "Settings / Privacy / Screen Lock / Automatic Screen Lock"
123 "Settings / Power / Blank Screen"
124 "Settings / Power / Automatic Suspend"
125
126 3: Launch XScreenSaver at login.
127 Launch "Tweaks", select "Startup Applications", click the plus
128 sign, and select "XScreenSaver" (not "XScreenSaver Settings")
129 from the (very long) menu.
130
131 Or, see the "LAUNCHING XSCREENSAVER FROM SYSTEMD" section below.
132 That works too.
133
134 4: Make GNOME's "Lock" icon use XScreenSaver.
135 This used to work, but no longer does with GNOME 3.38. If you
136 figure it out, let me know! This still works for Cinnamon 4.8
137 and MATE 1.24:
138
139 sudo ln -sf /usr/bin/xscreensaver-command \
140 /usr/bin/gnome-screensaver-command
141 sudo ln -sf /usr/bin/xscreensaver-command \
142 /usr/bin/cinnamon-screensaver-command
143 sudo ln -sf /usr/bin/xscreensaver-command \
144 /usr/bin/mate-screensaver-command
145 sudo ln -sf /usr/bin/xscreensaver-command \
146 /usr/bin/xfce4-screensaver-command
147 sudo ln -sf /usr/bin/xscreensaver-command \
148 /usr/bin/light-locker-command
149
150 This change will get blown away when you upgrade.
151
152 INSTALLING XSCREENSAVER ON KDE
153 Like GNOME, KDE also decided to re-invent the wheel. To replace the
154 KDE screen saver with XScreenSaver, do the following:
155
156 1: Turn off KDE's built-in blanking.
157 In System Settings, un-check the following items, as these are
158 controlled by xscreensaver-settings(1) now:
159
160 "Workspace Behavior / Screen Locking / Lock automatically"
161 "Workspace Behavior / Screen Locking / After waking from sleep"
162 "Workspace Behavior / Screen Locking / Keyboard shortcut"
163 "Hardware / Power Management / Screen Energy Saving"
164 "Hardware / Power Management / Suspend session"
165 "Hardware / Power Management / Laptop lid closed => Do Nothing"
166
167 If there are multiple tabs, you may to change these settings on
168 all three of them: "On AC power", "Battery" and "Low Battery".
169
170 3: Launch XScreenSaver at login.
171 Copy the file /usr/share/applications/xscreensaver.desktop into
172 the directory ~/.config/autostart/
173
174 4: Make KDE's "Lock" icon use XScreenSaver.
175 Find the "kscreenlocker_greet" program. It might be in
176 "/usr/lib/*/libexec/", or it might be somewhere else. Delete
177 that file and replace it with a file containing these two lines.
178 Make it executable (chmod a+x).
179
180 #!/bin/sh
181 xscreensaver-command --lock &
182
183 This change will get blown away when you upgrade.
184
185 5: Turn off KDE's built-in locking on suspend, even harder.
186 Even after disabling KDE's screen locking, above, it is possible
187 that KDE will still use its built-in locker when you close your
188 laptop's lid. If that is happening, double-check the settings
189 above, but if those are correct, try the following. First, en‐
190 sure you are running KDE 5.21 or newer. Next, enable "systemd
191 user sessions" for KDE so that you can edit the parameters for
192 ksmserver:
193
194 kwriteconfig5 --file startkderc --group General \
195 --key systemdBoot true
196
197 Log out and back in.
198
199 Next, edit the plasma-ksmserver service to change how ksmserver
200 is launched:
201
202 systemctl edit --user plasma-ksmserver.service
203
204 Replace the contents of the file that lets you edit with this:
205
206 [Service]
207 ExecStart=
208 ExecStart=/usr/bin/ksmserver --no-lockscreen
209
210 Then log out and back in again.
211
212 LAUNCHING XSCREENSAVER FROM LXDE
213 Add the line @xscreensaver to /etc/xdg/lxsession/LXDE/autostart or
214 /etc/xdg/lxsession/LXDE-pi/autostart.
215
216 LAUNCHING XSCREENSAVER FROM SYSTEMD
217 If you are not using GNOME, KDE or LXDE, the way to launch XScreenSaver
218 at login is probably systemd(1).
219
220 Copy the file /usr/share/xscreensaver/xscreensaver.service into the di‐
221 rectory ~/.config/systemd/user/. Create that directory first if it
222 doesn't exist. Then enable it with:
223
224 systemctl --user enable xscreensaver
225
226
227 LAUNCHING XSCREENAVER FROM UPSTART
228 If you are not using GNOME, KDE or LXDE, and your system uses up‐
229 start(7) instead of systemd(1), launch the "Startup Applications" ap‐
230 plet, click "Add", and enter these lines:
231
232 Name: XScreenSaver
233 Command: xscreensaver
234 Comment: XScreenSaver
235
236
237 LAUNCHING XSCREENSAVER FROM GDM
238 You can run xscreensaver from your gdm(1) session, so that the screen‐
239 saver will run even when nobody is logged in on the console. To do
240 this, run gdmconfig(1).
241
242 On the General page set the Local Greeter to Standard Greeter.
243
244 On the Background page, type the command "xscreensaver --nosplash" into
245 the Background Program field. That will cause gdm to run XScreenSaver
246 while nobody is logged in, and kill it as soon as someone does log in.
247 (The user will then be responsible for starting XScreenSaver on their
248 own, if they want.)
249
250 If that doesn't work, you can edit the config file directly. Edit
251 /etc/X11/gdm/gdm.conf to include:
252
253 Greeter=/usr/bin/gdmlogin
254 BackgroundProgram=xscreensaver --nosplash
255 RunBackgroundProgramAlways=true
256
257 In this situation, the xscreensaver process will be running as user
258 gdm. You can configure the settings for this nobody-logged-in state
259 (timeouts, DPMS, etc.) by editing the ~gdm/.xscreensaver file.
260
261 If you get "connection refused" errors when running xscreensaver from
262 gdm, then this probably means that you are having xauth(1) problems.
263 For information on the X server's access control mechanisms, see the
264 man pages for X(1), Xsecurity(1), xauth(1), and xhost(1).
265
266 There might be a way to accomplish this with other display managers.
267 It's a mystery!
268
269 LAPTOP LIDS WITHOUT SYSTEMD
270 BSD systems or other systems without systemd(1) or elogind(8) might
271 have luck by adding "xscreensaver-command --suspend" to some appropri‐
272 ate spot in /etc/acpi/events/anything or in /etc/acpi/handler.sh, if
273 those files exist.
274
276 Wayland is a completely different window system that is intended to re‐
277 place X11. After 14+ years of trying, some Linux distros have finally
278 begun enabling it by default. Most deployments of it also include
279 XWayland, which is a compatibility layer that allows some X11 programs
280 to continue to work within a Wayland environment.
281
282 Unfortunately, XScreenSaver is not one of those programs.
283
284 If your system is running XWayland, XScreenSaver will malfunction in
285 two ways:
286
287 1: It will be unable to detect user activity in non-X11 programs.
288
289 This means that while a native Wayland program is selected, XScreen‐
290 Saver will think that you are idle, and may blank the screen prema‐
291 turely.
292
293 2: It will be unable to lock the screen.
294
295 This is because X11 grabs don't work properly under XWayland, so
296 there is no way for XScreenSaver to prevent the user from switching
297 away from the screen locker to another application.
298
299 In short, for XScreenSaver to work properly, you will need to switch
300 off Wayland and use the X Window System like in the "good old days".
301
302 TO DISABLE WAYLAND UNDER GNOME
303 The login screen should have a gear-icon menu that lets you change the
304 session type from "GNOME" (the Wayland session) to "GNOME on Xorg" (the
305 X11 session).
306
307 Alternately, edit /etc/gdm/custom.conf and make sure it includes this
308 line:
309
310 WaylandEnable=false
311
312 TO DISABLE WAYLAND UNDER KDE
313 The login screen should have a menu that lets you change the session
314 type to "Plasma (X11)".
315
316 Alternately, edit /etc/sddm.conf and change the SessionDir line under
317 the [Wayland] section to say:
318
319 SessionDir=/dev/null
320
322 XScreenSaver has a decades-long track record of securely locking your
323 screen. However, there are many things that can go wrong. X11 is a
324 very old system, and has a number of design flaws that make it suscep‐
325 tible to foot-shooting.
326
327 MAGIC BACKDOOR KEYSTROKES
328 The Xorg and XFree86 X servers, as well as the Linux kernel, both trap
329 certain magic keystrokes before X11 client programs ever see them. If
330 you care about keeping your screen locked, this is a big problem.
331
332 Ctrl+Alt+Backspace
333 This keystroke kills the X server, and on some systems, leaves you
334 at a text console. If the user launched X11 manually, that text
335 console will still be logged in. To disable this keystroke globally
336 and permanently, you need to set the DontZap flag in your
337 xorg.conf(5) or XF86Config(5) file.
338
339 Ctrl-Alt-F1, Ctrl-Alt-F2, etc.
340 These keystrokes will switch to a different virtual console, while
341 leaving the console that X11 is running on locked. If you left a
342 shell logged in on another virtual console, it is unprotected. So
343 don't leave yourself logged in on other consoles. You can disable
344 VT switching globally and permanently by setting DontVTSwitch in
345 your xorg.conf(5), but that might make your system harder to use,
346 since VT switching is an actual useful feature.
347
348 There is no way to disable VT switching only when the screen is
349 locked. It's all or nothing.
350
351 Ctrl-Alt-KP_Multiply
352 This keystroke kills any X11 app that holds a lock, so typing this
353 will kill XScreenSaver and unlock the screen. You can disable it by
354 turning off AllowClosedownGrabs in xorg.conf(5).
355
356 Alt-SysRq-F
357 This is the Linux kernel "OOM-killer" keystroke. It shoots down
358 random long-running programs of its choosing, and so might target
359 and kill XScreenSaver. You can disable this keystroke globally
360 with:
361
362 echo 176 > /proc/sys/kernel/sysrq
363
364 There's little that I can do to make the screen locker be secure so
365 long as the kernel and X11 developers are actively working against
366 security like this. The strength of the lock on your front door
367 doesn't matter much so long as someone else in the house insists on
368 leaving a key under the welcome mat.
369
370 THE OOM-KILLER
371 Even if you have disabled the Alt-SysRq-F OOM-killer keystroke, the
372 OOM-killer might still decide to assassinate XScreenSaver at random,
373 which will unlock your screen. If the xscreensaver-auth(6) program is
374 installed setuid, it attempts to tell the OOM-killer to leave the
375 XScreenSaver daemon alone, but that may or may not work.
376
377 You would think that the OOM-killer would pick the process using the
378 most memory, but most of the time it seems to pick the process that
379 would be most comically inconvenient, such as your screen locker, or
380 crond(8). You can disable the OOM-killer entirely with:
381
382 echo 2 > /proc/sys/vm/overcommit_memory
383 echo vm.overcommit_memory = 2 >> /etc/sysctl.conf
384
385
386 X SERVER ACCESS IS GAME OVER
387 X11's security model is all-or-nothing. If a program can connect to
388 your X server at all, either locally or over the network, it can log
389 all of your keystrokes, simulate keystrokes, launch arbitrary programs,
390 and change the settings of other programs. Assume that anything that
391 can connect to your X server can execute arbitrary code as the logged-
392 in user. See Xsecurity(1) and xauth(1).
393
394 PAM PASSWORDS
395 If your system uses PAM (Pluggable Authentication Modules), then PAM
396 must be configured for XScreenSaver. If it is not, then you might be
397 in a situation where you can't unlock. Probably the file you need is
398 /etc/pam.d/xscreensaver.
399
400 DON'T LOG IN AS ROOT
401 Never log in as root. Log in as a normal user and use sudo(1) as nec‐
402 essary. If you are logged in as root, XScreenSaver will not lock your
403 screen or run display modes, for numerous good and proper reasons.
404
406 For a single user, the proper way to configure XScreenSaver is to sim‐
407 ply run the xscreensaver-settings(1) program, and change the settings
408 through the GUI. Changes are written to the ~/.xscreensaver file.
409
410 If you want to set the system-wide defaults, then make your edits to
411 /etc/X11/app-defaults/XScreenSaver instead. The two files have similar
412 (but not identical) syntax.
413
414 You can also make changes via the X Resource Database and xrdb(1), but
415 that can be very confusing and is not really recommended.
416
417 Options in ~/.xscreensaver override any settings in the resource data‐
418 base or app-defaults file.
419
420 If you change a setting in the .xscreensaver file while XScreenSaver is
421 already running, it will notice this, and reload the file as needed.
422 But if you change a setting in the X Resource Database, you will need
423 to restart XScreenSaver for those changes to take effect:
424
425 xrdb < ~/.Xdefaults
426 xscreensaver-command --restart
427
428
430 These are the X resources use by XScreenSaver program. You probably
431 won't need to change these manually: that's what the xscreensaver-set‐
432 tings(1) program is for.
433
434 timeout (class Time)
435 The screensaver will activate (blank the screen) after the key‐
436 board and mouse have been idle for this many minutes. Default
437 10 minutes.
438
439 cycle (class Time)
440 After the screensaver has been running for this many minutes,
441 the currently running graphics-hack sub-process will be killed
442 (with SIGTERM), and a new one started. If this is 0, then the
443 graphics hack will never be changed: only one demo will run un‐
444 til the screensaver is deactivated by user activity. Default
445 10 minutes.
446
447 If there are multiple screens, the savers are staggered
448 slightly so that while they all change every cycle minutes,
449 they don't all change at the same time.
450
451 lock (class Boolean)
452 Enable locking: before the screensaver will turn off, it will
453 require you to type the password of the logged-in user.
454
455 lockTimeout (class Time)
456 If locking is enabled, this controls the length of the "grace
457 period" between when the screensaver activates, and when the
458 screen becomes locked. For example, if this is 5, and timeout
459 is 10, then after 10 minutes, the screen would blank. If there
460 was user activity at 12 minutes, no password would be required
461 to un-blank the screen. But, if there was user activity at 15
462 minutes or later (that is, lockTimeout minutes after activa‐
463 tion) then a password would be required. The default is 0,
464 meaning that if locking is enabled, then a password will be re‐
465 quired as soon as the screen blanks.
466
467 passwdTimeout (class Time)
468 If the screen is locked, then this is how many seconds the
469 password dialog box should be left on the screen before giving
470 up (default 30 seconds). A few seconds are added each time you
471 type a character.
472
473 dpmsEnabled (class Boolean)
474 Whether power management is enabled.
475
476 dpmsStandby (class Time)
477 If power management is enabled, how long until the monitor goes
478 solid black.
479
480 dpmsSuspend (class Time)
481 If power management is enabled, how long until the monitor goes
482 into power-saving mode.
483
484 dpmsOff (class Time)
485 If power management is enabled, how long until the monitor pow‐
486 ers down completely. Note that these settings will have no ef‐
487 fect unless both the X server and the display hardware support
488 power management; not all do. See the Power Management sec‐
489 tion, below, for more information.
490
491 dpmsQuickOff (class Boolean)
492 If mode is blank and this is true, then the screen will be pow‐
493 ered down immediately upon blanking, regardless of other power-
494 management settings.
495
496 verbose (class Boolean)
497 Whether to print diagnostics. Default false.
498
499 splash (class Boolean)
500 Whether to display a splash screen at startup. Default true.
501
502 splashDuration (class Time)
503 How long the splash screen should remain visible; default 5
504 seconds.
505
506 helpURL (class URL)
507 The splash screen has a Help button on it. When you press it,
508 it will display the web page indicated here in your web
509 browser.
510
511 loadURL (class LoadURL)
512 This is the shell command used to load a URL into your web
513 browser.
514
515 demoCommand (class DemoCommand)
516 This is the shell command run when the Demo button on the
517 splash window is pressed. It defaults to xscreensaver-set‐
518 tings(1).
519
520 newLoginCommand (class NewLoginCommand)
521 If set, this is the shell command that is run when the "New Lo‐
522 gin" button is pressed on the unlock dialog box, in order to
523 create a new desktop session without logging out the user who
524 has locked the screen. Typically this will be some variant of
525 gdmflexiserver(1), kdmctl(1), lxdm(1) or dm-tool(1).
526
527 nice (class Nice)
528 The sub-processes launched by XScreenSaver will be "niced" to
529 this level, so that they are given lower priority than other
530 processes on the system, and don't increase the load unneces‐
531 sarily. The default is 10. (Higher numbers mean lower prior‐
532 ity; see nice(1) for details.)
533
534 fade (class Boolean)
535 If this is true, then when the screensaver activates, the desk‐
536 top will fade to black instead of simply winking out. Default:
537 true.
538
539 unfade (class Boolean)
540 If this is true, then when the screensaver deactivates, desktop
541 will fade back ininstead of appearing immediately. This is
542 only done if fade is true as well. Default: true.
543
544 fadeSeconds (class Time)
545 If fade is true, this is how long the fade will be in seconds.
546 Default 3 seconds.
547
548 ignoreUninstalledPrograms (class Boolean)
549 There may be programs in the list that are not installed on the
550 system, yet are marked as "enabled". If this preference is
551 true, then such programs will simply be ignored. If false,
552 then a warning will be printed if an attempt is made to run the
553 nonexistent program. Also, the xscreensaver-settings(1) pro‐
554 gram will suppress the non-existent programs from the list if
555 this is true. Default: false.
556
557 authWarningSlack (class Integer)
558 After you successfully unlock the screen, a dialog may pop up
559 informing you of previous failed login attempts. If all of
560 those login attemps were within this amount of time, they are
561 ignored. The assumption is that incorrect passwords entered
562 within a few seconds of a correct one are user error, rather
563 than hostile action. Default 20 seconds.
564
565 mode (class Mode)
566 Controls the screen-saving behavior. Valid values are:
567
568 random When blanking the screen, select a random display mode
569 from among those that are enabled and applicable. This
570 is the default.
571
572 random-same
573 Like random, but if there are multiple screens, each
574 screen will run the same random display mode, instead
575 of each screen running a different one.
576
577 one When blanking the screen, only ever use one particular
578 display mode (the one indicated by the selected set‐
579 ting).
580
581 blank When blanking the screen, just go black: don't run any
582 graphics hacks.
583
584 off Don't ever blank the screen, and don't ever allow the
585 monitor to power down.
586
587 selected (class Integer)
588 When mode is set to one, this is the one, indicated by its in‐
589 dex in the programs list. You're crazy if you count them and
590 set this number by hand: let xscreensaver-settings(1) do it for
591 you!
592
593 programs (class Programs)
594 The graphics hacks which XScreenSaver runs when the user is
595 idle. The value of this resource is a multi-line string, one
596 sh-syntax command per line. Each line must contain exactly one
597 command: no semicolons, no ampersands.
598
599 When the screensaver starts up, one of these is selected (ac‐
600 cording to the mode setting), and run. After the cycle period
601 expires, it is killed, and another is selected and run.
602
603 If a line begins with a dash (-) then that particular program
604 is disabled: it won't be selected at random (though you can
605 still select it explicitly using the xscreensaver-settings(1)
606 program).
607
608 If all programs are disabled, then the screen will just be made
609 blank, as when mode is set to blank.
610
611 To disable a program, you must mark it as disabled with a dash
612 instead of removing it from the list. This is because the sys‐
613 tem-wide (app-defaults) and per-user (.xscreensaver) settings
614 are merged together, and if a user just deletes an entry from
615 their programs list, but that entry still exists in the system-
616 wide list, then it will come back. However, if the user dis‐
617 ables it, then their setting takes precedence.
618
619 The default XScreenSaver hacks directory (typically
620 /usr/libexec/xscreensaver/) is prepended to $PATH before
621 searching for these programs.
622
623 To use a program as a screensaver, it must be able to render
624 onto the window provided to it in the $XSCREENSAVER_WINDOW en‐
625 vironment variable. If it creates and maps its own window in‐
626 stead, it won't work. It must render onto the provided window.
627 Visuals:
628
629 Because XScreenSaver was created back when dinosaurs roamed the
630 earth, it still contains support for some things you've proba‐
631 bly never seen, such as 1-bit monochrome monitors, grayscale
632 monitors, and monitors capable of displaying only 8-bit col‐
633 ormapped images.
634
635 If there are some programs that you want to run only when using
636 a color display, and others that you want to run only when us‐
637 ing a monochrome display, you can specify that like this:
638
639 mono: mono-program -root \n\
640 color: color-program -root \n\
641
642 More generally, you can specify the kind of visual that should
643 be used for the window on which the program will be drawing.
644 For example, if one program works best if it has a colormap,
645 but another works best if it has a 24-bit visual, both can be
646 accommodated:
647
648 PseudoColor: cmap-program -root \n\
649 TrueColor: 24bit-program -root \n\
650
651 In addition to the symbolic visual names described above (in
652 the discussion of the visualID resource) one other visual name
653 is supported in the programs list:
654
655 default-n
656 This is like default, but also requests the use of the default
657 colormap, instead of a private colormap.
658
659 If you specify a particular visual for a program, and that visual does
660 not exist on the screen, then that program will not be chosen to run.
661 This means that on displays with multiple screens of different depths,
662 you can arrange for appropriate hacks to be run on each. For example,
663 if one screen is color and the other is monochrome, hacks that look
664 good in mono can be run on one, and hacks that only look good in color
665 will show up on the other.
666
667 visualID (class VisualID)
668 This is an historical artifact left over from when 8-bit dis‐
669 plays were still common. You should probably ignore this.
670
671 Specify which X visual to use by default. (Note carefully that
672 this resource is called visualID, not merely visual; if you set
673 the visual resource instead, things will malfunction in obscure
674 ways for obscure reasons.)
675
676 Valid values for the VisualID resource are:
677
678 default Use the screen's default visual (the visual of the root
679 window). This is the default.
680
681 best Use the visual which supports the most colors. Note,
682 however, that the visual with the most colors might be
683 a TrueColor visual, which does not support colormap an‐
684 imation. Some programs have more interesting behavior
685 when run on PseudoColor visuals than on TrueColor.
686
687 mono Use a monochrome visual, if there is one.
688
689 gray Use a grayscale or staticgray visual, if there is one
690 and it has more than one plane (that is, it's not mono‐
691 chrome).
692
693 color Use the best of the color visuals, if there are any.
694
695 GL Use the visual that is best for OpenGL programs.
696 (OpenGL programs have somewhat different requirements
697 than other X programs.)
698
699 class where class is one of StaticGray, StaticColor, True‐
700 Color, GrayScale, PseudoColor, or DirectColor. Selects
701 the deepest visual of the given class.
702
703 N where number (decimal or hex) is interpreted as a vis‐
704 ual id number, as reported by the xdpyinfo(1) program;
705 in this way you can have finer control over exactly
706 which visual gets used, for example, to select a shal‐
707 lower one than would otherwise have been chosen.
708
709 Note that this option specifies only the default visual that
710 will be used: the visual used may be overridden on a program-
711 by-program basis. See the description of the programs re‐
712 source, above.
713
714 installColormap (class Boolean)
715 This is an historical artifact left over from when 8-bit dis‐
716 plays were still common. On PseudoColor (8-bit) displays, in‐
717 stall a private colormap while the screensaver is active, so
718 that the graphics hacks can get as many colors as possible.
719 This is the default. (This only applies when the screen's de‐
720 fault visual is being used, since non-default visuals get their
721 own colormaps automatically.) This can also be overridden on a
722 per-hack basis: see the discussion of the default-n name in the
723 section about the programs resource.
724
725 This does nothing if you have a TrueColor (16-bit or deeper)
726 display. (Which, in this century, you do.)
727
728 pointerHysteresis (class Integer)
729 If the mouse moves less than this-many pixels in a second, ig‐
730 nore it (do not consider that to be "activity"). This is so
731 that the screen doesn't un-blank (or fail to blank) just be‐
732 cause you bumped the desk. Default: 10 pixels.
733
734 A single pixel of motion will still cause the monitor to power
735 back on, but not un-blank. This is because the X11 server it‐
736 self unfortunately handles power-management-related activity
737 detection rather than XScreenSaver.
738
740 https://www.jwz.org/xscreensaver/bugs.html explains how to write the
741 most useful bug reports. If you find a bug, please let me know!
742
744 DISPLAY to get the default host and display number, and to inform the
745 sub-programs of the screen on which to draw.
746
747 XSCREENSAVER_WINDOW
748 Passed to sub-programs to indicate the ID of the window on
749 which they should draw.
750
751 PATH to find the sub-programs to run, including the display modes.
752
753 HOME for the directory in which to read the .xscreensaver file.
754
755 XENVIRONMENT
756 to get the name of a resource file that overrides the global
757 resources stored in the RESOURCE_MANAGER property.
758
760 The latest version of XScreenSaver, an online version of this manual,
761 and a FAQ can always be found at https://www.jwz.org/xscreensaver/
762
764 X(1), Xsecurity(1), xauth(1), xdm(1), gdm(1), xhost(1), systemd(1), el‐
765 ogind(8), xscreensaver-settings(1), xscreensaver-command(1), xscreen‐
766 saver-systemd(6), xscreensaver-gl-helper(6), xscreensaver-getimage(6),
767 xscreensaver-text(6).
768
770 Copyright © 1991-2022 by Jamie Zawinski. Permission to use, copy, mod‐
771 ify, distribute, and sell this software and its documentation for any
772 purpose is hereby granted without fee, provided that the above copy‐
773 right notice appear in all copies and that both that copyright notice
774 and this permission notice appear in supporting documentation. No rep‐
775 resentations are made about the suitability of this software for any
776 purpose. It is provided "as is" without express or implied warranty.
777
779 Jamie Zawinski <jwz@jwz.org>
780
781 Please let me know if you find any bugs or make any improvements.
782
783 And a huge thank you to the hundreds of people who have contributed, in
784 large ways and small, to the XScreenSaver collection over the past
785 three decades!
786
787
788
789X Version 11 6.04-1.fc36 (06-Jun-2022) XScreenSaver(1)