70 XScreenSaver(1) XScreenSaver(1)
74 xscreensaver - graphics hack and screen locker, launched
77 S
\bSY
\bYN
\bNO
\bOP
\bPS
\bSI
\bIS
\bS
78 x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br [-display _
\bh_
\bo_
\bs_
\bt_
\b:_
\bd_
\bi_
\bs_
\bp_
\bl_
\ba_
\by_
\b._
\bs_
\bc_
\br_
\be_
\be_
\bn] [-timeout _
\bi_
\bn_
\bt]
79 [-cycle _
\bi_
\bn_
\bt] [-nice _
\bi_
\bn_
\bt] [-lock] [-no-lock] [-lock-timeout
80 _
\bi_
\bn_
\bt] [-demo] [-visual _
\bv_
\bi_
\bs_
\bu_
\ba_
\bl] [-install] [-no-install]
81 [-verbose] [-silent] [-xidle-extension] [-no-xidle-exten-
82 sion] [-sgi-extension] [-no-sgi-extension] [-mit-exten-
83 sion] [-no-mit-extension] [-xrm _
\br_
\be_
\bs_
\bo_
\bu_
\br_
\bc_
\be_
\bs]
85 D
\bDE
\bES
\bSC
\bCR
\bRI
\bIP
\bPT
\bTI
\bIO
\bON
\bN
86 The _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br program waits until the keyboard and
87 mouse have been idle for a period, and then runs a graph-
88 ics demo chosen at random. It turns off as soon as there
89 is any mouse or keyboard activity.
91 This program can lock your terminal in order to prevent
92 others from using it, though its default mode of operation
93 is merely to display pretty pictures on your screen when
96 The benefit that this program has over the combination of
97 the x
\bxl
\blo
\boc
\bck
\bk(1) and x
\bxa
\bau
\but
\bto
\bol
\blo
\boc
\bck
\bk(1) programs is the ease with
98 which new graphics hacks can be installed. You don't need
99 to recompile (or even re-run) this program to add a new
102 O
\bOP
\bPT
\bTI
\bIO
\bON
\bNS
\bS
103 _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br accepts the following command line options:
105 -
\b-t
\bti
\bim
\bme
\beo
\bou
\but
\bt _
\bm_
\bi_
\bn_
\bu_
\bt_
\be_
\bs
106 The screensaver will activate after the keyboard
107 and mouse have been idle for this many minutes.
110 -
\b-c
\bcy
\byc
\bcl
\ble
\be _
\bm_
\bi_
\bn_
\bu_
\bt_
\be_
\bs
111 After the screensaver has been running for this
112 many minutes, the currently running graphics hack
113 sub-process will be killed (with S
\bSI
\bIG
\bGT
\bTE
\bER
\bRM
\bM), and a
114 new one started. If this is 0, then the graphics
115 hack will not be changed: only one demo will run
116 until the screensaver is deactivated by user
117 activity. Default 10.
119 -
\b-n
\bni
\bic
\bce
\be _
\bi_
\bn_
\bt_
\be_
\bg_
\be_
\br
120 The sub-processes created by _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br will be
121 ``niced'' to this level, so that they are given
122 lower priority than other processes on the system,
123 and don't increase the load unnecessarily. The
126 (Higher numbers mean lower priority; see n
\bni
\bic
\bce
\be(1)
130 X Version 11 31-May-97 1
136 XScreenSaver(1) XScreenSaver(1)
141 -
\b-l
\blo
\boc
\bck
\bk Enable locking: before the screensaver will turn
142 off, it requires you to type the password of the
143 person who launched the screensaver, or the root
144 password. (Note: this doesn't work if the screen-
145 saver is launched by x
\bxd
\bdm
\bm(1) because it can't know
146 the user-id of the logged-in user.)
148 -
\b-n
\bno
\bo-
\b-l
\blo
\boc
\bck
\bk
149 Disable locking. This is the default.
151 -
\b-l
\blo
\boc
\bck
\bk-
\b-t
\bti
\bim
\bme
\beo
\bou
\but
\bt _
\bm_
\bi_
\bn_
\bu_
\bt_
\be_
\bs
152 This is how long after the screensaver activates
153 that locking is enabled. For example, if this is
154 5, and _
\b-_
\bt_
\bi_
\bm_
\be_
\bo_
\bu_
\bt is 10, then after 10 minutes, the
155 screen would blank. If there was user activity at
156 12 minutes, no password would be required. But,
157 if there was user activity at 15 minutes or later
158 (_
\b-_
\bl_
\bo_
\bc_
\bk_
\b-_
\bt_
\bi_
\bm_
\be_
\bo_
\bu_
\bt minutes after activation) then a
159 password would be required. The default is 0,
160 meaning that if locking is enabled, then a pass-
161 word will be required as soon as the screensaver
164 -
\b-d
\bde
\bem
\bmo
\bo Enter the interactive demo mode immediately after
165 startup. Normally demo mode is invoked via the
166 x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br-
\b-c
\bco
\bom
\bmm
\bma
\ban
\bnd
\bd(1) program, but this is a
167 shortcut for new users. See below for a descrip-
168 tion of how demo-mode works.
170 -
\b-v
\bvi
\bis
\bsu
\bua
\bal
\bl _
\bv_
\bi_
\bs_
\bu_
\ba_
\bl
171 Specify which X visual to use by default. Legal
174 d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt Use the screen's default visual (the
175 visual of the root window.) This is the
178 b
\bbe
\bes
\bst
\bt Use the visual which supports the most
179 colors. Note, however, that the visual
180 with the most colors might be a TrueColor
181 visual, which does not support colormap
184 m
\bmo
\bon
\bno
\bo Use a monochrome visual, if there is one.
186 g
\bgr
\bra
\bay
\by Use a grayscale or staticgray visual, if
187 there is one and it has more than one
188 plane (that is, it's not monochrome.)
190 c
\bco
\bol
\blo
\bor
\br Use the best of the color visuals, if
196 X Version 11 31-May-97 2
202 XScreenSaver(1) XScreenSaver(1)
205 _
\bc_
\bl_
\ba_
\bs_
\bs where _
\bc_
\bl_
\ba_
\bs_
\bs is one
207 of S
\bSt
\bta
\bat
\bti
\bic
\bcG
\bGr
\bra
\bay
\by, S
\bSt
\bta
\bat
\bti
\bic
\bcC
\bCo
\bol
\blo
\bor
\br, T
\bTr
\bru
\bue
\beC
\bCo
\bol
\blo
\bor
\br,
208 G
\bGr
\bra
\bay
\byS
\bSc
\bca
\bal
\ble
\be, P
\bPs
\bse
\beu
\bud
\bdo
\boC
\bCo
\bol
\blo
\bor
\br, or D
\bDi
\bir
\bre
\bec
\bct
\btC
\bCo
\bol
\blo
\bor
\br.
209 Selects the deepest visual of the given
212 _
\bn_
\bu_
\bm_
\bb_
\be_
\br where _
\bn_
\bu_
\bm_
\bb_
\be_
\br (decimal or hex) is inter-
213 preted as a visual id number, as reported
214 by the x
\bxd
\bdp
\bpy
\byi
\bin
\bnf
\bfo
\bo(1) program; in this way
215 you can have finer control over exactly
216 which visual gets used, for example, to
217 select a shallower one than would other-
218 wise have been chosen.
220 Note that this option specifies only the _
\bd_
\be_
\bf_
\ba_
\bu_
\bl_
\bt
221 visual that will be used: the visual used may be
222 overridden on a program-by-program basis. See the
223 description of the p
\bpr
\bro
\bog
\bgr
\bra
\bam
\bms
\bs resource, below.
225 -
\b-i
\bin
\bns
\bst
\bta
\bal
\bll
\bl
226 When using a non-default visual, install a private
227 colormap while the screensaver is active, so that
228 the graphics hacks can get as many colors as pos-
229 sible. This is the default. (This only applies
230 when the screen's default visual is being used,
231 since non-default visuals get their own colormaps
234 -
\b-n
\bno
\bo-
\b-i
\bin
\bns
\bst
\bta
\bal
\bll
\bl
235 Use the default colormap.
237 -
\b-v
\bve
\ber
\brb
\bbo
\bos
\bse
\be
240 -
\b-s
\bsi
\bil
\ble
\ben
\bnt
\bt
242 -
\b-x
\bxi
\bid
\bdl
\ble
\be-
\b-e
\bex
\bxt
\bte
\ben
\bns
\bsi
\bio
\bon
\bn
243 Use the X
\bXI
\bID
\bDL
\bLE
\bE server extension to decide whether
244 the user is idle. This is the default if _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\b-
245 _
\bs_
\ba_
\bv_
\be_
\br has been compiled with support for this
246 extension. On X11R4 or X11R5 systems, the XIdle
247 method is faster and more reliable than what will
248 be done otherwise, so use it if you can.
250 -
\b-n
\bno
\bo-
\b-x
\bxi
\bid
\bdl
\ble
\be-
\b-e
\bex
\bxt
\bte
\ben
\bns
\bsi
\bio
\bon
\bn
251 Don't use the X
\bXI
\bID
\bDL
\bLE
\bE server extension.
253 -
\b-s
\bsg
\bgi
\bi-
\b-e
\bex
\bxt
\bte
\ben
\bns
\bsi
\bio
\bon
\bn
254 Use the SGI S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN_
\b_S
\bSA
\bAV
\bVE
\bER
\bR server extension to
255 decide whether the user is idle. This is the
256 default if _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br has been compiled with
257 support for this extension (which is the default
258 on SGI systems.). If it is available, the
262 X Version 11 31-May-97 3
268 XScreenSaver(1) XScreenSaver(1)
271 S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN_
\b_S
\bSA
\bAV
\bVE
\bER
\bR method is faster and more reliable
272 than what will be done otherwise, so use it if you
275 -
\b-n
\bno
\bo-
\b-s
\bsg
\bgi
\bi-
\b-e
\bex
\bxt
\bte
\ben
\bns
\bsi
\bio
\bon
\bn
276 Don't use the SGI S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN_
\b_S
\bSA
\bAV
\bVE
\bER
\bR server extension.
278 -
\b-m
\bmi
\bit
\bt-
\b-e
\bex
\bxt
\bte
\ben
\bns
\bsi
\bio
\bon
\bn
279 Use the M
\bMI
\bIT
\bT-
\b-S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN-
\b-S
\bSA
\bAV
\bVE
\bER
\bR server extension to
280 decide whether the user is idle. This is the
281 default if _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br has been compiled with
282 support for this extension. However, this exten-
283 sion is flaky, so it's use is not really recom-
284 mended. (It also makes the _
\bf_
\ba_
\bd_
\be option not work
287 -
\b-n
\bno
\bo-
\b-m
\bmi
\bit
\bt-
\b-e
\bex
\bxt
\bte
\ben
\bns
\bsi
\bio
\bon
\bn
288 Don't use the M
\bMI
\bIT
\bT-
\b-S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN-
\b-S
\bSA
\bAV
\bVE
\bER
\bR server extension.
290 X
\bX R
\bRE
\bES
\bSO
\bOU
\bUR
\bRC
\bCE
\bES
\bS
291 _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br understands the following resources:
294 t
\bti
\bim
\bme
\beo
\bou
\but
\bt (class T
\bTi
\bim
\bme
\be)
295 Same as the _
\b-_
\bt_
\bi_
\bm_
\be_
\bo_
\bu_
\bt command-line option. Default
298 c
\bcy
\byc
\bcl
\ble
\be (class T
\bTi
\bim
\bme
\be)
299 Same as the _
\b-_
\bc_
\by_
\bc_
\bl_
\be command-line option. Default
302 n
\bni
\bic
\bce
\be (class N
\bNi
\bic
\bce
\be)
303 Same as the _
\b-_
\bn_
\bi_
\bc_
\be command-line option. Default
306 l
\blo
\boc
\bck
\bk (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
307 Same as the _
\b-_
\bl_
\bo_
\bc_
\bk command-line option.
309 l
\blo
\boc
\bck
\bkT
\bTi
\bim
\bme
\beo
\bou
\but
\bt (class T
\bTi
\bim
\bme
\be)
310 Same as the _
\b-_
\bl_
\bo_
\bc_
\bk_
\b-_
\bt_
\bi_
\bm_
\be_
\bo_
\bu_
\bt command-line option.
312 p
\bpa
\bas
\bss
\bsw
\bwd
\bdT
\bTi
\bim
\bme
\beo
\bou
\but
\bt (class T
\bTi
\bim
\bme
\be)
313 If the screen is locked, then this is how many
314 seconds the password dialog box should be left on
315 the screen before giving up (default 30.) This
316 should not be too large: the X server is grabbed
317 for the duration that the password dialog box is
318 up (for security purposes) and leaving the server
319 grabbed for too long can cause problems.
321 v
\bve
\ber
\brb
\bbo
\bos
\bse
\be (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
322 Same as the _
\b-_
\bv_
\be_
\br_
\bb_
\bo_
\bs_
\be command-line option.
328 X Version 11 31-May-97 4
334 XScreenSaver(1) XScreenSaver(1)
337 x
\bxi
\bid
\bdl
\ble
\be (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
338 Same as the _
\b-_
\bx_
\bi_
\bd_
\bl_
\be command-line option.
340 f
\bfa
\bad
\bde
\be (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
341 If this is true, then when the screensaver acti-
342 vates, the current contents of the screen will
343 fade to black instead of simply winking out. This
344 only works on displays with writable colormaps,
345 that is, if the screen's default visual is a Pseu-
346 doColor visual. Default true. A fade will also
347 be done when switching graphics hacks (when the
348 _
\bc_
\by_
\bc_
\bl_
\be timer expires.)
350 u
\bun
\bnf
\bfa
\bad
\bde
\be (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
351 If this is true, then when the screensaver deacti-
352 vates, the original contents of the screen will
353 fade in from black instead of appearing immedi-
354 ately. This only works on displays with writable
355 colormaps, and if _
\bf_
\ba_
\bd_
\be is true as well. Default
358 f
\bfa
\bad
\bde
\beS
\bSe
\bec
\bco
\bon
\bnd
\bds
\bs (class T
\bTi
\bim
\bme
\be)
359 If _
\bf_
\ba_
\bd_
\be is true, this is how long the fade will be
360 in seconds (default 3.)
362 f
\bfa
\bad
\bde
\beT
\bTi
\bic
\bck
\bks
\bs (class I
\bIn
\bnt
\bte
\beg
\bge
\ber
\br)
363 If _
\bf_
\ba_
\bd_
\be is true, this is how many times a second
364 the colormap will be changed to effect a fade.
365 Higher numbers yield smoother fades, but may make
366 the fades take longer than the specified _
\bf_
\ba_
\bd_
\be_
\bS_
\be_
\bc_
\b-
367 _
\bo_
\bn_
\bd_
\bs if your server isn't fast enough to keep up.
370 v
\bvi
\bis
\bsu
\bua
\bal
\blI
\bID
\bD (class V
\bVi
\bis
\bsu
\bua
\bal
\blI
\bID
\bD)
371 Same as the _
\b-_
\bv_
\bi_
\bs_
\bu_
\ba_
\bl command-line option. Default
372 d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt.
374 i
\bin
\bns
\bst
\bta
\bal
\bll
\blC
\bCo
\bol
\blo
\bor
\brm
\bma
\bap
\bp (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
375 Same as the _
\b-_
\bi_
\bn_
\bs_
\bt_
\ba_
\bl_
\bl command-line option. Default
378 c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bde
\ber
\brr
\br (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
379 Whether _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br should redirect its standard-
380 error stream to the window itself. Since its
381 nature is to take over the screen, you would not
382 normally see error messages generated by the
383 screensaver or the programs it runs; this resource
384 will cause the output of all relevant programs to
385 be drawn on the screensaver window itself instead
386 of written to the controlling terminal of the
387 screensaver driver process. Default true.
389 c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bdo
\bou
\but
\bt (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
390 Like c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bde
\ber
\brr
\br but for the standard-output
394 X Version 11 31-May-97 5
400 XScreenSaver(1) XScreenSaver(1)
403 stream. Default true.
405 f
\bfo
\bon
\bnt
\bt (class F
\bFo
\bon
\bnt
\bt)
406 The font used for the stdout/stderr text, if c
\bca
\bap
\bp-
\b-
407 t
\btu
\bur
\bre
\beS
\bSt
\btd
\bdo
\bou
\but
\bt or c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bde
\ber
\brr
\br are true. Default
408 *
\b*-
\b-m
\bme
\bed
\bdi
\biu
\bum
\bm-
\b-r
\br-
\b-*
\b*-
\b-1
\b14
\b40
\b0-
\b-*
\b*-
\b-m
\bm-
\b-*
\b* (a 14 point fixed-width
411 t
\bte
\bex
\bxt
\btF
\bFo
\bor
\bre
\beg
\bgr
\bro
\bou
\bun
\bnd
\bd (class F
\bFo
\bor
\bre
\beg
\bgr
\bro
\bou
\bun
\bnd
\bd)
412 The foreground color used for the stdout/stderr
413 text, if c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bdo
\bou
\but
\bt or c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bde
\ber
\brr
\br are true.
416 t
\bte
\bex
\bxt
\btB
\bBa
\bac
\bck
\bkg
\bgr
\bro
\bou
\bun
\bnd
\bd (class B
\bBa
\bac
\bck
\bkg
\bgr
\bro
\bou
\bun
\bnd
\bd)
417 The background color used for the stdout/stderr
418 text, if c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bdo
\bou
\but
\bt or c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bde
\ber
\brr
\br are true.
421 p
\bpr
\bro
\bog
\bgr
\bra
\bam
\bms
\bs (class P
\bPr
\bro
\bog
\bgr
\bra
\bam
\bms
\bs)
422 The graphics hacks which _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br runs when
423 the user is idle. The value of this resource is a
424 string, one _
\bs_
\bh-syntax command per line. Each line
425 must contain exactly one command -- no semicolons,
428 When the screensaver starts up, one of these is
429 selected at random, and run. After the _
\bc_
\by_
\bc_
\bl_
\be
430 period expires, it is killed, and another is
433 If the value of this resource is empty, then no
434 programs will be run; the screen will simply be
437 If the display has multiple screens, then a dif-
438 ferent program will be run for each screen.
440 Note that you must escape the newlines; here is an
441 example of how you might set this in your _
\b._
\bX_
\bd_
\be_
\b-
442 _
\bf_
\ba_
\bu_
\bl_
\bt_
\bs file:
444 xscreensaver.programs: \
446 ico -r -faces -sleep 1 -obj ico \n\
447 xdaliclock -builtin2 -root \n\
448 xv -root -rmode 5 image.gif -quit \n
450 To use a program as a screensaver, two things are
451 required: that that program draw on the root win-
452 dow (or be able to be configured to draw on the
453 root window); and that that program understand
454 ``virtual root'' windows, as used by virtual win-
455 dow managers such as _
\bt_
\bv_
\bt_
\bw_
\bm. (Generally, this is
456 accomplished by just including the _
\b"_
\bv_
\br_
\bo_
\bo_
\bt_
\b._
\bh_
\b"
460 X Version 11 31-May-97 6
466 XScreenSaver(1) XScreenSaver(1)
469 header file in the program's source.)
471 If there are some programs that you want to run
472 only when using a color display, and others that
473 you want to run only when using a monochrome dis-
474 play, you can specify that like this:
476 mono: mono-program -root \n\
477 color: color-program -root \n\
479 More generally, you can specify the kind of visual
480 that should be used for the window on which the
481 program will be drawing. For example, if one pro-
482 gram works best if it has a colormap, but another
483 works best if it has a 24-bit visual, both can be
486 PseudoColor: cmap-program -root \n\
487 TrueColor: 24bit-program -root \n\
489 (This sort of thing used to be accomplished with
490 the _
\bc_
\bo_
\bl_
\bo_
\br_
\bP_
\br_
\bo_
\bg_
\br_
\ba_
\bm_
\bs and _
\bm_
\bo_
\bn_
\bo_
\bP_
\br_
\bo_
\bg_
\br_
\ba_
\bm_
\bs resources, but
491 those resources have now been removed; a warning
492 will be issued if they are used.)
494 If you specify a particular visual for a program,
495 and that visual does not exist on the screen, then
496 that program will not be chosen to run. This
497 means that on displays with multiple screens of
498 different depths, you can arrange for appropriate
499 hacks to be run on each. For example, if one
500 screen is color and the other is monochrome, hacks
501 that look good in mono can be run on one, and
502 hacks that only look good in color will show up on
506 Normally you won't need to change the following resources:
508 b
\bbo
\bou
\bur
\brn
\bne
\beS
\bSh
\bhe
\bel
\bll
\bl (class B
\bBo
\bou
\bur
\brn
\bne
\beS
\bSh
\bhe
\bel
\bll
\bl)
509 The pathname of the shell that _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br uses
510 to start subprocesses. This must be whatever your
511 local variant of /
\b/b
\bbi
\bin
\bn/
\b/s
\bsh
\bh is -- in particular, it
512 must not be c
\bcs
\bsh
\bh.
514 w
\bwi
\bin
\bnd
\bdo
\bow
\bwC
\bCr
\bre
\bea
\bat
\bti
\bio
\bon
\bnT
\bTi
\bim
\bme
\beo
\bou
\but
\bt (class T
\bTi
\bim
\bme
\be)
515 When server extensions are not in use, this con-
516 trols the delay between when windows are created
517 and when _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br selects events on them.
520 p
\bpo
\boi
\bin
\bnt
\bte
\ber
\brP
\bPo
\bol
\bll
\blT
\bTi
\bim
\bme
\be (class T
\bTi
\bim
\bme
\be)
521 When server extensions are not in use, this con-
522 trols how frequently _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br checks to see if
526 X Version 11 31-May-97 7
532 XScreenSaver(1) XScreenSaver(1)
535 the mouse position or buttons have changed.
538 i
\bin
\bni
\bit
\bti
\bia
\bal
\blD
\bDe
\bel
\bla
\bay
\by (class T
\bTi
\bim
\bme
\be)
539 When server extensions are not in use, _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\b-
540 _
\bs_
\ba_
\bv_
\be_
\br will wait this many seconds before selecting
541 events on existing windows, under the assumption
542 that _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br is started during your login
543 procedure, and the window state may be in flux.
546 o
\bov
\bve
\ber
\brl
\bla
\bay
\byS
\bSt
\btd
\bde
\ber
\brr
\br (class B
\bBo
\boo
\bol
\ble
\bea
\ban
\bn)
547 If c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bde
\ber
\brr
\br or c
\bca
\bap
\bpt
\btu
\bur
\bre
\beS
\bSt
\btd
\bdo
\bou
\but
\bt are True, and
548 your server supports ``overlay'' visuals, then the
549 text will be written into one of the higher layers
550 instead of into the same layer as the running
551 screenhack. Set this to False to disable that
552 (though you shouldn't need to.)
554 H
\bHO
\bOW
\bW I
\bIT
\bT W
\bWO
\bOR
\bRK
\bKS
\bS
555 When it is time to activate the screensaver, a full-screen
556 black window is created on each screen of the display.
557 The window or windows is given the appropriate properties
558 so that, to any subsequently-created programs, it will
559 appear to be a ``virtual root'' window. Because of this,
560 any program which draws on the root window (and which
561 understands virtual roots) can be used as a screensaver.
563 When the user becomes active again, the screensaver win-
564 dows are unmapped and the running subprocesses are killed
565 by sending them S
\bSI
\bIG
\bGT
\bTE
\bER
\bRM
\bM. This is also how the subpro-
566 cesses are killed when the screensaver decides that it's
567 time to run a different demo: the old one is killed and a
570 Before launching a subprocess, _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br stores an
571 appropriate value for $
\b$D
\bDI
\bIS
\bSP
\bPL
\bLA
\bAY
\bY in the environment that the
572 child will recieve. (This is so that if you start
573 _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br with a _
\b-_
\bd_
\bi_
\bs_
\bp_
\bl_
\ba_
\by argument, the programs which
574 _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br launches will draw on the same display; and
575 so that the child will end up drawing on the appropriate
576 screen of a multi-headed display.)
578 When the screensaver turns off, or is killed, care is
579 taken to restore the ``real'' virtual root window if there
580 is one. Because of this, it is important that you not
581 kill the screensaver process with _
\bk_
\bi_
\bl_
\bl _
\b-_
\b9 if you are run-
582 ning a virtual-root window manager. If you kill it with
583 -9, you may need to restart your window manager to repair
584 the damage. This isn't an issue if you aren't running a
585 virtual-root window manager.
587 For all the gory details, see the commentary at the top of
592 X Version 11 31-May-97 8
598 XScreenSaver(1) XScreenSaver(1)
601 You can control a running screensaver process by using the
602 x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br-
\b-c
\bco
\bom
\bmm
\bma
\ban
\bnd
\bd(1) program (which see.)
604 U
\bUS
\bSI
\bIN
\bNG
\bG X
\bXD
\bDM
\bM(
\b(1
\b1)
\b)
605 You can run _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br from your xdm session, so that
606 the screensaver will run even when nobody is logged in on
607 the console. Simply add "
\b"x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br &
\b&"
\b" to your
608 _
\b/_
\bu_
\bs_
\br_
\b/_
\bl_
\bi_
\bb_
\b/_
\bX_
\b1_
\b1_
\b/_
\bx_
\bd_
\bm_
\b/_
\bX_
\bs_
\be_
\bt_
\bu_
\bp file. Because _
\bx_
\bd_
\bm grabs the key-
609 board, keypresses will not make the screensaver deacti-
610 vate, but any mouse activity will.
612 (If your system does not seem to be executing the _
\bX_
\bs_
\be_
\bt_
\bu_
\bp
613 file, you may need to configure it to do so -- the tradi-
614 tional way to do this is to make that file the value of
615 the _
\bD_
\bi_
\bs_
\bp_
\bl_
\ba_
\by_
\bM_
\ba_
\bn_
\ba_
\bg_
\be_
\br_
\b*_
\bs_
\be_
\bt_
\bu_
\bp resource in the _
\bx_
\bd_
\bm_
\b-_
\bc_
\bo_
\bn_
\bf_
\bi_
\bg file.
616 See the man page for x
\bxd
\bdm
\bm(1) for more details.)
618 Users may want to add "
\b"x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br-
\b-c
\bco
\bom
\bmm
\bma
\ban
\bnd
\bd -
\b-r
\bre
\bes
\bst
\bta
\bar
\brt
\bt"
\b" to
619 their startup scripts, so that the screensaver will be
620 reinitialized with their private resource settings when
623 It is safe to run this program as root (as _
\bx_
\bd_
\bm is likely
624 to do.) If run as root, _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br changes its effec-
625 tive user and group ids to something safe (like _
\b"_
\bn_
\bo_
\bb_
\bo_
\bd_
\by_
\b")
626 before connecting to the X server or launching user-speci-
629 Locking doesn't work if the screensaver is launched by
630 _
\bx_
\bd_
\bm. To get around this, you can run the screensaver from
631 _
\bx_
\bd_
\bm without locking, and kill and restart it from your
632 personal X startup script to enable locking; for example:
634 xscreensaver-command -exit ; xscreensaver
637 D
\bDE
\bEM
\bMO
\bO M
\bMO
\bOD
\bDE
\bE
638 If _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br receives the D
\bDE
\bEM
\bMO
\bO ClientMessage, which is
639 done by running the x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br-
\b-c
\bco
\bom
\bmm
\bma
\ban
\bnd
\bd program with the
640 -
\b-d
\bde
\bem
\bmo
\bo option, the screensaver will black the screen and
641 pop up a dialog box from which you can examine and experi-
642 ment with the client programs.
644 The dialog box contains a scrolling list, a text field,
645 and a number of buttons.
647 Double-clicking on one of the programs in the list will
648 run it. Clicking the mouse again will bring the dialog
651 Single-clicking in the list will place the indicated pro-
652 gram and its args in the text field to be edited. Edit
653 the arguments and hit return to run the program with the
654 parameters you have specified. (Note that these are one-
658 X Version 11 31-May-97 9
664 XScreenSaver(1) XScreenSaver(1)
667 time changes and won't be remembered; to make the changes
668 permanent, you need to edit your X resource file.)
672 R
\bRu
\bun
\bn N
\bNe
\bex
\bxt
\bt
673 Clicking this button will run the next program in
674 the list after the currently-selected one, and
675 will scroll around to the top when it reaches the
678 R
\bRu
\bun
\bn P
\bPr
\bre
\bev
\bvi
\bio
\bou
\bus
\bs
679 Opposite of Run Next; at the top, it scrolls
680 around to the bottom.
682 E
\bEd
\bdi
\bit
\bt P
\bPa
\bar
\bra
\bam
\bme
\bet
\bte
\ber
\brs
\bs
683 This pops up a second dialog box, in which you
684 have the option to interactively change most of
685 the screensaver's operational parameters, such as
686 its timeouts, and whether it should lock the
687 screen. Changing these parameters here will
688 affect only the running _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br process; to
689 make the changes permanent, you need to edit your
692 E
\bEx
\bxi
\bit
\bt D
\bDe
\bem
\bmo
\bo M
\bMo
\bod
\bde
\be
693 Returns to normal screensaver operation.
695 R
\bRe
\bei
\bin
\bni
\bit
\bti
\bia
\bal
\bli
\biz
\bze
\be
696 This causes the X resource database to be re-read,
697 to pick up any changes you might have made. This
698 works by causing the screensaver process to exit
699 and then restart itself with the same command-line
700 arguments. This is just like the _
\b-_
\br_
\be_
\bs_
\bt_
\ba_
\br_
\bt argu-
701 ment to x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br-
\b-c
\bco
\bom
\bmm
\bma
\ban
\bnd
\bd(1) except that when
702 executed from this button, the screensaver will
703 automatically return to demo mode after restart-
707 (This is not a bug, but) note that as of release 1.32, the
708 c
\bco
\bol
\blo
\bor
\brP
\bPr
\bro
\bog
\bgr
\bra
\bam
\bms
\bs and m
\bmo
\bon
\bno
\boP
\bPr
\bro
\bog
\bgr
\bra
\bam
\bms
\bs resources are no longer
709 used: they have been supplanted by the extended syntax of
710 the p
\bpr
\bro
\bog
\bgr
\bra
\bam
\bms
\bs resource (see above.)
713 If you are not making use of one of the server
714 extensions (X
\bXI
\bID
\bDL
\bLE
\bE, S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN_
\b_S
\bSA
\bAV
\bVE
\bER
\bR, or M
\bMI
\bIT
\bT-
\b-S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN-
\b-
715 S
\bSA
\bAV
\bVE
\bER
\bR), then it is possible, in rare situations,
716 for _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br to interfere with event propaga-
717 tion and make another X program malfunction. For
718 this to occur, that other application would need
719 to _
\bn_
\bo_
\bt select K
\bKe
\bey
\byP
\bPr
\bre
\bes
\bss
\bs events on its non-leaf win-
720 dows within the first 30 seconds of their
724 X Version 11 31-May-97 10
730 XScreenSaver(1) XScreenSaver(1)
733 existence, but then select for them later. In
734 this case, that client _
\bm_
\bi_
\bg_
\bh_
\bt fail to receive those
735 events. This isn't very likely, since programs
736 generally select a constant set of events immedi-
737 ately after creating their windows and then don't
738 change them, but this is the reason that it's a
739 good idea to install and use one of the server
740 extensions instead, to work around this shortcom-
741 ing in the X protocol.
744 Although this program ``nices'' the subprocesses
745 that it starts, graphics-intensive subprograms can
746 still overload the machine by causing the X server
747 process itself (which is not ``niced'') to suck a
748 lot of cycles. Care should be taken to slow down
749 programs intended for use as screensavers by
750 inserting strategic calls to s
\bsl
\ble
\bee
\bep
\bp(3) or u
\bus
\bsl
\ble
\bee
\bep
\bp(3)
751 (or making liberal use of any _
\b-_
\bd_
\be_
\bl_
\ba_
\by options which
752 the programs may provide.)
754 Also, an active screensaver will cause your X
755 server to be pretty much permanently swapped in;
756 but the same is true of any program that draws
757 periodically, like x
\bxc
\bcl
\blo
\boc
\bck
\bk(1) or x
\bxl
\blo
\boa
\bad
\bd(1).
759 Latency and Responsiveness
760 If the subprocess is drawing too quickly and the
761 connection to the X server is a slow one (such as
762 an X terminal running over a phone line) then the
763 screensaver might not turn off right away when the
764 user becomes active again (the i
\bic
\bco
\bo(1) demo has
765 this problem if being run in full-speed mode).
766 This can be alleviated by inserting strategic
767 calls to X
\bXS
\bSy
\byn
\bnc
\bc(3) in code intended for use as a
768 screensaver. This prevents too much graphics
769 activity from being buffered up.
772 Locking doesn't work if the screensaver is
773 launched by _
\bx_
\bd_
\bm. The reason for this is that when
774 it is launched by _
\bx_
\bd_
\bm, the screensaver process is
775 owned by some standard user id (such as _
\br_
\bo_
\bo_
\bt or
776 _
\bd_
\ba_
\be_
\bm_
\bo_
\bn) instead of the user who is logged in on
777 the console: because the screensaver was started
778 _
\bb_
\be_
\bf_
\bo_
\br_
\be anyone was logged in. In order for the
779 screensaver to prompt for the password of the per-
780 son who had logged in from _
\bx_
\bd_
\bm, it would need to
781 know who that user was, and there is no reliable
782 and safe way to figure that out. (And even if
783 there was, there would be some other security
784 issues here as well.)
786 So if you want to use it as a locker, you must
790 X Version 11 31-May-97 11
796 XScreenSaver(1) XScreenSaver(1)
799 start it with your user id. If it has already
800 been started by _
\bx_
\bd_
\bm, you can kill it with x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bn-
\b-
801 s
\bsa
\bav
\bve
\ber
\br-
\b-c
\bco
\bom
\bmm
\bma
\ban
\bnd
\bd -
\b-e
\bex
\bxi
\bit
\bt, and then start it again as
805 If you get an error message like ``couldn't get
806 password of _
\bu_
\bs_
\be_
\br'' then this probably means that
807 you're on a system in which the g
\bge
\bet
\btp
\bpw
\bwe
\ben
\bnt
\bt(3)
808 library routine can only be effectively used by
809 root. If this is the case, then _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br must
810 be installed as setuid to root. Care has been
811 taken to make this a safe thing to do.
813 It also may mean that your system uses shadow
814 passwords instead of the standard _
\bg_
\be_
\bt_
\bp_
\bw_
\be_
\bn_
\bt inter-
815 face; in that case, you may need to change some
816 options in _
\bc_
\bo_
\bn_
\bf_
\bi_
\bg_
\b._
\bh and recompile.
819 The i
\bin
\bns
\bst
\bta
\bal
\bll
\blC
\bCo
\bol
\blo
\bor
\brm
\bma
\bap
\bp option doesn't work very well
820 with the t
\btw
\bwm
\bm(1) window manager and its descen-
823 There is a race condition between the screensaver
824 and this window manager, which can result in the
825 screensaver's colormap not getting installed prop-
826 erly, meaning the graphics hacks will appear in
827 essentially random colors. (If the screen goes
828 white instead of black, this is probably why.)
830 The m
\bmw
\bwm
\bm(1) and o
\bol
\blw
\bwm
\bm(1) window managers don't seem
831 to have this problem. The race condition exists
832 because X apparently does not provide a way for an
833 OverrideRedirect window to have its own colormap,
834 short of grabbing the server (which is neither a
835 good idea, nor really possible with the current
836 design.) What happens is that, as soon as the
837 screensaver installs its colormap, t
\btw
\bwm
\bm responds to
838 the C
\bCo
\bol
\blo
\bor
\brm
\bma
\bap
\bpN
\bNo
\bot
\bti
\bif
\bfy
\by event that is generated by re-
839 instaling the default colormap. Apparently, t
\btw
\bwm
\bm
840 doesn't _
\ba_
\bl_
\bw_
\ba_
\by_
\bs do this; it seems to do it regu-
841 larly if the screensaver is activated from a menu
842 item, but seems to not do it if the screensaver
843 comes on of its own volition, or is activated from
844 another console. Any thoughts on this problem are
848 Apparently there are some problems with XView pro-
849 grams getting confused and thinking that the
850 screensaver window is the real root window even
851 when the screensaver is not active: ClientMessages
852 intended for the window manager are sent to the
856 X Version 11 31-May-97 12
862 XScreenSaver(1) XScreenSaver(1)
865 screensaver window instead. This could be solved
866 by making xscreensaver forward all unrecognised
867 ClientMessages to the real root window, but there
868 may be other problems as well. If anyone has any
869 insight on the cause of this problem, please let
872 MIT Extension and Fading
873 When using the M
\bMI
\bIT
\bT-
\b-S
\bSC
\bCR
\bRE
\bEE
\bEN
\bN-
\b-S
\bSA
\bAV
\bVE
\bER
\bR extension in con-
874 junction with the f
\bfa
\bad
\bde
\be option, you may notice an
875 unattractive flicker just before the fade begins.
876 This is because the server maps a black window
877 just before it tells the _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br process to
878 activate. The _
\bx_
\bs_
\bc_
\br_
\be_
\be_
\bn_
\bs_
\ba_
\bv_
\be_
\br process immediately
879 unmaps that window, but this results in a flicker.
880 I haven't figured a way to get around this; it
881 seems to be a fundamental property of the (mis-)
882 design of this server extension.
884 LessTif (Motif Clone)
885 Rumor has it that demo mode is buggy if XScreen-
886 Saver was compiled with the GNU LessTif reimple-
887 mentation of Motif. Since it works fine with OSF
888 Motif on a variety of systems, I assume these
889 problems are due to bugs in LessTif. Again, any
890 insight would be appreciated.
893 There need to be a lot more graphics hacks. In
894 particular, there should be a simulation of a
897 E
\bEN
\bNV
\bVI
\bIR
\bRO
\bON
\bNM
\bME
\bEN
\bNT
\bT
898 D
\bDI
\bIS
\bSP
\bPL
\bLA
\bAY
\bY to get the default host and display number, and to
899 inform the sub-programs of the screen on which to
902 X
\bXE
\bEN
\bNV
\bVI
\bIR
\bRO
\bON
\bNM
\bME
\bEN
\bNT
\bT
903 to get the name of a resource file that overrides
904 the global resources stored in the RESOURCE_MAN-
907 U
\bUP
\bPG
\bGR
\bRA
\bAD
\bDE
\bES
\bS
908 The latest version can always be found at http://peo-
909 ple.netscape.com/jwz/xscreensaver/
911 S
\bSE
\bEE
\bE A
\bAL
\bLS
\bSO
\bO
912 X
\bX(1), x
\bxs
\bsc
\bcr
\bre
\bee
\ben
\bns
\bsa
\bav
\bve
\ber
\br-
\b-c
\bco
\bom
\bmm
\bma
\ban
\bnd
\bd(1), x
\bxl
\blo
\boc
\bck
\bk(1), x
\bxn
\bnl
\blo
\boc
\bck
\bk(1), x
\bxa
\bau
\bu-
\b-
913 t
\bto
\bol
\blo
\boc
\bck
\bk(1), x
\bxd
\bdm
\bm(1), a
\bat
\btt
\btr
\bra
\bac
\bct
\bti
\bio
\bon
\bn(1), g
\bgr
\bre
\bey
\byn
\bne
\bet
\bti
\bic
\bc(1), h
\bhe
\bel
\bli
\bix
\bx(1),
914 h
\bho
\bop
\bpa
\bal
\blo
\bon
\bng
\bg(1), n
\bno
\bos
\bse
\beg
\bgu
\buy
\by(1), p
\bpy
\byr
\bro
\bo(1), x
\bxr
\bro
\bog
\bge
\ber
\br(1), q
\bqi
\bix
\bx(1),
915 r
\bro
\boc
\bck
\bks
\bs(1), r
\bro
\bor
\brs
\bsc
\bch
\bha
\bac
\bch
\bh(1), b
\bbl
\bli
\bit
\bts
\bsp
\bpi
\bin
\bn(1), i
\bim
\bms
\bsm
\bma
\bap
\bp(1),
916 s
\bsl
\bli
\bid
\bde
\bes
\bsc
\bcr
\bre
\bee
\ben
\bn(1), d
\bde
\bec
\bca
\bay
\bys
\bsc
\bcr
\bre
\bee
\ben
\bn(1), m
\bma
\baz
\bze
\be(1), h
\bhy
\byp
\bpe
\ber
\brc
\bcu
\bub
\bbe
\be(1),
917 h
\bha
\bal
\blo
\bo(1), f
\bfl
\bla
\bam
\bme
\be(1), p
\bpe
\bed
\bda
\bal
\bl(1), l
\blm
\bmo
\bor
\brp
\bph
\bh(1), d
\bde
\bec
\bco
\bo(1), m
\bmo
\boi
\bir
\bre
\be(1),
918 k
\bka
\bal
\ble
\bei
\bid
\bde
\bes
\bsc
\bco
\bop
\bpe
\be(1), b
\bbu
\bub
\bbb
\bbl
\ble
\bes
\bs(1), l
\bli
\big
\bgh
\bht
\btn
\bni
\bin
\bng
\bg(1), s
\bst
\btr
\bra
\ban
\bng
\bge
\be(1),
922 X Version 11 31-May-97 13
928 XScreenSaver(1) XScreenSaver(1)
931 f
\bfr
\bra
\bac
\bct
\bt(1), s
\bsp
\bpi
\bir
\bra
\bal
\bl(1), l
\bla
\bas
\bse
\ber
\br(1), g
\bgr
\bra
\bav
\bv(1), d
\bdr
\bri
\bif
\bft
\bt(1), i
\bif
\bfs
\bs(1),
932 j
\bju
\bul
\bli
\bia
\ba(1), p
\bpe
\ben
\bnr
\bro
\bos
\bse
\be(1), s
\bsi
\bie
\ber
\brp
\bpi
\bin
\bns
\bsk
\bki
\bi(1), h
\bho
\bop
\bpa
\bal
\blo
\bon
\bng
\bg(1),
933 b
\bbr
\bra
\bai
\bid
\bd(1), b
\bbo
\bou
\bub
\bbo
\bou
\bul
\ble
\be(1), g
\bga
\bal
\bla
\bax
\bxy
\by(1), f
\bfl
\bla
\bag
\bg(1), f
\bfo
\bor
\bre
\bes
\bst
\bt(1),
934 s
\bsp
\bph
\bhe
\ber
\bre
\be(1), l
\bli
\bis
\bsa
\ba(1), x
\bxd
\bda
\bal
\bli
\bic
\bcl
\blo
\boc
\bck
\bk(1), x
\bxb
\bbo
\bou
\bun
\bnc
\bce
\beb
\bbi
\bit
\bts
\bs(1), i
\bic
\bco
\bo(1),
935 x
\bxs
\bsw
\bwa
\bar
\brm
\bm(1), x
\bxw
\bwa
\bav
\bve
\be(1), x
\bxv
\bv(1), x
\bxt
\bta
\bac
\bcy
\by(1), b
\bbo
\bon
\bng
\bgo
\bo(1), x
\bxf
\bfi
\bis
\bsh
\bh-
\b-
938 C
\bCO
\bOP
\bPY
\bYR
\bRI
\bIG
\bGH
\bHT
\bT
939 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997 by
940 Jamie Zawinski. Permission to use, copy, modify, dis-
941 tribute, and sell this software and its documentation for
942 any purpose is hereby granted without fee, provided that
943 the above copyright notice appear in all copies and that
944 both that copyright notice and this permission notice
945 appear in supporting documentation. No representations
946 are made about the suitability of this software for any
947 purpose. It is provided "as is" without express or
950 A
\bAU
\bUT
\bTH
\bHO
\bOR
\bR
951 Jamie Zawinski <jwz@netscape.com>. Written in late 1991;
952 first posted to comp.sources.x on 13-Aug-1992.
954 Please let me know if you find any bugs or make any
957 Thanks to David Wojtowicz for implementing _
\bl_
\bo_
\bc_
\bk_
\bT_
\bi_
\bm_
\be_
\bo_
\bu_
\bt.
959 Thanks to Martin Kraemer for adding support for shadow
960 passwords and locking-disabled diagnostics.
962 Thanks to the many people who have contributed graphics
963 demos to the package.
965 Thanks to Patrick Moreau for the VMS port.
967 And huge thanks to Jon A. Christopher for implementing the
968 Athena dialog support, so that locking and demo-mode work
969 even if you don't have Motif.
988 X Version 11 31-May-97 14