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] [--no-splash]
10       [--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
27

HOW IT WORKS

29       When it is time to activate the screensaver, a full-screen black window
30       is created that covers each monitor.  A  sub-process  is  launched  for
31       each  one  running  a graphics demo, pointed at the appropriate window.
32       Because of this, any program which can draw on a provided window can be
33       used  as  a screensaver.  The various graphics demos are, in fact, just
34       standalone programs that do that.
35
36       When the user becomes active again, the  screensaver  windows  are  un‐
37       mapped, and the running subprocesses are killed.
38
39       The  display modes are run at a low process priority, and spend most of
40       their time sleeping/idle by default, so they should not consume signif‐
41       icant system resources.
42
43

COMMAND-LINE OPTIONS

45       --display host:display.screen
46               The  X  display  to  use.   For displays with multiple screens,
47               XScreenSaver will manage all screens on the display  simultane‐
48               ously.
49
50       --verbose
51               Print diagnostics to stderr.
52
53       --log filename
54               Append  all diagnostic output to the given file.  This also im‐
55               plies --verbose.  Use this when reporting bugs.
56
57       --no-splash
58               Don't display the splash screen at startup.
59
60

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.
65
66       If the power management section is grayed out in the  xscreensaver-set‐
67       tings(1)  window,   then that means that your X server does not support
68       the XDPMS extension, and so control over the monitor's power  state  is
69       not available.
70
71       When the monitor is powered down, the display hacks are stopped (though
72       it may take a minute or two for XScreenSaver to notice).
73
74       Note: if you use xset(1)  to  change  the  power  management  settings,
75       XScreenSaver   will   override  those  changes.   Whatever  is  in  the
76       ~/.xscreensaver file takes precedence.
77
78

LAPTOP LIDS

80       If your system has systemd(1) 221 or newer, or elogind(8), then closing
81       the lid of your laptop will cause the screen to lock immediately.
82
83       If  not,  then  the screen might not lock until a few seconds after you
84       re-open the lid.  Which is less than ideal.  So if you don't  use  sys‐
85       temd,  you might want to get in the habit of doing xscreensaver-command
86       --lock before closing the lid.
87
88

PLAYING VIDEOS

90       Likewise, if you have systemd(1) 221 or newer, or elogind(8), then  all
91       of the popular video players and web browsers will prevent XScreenSaver
92       from blanking the screen while video is playing.
93
94       Both of these features require  that  xscreensaver-systemd(6)  be  able
95       connect to the systemd bus.  Parts of KDE and GNOME may need to be dis‐
96       abled first for that to work; see below.
97
98

INSTALLATION

100       Each desktop environment has its own system for launching  long-running
101       daemons  like  XScreenSaver,  and  since many of them come bundled with
102       their own (buggy, insecure, inferior) screen-locking frameworks, it  is
103       also  necessary  to  disable those other frameworks before XScreenSaver
104       can work.
105
106
107   INSTALLING XSCREENSAVER ON GNOME OR UNITY
108       For many years, GNOME shipped XScreenSaver as-is, and  everything  just
109       worked.   In  2005,  however,  they decided to needlessly re-invent the
110       wheel and ship their own replacement for the xscreensaver daemon called
111       gnome-screensaver(1)  rather than improving XScreenSaver and contribut‐
112       ing their changes back.  As a result, the gnome-screensaver program  is
113       insecure,  bug-ridden,  and  missing many features of XScreenSaver.  In
114       fact, in 2011 it lost the ability to run display modes at all.
115
116       In 2012 some distros forked and renamed it as both  mate-screensaver(1)
117       and cinnamon-screensaver(1), which seem to be basically the same.
118
119       To replace gnome-screensaver with XScreenSaver:
120
121           1: Fully uninstall the other screen saver packages:
122
123                   sudo apt-get remove gnome-screensaver
124                   sudo apt-get remove mate-screensaver
125                   sudo apt-get remove cinnamon-screensaver
126              or
127                   sudo rpm -e gnome-screensaver
128                   sudo rpm -e mate-screensaver
129                   sudo rpm -e cinnamon-screensaver
130
131              Be careful that it doesn't try to uninstall all of GNOME.
132
133
134           2: Launch XScreenSaver at login.
135
136              Select  "Startup Applications" from the menu (or manually launch
137              "gnome-session-properties") and add "xscreensaver".
138
139              Do this as your normal user account, not as root.  (This  should
140              go  without  saying,  because  you  should  never, ever, ever be
141              logged in to the graphical desktop as user "root".)
142
143           3: Make GNOME's "Lock Screen" use XScreenSaver.
144
145                   sudo ln -sf /usr/bin/xscreensaver-command \
146                          /usr/bin/gnome-screensaver-command
147
148              That doesn't work under Unity, though.  Apparently  it  has  its
149              own  built-in  screen locker which is not gnome-screensaver, and
150              cannot be removed, and yet still manages to  be  bug-addled  and
151              insecure.  Keep reinventing that wheel, guys!  (If you have fig‐
152              ured out how to replace Unity's locking "feature" with  XScreen‐
153              Saver, let me know.)
154
155
156           4: Turn off Unity's built-in blanking.
157
158              Open "System Settings / Brightness & Lock";
159              Un-check "Start Automatically";
160              Set "Turn screen off when inactive for" to "Never".
161              Or possibly that has been randomly renamed again:
162              Set "Settings / Power / Power Settings" to "Never".
163
164           5: Stop GNOME from blocking XScreenSaver's "systemd" integration:
165
166                   sudo systemctl --user mask gsd-screensaver-proxy.service
167
168              Without  the  above,  video  players  will  not  be able to tell
169              XScreenSaver not to blank the screen while videos  are  playing,
170              and  the  screen will not auto-lock when you close your laptop's
171              lid.
172
173              After running that command, reboot.  Yes, you have to reboot; it
174              won't  let you simply stop the service.  Logging out won't do it
175              either.
176
177
178   INSTALLING XSCREENSAVER ON KDE
179       Like GNOME, KDE also decided to invent their own screen saver framework
180       from  scratch instead of simply using XScreenSaver.  To replace the KDE
181       screen saver with XScreenSaver, do the following:
182
183           1: Turn off KDE's screen saver.
184              Open the "Control Center" and select the "Appearance & Themes  /
185              Screensaver" page.  Un-check "Start Automatically".
186
187              Or possibly: Open "System Settings" and select "Screen Locking".
188              Un-check "Lock Screen Automatically".
189
190           2: Find your Autostart directory.
191              Open the "System Administration / Paths" page, and see what your
192              "Autostart  path"  is set to: it will probably be something like
193              ~/.kde/Autostart/ or ~/.config/autostart/
194
195              If that doesn't work, then try this:
196
197              Open "System Settings / Startup/Shutdown / Autostart", and  then
198              add "/usr/bin/xscreensaver".
199
200              If you are lucky, that will create a "xscreensaver.desktop" file
201              for you in ~/.config/autostart/ or ~/.kde/Autostart/.
202
203           3: Make XScreenSaver be an Autostart program.
204              If it does not already exist, create a file  in  your  autostart
205              directory  called xscreensaver.desktop that contains the follow‐
206              ing six lines:
207
208                   [Desktop Entry]
209                   Exec=xscreensaver
210                   Name=XScreenSaver
211                   Type=Application
212                   StartupNotify=false
213                   X-KDE-StartupNotify=false
214
215
216           4: Make the various "lock session" buttons call XScreenSaver.
217              The file you want to replace next  has  moved  around  over  the
218              years. It might be called /usr/libexec/kde4/kscreenlocker, or it
219              might be called "kdesktop_lock" or "krunner_lock"  or  "kscreen‐
220              locker_greet",  and  it might be in /usr/lib/kde4/libexec/ or in
221              /usr/kde/3.5/bin/ or even in /usr/bin/, depending on the  distro
222              and  phase  of the moon.  Replace the contents of that file with
223              these two lines:
224
225                   #!/bin/sh
226                   xscreensaver-command --lock
227
228              Make sure the file is executable (chmod a+x).
229
230           5: Stop KDE from blocking XScreenSaver's "systemd" integration:
231              You must arrange for KDE's ksmserver(1) daemon  to  be  launched
232              with the command line switch --no-lockscreen.
233
234              One  way to accomplish that is to edit the startkde(1) script in
235              /usr/bin/ by hand, then log out and log back  in.   Another  way
236              would be to wrap the ksmserver program:
237
238                   mv /usr/bin/ksmserver /usr/bin/ksmserver-orig
239
240              and replace /usr/bin/ksmserver with:
241
242                   #!/bin/sh
243                   ksmserver-orig --no-lockscreen
244
245              Either change will, of course, get blown away the next time your
246              system upgrades KDE.
247
248              Instead of being in /usr/bin/, the ksmserver program might be in
249              /usr/lib/  or  usr/lib*/libexec/  or usr/lib/*/libexec/ or some‐
250              where else, depending on your distro.
251
252              But without this,  video  players  will  not  be  able  to  tell
253              XScreenSaver  not  to blank the screen while videos are playing,
254              and the screen will not auto-lock when you close  your  laptop's
255              lid.
256
257              It  seems  that KDE 5.17 replaced startkde with startplasma-x11,
258              and I don't know how to change how that launches ksmserver.  Let
259              me know if you figure it out.
260
261
262   LAUNCHING XSCREENSAVER FROM SYSTEMD
263       If  the  above didn't do it, and your system has systemd(1), maybe this
264       is how it works:
265
266           1: Create a service.
267              Create the file ~/.config/systemd/user/xscreensaver.service con‐
268              taining:
269
270                   [Unit]
271                   Description=XScreenSaver
272                   [Service]
273                   ExecStart=/usr/bin/xscreensaver
274                   Restart=on-failure
275                   [Install]
276                   WantedBy=default.target
277
278
279           2. Enable it.
280
281                   systemctl --user enable xscreensaver
282
283       Then restart X11.
284
285
286   LAUNCHING XSCREENAVER FROM UPSTART
287       If  your  system  has upstart(7) instead of systemd(1), maybe this will
288       work: launch the "Startup  Applications"  applet,  click  "Add",  enter
289       these lines, then restart X11:
290
291            Name: XScreenSaver
292            Command: xscreensaver
293            Comment: XScreenSaver
294
295
296
297   LAUNCHING XSCREENSAVER FROM GDM
298       You  can run xscreensaver from your gdm(1) session, so that the screen‐
299       saver will run even when nobody is logged in on  the  console.   To  do
300       this, run gdmconfig(1).
301
302       On the General page set the Local Greeter to Standard Greeter.
303
304       On the Background page, type the command "xscreensaver --nosplash" into
305       the Background Program field.  That will cause gdm to run  XScreenSaver
306       while  nobody is logged in, and kill it as soon as someone does log in.
307       (The user will then be responsible for starting XScreenSaver  on  their
308       own, if they want.)
309
310       If  that  doesn't  work,  you  can  edit the config file directly. Edit
311       /etc/X11/gdm/gdm.conf to include:
312
313            Greeter=/usr/bin/gdmlogin
314            BackgroundProgram=xscreensaver --nosplash
315            RunBackgroundProgramAlways=true
316
317       In this situation, the xscreensaver process will probably be running as
318       user  gdm  instead of as root.  You can configure the settings for this
319       nobody-logged-in  state  (timeouts,  DPMS,   etc.)   by   editing   the
320       ~gdm/.xscreensaver file.
321
322       It  is safe to run xscreensaver as root (as xdm or gdm may do).  If run
323       as root, xscreensaver changes its effective user and group ids to some‐
324       thing safe (like "nobody") before connecting to the X server or launch‐
325       ing user-specified programs.
326
327       An unfortunate side effect of this (important) security  precaution  is
328       that it may conflict with cookie-based authentication.
329
330       If  you  get "connection refused" errors when running xscreensaver from
331       gdm, then this probably means that you have xauth(1) or some other  se‐
332       curity  mechanism  turned on.  For information on the X server's access
333       control mechanisms, see the man pages for X(1), Xsecurity(1), xauth(1),
334       and xhost(1).
335
336
337   LAPTOP LIDS WITHOUT SYSTEMD
338       BSD  systems  or  other  systems without systemd(1) or elogind(8) might
339       have luck by adding xscreensaver-command --suspend to some  appropriate
340       spot  in /etc/acpi/events/anything or in /etc/acpi/handler.sh, if those
341       files exist.
342
343

SECURITY CONCERNS

345       XScreenSaver has a decades-long track record of securely  locking  your
346       screen.   However,  there  are many things that can go wrong.  X11 is a
347       very old system, and has a number of design flaws that make it  suscep‐
348       tible to foot-shooting.
349
350
351   MAGIC BACKDOOR KEYSTROKES
352       The  XFree86 and Xorg X servers, as well as the Linux kernel, both trap
353       certain magic keystrokes before X11 client programs ever see them.   If
354       you care about keeping your screen locked, this is a big problem.
355
356
357       Ctrl+Alt+Backspace
358          This  keystroke  kills the X server, and on some systems, leaves you
359          at a text console.  If the user launched  X11  manually,  that  text
360          console will still be logged in.  To disable this keystroke globally
361          and permanently, you need to set the DontZap flag in your  xorg.conf
362          or  XF86Config  or  XF86Config-4  file, depending which is in use on
363          your system.  See XF86Config(5) for details.
364
365
366       Ctrl-Alt-F1, Ctrl-Alt-F2, etc.
367          These keystrokes will switch to a different virtual  console,  while
368          leaving  the  console  that X11 is running on locked.  If you left a
369          shell logged in on another virtual console, it is  unprotected.   So
370          don't  leave  yourself logged in on other consoles.  You can disable
371          VT switching globally and permanently  by  setting  DontVTSwitch  in
372          your xorg.conf, but that might make your system harder to use, since
373          VT switching is an actual useful feature.
374
375          There is no way to disable VT switching  only  when  the  screen  is
376          locked.  It's all or nothing.
377
378
379       Ctrl-Alt-KP_Multiply
380          This  keystroke  kills any X11 app that holds a lock, so typing this
381          will kill XScreenSaver and unlock the screen.  You can disable it by
382          turning off AllowClosedownGrabs in xorg.conf.
383
384
385       Alt-SysRq-F
386          This  is  the  Linux  kernel "OOM-killer" keystroke.  It shoots down
387          random long-running programs of its choosing, and  so  might  target
388          and  kill  XScreenSaver.   You  can  disable this keystroke globally
389          with:
390
391               echo 176 > /proc/sys/kernel/sysrq
392
393          There's little that I can do to make the screen locker be secure  so
394          long  as  the kernel and X11 developers are actively working against
395          security like this.  The strength of the lock  on  your  front  door
396          doesn't  matter much so long as someone else in the house insists on
397          leaving a key under the welcome mat.
398
399   THE OOM-KILLER
400       Even if you have disabled the  Alt-SysRq-F  OOM-killer  keystroke,  the
401       OOM-killer  might  still  decide to assassinate XScreenSaver at random,
402       which will unlock your screen.  If the xscreensaver-auth(6) program  is
403       installed  setuid,  it  attempts  to  tell  the OOM-killer to leave the
404       XScreenSaver daemon alone, but that may or may not work.
405
406       You would think that the OOM-killer would pick the  process  using  the
407       most  memory,  but  most  of the time it seems to pick the process that
408       would be most comically inconvenient, such as your  screen  locker,  or
409       crond(8).  You can disable the OOM-killer entirely with:
410
411            echo 2 > /proc/sys/vm/overcommit_memory
412            echo vm.overcommit_memory = 2 >> /etc/sysctl.conf
413
414
415
416   X SERVER ACCESS IS GAME OVER
417       X11's  security  model  is all-or-nothing.  If a program can connect to
418       your X server at all, either locally or over the network,  it  can  log
419       all of your keystrokes, simulate keystrokes, launch arbitrary programs,
420       and change the settings of other programs.  Assume that  anything  that
421       can  connect to your X server can execute arbitrary code as the logged-
422       in user.  See Xsecurity(1) and xauth(1).
423
424
425   PAM PASSWORDS
426       If your system uses PAM (Pluggable Authentication  Modules),  then  PAM
427       must  be  configured for XScreenSaver.  If it is not, then you might be
428       in a situation where you can't unlock.  Probably the file you  need  is
429       /etc/pam.d/xscreensaver.
430
431
432   DON'T LOG IN AS ROOT
433       In order for it to be safe for XScreenSaver to be launched by xdm, cer‐
434       tain precautions had to be taken, among them  that  XScreenSaver  never
435       runs  as  root.   In  particular,  if it is launched as root (as xdm is
436       likely to do), XScreenSaver will disavow its privileges, and switch it‐
437       self to a safe user id (such as nobody).
438
439       An  implication  of  this is that if you log in as root on the console,
440       XScreenSaver will refuse to lock the screen (because it can't tell  the
441       difference  between  root  being logged in on the console, and a normal
442       user being logged in  on  the  console  but  XScreenSaver  having  been
443       launched by the xdm(1) Xsetup file).
444
445       Proper  Unix  hygiene  dictates that you should log in as yourself, and
446       sudo(1) to root as necessary.  People who spend their day logged in  as
447       root are just begging for disaster.
448
449

MULTI-USER OR SITE-WIDE CONFIGURATION

451       For  a single user, the proper way to configure XScreenSaver is to sim‐
452       ply run the xscreensaver-settings(1) program, and change  the  settings
453       through the GUI.  The rest of this manual describes lower-level ways of
454       changing settings.  You shouldn't need to know any  of  the  stuff  de‐
455       scribed below unless you are trying to do something complicated.
456
457       Options  to  XScreenSaver  are  stored  in one of two places: in a file
458       called .xscreensaver  in your home directory;  or  in  the  X  resource
459       database.   If the .xscreensaver file exists, it overrides any settings
460       in the resource database.
461
462       The syntax of the .xscreensaver file is similar to that  of  the  .Xde‐
463       faults  file; for example, to set the timeout parameter n the .xscreen‐
464       saver file, you would write the following:
465
466            timeout: 5
467
468       whereas, in the .Xdefaults file, you would write
469
470            xscreensaver.timeout: 5
471
472       If you change a setting in the .xscreensaver file while XScreenSaver is
473       already running, it will notice this, and reload the file as needed.
474
475       If  you  change  a  setting in your X resource database, or if you want
476       XScreenSaver to notice your changes immediately  instead  of  the  next
477       time  it  wakes  up, then you will need to reload your .Xdefaults file,
478       and then tell the running xscreensaver process to restart itself,  like
479       so:
480
481            xrdb < ~/.Xdefaults
482            xscreensaver-command --restart
483
484       If  you  want  to set the system-wide defaults, then make your edits to
485       the XScreenSaver app-defaults file, which should  have  been  installed
486       when  XScreenSaver  itself  was  installed.  The app-defaults file will
487       usually be named /etc/X11/app-defaults/XScreenSaver, but different sys‐
488       tems might keep it in a different place.
489
490       When settings are changed in the Preferences dialog box, those settings
491       are written to the .xscreensaver file.  The  .Xdefaults  file  and  the
492       app-defaults file will never be written by XScreenSaver itself.
493
494

X RESOURCES

496       These  are  the  X resources use by XScreenSaver program.  You probably
497       won't need to change these manually: that's what the  xscreensaver-set‐
498       tings(1) program is for.
499
500
501       timeout (class Time)
502               The screensaver will activate (blank the screen) after the key‐
503               board and mouse have been idle for this many minutes.   Default
504               10 minutes.
505
506
507       cycle (class Time)
508               After  the  screensaver has been running for this many minutes,
509               the currently running graphics-hack sub-process will be  killed
510               (with  SIGTERM), and a new one started.  If this is 0, then the
511               graphics hack will never be changed: only one demo will run un‐
512               til  the  screensaver is deactivated by user activity.  Default
513               10 minutes.
514
515               If  there  are  multiple  screens,  the  savers  are  staggered
516               slightly  so  that  while  they all change every cycle minutes,
517               they don't all change at the same time.
518
519
520       lock (class Boolean)
521               Enable locking: before the screensaver will turn off,  it  will
522               require you to type the password of the logged-in user.
523
524
525       lockTimeout (class Time)
526               If  locking  is enabled, this controls the length of the "grace
527               period" between when the screensaver activates,  and  when  the
528               screen  becomes locked.  For example, if this is 5, and timeout
529               is 10, then after 10 minutes, the screen would blank.  If there
530               was  user activity at 12 minutes, no password would be required
531               to un-blank the screen.  But, if there was user activity at  15
532               minutes  or  later  (that is, lockTimeout minutes after activa‐
533               tion) then a password would be required.   The  default  is  0,
534               meaning that if locking is enabled, then a password will be re‐
535               quired as soon as the screen blanks.
536
537
538       passwdTimeout (class Time)
539               If the screen is locked, then this  is  how  many  seconds  the
540               password  dialog box should be left on the screen before giving
541               up (default 30 seconds).  A few seconds are added each time you
542               type a character.
543
544
545       dpmsEnabled (class Boolean)
546               Whether power management is enabled.
547
548
549       dpmsStandby (class Time)
550               If power management is enabled, how long until the monitor goes
551               solid black.
552
553
554       dpmsSuspend (class Time)
555               If power management is enabled, how long until the monitor goes
556               into power-saving mode.
557
558
559       dpmsOff (class Time)
560               If power management is enabled, how long until the monitor pow‐
561               ers down completely.  Note that these settings will have no ef‐
562               fect  unless both the X server and the display hardware support
563               power management; not all do.  See the  Power  Management  sec‐
564               tion, below, for more information.
565
566
567       dpmsQuickOff (class Boolean)
568               If mode is blank and this is true, then the screen will be pow‐
569               ered down immediately upon blanking, regardless of other power-
570               management settings.
571
572
573       verbose (class Boolean)
574               Whether to print diagnostics.  Default false.
575
576
577       splash (class Boolean)
578               Whether to display a splash screen at startup.  Default true.
579
580
581       splashDuration (class Time)
582               How  long  the  splash  screen should remain visible; default 5
583               seconds.
584
585
586       helpURL (class URL)
587               The splash screen has a Help button on it.  When you press  it,
588               it  will  display  the  web  page  indicated  here  in your web
589               browser.
590
591
592       loadURL (class LoadURL)
593               This is the shell command used to load  a  URL  into  your  web
594               browser.   The  default  setting will load it into Mozilla/Net‐
595               scape if it is already running, otherwise, will  launch  a  new
596               browser looking at the helpURL.
597
598
599       demoCommand (class DemoCommand)
600               This  is  the  shell  command  run  when the Demo button on the
601               splash window is pressed.   It  defaults  to  xscreensaver-set‐
602               tings(1).
603
604
605       newLoginCommand (class NewLoginCommand)
606               If set, this is the shell command that is run when the "New Lo‐
607               gin" button is pressed on the unlock dialog box,  in  order  to
608               create  a  new desktop session without logging out the user who
609               has locked the screen.  Typically this will be some variant  of
610               gdmflexiserver(1), kdmctl(1), lxdm(1) or dm-tool(1).
611
612
613       nice (class Nice)
614               The  sub-processes  launched by XScreenSaver will be "niced" to
615               this level, so that they are given lower  priority  than  other
616               processes  on  the system, and don't increase the load unneces‐
617               sarily.  The default is 10.  (Higher numbers mean lower  prior‐
618               ity; see nice(1) for details.)
619
620
621       fade (class Boolean)
622               If  this is true, then when the screensaver activates, the cur‐
623               rent contents of the screen will fade to black instead of  sim‐
624               ply winking out.  Default: true.
625
626
627       unfade (class Boolean)
628               If  this  is  true,  then when the screensaver deactivates, the
629               original contents of the screen will fade in from black instead
630               of appearing immediately.  This is only done if fade is true as
631               well.  Default: true.
632
633
634       fadeSeconds (class Time)
635               If fade is true, this is how long the fade will be in  seconds.
636               Default 3 seconds.
637
638
639       ignoreUninstalledPrograms (class Boolean)
640               There may be programs in the list that are not installed on the
641               system, yet are marked as "enabled".   If  this  preference  is
642               true,  then  such  programs  will simply be ignored.  If false,
643               then a warning will be printed if an attempt is made to run the
644               nonexistent  program.   Also, the xscreensaver-settings(1) pro‐
645               gram will suppress the non-existent programs from the  list  if
646               this is true.  Default: false.
647
648
649       authWarningSlack (class Integer)
650               After  you  successfully unlock the screen, a dialog may pop up
651               informing you of previous failed login  attempts.   If  all  of
652               those  login  attemps were within this amount of time, they are
653               ignored.  The assumption is that  incorrect  passwords  entered
654               within  a  few  seconds of a correct one are user error, rather
655               than hostile action.  Default 20 seconds.
656
657
658       mode (class Mode)
659               Controls the screen-saving behavior.  Valid values are:
660
661
662               random  When blanking the screen, select a random display  mode
663                       from among those that are enabled and applicable.  This
664                       is the default.
665
666
667               random-same
668                       Like random, but if there are  multiple  screens,  each
669                       screen  will  run the same random display mode, instead
670                       of each screen running a different one.
671
672
673               one     When blanking the screen, only ever use one  particular
674                       display  mode  (the  one indicated by the selected set‐
675                       ting).
676
677
678               blank   When blanking the screen, just go black: don't run  any
679                       graphics hacks.
680
681
682               off     Don't  ever  blank the screen, and don't ever allow the
683                       monitor to power down.
684
685
686       selected (class Integer)
687               When mode is set to one, this is the one, indicated by its  in‐
688               dex  in  the programs list.  You're crazy if you count them and
689               set this number by hand: let xscreensaver-settings(1) do it for
690               you!
691
692
693       programs (class Programs)
694               The  graphics  hacks  which  XScreenSaver runs when the user is
695               idle.  The value of this resource is a multi-line  string,  one
696               sh-syntax command per line.  Each line must contain exactly one
697               command: no semicolons, no ampersands.
698
699               When the screensaver starts up, one of these is  selected  (ac‐
700               cording  to the mode setting), and run.  After the cycle period
701               expires, it is killed, and another is selected and run.
702
703               If a line begins with a dash (-) then that  particular  program
704               is  disabled:  it  won't  be selected at random (though you can
705               still select it explicitly using  the  xscreensaver-settings(1)
706               program).
707
708               If all programs are disabled, then the screen will just be made
709               blank, as when mode is set to blank.
710
711               To disable a program, you must mark it as disabled with a  dash
712               instead of removing it from the list.  This is because the sys‐
713               tem-wide (app-defaults) and per-user  (.xscreensaver)  settings
714               are  merged  together, and if a user just deletes an entry from
715               their programs list, but that entry still exists in the system-
716               wide  list,  then it will come back.  However, if the user dis‐
717               ables it, then their setting takes precedence.
718
719               If the display has multiple screens, then a  different  program
720               will  be run for each screen.  (All screens are blanked and un‐
721               blanked simultaneously.)
722
723               Note that you must escape the newlines; here is an  example  of
724               how you might set this in your ~/.xscreensaver file:
725
726                    programs:  \
727                           qix -root                          \n\
728                           ico -r -faces -sleep 1 -obj ico    \n\
729                           xdaliclock -builtin2 -root         \n\
730                           xv -root -rmode 5 image.gif -quit  \n
731
732               Make  sure  your $PATH environment variable is set up correctly
733               before XScreenSaver is launched, or it won't be  able  to  find
734               the programs listed in the programs resource.
735
736               To  use  a  program as a screensaver, it must be able to render
737               onto the window provided to it in the $XSCREENSAVER_WINDOW  en‐
738               vironment  variable.  If it creates and maps its own window in‐
739               stead, it won't work.  It must render onto the provided window.
740
741               Visuals:
742
743               Because XScreenSaver was created back when dinosaurs roamed the
744               earth,  it still contains support for some things you've proba‐
745               bly never seen, such as 1-bit  monochrome  monitors,  grayscale
746               monitors,  and  monitors  capable of displaying only 8-bit col‐
747               ormapped images.
748
749               If there are some programs that you want to run only when using
750               a  color display, and others that you want to run only when us‐
751               ing a monochrome display, you can specify that like this:
752
753                    mono:   mono-program  -root        \n\
754                    color:  color-program -root        \n\
755
756               More generally, you can specify the kind of visual that  should
757               be  used  for  the window on which the program will be drawing.
758               For example, if one program works best if it  has  a  colormap,
759               but  another  works best if it has a 24-bit visual, both can be
760               accommodated:
761
762                    PseudoColor: cmap-program  -root   \n\
763                    TrueColor:   24bit-program -root   \n\
764
765               In addition to the symbolic visual names  described  above  (in
766               the  discussion of the visualID resource) one other visual name
767               is supported in the programs list:
768
769                default-n
770                    This is like default, but also requests the use of the de‐
771                    fault colormap, instead of a private colormap.
772
773               If you specify a particular visual for a program, and that vis‐
774               ual does not exist on the screen, then that program will not be
775               chosen  to  run.   This  means  that  on displays with multiple
776               screens of different depths, you can  arrange  for  appropriate
777               hacks  to  be run on each.  For example, if one screen is color
778               and the other is monochrome, hacks that look good in  mono  can
779               be run on one, and hacks that only look good in color will show
780               up on the other.
781
782
783       visualID (class VisualID)
784               This is an historical artifact left over from when  8-bit  dis‐
785               plays were still common.  You should probably ignore this.
786
787               Specify which X visual to use by default.  (Note carefully that
788               this resource is called visualID, not merely visual; if you set
789               the visual resource instead, things will malfunction in obscure
790               ways for obscure reasons.)
791
792               Valid values for the VisualID resource are:
793
794               default Use the screen's default visual (the visual of the root
795                       window).  This is the default.
796
797               best    Use  the  visual which supports the most colors.  Note,
798                       however, that the visual with the most colors might  be
799                       a TrueColor visual, which does not support colormap an‐
800                       imation.  Some programs have more interesting  behavior
801                       when run on PseudoColor visuals than on TrueColor.
802
803               mono    Use a monochrome visual, if there is one.
804
805               gray    Use  a  grayscale or staticgray visual, if there is one
806                       and it has more than one plane (that is, it's not mono‐
807                       chrome).
808
809               color   Use the best of the color visuals, if there are any.
810
811               GL      Use  the  visual  that  is  best  for  OpenGL programs.
812                       (OpenGL programs have somewhat  different  requirements
813                       than other X programs.)
814
815               class   where  class  is  one of StaticGray, StaticColor, True‐
816                       Color, GrayScale, PseudoColor, or DirectColor.  Selects
817                       the deepest visual of the given class.
818
819               N       where  number (decimal or hex) is interpreted as a vis‐
820                       ual id number, as reported by the xdpyinfo(1)  program;
821                       in  this  way  you  can have finer control over exactly
822                       which visual gets used, for example, to select a  shal‐
823                       lower one than would otherwise have been chosen.
824
825               Note  that  this  option specifies only the default visual that
826               will be used: the visual used may be overridden on  a  program-
827               by-program  basis.   See  the  description  of the programs re‐
828               source, above.
829
830
831       installColormap (class Boolean)
832               This is an historical artifact left over from when  8-bit  dis‐
833               plays  were still common.  On PseudoColor (8-bit) displays, in‐
834               stall a private colormap while the screensaver  is  active,  so
835               that  the  graphics  hacks  can get as many colors as possible.
836               This is the default.  (This only applies when the screen's  de‐
837               fault visual is being used, since non-default visuals get their
838               own colormaps automatically.)  This can also be overridden on a
839               per-hack basis: see the discussion of the default-n name in the
840               section about the programs resource.
841
842               This does nothing if you have a TrueColor  (16-bit  or  deeper)
843               display.  (Which, in this century, you do.)
844
845
846       pointerHysteresis (class Integer)
847               If  the mouse moves less than this-many pixels in a second, ig‐
848               nore it (do not consider that to be "activity").   This  is  so
849               that  the  screen  doesn't un-blank (or fail to blank) just be‐
850               cause you bumped the desk.  Default: 10 pixels.
851
852

BUGS

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

ENVIRONMENT

859       DISPLAY to  get  the default host and display number, and to inform the
860               sub-programs of the screen on which to draw.
861
862       XSCREENSAVER_WINDOW
863               Passed to sub-programs to indicate the  ID  of  the  window  on
864               which  they  should  draw.  This is necessary on Xinerama/RANDR
865               systems where multiple physical monitors  share  a  single  X11
866               "Screen".
867
868       PATH    to find the sub-programs to run, including the display modes.
869
870       HOME    for the directory in which to read the .xscreensaver file.
871
872       XENVIRONMENT
873               to  get  the  name of a resource file that overrides the global
874               resources stored in the RESOURCE_MANAGER property.
875

UPGRADES

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

SEE ALSO

881       X(1), Xsecurity(1), xauth(1), xdm(1), gdm(1), xhost(1), systemd(1), el‐
882       ogind(8), xscreensaver-settings(1),  xscreensaver-command(1),  xscreen‐
883       saver-systemd(6),  xscreensaver-gl-helper(6), xscreensaver-getimage(6),
884       xscreensaver-text(6).
885
887       Copyright © 1991-2021 by Jamie Zawinski.  Permission to use, copy, mod‐
888       ify,  distribute,  and sell this software and its documentation for any
889       purpose is hereby granted without fee, provided that  the  above  copy‐
890       right  notice  appear in all copies and that both that copyright notice
891       and this permission notice appear in supporting documentation.  No rep‐
892       resentations  are  made  about the suitability of this software for any
893       purpose.  It is provided "as is" without express or implied warranty.
894

AUTHOR

896       Jamie Zawinski <jwz@jwz.org>.  Written in late 1991; version 1.0 posted
897       to comp.sources.x on 17-Aug-1992.
898
899       Please let me know if you find any bugs or make any improvements.
900
901       And a huge thank you to the hundreds of people who have contributed, in
902       large ways and small, to the  XScreenSaver  collection  over  the  past
903       three decades!
904
905
906
907X Version 11               6.00-4.fc34 (05-May-2021)           XScreenSaver(1)
Impressum