1XScreenSaver(1)             General Commands Manual            XScreenSaver(1)
2
3
4

NAME

6       xscreensaver - extensible screen saver and screen locking framework
7

SYNOPSIS

9       xscreensaver  [--display  host:display.screen]  [--verbose] [--version]
10       [--no-splash] [--log filename]
11

DESCRIPTION

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

GETTING STARTED

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

HOW IT WORKS

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

COMMAND-LINE OPTIONS

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       --version
52               Print the version number and exit.
53
54       --log filename
55               Append  all diagnostic output to the given file.  This also im‐
56               plies --verbose.  Use this when reporting bugs.
57
58       --no-splash
59               Don't display the splash screen at startup.
60

POWER MANAGEMENT

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.  Do not use xset(1) to manually change the  power
65       management settings, that won't work.
66
67       When  the  monitor is powered down, the display hacks will stop running
68       (though it may take a minute or two for XScreenSaver to notice).
69

LAPTOP LIDS

71       If your system uses systemd(1) or elogind(8), then closing the  lid  of
72       your laptop will cause the screen to lock immediately.
73
74       If  not,  then  the screen might not lock until a few seconds after you
75       re-open the lid.  Which is less than ideal.  So if you do not have sys‐
76       temd(1),  you  might  want to get in the habit of manually locking your
77       screen before closing the lid (xscreensaver-command --lock).
78

PLAYING VIDEOS

80       Likewise, if you have systemd(1) or elogind(8), then all of the popular
81       video  players and web browsers will prevent XScreenSaver from blanking
82       the screen while video is playing.
83
84       Both of these features require  that  xscreensaver-systemd(6)  be  able
85       connect to D-Bus.
86

INSTALLATION

88       Each  desktop environment has its own system for launching long-running
89       daemons like XScreenSaver, and since many of  them  come  bundled  with
90       their  own (buggy, insecure, inferior) screen-locking frameworks, it is
91       also necessary to disable those other  frameworks  before  XScreenSaver
92       can work.
93
94   INSTALLING XSCREENSAVER ON GNOME OR UNITY
95       For  many years, GNOME included XScreenSaver as-is, and everything just
96       worked.  Not any more!
97
98           1: Fully uninstall the other screen saver packages:
99
100                   sudo apt remove gnome-screensaver
101                   sudo apt remove mate-screensaver
102                   sudo apt remove cinnamon-screensaver
103                   sudo apt remove light-locker
104              or
105                   sudo rpm -e gnome-screensaver
106                   sudo rpm -e mate-screensaver
107                   sudo rpm -e cinnamon-screensaver
108                   sudo rpm -e light-locker
109
110              Be careful that it doesn't try to uninstall all of GNOME.
111
112           2: Turn off GNOME's built-in blanking.
113              Set all of the following settings to "Never" or "Off", as  these
114              are all controlled by xscreensaver-settings(1) now:
115
116              "Settings / Privacy / Screen Lock / Blank Screen Delay"
117              "Settings / Privacy / Screen Lock / Automatic Screen Lock"
118              "Settings / Power / Blank Screen"
119              "Settings / Power / Automatic Suspend"
120
121           3: Launch XScreenSaver at login.
122              Launch  "Tweaks",  select "Startup Applications", click the plus
123              sign, and select "XScreenSaver"  (not  "XScreenSaver  Settings")
124              from the (very long) menu.
125
126              Or, see the "LAUNCHING XSCREENSAVER FROM SYSTEMD" section below.
127              That works too.
128
129           4: Make GNOME's "Lock" icon use XScreenSaver.
130              This used to work, but no longer does with GNOME 3.38.   If  you
131              figure  it  out, let me know!  This still works for Cinnamon 4.8
132              and MATE 1.24:
133
134                   sudo ln -sf /usr/bin/xscreensaver-command \
135                          /usr/bin/gnome-screensaver-command
136                   sudo ln -sf /usr/bin/xscreensaver-command \
137                       /usr/bin/cinnamon-screensaver-command
138                   sudo ln -sf /usr/bin/xscreensaver-command \
139                           /usr/bin/mate-screensaver-command
140                   sudo ln -sf /usr/bin/xscreensaver-command \
141                          /usr/bin/xfce4-screensaver-command
142                   sudo ln -sf /usr/bin/xscreensaver-command \
143                               /usr/bin/light-locker-command
144
145              This change will get blown away when you upgrade.
146
147   INSTALLING XSCREENSAVER ON KDE
148       Like GNOME, KDE also decided to re-invent the wheel.   To  replace  the
149       KDE screen saver with XScreenSaver, do the following:
150
151           1: Turn off KDE's built-in blanking.
152              In  System  Settings, un-check the following items, as these are
153              controlled by xscreensaver-settings(1) now:
154
155              "Workspace Behavior / Screen Locking / Lock automatically"
156              "Workspace Behavior / Screen Locking / After waking from sleep"
157              "Workspace Behavior / Screen Locking / Keyboard shortcut"
158              "Hardware / Power Management / Screen Energy Saving"
159              "Hardware / Power Management / Suspend session"
160              "Hardware / Power Management / Laptop lid closed" = Do Nothing
161
162              If there are multiple tabs, you may need to  change  these  set‐
163              tings  on  all  three of them: "On AC power", "Battery" and "Low
164              Battery".
165
166           2: Launch XScreenSaver at login.
167              Copy the file /usr/share/applications/xscreensaver.desktop  into
168              the directory ~/.config/autostart/
169
170           3: Make KDE's "Lock" icon use XScreenSaver.
171              Find   the   "kscreenlocker_greet"  program.   It  might  be  in
172              "/usr/lib/*/libexec/", or it might be  somewhere  else.   Delete
173              that file and replace it with a file containing these two lines.
174              Make it executable (chmod a+x).
175
176                   #!/bin/sh
177                   xscreensaver-command --lock &
178
179              This change will get blown away when you upgrade.
180
181           4: Turn off KDE's built-in locking on suspend, even harder.
182              Even after disabling KDE's screen locking, above, it is possible
183              that  KDE will still use its built-in locker when you close your
184              laptop's lid.  If that is happening, double-check  the  settings
185              above,  but if those are correct, try the following.  First, en‐
186              sure you are running KDE 5.21 or newer.  Next,  enable  "systemd
187              user  sessions"  for KDE so that you can edit the parameters for
188              ksmserver:
189
190                   kwriteconfig5 --file startkderc --group General \
191                     --key systemdBoot true
192
193              Log out and back in.
194
195              Next, edit the plasma-ksmserver service to change how  ksmserver
196              is launched:
197
198                   systemctl edit --user plasma-ksmserver.service
199
200              Replace the contents of the file that lets you edit with this:
201
202                   [Service]
203                   ExecStart=
204                   ExecStart=/usr/bin/ksmserver --no-lockscreen
205
206              Then log out and back in again.
207
208   LAUNCHING XSCREENSAVER FROM LXDE
209       Add  the  line  @xscreensaver  to  /etc/xdg/lxsession/LXDE/autostart or
210       /etc/xdg/lxsession/LXDE-pi/autostart.
211
212   LAUNCHING XSCREENSAVER FROM SYSTEMD
213       If you are not using GNOME, KDE or LXDE, the way to launch XScreenSaver
214       at login is probably systemd(1).
215
216       Copy the file /usr/share/xscreensaver/xscreensaver.service into the di‐
217       rectory ~/.config/systemd/user/.  Create that  directory  first  if  it
218       doesn't exist.  Then enable it with:
219
220            systemctl --user enable xscreensaver
221
222
223   LAUNCHING XSCREENAVER FROM UPSTART
224       If  you  are  not  using  GNOME,  KDE or LXDE, and your system uses up‐
225       start(7) instead of systemd(1), launch the "Startup  Applications"  ap‐
226       plet, click "Add", and enter these lines:
227
228            Name: XScreenSaver
229            Command: xscreensaver
230            Comment: XScreenSaver
231
232
233   LAPTOP LIDS WITHOUT SYSTEMD
234       BSD  systems  or  other  systems without systemd(1) or elogind(8) might
235       have luck by adding "xscreensaver-command --suspend" to some  appropri‐
236       ate  spot  in  /etc/acpi/events/anything or in /etc/acpi/handler.sh, if
237       those files exist.
238
239   LAUNCHING XSCREENSAVER FROM GDM
240       You can run xscreensaver from your gdm(1) session, so that the  screen‐
241       saver  will  run  even  when nobody is logged in on the console.  To do
242       this, run gdmconfig(1).
243
244       On the General page set the Local Greeter to Standard Greeter.
245
246       On the Background page, type  the  command  "xscreensaver  --no-splash"
247       into the Background Program field.  That will cause gdm to run XScreen‐
248       Saver while nobody is logged in, and kill it as soon  as  someone  does
249       log  in.   (The user will then be responsible for starting XScreenSaver
250       on their own, if they want.)
251
252       If that doesn't work, you can  edit  the  config  file  directly.  Edit
253       /etc/X11/gdm/gdm.conf to include:
254
255            Greeter=/usr/bin/gdmlogin
256            BackgroundProgram=xscreensaver --no-splash
257            RunBackgroundProgramAlways=true
258
259       In  this  situation,  the  xscreensaver process will be running as user
260       gdm.  You can configure the settings for  this  nobody-logged-in  state
261       (timeouts, DPMS, etc.) by editing the ~gdm/.xscreensaver file.
262
263       If  you  get "connection refused" errors when running xscreensaver from
264       gdm, then this probably means that you are  having  xauth(1)  problems.
265       For  information  on  the X server's access control mechanisms, see the
266       man pages for X(1), Xsecurity(1), xauth(1), and xhost(1).
267
268       There might be a way to accomplish this with  other  display  managers.
269       It's a mystery!
270

THE WAYLAND PROBLEM

272       Wayland is a completely different window system that is intended to re‐
273       place X11.  After 14+ years of trying, some Linux distros have  finally
274       begun  enabling  it  by  default.   Most deployments of it also include
275       XWayland, which is a compatibility layer that allows some X11  programs
276       to continue to work within a Wayland environment.
277
278       Unfortunately, XScreenSaver is not one of those programs.
279
280       If  your  system  is running XWayland, XScreenSaver will malfunction in
281       two ways:
282
283       1: It will be unable to detect user activity in non-X11 programs.
284
285          This means that while a native Wayland program is selected, XScreen‐
286          Saver  will think that you are idle, and may blank the screen prema‐
287          turely.
288
289       2: It will be unable to lock the screen.
290
291          This is because X11 grabs don't work  properly  under  XWayland,  so
292          there  is no way for XScreenSaver to prevent the user from switching
293          away from the screen locker to another application.
294
295       In short, for XScreenSaver to work properly, you will  need  to  switch
296       off Wayland and use the X Window System like in the "good old days".
297
298   TO DISABLE WAYLAND UNDER GNOME
299       The  login screen should have a gear-icon menu that lets you change the
300       session type from "GNOME" (the Wayland session) to "GNOME on Xorg" (the
301       X11 session).
302
303       Alternately,  edit  /etc/gdm/custom.conf and make sure it includes this
304       line:
305
306            WaylandEnable=false
307
308   TO DISABLE WAYLAND UNDER KDE
309       The login screen should have a menu that lets you  change  the  session
310       type to "Plasma (X11)".
311
312       Alternately,  edit  /etc/sddm.conf and change the SessionDir line under
313       the [Wayland] section to say:
314
315            SessionDir=/dev/null
316

SECURITY CONCERNS

318       XScreenSaver has a decades-long track record of securely  locking  your
319       screen.   However,  there  are many things that can go wrong.  X11 is a
320       very old system, and has a number of design flaws that make it  suscep‐
321       tible to foot-shooting.
322
323   MAGIC BACKDOOR KEYSTROKES
324       The  Xorg and XFree86 X servers, as well as the Linux kernel, both trap
325       certain magic keystrokes before X11 client programs ever see them.   If
326       you care about keeping your screen locked, this is a big problem.
327
328       Ctrl+Alt+Backspace
329          This  keystroke  kills the X server, and on some systems, leaves you
330          at a text console.  If the user launched  X11  manually,  that  text
331          console will still be logged in.  To disable this keystroke globally
332          and  permanently,  you  need  to  set  the  DontZap  flag  in   your
333          xorg.conf(5) or XF86Config(5) file.
334
335       Ctrl-Alt-F1, Ctrl-Alt-F2, etc.
336          These  keystrokes  will switch to a different virtual console, while
337          leaving the console that X11 is running on locked.  If  you  left  a
338          shell  logged  in on another virtual console, it is unprotected.  So
339          don't leave yourself logged in on other consoles.  You  can  disable
340          VT  switching  globally  and  permanently by setting DontVTSwitch in
341          your xorg.conf(5), but that might make your system  harder  to  use,
342          since VT switching is an actual useful feature.
343
344          There  is  no  way  to  disable VT switching only when the screen is
345          locked.  It's all or nothing.
346
347       Ctrl-Alt-KP_Multiply
348          This keystroke kills any X11 app that holds a lock, so  typing  this
349          will kill XScreenSaver and unlock the screen.  You can disable it by
350          turning off AllowClosedownGrabs in xorg.conf(5).
351
352       Alt-SysRq-F
353          This is the Linux kernel "OOM-killer"  keystroke.   It  shoots  down
354          random  long-running  programs  of its choosing, and so might target
355          and kill XScreenSaver.  You  can  disable  this  keystroke  globally
356          with:
357
358               echo 176 > /proc/sys/kernel/sysrq
359
360          There's  little that I can do to make the screen locker be secure so
361          long as the kernel and X11 developers are actively  working  against
362          security  like  this.   The  strength of the lock on your front door
363          doesn't matter much so long as someone else in the house insists  on
364          leaving a key under the welcome mat.
365
366   THE OOM-KILLER
367       Even  if  you  have  disabled the Alt-SysRq-F OOM-killer keystroke, the
368       OOM-killer might still decide to assassinate  XScreenSaver  at  random,
369       which  will unlock your screen.  If the xscreensaver-auth(6) program is
370       installed setuid, it attempts to  tell  the  OOM-killer  to  leave  the
371       XScreenSaver daemon alone, but that may or may not work.
372
373       You  would  think  that the OOM-killer would pick the process using the
374       most memory, but most of the time it seems to  pick  the  process  that
375       would  be  most  comically inconvenient, such as your screen locker, or
376       crond(8).  You can disable the OOM-killer entirely with:
377
378            echo 2 > /proc/sys/vm/overcommit_memory
379            echo vm.overcommit_memory = 2 >> /etc/sysctl.conf
380
381       In addition to the kernel's OOM-killer, systemd(1) has  its  own.   The
382       included  xscreensaver.service  file  attempts to evade it, but you may
383       want to just turn it off anyway:
384
385            sudo systemctl disable --now systemd-oomd
386            sudo systemctl mask systemd-oomd
387
388
389   X SERVER ACCESS IS GAME OVER
390       X11's security model is all-or-nothing.  If a program  can  connect  to
391       your  X  server  at all, either locally or over the network, it can log
392       all of your keystrokes, simulate keystrokes, launch arbitrary programs,
393       and  change  the settings of other programs.  Assume that anything that
394       can connect to your X server can execute arbitrary code as the  logged-
395       in user.  See Xsecurity(1) and xauth(1).
396
397   PAM PASSWORDS
398       If  your  system  uses PAM (Pluggable Authentication Modules), then PAM
399       must be configured for XScreenSaver.  If it is not, then you  might  be
400       in  a  situation where you can't unlock.  Probably the file you need is
401       /etc/pam.d/xscreensaver.
402
403   DON'T LOG IN AS ROOT
404       Never log in as root.  Log in as a normal user and use sudo(1) as  nec‐
405       essary.   If you are logged in as root, XScreenSaver will not lock your
406       screen or run display modes, for numerous good and proper reasons.
407

MULTI-USER OR SITE-WIDE CONFIGURATION

409       For a single user, the proper way to configure XScreenSaver is to  sim‐
410       ply  run  the xscreensaver-settings(1) program, and change the settings
411       through the GUI.  Changes are written to the ~/.xscreensaver file.
412
413       If you want to set the system-wide defaults, then make  your  edits  to
414       /etc/X11/app-defaults/XScreenSaver instead.  The two files have similar
415       (but not identical) syntax.
416
417       You can also make changes via the X Resource Database and xrdb(1),  but
418       that can be very confusing and is not really recommended.
419
420       Options  in ~/.xscreensaver override any settings in the resource data‐
421       base or app-defaults file.
422
423       If you change a setting in the .xscreensaver file while XScreenSaver is
424       already  running,  it  will notice this, and reload the file as needed.
425       But if you change a setting in the X Resource Database, you  will  need
426       to restart XScreenSaver for those changes to take effect:
427
428            xrdb < ~/.Xdefaults
429            xscreensaver-command --restart
430
431

X RESOURCES

433       These  are  the  X resources use by XScreenSaver program.  You probably
434       won't need to change these manually: that's what the  xscreensaver-set‐
435       tings(1) program is for.
436
437       timeout (class Time)
438               The screensaver will activate (blank the screen) after the key‐
439               board and mouse have been idle for this many minutes.   Default
440               10 minutes.
441
442       cycle (class Time)
443               After  the  screensaver has been running for this many minutes,
444               the currently running graphics-hack sub-process will be  killed
445               (with  SIGTERM), and a new one started.  If this is 0, then the
446               graphics hack will never be changed: only one demo will run un‐
447               til  the  screensaver is deactivated by user activity.  Default
448               10 minutes.
449
450               If  there  are  multiple  screens,  the  savers  are  staggered
451               slightly  so  that  while  they all change every cycle minutes,
452               they don't all change at the same time.
453
454       lock (class Boolean)
455               Enable locking: before the screensaver will turn off,  it  will
456               require you to type the password of the logged-in user.
457
458       lockTimeout (class Time)
459               If  locking  is enabled, this controls the length of the "grace
460               period" between when the screensaver activates,  and  when  the
461               screen  becomes locked.  For example, if this is 5, and timeout
462               is 10, then after 10 minutes, the screen would blank.  If there
463               was  user activity at 12 minutes, no password would be required
464               to un-blank the screen.  But, if there was user activity at  15
465               minutes  or  later  (that is, lockTimeout minutes after activa‐
466               tion) then a password would be required.   The  default  is  0,
467               meaning that if locking is enabled, then a password will be re‐
468               quired as soon as the screen blanks.
469
470       passwdTimeout (class Time)
471               If the screen is locked, then this  is  how  many  seconds  the
472               password  dialog box should be left on the screen before giving
473               up (default 30 seconds).  A few seconds are added each time you
474               type a character.
475
476       dpmsEnabled (class Boolean)
477               Whether power management is enabled.
478
479       dpmsStandby (class Time)
480               If power management is enabled, how long until the monitor goes
481               solid black.
482
483       dpmsSuspend (class Time)
484               If power management is enabled, how long until the monitor goes
485               into power-saving mode.
486
487       dpmsOff (class Time)
488               If power management is enabled, how long until the monitor pow‐
489               ers down completely.  Note that these settings will have no ef‐
490               fect  unless both the X server and the display hardware support
491               power management; not all do.  See the  Power  Management  sec‐
492               tion, below, for more information.
493
494       dpmsQuickOff (class Boolean)
495               If mode is blank and this is true, then the screen will be pow‐
496               ered down immediately upon blanking, regardless of other power-
497               management settings.
498
499       verbose (class Boolean)
500               Whether to print diagnostics.  Default false.
501
502       splash (class Boolean)
503               Whether to display a splash screen at startup.  Default true.
504
505       splashDuration (class Time)
506               How  long  the  splash  screen should remain visible; default 5
507               seconds.
508
509       helpURL (class URL)
510               The splash screen has a Help button on it.  When you press  it,
511               it  will  display  the  web  page  indicated  here  in your web
512               browser.
513
514       loadURL (class LoadURL)
515               This is the shell command used to load  a  URL  into  your  web
516               browser.
517
518       demoCommand (class DemoCommand)
519               This  is  the  shell  command  run  when the Demo button on the
520               splash window is pressed.   It  defaults  to  xscreensaver-set‐
521               tings(1).
522
523       newLoginCommand (class NewLoginCommand)
524               If set, this is the shell command that is run when the "New Lo‐
525               gin" button is pressed on the unlock dialog box,  in  order  to
526               create  a  new desktop session without logging out the user who
527               has locked the screen.  Typically this will be some variant  of
528               gdmflexiserver(1), kdmctl(1), lxdm(1) or dm-tool(1).
529
530       nice (class Nice)
531               The  sub-processes  launched by XScreenSaver will be "niced" to
532               this level, so that they are given lower  priority  than  other
533               processes  on  the system, and don't increase the load unneces‐
534               sarily.  The default is 10.  (Higher numbers mean lower  prior‐
535               ity; see nice(1) for details.)
536
537       fade (class Boolean)
538               If this is true, then when the screensaver activates, the desk‐
539               top will fade to black instead of simply winking out.  Default:
540               true.
541
542       unfade (class Boolean)
543               If this is true, then when the screensaver deactivates, desktop
544               will fade back ininstead of  appearing  immediately.   This  is
545               only done if fade is true as well.  Default: true.
546
547       fadeSeconds (class Time)
548               If  fade is true, this is how long the fade will be in seconds.
549               Default 3 seconds.
550
551       ignoreUninstalledPrograms (class Boolean)
552               There may be programs in the list that are not installed on the
553               system,  yet  are  marked  as "enabled".  If this preference is
554               true, then such programs will simply  be  ignored.   If  false,
555               then a warning will be printed if an attempt is made to run the
556               nonexistent program.  Also, the  xscreensaver-settings(1)  pro‐
557               gram  will  suppress the non-existent programs from the list if
558               this is true.  Default: false.
559
560       authWarningSlack (class Integer)
561               After you successfully unlock the screen, a dialog may  pop  up
562               informing  you  of  previous  failed login attempts.  If all of
563               those login attemps were within this amount of time,  they  are
564               ignored.   The  assumption  is that incorrect passwords entered
565               within a few seconds of a correct one are  user  error,  rather
566               than hostile action.  Default 20 seconds.
567
568       mode (class Mode)
569               Controls the screen-saving behavior.  Valid values are:
570
571               random  When  blanking the screen, select a random display mode
572                       from among those that are enabled and applicable.  This
573                       is the default.
574
575               random-same
576                       Like  random,  but  if there are multiple screens, each
577                       screen will run the same random display  mode,  instead
578                       of each screen running a different one.
579
580               one     When  blanking the screen, only ever use one particular
581                       display mode (the one indicated by  the  selected  set‐
582                       ting).
583
584               blank   When  blanking the screen, just go black: don't run any
585                       graphics hacks.
586
587               off     Don't ever blank the screen, and don't ever  allow  the
588                       monitor to power down.
589
590       selected (class Integer)
591               When  mode is set to one, this is the one, indicated by its in‐
592               dex in the programs list.  You're crazy if you count  them  and
593               set this number by hand: let xscreensaver-settings(1) do it for
594               you!
595
596       programs (class Programs)
597               The graphics hacks which XScreenSaver runs  when  the  user  is
598               idle.   The  value of this resource is a multi-line string, one
599               sh-syntax command per line.  Each line must contain exactly one
600               command: no semicolons, no ampersands.
601
602               When  the  screensaver starts up, one of these is selected (ac‐
603               cording to the mode setting), and run.  After the cycle  period
604               expires, it is killed, and another is selected and run.
605
606               If  a  line begins with a dash (-) then that particular program
607               is disabled: it won't be selected at  random  (though  you  can
608               still  select  it explicitly using the xscreensaver-settings(1)
609               program).
610
611               If all programs are disabled, then the screen will just be made
612               blank, as when mode is set to blank.
613
614               To  disable a program, you must mark it as disabled with a dash
615               instead of removing it from the list.  This is because the sys‐
616               tem-wide  (app-defaults)  and per-user (.xscreensaver) settings
617               are merged together, and if a user just deletes an  entry  from
618               their programs list, but that entry still exists in the system-
619               wide list, then it will come back.  However, if the  user  dis‐
620               ables it, then their setting takes precedence.
621
622               The    default    XScreenSaver   hacks   directory   (typically
623               /usr/libexec/xscreensaver/)  is  prepended  to   $PATH   before
624               searching for these programs.
625
626               To  use  a  program as a screensaver, it must be able to render
627               onto the window provided to it in the $XSCREENSAVER_WINDOW  en‐
628               vironment  variable.  If it creates and maps its own window in‐
629               stead, it won't work.  It must render onto the provided window.
630
631               Visuals:
632
633               Because XScreenSaver was created back when dinosaurs roamed the
634               earth,  it still contains support for some things you've proba‐
635               bly never seen, such as 1-bit  monochrome  monitors,  grayscale
636               monitors,  and  monitors  capable of displaying only 8-bit col‐
637               ormapped images.
638
639               If there are some programs that you want to run only when using
640               a  color display, and others that you want to run only when us‐
641               ing a monochrome display, you can specify that like this:
642
643                    mono:   mono-program  -root        \n\
644                    color:  color-program -root        \n\
645
646               More generally, you can specify the kind of visual that  should
647               be  used  for  the window on which the program will be drawing.
648               For example, if one program works best if it  has  a  colormap,
649               but  another  works best if it has a 24-bit visual, both can be
650               accommodated:
651
652                    PseudoColor: cmap-program  -root   \n\
653                    TrueColor:   24bit-program -root   \n\
654
655               In addition to the symbolic visual names  described  above  (in
656               the  discussion of the visualID resource) one other visual name
657               is supported in the programs list:
658
659        default-n
660            This is like default, but also requests the  use  of  the  default
661            colormap, instead of a private colormap.
662
663       If  you specify a particular visual for a program, and that visual does
664       not exist on the screen, then that program will not be chosen  to  run.
665       This  means that on displays with multiple screens of different depths,
666       you can arrange for appropriate hacks to be run on each.  For  example,
667       if  one  screen  is  color and the other is monochrome, hacks that look
668       good in mono can be run on one, and hacks that only look good in  color
669       will show up on the other.
670
671       visualID (class VisualID)
672               This  is  an historical artifact left over from when 8-bit dis‐
673               plays were still common.  You should probably ignore this.
674
675               Specify which X visual to use by default.  (Note carefully that
676               this resource is called visualID, not merely visual; if you set
677               the visual resource instead, things will malfunction in obscure
678               ways for obscure reasons.)
679
680               Valid values for the VisualID resource are:
681
682               default Use the screen's default visual (the visual of the root
683                       window).  This is the default.
684
685               best    Use the visual which supports the most  colors.   Note,
686                       however,  that the visual with the most colors might be
687                       a TrueColor visual, which does not support colormap an‐
688                       imation.   Some programs have more interesting behavior
689                       when run on PseudoColor visuals than on TrueColor.
690
691               mono    Use a monochrome visual, if there is one.
692
693               gray    Use a grayscale or staticgray visual, if there  is  one
694                       and it has more than one plane (that is, it's not mono‐
695                       chrome).
696
697               color   Use the best of the color visuals, if there are any.
698
699               GL      Use the  visual  that  is  best  for  OpenGL  programs.
700                       (OpenGL  programs  have somewhat different requirements
701                       than other X programs.)
702
703               class   where class is one of  StaticGray,  StaticColor,  True‐
704                       Color, GrayScale, PseudoColor, or DirectColor.  Selects
705                       the deepest visual of the given class.
706
707               N       where number (decimal or hex) is interpreted as a  vis‐
708                       ual  id number, as reported by the xdpyinfo(1) program;
709                       in this way you can have  finer  control  over  exactly
710                       which  visual gets used, for example, to select a shal‐
711                       lower one than would otherwise have been chosen.
712
713               Note that this option specifies only the  default  visual  that
714               will  be  used: the visual used may be overridden on a program-
715               by-program basis.  See the  description  of  the  programs  re‐
716               source, above.
717
718       installColormap (class Boolean)
719               This  is  an historical artifact left over from when 8-bit dis‐
720               plays were still common.  On PseudoColor (8-bit) displays,  in‐
721               stall  a  private  colormap while the screensaver is active, so
722               that the graphics hacks can get as  many  colors  as  possible.
723               This  is the default.  (This only applies when the screen's de‐
724               fault visual is being used, since non-default visuals get their
725               own colormaps automatically.)  This can also be overridden on a
726               per-hack basis: see the discussion of the default-n name in the
727               section about the programs resource.
728
729               This  does  nothing  if you have a TrueColor (16-bit or deeper)
730               display.  (Which, in this century, you do.)
731
732       pointerHysteresis (class Integer)
733               If the mouse moves less than this-many pixels in a second,  ig‐
734               nore  it  (do  not consider that to be "activity").  This is so
735               that the screen doesn't un-blank (or fail to  blank)  just  be‐
736               cause you bumped the desk.  Default: 10 pixels.
737
738               A  single pixel of motion will still cause the monitor to power
739               back on, but not un-blank. This is because the X11  server  it‐
740               self  unfortunately  handles  power-management-related activity
741               detection rather than XScreenSaver.
742

BUGS

744       https://www.jwz.org/xscreensaver/bugs.html explains how  to  write  the
745       most useful bug reports.  If you find a bug, please let me know!
746

ENVIRONMENT

748       DISPLAY to  get  the default host and display number, and to inform the
749               sub-programs of the screen on which to draw.
750
751       XSCREENSAVER_WINDOW
752               Passed to sub-programs to indicate the  ID  of  the  window  on
753               which they should draw.
754
755       PATH    to find the sub-programs to run, including the display modes.
756
757       HOME    for the directory in which to read the .xscreensaver file.
758
759       XENVIRONMENT
760               to  get  the  name of a resource file that overrides the global
761               resources stored in the RESOURCE_MANAGER property.
762

UPGRADES

764       The latest version of XScreenSaver, an online version of  this  manual,
765       and a FAQ can always be found at https://www.jwz.org/xscreensaver/
766

SEE ALSO

768       X(1), Xsecurity(1), xauth(1), xdm(1), gdm(1), xhost(1), systemd(1), el‐
769       ogind(8), xscreensaver-settings(1),  xscreensaver-command(1),  xscreen‐
770       saver-systemd(6),  xscreensaver-gl-helper(6), xscreensaver-getimage(6),
771       xscreensaver-text(6).
772
774       Copyright © 1991-2022 by Jamie Zawinski.  Permission to use, copy, mod‐
775       ify,  distribute,  and sell this software and its documentation for any
776       purpose is hereby granted without fee, provided that  the  above  copy‐
777       right  notice  appear in all copies and that both that copyright notice
778       and this permission notice appear in supporting documentation.  No rep‐
779       resentations  are  made  about the suitability of this software for any
780       purpose.  It is provided "as is" without express or implied warranty.
781

AUTHOR

783       Jamie Zawinski <jwz@jwz.org>
784
785       Please let me know if you find any bugs or make any improvements.
786
787       And a huge thank you to the hundreds of people who have contributed, in
788       large  ways  and  small,  to  the XScreenSaver collection over the past
789       three decades!
790
791
792
793X Version 11               6.08-1.fc38 (17-Oct-2023)           XScreenSaver(1)
Impressum