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.
89 kaleidescope - Groovy, man.
90 swirl - Swirly color-cycling patterns.
91 bouboule - Spinning bubbles on a transparent ball.
92 braid - Draws random color-cycling braids around a circle.
93 drift - Drifting recursive fractal cosmic flames.
94 vines - Small, curvy geometric patterns.
95 galaxy - Spinning, colliding galaxies.
96 grav - Orbital simulation and/or cloud chamber.
97 ifs - Spinning, colliding iterated-function-system shapes.
98 julia - Animated rendition of the Julia set.
99 laser - Moving radiating lines.
100 lightning - Crackling fractal lightning bolts.
101 penrose - Quasiperiodic tilings.
102 sierpinski - two-dimensional Sierpinski triangle.
103 slip - Sucks your desktop through a jet engine.
104 spiral - Circular color-cycling interference patterns.
105 strange - Animating strange attractors.
106 flag - A waving flag of an arbitrary bitmap or text.
107 sphere - Draws a bunch of shaded spheres.
108 forest - grows a fractal forest.
109 lisa - draws animated full-loop lisajous figures.
110 lissie - another lisajous path.
111 goop - Squishy transparent oil-and-bubble images
112 starfish - Radially-symmetric throbbing colormap-hacking blobs.
113 munch - The classic 1962-vintage "munching squares" hack.
114 rd-bomb - Reaction-diffusion fractals.
115 coral - Simulation of coral growth, sort of.
116 fadeplot - Draws a swimming ribbon.
117 mountain - Generates mountains on a square grid.
118 triangle - Generates mountains on a triangular grid.
119 worm - Draws wiggly worms.
120 rotor - Draws a rotating spiral pattern.
121 ant - A cellular automaton.
122 xjack - Simulates a schizophrenic typist.
123 xlyap - Calculates and displays Lyapunov exponents.
124 escher - Draws some escher-like scenes (GLX only.)
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.)
132 All of these will pop up their own window unless given that -root option.
133 See their man pages for more details.
135 Other reasonable things to use as screensavers, if you have them, are
137 xdaliclock -root -builtin2 - melting digital clock
138 xswarm -r 2>&- - swimming sperm
139 xwave -root - random 3d graphs
140 xbouncebits - bounce arbitrary bitmaps around
141 ico -r -p8 -faces -sleep 1 - it's dull, but it's there
142 xv -root file.gif -quit - they don't all have to animate!
143 xsplinefun - bouncing splines
144 xfishtank -c black -d -r 1 - fish (use version 2.0 or later)
145 xmountains -b - very realistic generated mountains
146 xtacy -root - various eye candy
147 xearth -wait 0 -timewarp 400 - the earth as seen from space
148 /usr/demos/bin/bongo - an SGI GL demo
149 /usr/demos/bin/ep -S - another: the stunning ElectroPaint.
150 (Compile hacks/xscreensaver-sgigl.c
151 to use these with xscreensaver.)
153 You can get most of these from the contrib directory on ftp.x.org. If you
154 know of (or write) any other interesting programs that can be used as
155 screensavers, please let me know!
157 The latest version of xscreensaver is always available on the web at
158 http://people.netscape.com/jwz/xscreensaver/.
160 -- Jamie Zawinski <jwz@netscape.com>
163 Changes since 2.13: Better fix for the Motif drag-and-die lossage.
164 Put in some kludges to work around a LessTif bug.
165 XScreenSaver is known to work with LessTif 0.82 now.
166 Made fading work on high-end SGI video hardware.
167 Fixed another SGI-specific bug in screen grabbing;
168 will the madness never cease?
169 Fixed another crash in `xlyap'.
170 Changes since 2.12: Made `decayscreen' do directions other than down.
172 Fixed a crash in `xlyap'.
173 Added CDE info to the man page, removed `cde.txt'.
174 Configure tweaks for Zippy.
175 Turned off the signal handling in `bubbles' because
176 it was sometimes failing to die.
177 Added `hacks/xscreensaver-sgigl.c' to make it possible
178 to run SGI's ElectroPaint hack (/usr/demos/bin/ep)
179 with xscreensaver. Finally!
180 Fixed a buffer overrun in the locking code that some
181 wily, malicious cracker must have slipped in.
182 Disabled Motif drag-and-drool in the dialog box
183 buttons, since it's broken in some old versions of
185 Changes since 2.11: Added `README.debugging'.
188 Added "default-n" as a visual name, so that one can
189 have -install on by default, but turn it off for
190 certain poorly-behaved hacks (like xv.)
191 Added support for grabbing frames of external video
192 (on SGI) to the screen-grabbing hacks (decayscreen,
193 slidescreen, slip, blitspin, and puzzle.)
194 Improved look of tiles in `slidescreen'; fixed its
195 color allocation problem.
196 Changes since 2.10: Tweaked `blitspin', added it to the default list.
197 Added `lissie', `mountain', `triangle', `worm',
198 `rotor', and `ant' from xlockmore.
199 Updated `sierpinski', `galaxy', and `lisa'.
200 Thickened the lines in `braid' and `lmorph'.
201 Updated VMS makefiles.
202 Renamed `fract' to `vines'.
204 Made a few more hacks use erase.c, and added a few
206 Fixed compilation problem with Sun's version of OpenGL.
207 Added ability to use sigaction() instead of signal()
208 to work around a SCO kernel bug.
209 Changes since 2.09: Fixed colormap bugs in `rd-bomb'; sped up `coral'.
210 Configure tweaks for *BSD.
211 Changes since 2.07: New hacks `rd-bomb' and `coral'.
212 New version of `maze' with some new algorithms.
213 New colorized version of `rocks'.
214 Fixed a bug in qix on 64-bit machines.
215 Fixed a bug in the -time option.
216 Fixed a bug in configure related to LessTif.
217 Changes since 2.06: Minor header tweaks in windows.c and flag.c.
218 Made multi-architecture (VPATH) builds work properly.
219 Merged new GL stuff from xlockmore (rubik, morph3d.)
220 Fixed intermittent crashes in `imsmap' and `munch'.
221 Added `fadeplot' hack from xlockmore.
222 Changes since 2.05: Merged in VMS support from Patrick Moreau.
223 Changes since 2.04: Fixed a MIT-SCREEN-SAVER-related crash, and tweaked
224 configure to detect the extra-random -Xss library.
225 Changes since 2.03: HP configure tweaks. Detect and warn about LessTif.
226 Fixed low-color behavior of `goop', `pyro', `starfish',
227 `greynetic', `flame', `halo', and `moire'.
228 Changes since 2.02: Fixed flicker in `pipes'. Fixed 3d in `bouboule'.
230 Added basic dependencies to the Makefile.in files.
231 Changes since 2.01: Fixes for compiling with the MIT saver extension.
232 Made the yow/fortune program be a configure option.
233 Various configure tweaks.
234 Changes since 2.00: Added `goop' and `starfish' hacks.
235 Added colomap cycling to `halo'.
236 Made `attraction' use the new colormap allocator.
237 Added better $PATH diagnostics.
238 There was a bug in frand! Color selection should be
240 Changes since 1.34: Converted to use `configure' instead of `imake'.
241 ANSI C is now required.
242 Added Kerberos locking support, from Nat Lanza.
243 Made the stderr text use overlay planes, if possible.
244 Reworked the xlockmore compatibility stuff again.
245 Added `gears', `superquadrics', `escher', `pipes',
246 and `sproingies' hacks (depend on OpenGL.)
247 Changes since 1.33: Fixed some bugs, made fading be a little smoother.
248 Changes since 1.32: Made it work with multi-headed displays.
249 Generalized sub-process management (Unix sucks!)
250 Added interactive mouse frobbing to Julia.
251 Added (untested) support for HPUX shadow passwords.
252 Made normal non-shadow passwords be checked if the
253 shadow passwords aren't accessible for some reason.
254 Changes since 1.31: Removed *colorPrograms and *monoPrograms resources:
255 made it possible to specify the desired visual on a
257 Cleaned up / restructured the driver: no more globals.
258 Made the Motif and Athena dialogs share more code.
259 Probably fixed some Athena colormap-installation bugs.
260 Fixed screen grabbing (cmap) on SGI 12-bit PseudoColor.
261 Fixed divide-by-zero in bright random colormaps.
262 Added an improved version of xlock's `flag' hack.
263 Made unfading work better, and not flicker on SGIs.
264 Added `sphere', `forest', `lisa' hacks from xlockmore.
265 Added (untested) support for SunOS Adjunct passwords.
266 Changes since 1.30: Improved colors and colormap cycling of many hacks.
267 Cleaned up xlockmore compatibility layer.
268 Made `blitspin' able to grab an image off the screen.
269 Ported `swirl' and `bouboule' hacks from xlockmore.
270 Made the driver more careful about not leaving bits on
271 the screen, or allowing other windows to raise
272 themselves: it now re-blanks the screen every so often.
273 Added `-time' option to `xscreensaver-command'.
274 Improved SGI screen-grabbing some more: now it can grab
275 TrueColor screens into PseudoColor windows and have the
276 colors still come out semi-reasonably.
277 Changes since 1.29: Made `slidescreen' and `decayscreen' work better on
278 SGIs when windows of different visuals are present, by
279 using the XReadDisplay() extension to get a true 24-bit
280 image out of the frame buffer.
281 Made `noseguy' be in color, if compiled with XPM.
282 Ported `braid', `drift', `fract', `galaxy', `grav',
283 `ifs', `julia', `laser', `lightning', `penrose',
284 `sierpinski', `slip', `spiral', and `strange' hacks
286 Merged `hopalong' hack with a more recent version.
288 Changes since 1.27: Added `deco', `moire', and `kaleidescope' hacks.
289 Merged in support for non-Motif locking and demo mode.
290 Made `blitspin' and `bubbles' work in TrueColor.
291 Fixed a stupid bug I introduced in `imsmap'.
292 Added `poly' and `gravity' options to `qix'.
293 Changes since 1.26: Added support for SGI SCREEN_SAVER extension.
294 Made `fade' and `unfade' work on 8-bit SGIs.
295 Made the dialog boxes more Motify.
296 Added `bubbles' hack.
297 Changes since 1.25: Added `lmorph' hack.
298 Added viscosity and mouse-control to attraction.
299 Fixed possible bad color choices in qix and attraction.
300 Added ramp-mode to halo.
301 Added a new RNG, which is faster and more portable
302 than using the RNG in libc.
303 Made locking work on SCO.
304 Various other minor tweaks that I don't remember.
305 Changes since 1.24: Made it capture the stdout/stderr of its subprocesses
306 and present them on the screensaver window itself.
307 Made demo mode work correctly with non-default visuals
308 and color maps, instead of always using the defaults.
309 Added -visual argument to all included screenhacks.
310 Support for the R6 MIT-SCREEN-SAVER server extension.
311 Made the demo mode list scroll properly.
313 Changes since 1.23: Fixed some private-colormap oddities in slidescreen,
314 decayscreen, and xroger. Fixed apparent conservation-
315 of-mass problem in pyro; made the shrapnel round.
316 Changes since 1.22: Minor tweaks for IRIX5; fixed locking race condition.
317 Changes since 1.21: Minor tweaks for X11R6.
318 Fixes for non-default visuals.
319 Changes since 1.20: Fixed bug in color blitspin; added default image.
320 Added diagnostics to noseguy. Fixed off-by-one
321 error in flame. Added some missing casts.
322 Changes since 1.18: Added `flame' hack.
323 Fixed a minor Motif dialog text field bug.
324 Fixed yet another XPointer-not-defined-in-R4 bug.
325 Changes since 1.17: Added support for shadow password files.
326 Fixed some Motif-related locking bugs.
327 Added diagnostics when locking is disabled.
328 Made blitspin able to use the XPM library.
329 Added `decayscreen' hack.
330 Changes since 1.16: Added `halo' hack.
331 Changes since 1.15: Portability fixes.
332 Changes since 1.14: Broke the driver up into more source files.
333 Moved the hacks into their own directory.
334 Made all `time' parameters accept the 00:00:00 syntax,
335 so that even the parameters which are normally read as
336 minutes can be specified in seconds.
337 Added colormap cycling to `imsmap'.
338 Made hyper work with K&R compilers.
339 Changes since 1.13: Added `orbit' option to `attraction' hack.
340 Added `lock-timeout' option.
341 Cleaned up options of `maze' hack.
342 Changes since 1.8: Added demo mode, and locking.
344 Added `norotate' option to `rocks' hack.