4 a screen saver and locker for the X window system
13 The `configure' shell script will attempt to figure out which options are
14 appropriate for your system, and will create config.h and the various
15 Makefiles for you. Run `configure --help' to see how to override these
16 choices, or to specify things like the default installation directory.
17 The file `INSTALL' gives a general overview of use of these sorts of
18 configure scripts (those generated by the GNU autoconf system.)
19 The most important hint is probably this:
21 ./configure --includedir=/opt/Motif/include --libdir=/opt/Motif/lib
23 To build on VMS, see README.VMS.
25 If you think you've found a bug, please let me know; but first, read
26 the enlosed `README.debugging' file to find out what kind of information
27 would be most helpful to include in your bug report.
31 The xscreensaver program waits until the keyboard and mouse have been idle
32 for a period, and then runs a graphics demo chosen at random. It turns off
33 as soon as there is any mouse or keyboard activity.
35 The purpose of xscreensaver is to display pretty pictures on your screen
36 when it is not in use, in keeping with the philosophy that unattended
37 monitors should always be doing something interesting, just like they do
40 However, xscreensaver can also be used as a screen locker, to prevent
41 others from using your terminal while your are away.
43 The benefit that this program has over the combination of the xlock and
44 xautolock programs is the ease with which new graphics hacks can be
45 installed: you don't need to recompile this program to add a new display
46 mode, you just change some resource settings. Any program which can be
47 invoked in such a way that it draws on the root window of the screen can
48 now be used as a screensaver without modification. The programs that
49 are being run as screensavers don't need to have any special knowledge
50 about what it means to be a screensaver.
52 The XIDLE, MIT-SCREEN-SAVER, and/or SGI SCREEN_SAVER server extensions
53 will be used if you have them.
55 The dialog boxes (for locking and demo-mode) look best using Motif, but
56 can be configured to use Athena widgets instead.
58 Also included are several graphics hacks for use as screensavers. There's
59 nothing magic about these: they're just programs that draw on the root
60 window, which are pointed at by the screensaver's default resource settings.
62 qix - My own implementation of this, with many more options
63 than you would have thought qix could have.
64 helix - Generates spirally "stringart" patterns.
65 pedal - Draws a different kind of spirally pattern.
66 rorschach - Random inkblot patterns.
67 attraction - A bouncing ball demo, or a qix-like demo, or a wild
68 color-cycling thing, with some odd rules.
69 greynetic - Random colored/stippled rectangles.
70 rocks - Flying through an asteroid field.
71 blitspin - Rotate a bitmap using bitblts.
72 imsmap - Generates random maps or cloud formations.
73 hypercube - 2d projection of a hypercube rotating on all four axes.
74 slidescreen - Divides the screen into a grid and plays a 16-puzzle on it.
75 decayscreen - A melting effect.
76 puzzle - Turns the screen into a jigsaw puzzle and shuffles it.
77 halo - Random circular patterns.
78 pyro - Fireworks. Looks a lot like the version in xlock.
79 hopalong - Fractals. I snarfed this code from xlock.
80 flame - Fractals. Also from xlock.
81 noseguy - A guy with a big nose wanders around the screen saying
82 things. I snarfed this code from xnlock.
83 maze - This is the X maze demo modified to take a -root option
84 so that it works with xscreensaver.
85 lmorph - morphing line drawings.
86 bubbles - condensation forms on your monitor, then pops.
87 deco - Generates Brady-Bunch-era wall paneling.
88 moire - Circular interference patterns.
90 kaleidescope - Groovy, man.
91 swirl - Swirly color-cycling patterns.
92 bouboule - Spinning bubbles on a transparent ball.
93 braid - Draws random color-cycling braids around a circle.
94 drift - Drifting recursive fractal cosmic flames.
95 vines - Small, curvy geometric patterns.
96 galaxy - Spinning, colliding galaxies.
97 grav - Orbital simulation and/or cloud chamber.
98 ifs - Spinning, colliding iterated-function-system shapes.
99 julia - Animated rendition of the Julia set.
100 laser - Moving radiating lines.
101 lightning - Crackling fractal lightning bolts.
102 penrose - Quasiperiodic tilings.
103 sierpinski - two-dimensional Sierpinski triangle.
104 slip - Sucks your desktop through a jet engine.
105 spiral - Circular color-cycling interference patterns.
106 strange - Animating strange attractors.
107 flag - A waving flag of an arbitrary bitmap or text.
108 sphere - Draws a bunch of shaded spheres.
109 forest - grows a fractal forest.
110 lisa - draws animated full-loop lisajous figures.
111 lissie - another lisajous path.
112 goop - Squishy transparent oil-and-bubble images
113 starfish - Radially-symmetric throbbing colormap-hacking blobs.
114 munch - The classic 1962-vintage "munching squares" hack.
115 rd-bomb - Reaction-diffusion fractals.
116 coral - Simulation of coral growth, sort of.
117 fadeplot - Draws a swimming ribbon.
118 mountain - Generates mountains on a square grid.
119 triangle - Generates mountains on a triangular grid.
120 worm - Draws wiggly worms.
121 rotor - Draws a rotating spiral pattern.
122 ant - A cellular automaton.
123 xjack - Simulates a schizophrenic typist.
124 xlyap - Calculates and displays Lyapunov exponents.
125 gears - Draws interlocking rotating gears (GLX only.)
126 morph3d - Draws shiny shape-changing 3d forms (GLX only.)
127 superquadrics - More shiny shape-changing 3d forms (GLX only.)
128 pipes - Generates a field of intertwined plumbing (GLX only.)
129 rubik - Solves a Rubik's Cube (GLX only.)
130 sproingies - Marble Madness meets Q-Bert (GLX only.)
131 stairs - Draws Escher's infinite staircase (GLX only.)
132 cage - Draws Escher's impossible cage (GLX only.)
133 moebius - Draws Escher's Moebius Strip II (GLX only.)
135 All of these will pop up their own window unless given that -root option.
136 See their man pages for more details.
138 Other reasonable things to use as screensavers, if you have them, are
140 xdaliclock -root -builtin2 - melting digital clock
141 xswarm -r 2>&- - swimming sperm
142 xwave -root - random 3d graphs
143 xbouncebits - bounce arbitrary bitmaps around
144 ico -r -p8 -faces -sleep 1 - it's dull, but it's there
145 xv -root file.gif -quit - they don't all have to animate!
146 xsplinefun - bouncing splines
147 xfishtank -c black -d -r 1 - fish (use version 2.0 or later)
148 xmountains -b - very realistic generated mountains
149 xtacy -root - various eye candy
150 xearth -wait 0 -timewarp 400 - the earth as seen from space
151 /usr/demos/bin/bongo - an SGI GL demo
152 /usr/demos/bin/ep -S - another: the stunning ElectroPaint.
153 (Compile hacks/xscreensaver-sgigl.c
154 to use these with xscreensaver.)
156 You can get most of these from the contrib directory on ftp.x.org. If you
157 know of (or write) any other interesting programs that can be used as
158 screensavers, please let me know!
160 The latest version of xscreensaver is always available on the web at
161 http://people.netscape.com/jwz/xscreensaver/.
163 -- Jamie Zawinski <jwz@netscape.com>
166 Changes since 2.15: Made `flag' able to do XPM images.
167 New look for the xscreensaver logo (`xroger').
168 Fixed compilation error on Suns with adjunct passwords.
169 Got multi-architecture builds working again.
170 Some configure tweaks for building on HPUX and Solaris.
171 Fixed bug in decayscreen.
172 Fixed typo i passwd.c.
173 Made `cynosure' not die when colormap is full.
174 Changes since 2.14: Added `cynosure' hack.
176 Tweaked `erase.c' some more.
177 Made unfading a bit smoother.
178 Added `vidwhacker' hack (not installed by default.)
180 Split `escher' into `cage' and `moebius', as per
182 Changed subprocess handling to use sigaction() instead
183 of signal() if it's available (this is necessary for
184 SCO but should work fine on other systems too.)
185 Various other tweaks.
186 Changes since 2.13: Better fix for the Motif drag-and-die lossage.
187 Put in some kludges to work around a LessTif bug.
188 XScreenSaver is known to work with LessTif 0.82 now.
189 Made fading work on high-end SGI video hardware.
190 Fixed another SGI-specific bug in screen grabbing;
191 will the madness never cease?
192 Fixed another crash in `xlyap'.
193 Changes since 2.12: Made `decayscreen' do directions other than down.
195 Fixed a crash in `xlyap'.
196 Added CDE info to the man page, removed `cde.txt'.
197 Configure tweaks for Zippy.
198 Turned off the signal handling in `bubbles' because
199 it was sometimes failing to die.
200 Added `hacks/xscreensaver-sgigl.c' to make it possible
201 to run SGI's ElectroPaint hack (/usr/demos/bin/ep)
202 with xscreensaver. Finally!
203 Fixed a buffer overrun in the locking code that some
204 wily, malicious cracker must have slipped in.
205 Disabled Motif drag-and-drool in the dialog box
206 buttons, since it's broken in some old versions of
208 Changes since 2.11: Added `README.debugging'.
211 Added "default-n" as a visual name, so that one can
212 have -install on by default, but turn it off for
213 certain poorly-behaved hacks (like xv.)
214 Added support for grabbing frames of external video
215 (on SGI) to the screen-grabbing hacks (decayscreen,
216 slidescreen, slip, blitspin, and puzzle.)
217 Improved look of tiles in `slidescreen'; fixed its
218 color allocation problem.
219 Changes since 2.10: Tweaked `blitspin', added it to the default list.
220 Added `lissie', `mountain', `triangle', `worm',
221 `rotor', and `ant' from xlockmore.
222 Updated `sierpinski', `galaxy', and `lisa'.
223 Thickened the lines in `braid' and `lmorph'.
224 Updated VMS makefiles.
225 Renamed `fract' to `vines'.
227 Made a few more hacks use erase.c, and added a few
229 Fixed compilation problem with Sun's version of OpenGL.
230 Added ability to use sigaction() instead of signal()
231 to work around a SCO kernel bug.
232 Changes since 2.09: Fixed colormap bugs in `rd-bomb'; sped up `coral'.
233 Configure tweaks for *BSD.
234 Changes since 2.07: New hacks `rd-bomb' and `coral'.
235 New version of `maze' with some new algorithms.
236 New colorized version of `rocks'.
237 Fixed a bug in qix on 64-bit machines.
238 Fixed a bug in the -time option.
239 Fixed a bug in configure related to LessTif.
240 Changes since 2.06: Minor header tweaks in windows.c and flag.c.
241 Made multi-architecture (VPATH) builds work properly.
242 Merged new GL stuff from xlockmore (rubik, morph3d.)
243 Fixed intermittent crashes in `imsmap' and `munch'.
244 Added `fadeplot' hack from xlockmore.
245 Changes since 2.05: Merged in VMS support from Patrick Moreau.
246 Changes since 2.04: Fixed a MIT-SCREEN-SAVER-related crash, and tweaked
247 configure to detect the extra-random -Xss library.
248 Changes since 2.03: HP configure tweaks. Detect and warn about LessTif.
249 Fixed low-color behavior of `goop', `pyro', `starfish',
250 `greynetic', `flame', `halo', and `moire'.
251 Changes since 2.02: Fixed flicker in `pipes'. Fixed 3d in `bouboule'.
253 Added basic dependencies to the Makefile.in files.
254 Changes since 2.01: Fixes for compiling with the MIT saver extension.
255 Made the yow/fortune program be a configure option.
256 Various configure tweaks.
257 Changes since 2.00: Added `goop' and `starfish' hacks.
258 Added colomap cycling to `halo'.
259 Made `attraction' use the new colormap allocator.
260 Added better $PATH diagnostics.
261 There was a bug in frand! Color selection should be
263 Changes since 1.34: Converted to use `configure' instead of `imake'.
264 ANSI C is now required.
265 Added Kerberos locking support, from Nat Lanza.
266 Made the stderr text use overlay planes, if possible.
267 Reworked the xlockmore compatibility stuff again.
268 Added `gears', `superquadrics', `escher', `pipes',
269 and `sproingies' hacks (depend on OpenGL.)
270 Changes since 1.33: Fixed some bugs, made fading be a little smoother.
271 Changes since 1.32: Made it work with multi-headed displays.
272 Generalized sub-process management (Unix sucks!)
273 Added interactive mouse frobbing to Julia.
274 Added (untested) support for HPUX shadow passwords.
275 Made normal non-shadow passwords be checked if the
276 shadow passwords aren't accessible for some reason.
277 Changes since 1.31: Removed *colorPrograms and *monoPrograms resources:
278 made it possible to specify the desired visual on a
280 Cleaned up / restructured the driver: no more globals.
281 Made the Motif and Athena dialogs share more code.
282 Probably fixed some Athena colormap-installation bugs.
283 Fixed screen grabbing (cmap) on SGI 12-bit PseudoColor.
284 Fixed divide-by-zero in bright random colormaps.
285 Added an improved version of xlock's `flag' hack.
286 Made unfading work better, and not flicker on SGIs.
287 Added `sphere', `forest', `lisa' hacks from xlockmore.
288 Added (untested) support for SunOS Adjunct passwords.
289 Changes since 1.30: Improved colors and colormap cycling of many hacks.
290 Cleaned up xlockmore compatibility layer.
291 Made `blitspin' able to grab an image off the screen.
292 Ported `swirl' and `bouboule' hacks from xlockmore.
293 Made the driver more careful about not leaving bits on
294 the screen, or allowing other windows to raise
295 themselves: it now re-blanks the screen every so often.
296 Added `-time' option to `xscreensaver-command'.
297 Improved SGI screen-grabbing some more: now it can grab
298 TrueColor screens into PseudoColor windows and have the
299 colors still come out semi-reasonably.
300 Changes since 1.29: Made `slidescreen' and `decayscreen' work better on
301 SGIs when windows of different visuals are present, by
302 using the XReadDisplay() extension to get a true 24-bit
303 image out of the frame buffer.
304 Made `noseguy' be in color, if compiled with XPM.
305 Ported `braid', `drift', `fract', `galaxy', `grav',
306 `ifs', `julia', `laser', `lightning', `penrose',
307 `sierpinski', `slip', `spiral', and `strange' hacks
309 Merged `hopalong' hack with a more recent version.
311 Changes since 1.27: Added `deco', `moire', and `kaleidescope' hacks.
312 Merged in support for non-Motif locking and demo mode.
313 Made `blitspin' and `bubbles' work in TrueColor.
314 Fixed a stupid bug I introduced in `imsmap'.
315 Added `poly' and `gravity' options to `qix'.
316 Changes since 1.26: Added support for SGI SCREEN_SAVER extension.
317 Made `fade' and `unfade' work on 8-bit SGIs.
318 Made the dialog boxes more Motify.
319 Added `bubbles' hack.
320 Changes since 1.25: Added `lmorph' hack.
321 Added viscosity and mouse-control to attraction.
322 Fixed possible bad color choices in qix and attraction.
323 Added ramp-mode to halo.
324 Added a new RNG, which is faster and more portable
325 than using the RNG in libc.
326 Made locking work on SCO.
327 Various other minor tweaks that I don't remember.
328 Changes since 1.24: Made it capture the stdout/stderr of its subprocesses
329 and present them on the screensaver window itself.
330 Made demo mode work correctly with non-default visuals
331 and color maps, instead of always using the defaults.
332 Added -visual argument to all included screenhacks.
333 Support for the R6 MIT-SCREEN-SAVER server extension.
334 Made the demo mode list scroll properly.
336 Changes since 1.23: Fixed some private-colormap oddities in slidescreen,
337 decayscreen, and xroger. Fixed apparent conservation-
338 of-mass problem in pyro; made the shrapnel round.
339 Changes since 1.22: Minor tweaks for IRIX5; fixed locking race condition.
340 Changes since 1.21: Minor tweaks for X11R6.
341 Fixes for non-default visuals.
342 Changes since 1.20: Fixed bug in color blitspin; added default image.
343 Added diagnostics to noseguy. Fixed off-by-one
344 error in flame. Added some missing casts.
345 Changes since 1.18: Added `flame' hack.
346 Fixed a minor Motif dialog text field bug.
347 Fixed yet another XPointer-not-defined-in-R4 bug.
348 Changes since 1.17: Added support for shadow password files.
349 Fixed some Motif-related locking bugs.
350 Added diagnostics when locking is disabled.
351 Made blitspin able to use the XPM library.
352 Added `decayscreen' hack.
353 Changes since 1.16: Added `halo' hack.
354 Changes since 1.15: Portability fixes.
355 Changes since 1.14: Broke the driver up into more source files.
356 Moved the hacks into their own directory.
357 Made all `time' parameters accept the 00:00:00 syntax,
358 so that even the parameters which are normally read as
359 minutes can be specified in seconds.
360 Added colormap cycling to `imsmap'.
361 Made hyper work with K&R compilers.
362 Changes since 1.13: Added `orbit' option to `attraction' hack.
363 Added `lock-timeout' option.
364 Cleaned up options of `maze' hack.
365 Changes since 1.8: Added demo mode, and locking.
367 Added `norotate' option to `rocks' hack.