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 to change these settings  on
163              all three of them: "On AC power", "Battery" and "Low Battery".
164
165           3: Launch XScreenSaver at login.
166              Copy  the file /usr/share/applications/xscreensaver.desktop into
167              the directory ~/.config/autostart/
168
169           4: Make KDE's "Lock" icon use XScreenSaver.
170              Find  the  "kscreenlocker_greet"  program.   It  might   be   in
171              "/usr/lib/*/libexec/",  or  it  might be somewhere else.  Delete
172              that file and replace it with a file containing these two lines.
173              Make it executable (chmod a+x).
174
175                   #!/bin/sh
176                   xscreensaver-command --lock &
177
178              This change will get blown away when you upgrade.
179
180           5: Turn off KDE's built-in locking on suspend, even harder.
181              Even after disabling KDE's screen locking, above, it is possible
182              that KDE will still use its built-in locker when you close  your
183              laptop's  lid.   If that is happening, double-check the settings
184              above, but if those are correct, try the following.  First,  en‐
185              sure  you  are running KDE 5.21 or newer.  Next, enable "systemd
186              user sessions" for KDE so that you can edit the  parameters  for
187              ksmserver:
188
189                   kwriteconfig5 --file startkderc --group General \
190                     --key systemdBoot true
191
192              Log out and back in.
193
194              Next,  edit the plasma-ksmserver service to change how ksmserver
195              is launched:
196
197                   systemctl edit --user plasma-ksmserver.service
198
199              Replace the contents of the file that lets you edit with this:
200
201                   [Service]
202                   ExecStart=
203                   ExecStart=/usr/bin/ksmserver --no-lockscreen
204
205              Then log out and back in again.
206
207   LAUNCHING XSCREENSAVER FROM LXDE
208       Add the  line  @xscreensaver  to  /etc/xdg/lxsession/LXDE/autostart  or
209       /etc/xdg/lxsession/LXDE-pi/autostart.
210
211   LAUNCHING XSCREENSAVER FROM SYSTEMD
212       If you are not using GNOME, KDE or LXDE, the way to launch XScreenSaver
213       at login is probably systemd(1).
214
215       Copy the file /usr/share/xscreensaver/xscreensaver.service into the di‐
216       rectory  ~/.config/systemd/user/.   Create  that  directory first if it
217       doesn't exist.  Then enable it with:
218
219            systemctl --user enable xscreensaver
220
221
222   LAUNCHING XSCREENAVER FROM UPSTART
223       If you are not using GNOME, KDE or  LXDE,  and  your  system  uses  up‐
224       start(7)  instead  of systemd(1), launch the "Startup Applications" ap‐
225       plet, click "Add", and enter these lines:
226
227            Name: XScreenSaver
228            Command: xscreensaver
229            Comment: XScreenSaver
230
231
232   LAPTOP LIDS WITHOUT SYSTEMD
233       BSD systems or other systems without  systemd(1)  or  elogind(8)  might
234       have  luck by adding "xscreensaver-command --suspend" to some appropri‐
235       ate spot in /etc/acpi/events/anything or  in  /etc/acpi/handler.sh,  if
236       those files exist.
237
238   LAUNCHING XSCREENSAVER FROM GDM
239       You  can run xscreensaver from your gdm(1) session, so that the screen‐
240       saver will run even when nobody is logged in on  the  console.   To  do
241       this, run gdmconfig(1).
242
243       On the General page set the Local Greeter to Standard Greeter.
244
245       On the Background page, type the command "xscreensaver --nosplash" into
246       the Background Program field.  That will cause gdm to run  XScreenSaver
247       while  nobody is logged in, and kill it as soon as someone does log in.
248       (The user will then be responsible for starting XScreenSaver  on  their
249       own, if they want.)
250
251       If  that  doesn't  work,  you  can  edit the config file directly. Edit
252       /etc/X11/gdm/gdm.conf to include:
253
254            Greeter=/usr/bin/gdmlogin
255            BackgroundProgram=xscreensaver --nosplash
256            RunBackgroundProgramAlways=true
257
258       In this situation, the xscreensaver process will  be  running  as  user
259       gdm.   You  can  configure the settings for this nobody-logged-in state
260       (timeouts, DPMS, etc.) by editing the ~gdm/.xscreensaver file.
261
262       If you get "connection refused" errors when running  xscreensaver  from
263       gdm,  then  this  probably means that you are having xauth(1) problems.
264       For information on the X server's access control  mechanisms,  see  the
265       man pages for X(1), Xsecurity(1), xauth(1), and xhost(1).
266
267       There  might  be  a way to accomplish this with other display managers.
268       It's a mystery!
269

THE WAYLAND PROBLEM

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

SECURITY CONCERNS

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

MULTI-USER OR SITE-WIDE CONFIGURATION

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

X RESOURCES

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

BUGS

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

ENVIRONMENT

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

UPGRADES

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

SEE ALSO

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

AUTHOR

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