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

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

POWER MANAGEMENT

59       The xscreensaver-settings(1) program is where you configure if and when
60       your  monitor  should  power  off.   It  saves  the  settings  in  your
61       ~/.xscreensaver file.
62
63       If the power management section is grayed out in the  xscreensaver-set‐
64       tings(1)  window,   then that means that your X server does not support
65       the XDPMS extension, and so control over the monitor's power  state  is
66       not available.
67
68       When the monitor is powered down, the display hacks are stopped (though
69       it may take a minute or two for XScreenSaver to notice).
70
71       Note: if you use xset(1)  to  change  the  power  management  settings,
72       XScreenSaver   will   override  those  changes.   Whatever  is  in  the
73       ~/.xscreensaver file takes precedence.
74

LAPTOP LIDS

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

PLAYING VIDEOS

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

INSTALLATION

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

THE WAYLAND PROBLEM

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

SECURITY CONCERNS

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

MULTI-USER OR SITE-WIDE CONFIGURATION

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

X RESOURCES

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

BUGS

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

ENVIRONMENT

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

UPGRADES

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

SEE ALSO

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

AUTHOR

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