http://ftp.x.org/contrib/applications/xscreensaver-2.17.tar.gz
[xscreensaver] / README
diff --git a/README b/README
index 2783d608b2bd94de41a0cdc078aa66b87b3362c7..bc6809766612b7a306548cb0776862fec1f99f51 100644 (file)
--- a/README
+++ b/README
@@ -1,7 +1,32 @@
 
-See config.h for configuration parameters.  To build, do the usual:
+                              XScreenSaver
 
-       xmkmf ; make ; make install ; make install.man
+            a screen saver and locker for the X window system
+                            by Jamie Zawinski
+
+To build on Unix:
+
+  -  ./configure
+  -  make
+  -  make install
+
+The `configure' shell script will attempt to figure out which options are
+appropriate for your system, and will create config.h and the various
+Makefiles for you.  Run `configure --help' to see how to override these
+choices, or to specify things like the default installation directory.
+The file `INSTALL' gives a general overview of use of these sorts of
+configure scripts (those generated by the GNU autoconf system.)
+The most important hint is probably this:
+
+   ./configure --includedir=/opt/Motif/include --libdir=/opt/Motif/lib
+
+To build on VMS, see README.VMS.
+
+If you think you've found a bug, please let me know; but first, read
+the enlosed `README.debugging' file to find out what kind of information
+would be most helpful to include in your bug report.
+
+                              ============
 
 The xscreensaver program waits until the keyboard and mouse have been idle
 for a period, and then runs a graphics demo chosen at random.  It turns off
@@ -20,13 +45,15 @@ xautolock programs is the ease with which new graphics hacks can be
 installed: you don't need to recompile this program to add a new display
 mode, you just change some resource settings.  Any program which can be
 invoked in such a way that it draws on the root window of the screen can
-now be used as a screensaver without modification [*].  The programs that
+now be used as a screensaver without modification.  The programs that
 are being run as screensavers don't need to have any special knowledge
 about what it means to be a screensaver.
 
-The XIdle extension will be used if you have it (win win.)
+The XIDLE, MIT-SCREEN-SAVER, and/or SGI SCREEN_SAVER server extensions
+will be used if you have them.
 
-Unfortunately, locking doesn't work if you don't have Motif.
+The dialog boxes (for locking and demo-mode) look best using Motif, but
+can be configured to use Athena widgets instead.
 
 Also included are several graphics hacks for use as screensavers.  There's
 nothing magic about these: they're just programs that draw on the root
@@ -35,6 +62,7 @@ window, which are pointed at by the screensaver's default resource settings.
    qix         - My own implementation of this, with many more options
                  than you would have thought qix could have.
    helix       - Generates spirally "stringart" patterns.
+   pedal       - Draws a different kind of spirally pattern.
    rorschach   - Random inkblot patterns.
    attraction  - A bouncing ball demo, or a qix-like demo, or a wild
                  color-cycling thing, with some odd rules.
@@ -44,13 +72,67 @@ window, which are pointed at by the screensaver's default resource settings.
    imsmap      - Generates random maps or cloud formations.
    hypercube   - 2d projection of a hypercube rotating on all four axes.
    slidescreen - Divides the screen into a grid and plays a 16-puzzle on it.
+   decayscreen - A melting effect.
+   jigsaw      - Turns the screen into a jigsaw puzzle and shuffles it.
    halo                - Random circular patterns.
    pyro                - Fireworks.  Looks a lot like the version in xlock.
    hopalong    - Fractals.  I snarfed this code from xlock.
+   flame       - Fractals.  Also from xlock.
    noseguy     - A guy with a big nose wanders around the screen saying
                  things.  I snarfed this code from xnlock.
    maze                - This is the X maze demo modified to take a -root option
                  so that it works with xscreensaver.
+   lmorph      - morphing line drawings.
+   bubbles     - condensation forms on your monitor, then pops.
+   deco                - Generates Brady-Bunch-era wall paneling.
+   moire       - Circular interference patterns.
+   moire2      - More moire.
+   kaleidescope        - Groovy, man.
+   swirl       - Swirly color-cycling patterns.
+   bouboule    - Spinning bubbles on a transparent ball.
+   braid       - Draws random color-cycling braids around a circle.
+   drift       - Drifting recursive fractal cosmic flames.
+   vines       - Small, curvy geometric patterns.
+   galaxy      - Spinning, colliding galaxies.
+   grav                - Orbital simulation and/or cloud chamber.
+   ifs         - Spinning, colliding iterated-function-system shapes.
+   julia       - Animated rendition of the Julia set.
+   laser       - Moving radiating lines.
+   lightning   - Crackling fractal lightning bolts.
+   penrose     - Quasiperiodic tilings.
+   sierpinski  - two-dimensional Sierpinski triangle.
+   slip                - Sucks your desktop through a jet engine.
+   spiral      - Circular color-cycling interference patterns.
+   strange     - Animating strange attractors.
+   flag                - A waving flag of an arbitrary bitmap or text.
+   sphere      - Draws a bunch of shaded spheres.
+   forest      - grows a fractal forest.
+   lisa                - draws animated full-loop lisajous figures.
+   lissie      - another lisajous path.
+   goop                - Squishy transparent oil-and-bubble images
+   starfish    - Radially-symmetric throbbing colormap-hacking blobs.
+   munch       - The classic 1962-vintage "munching squares" hack.
+   rd-bomb      - Reaction-diffusion fractals.
+   coral        - Simulation of coral growth, sort of.
+   fadeplot    - Draws a swimming ribbon.
+   mountain    - Generates mountains on a square grid.
+   triangle    - Generates mountains on a triangular grid.
+   worm                - Draws wiggly worms.
+   rotor       - Draws a rotating spiral pattern.
+   ant         - A cellular automaton.
+   xjack       - Simulates a schizophrenic typist.
+   xlyap       - Calculates and displays Lyapunov exponents.
+   flow                - More strange attractors.
+   gears       - Draws interlocking rotating gears (GLX only.)
+   morph3d     - Draws shiny shape-changing 3d forms (GLX only.)
+   superquadrics - More shiny shape-changing 3d forms (GLX only.)
+   pipes       - Generates a field of intertwined plumbing (GLX only.)
+   rubik       - Solves a Rubik's Cube (GLX only.)
+   sproingies  - Marble Madness meets Q-Bert (GLX only.)
+   stairs      - Draws Escher's infinite staircase (GLX only.)
+   cage                - Draws Escher's impossible cage (GLX only.)
+   moebius     - Draws Escher's Moebius Strip II (GLX only.)
+   atlantis    - Draws swimming mammals (GLX only.)
 
 All of these will pop up their own window unless given that -root option.
 See their man pages for more details.
@@ -61,17 +143,236 @@ Other reasonable things to use as screensavers, if you have them, are
   xswarm -r 2>&-               - swimming sperm
   xwave -root                  - random 3d graphs
   xbouncebits                  - bounce arbitrary bitmaps around
-  ico -r                       - it's dull, but it's there
+  ico -r -p8 -faces -sleep 1   - it's dull, but it's there
   xv -root file.gif -quit      - they don't all have to animate!
   xsplinefun                   - bouncing splines
-  kaleid -root                 - qix-like kaleidescope patterns
   xfishtank -c black -d -r 1   - fish (use version 2.0 or later)
+  xmountains -b                        - very realistic generated mountains
+  xtacy -root                  - various eye candy
+  xearth -wait 0 -timewarp 400 - the earth as seen from space
+  /usr/demos/bin/bongo         - an SGI GL demo
+  /usr/demos/bin/ep -S         - another: the stunning ElectroPaint.
+                                 (Compile hacks/xscreensaver-sgigl.c
+                                 to use these with xscreensaver.)
+
+You can get most of these from the contrib directory on ftp.x.org.  If you
+know of (or write) any other interesting programs that can be used as
+screensavers, please let me know!
 
-You can get all of these from export.lcs.mit.edu.  If you know of (or write)
-any other interesting programs that can be used as screensavers, please let
-me know!
+The latest version of xscreensaver is always available on the web at
+http://people.netscape.com/jwz/xscreensaver/.
 
-       -- Jamie Zawinski <jwz@lucid.com>
+       -- Jamie Zawinski <jwz@netscape.com>
 
-[*] It may be necessary to include "vroot.h" in the program, but that would
-be necessary for it to work with virtual-root window managers anyway.
+\f
+Changes since 2.16:    Added a -window-id argument to most hacks, so that they
+                       can draw on arbitrary externally-provided windows.
+                       Synched with xlockmore 4.11a01.
+                       Added `flow' hack.
+                       Added `atlantis' GL hack.
+                       Renamed `puzzle' hack to `jigsaw', since xlock already
+                       had a different mode called `puzzle'.
+                       Made it self-configure properly when Motif 2.1.0 is
+                       being used (requires -lXp now, sigh...)
+Changes since 2.15:    Made `flag' able to do XPM images.
+                       New look for the xscreensaver logo (`xroger').
+                       Fixed compilation error on Suns with adjunct passwords.
+                       Got multi-architecture builds working again.
+                       Some configure tweaks for building on HPUX and Solaris.
+                       Fixed bug in decayscreen.
+                       Fixed typo in passwd.c.
+                       Made `cynosure' not die when colormap is full.
+Changes since 2.14:    Added `cynosure' hack.
+                       Added `moire2' hack.
+                       Tweaked `erase.c' some more.
+                       Made unfading a bit smoother.
+                       Added `vidwhacker' hack (not installed by default.)
+                       Added `stairs' hack.
+                       Split `escher' into `cage' and `moebius', as per
+                       xlockmore.
+                       Changed subprocess handling to use sigaction() instead
+                       of signal() if it's available (this is necessary for
+                       SCO but should work fine on other systems too.)
+                       Various other tweaks.
+Changes since 2.13:    Better fix for the Motif drag-and-die lossage.
+                       Put in some kludges to work around a LessTif bug.
+                       XScreenSaver is known to work with LessTif 0.82 now.
+                       Made fading work on high-end SGI video hardware.
+                       Fixed another SGI-specific bug in screen grabbing;
+                       will the madness never cease?
+                       Fixed another crash in `xlyap'.
+Changes since 2.12:    Made `decayscreen' do directions other than down.
+                       Improved `puzzle'.
+                       Fixed a crash in `xlyap'.
+                       Added CDE info to the man page, removed `cde.txt'.
+                       Configure tweaks for Zippy.
+                       Turned off the signal handling in `bubbles' because
+                       it was sometimes failing to die.
+                       Added `hacks/xscreensaver-sgigl.c' to make it possible
+                       to run SGI's ElectroPaint hack (/usr/demos/bin/ep)
+                       with xscreensaver.  Finally!
+                       Fixed a buffer overrun in the locking code that some
+                       wily, malicious cracker must have slipped in.
+                       Disabled Motif drag-and-drool in the dialog box
+                       buttons, since it's broken in some old versions of
+                       Motif.
+Changes since 2.11:    Added `README.debugging'.
+                       Added `puzzle' hack.
+                       Added `xlyap' hack.
+                       Added "default-n" as a visual name, so that one can
+                       have -install on by default, but turn it off for
+                       certain poorly-behaved hacks (like xv.)
+                       Added support for grabbing frames of external video
+                       (on SGI) to the screen-grabbing hacks (decayscreen,
+                       slidescreen, slip, blitspin, and puzzle.)
+                       Improved look of tiles in `slidescreen'; fixed its
+                       color allocation problem.
+Changes since 2.10:    Tweaked `blitspin', added it to the default list.
+                       Added `lissie', `mountain', `triangle', `worm',
+                       `rotor', and `ant' from xlockmore.
+                       Updated `sierpinski', `galaxy', and `lisa'.
+                       Thickened the lines in `braid' and `lmorph'.
+                       Updated VMS makefiles.
+                       Renamed `fract' to `vines'.
+                       Added `xjack' hack.
+                       Made a few more hacks use erase.c, and added a few
+                       more wipe styles.
+                       Fixed compilation problem with Sun's version of OpenGL.
+                       Added ability to use sigaction() instead of signal()
+                       to work around a SCO kernel bug.
+Changes since 2.09:    Fixed colormap bugs in `rd-bomb'; sped up `coral'.
+                       Configure tweaks for *BSD.
+Changes since 2.07:    New hacks `rd-bomb' and `coral'.
+                       New version of `maze' with some new algorithms.
+                       New colorized version of `rocks'.
+                       Fixed a bug in qix on 64-bit machines.
+                       Fixed a bug in the -time option.
+                       Fixed a bug in configure related to LessTif.
+Changes since 2.06:    Minor header tweaks in windows.c and flag.c.
+                       Made multi-architecture (VPATH) builds work properly.
+                       Merged new GL stuff from xlockmore (rubik, morph3d.)
+                       Fixed intermittent crashes in `imsmap' and `munch'.
+                       Added `fadeplot' hack from xlockmore.
+Changes since 2.05:    Merged in VMS support from Patrick Moreau.
+Changes since 2.04:    Fixed a MIT-SCREEN-SAVER-related crash, and tweaked 
+                       configure to detect the extra-random -Xss library.
+Changes since 2.03:    HP configure tweaks.  Detect and warn about LessTif.
+                       Fixed low-color behavior of `goop', `pyro', `starfish',
+                       `greynetic', `flame', `halo', and `moire'.
+Changes since 2.02:    Fixed flicker in `pipes'.  Fixed 3d in `bouboule'.
+                       Added `munch' hack.
+                       Added basic dependencies to the Makefile.in files.
+Changes since 2.01:    Fixes for compiling with the MIT saver extension.
+                       Made the yow/fortune program be a configure option.
+                       Various configure tweaks.
+Changes since 2.00:    Added `goop' and `starfish' hacks.
+                       Added colomap cycling to `halo'.
+                       Made `attraction' use the new colormap allocator.
+                       Added better $PATH diagnostics.
+                       There was a bug in frand!  Color selection should be
+                       much improved now.
+Changes since 1.34:     Converted to use `configure' instead of `imake'.
+                        ANSI C is now required.
+                       Added Kerberos locking support, from Nat Lanza.
+                       Made the stderr text use overlay planes, if possible.
+                       Reworked the xlockmore compatibility stuff again.
+                       Added `gears', `superquadrics', `escher', `pipes',
+                       and `sproingies' hacks (depend on OpenGL.)
+Changes since 1.33:    Fixed some bugs, made fading be a little smoother.
+Changes since 1.32:    Made it work with multi-headed displays.
+                       Generalized sub-process management (Unix sucks!)
+                       Added interactive mouse frobbing to Julia.
+                       Added (untested) support for HPUX shadow passwords.
+                       Made normal non-shadow passwords be checked if the
+                       shadow passwords aren't accessible for some reason.
+Changes since 1.31:    Removed *colorPrograms and *monoPrograms resources:
+                       made it possible to specify the desired visual on a
+                       per-hack basis.
+                       Cleaned up / restructured the driver: no more globals.
+                       Made the Motif and Athena dialogs share more code.
+                       Probably fixed some Athena colormap-installation bugs.
+                       Fixed screen grabbing (cmap) on SGI 12-bit PseudoColor.
+                       Fixed divide-by-zero in bright random colormaps.
+                       Added an improved version of xlock's `flag' hack.
+                       Made unfading work better, and not flicker on SGIs.
+                       Added `sphere', `forest', `lisa' hacks from xlockmore.
+                       Added (untested) support for SunOS Adjunct passwords.
+Changes since 1.30:    Improved colors and colormap cycling of many hacks.
+                       Cleaned up xlockmore compatibility layer.
+                       Made `blitspin' able to grab an image off the screen.
+                       Ported `swirl' and `bouboule' hacks from xlockmore.
+                       Made the driver more careful about not leaving bits on
+                       the screen, or allowing other windows to raise 
+                       themselves: it now re-blanks the screen every so often.
+                       Added `-time' option to `xscreensaver-command'.
+                       Improved SGI screen-grabbing some more: now it can grab
+                       TrueColor screens into PseudoColor windows and have the
+                       colors still come out semi-reasonably.
+Changes since 1.29:    Made `slidescreen' and `decayscreen' work better on
+                       SGIs when windows of different visuals are present, by
+                       using the XReadDisplay() extension to get a true 24-bit
+                       image out of the frame buffer.
+                       Made `noseguy' be in color, if compiled with XPM.
+                       Ported `braid', `drift', `fract', `galaxy', `grav', 
+                       `ifs', `julia', `laser', `lightning', `penrose',
+                       `sierpinski', `slip', `spiral', and `strange' hacks
+                       from xlockmore.
+                       Merged `hopalong' hack with a more recent version.
+                       Added `cde.txt'.
+Changes since 1.27:    Added `deco', `moire', and `kaleidescope' hacks.
+                       Merged in support for non-Motif locking and demo mode.
+                       Made `blitspin' and `bubbles' work in TrueColor.
+                       Fixed a stupid bug I introduced in `imsmap'.
+                       Added `poly' and `gravity' options to `qix'.
+Changes since 1.26:    Added support for SGI SCREEN_SAVER extension.
+                       Made `fade' and `unfade' work on 8-bit SGIs.
+                       Made the dialog boxes more Motify.
+                       Added `bubbles' hack.
+Changes since 1.25:    Added `lmorph' hack.
+                       Added viscosity and mouse-control to attraction.
+                       Fixed possible bad color choices in qix and attraction.
+                       Added ramp-mode to halo.
+                       Added a new RNG, which is faster and more portable
+                       than using the RNG in libc.
+                       Made locking work on SCO.
+                       Various other minor tweaks that I don't remember.
+Changes since 1.24:    Made it capture the stdout/stderr of its subprocesses
+                       and present them on the screensaver window itself.
+                       Made demo mode work correctly with non-default visuals
+                       and color maps, instead of always using the defaults.
+                       Added -visual argument to all included screenhacks.
+                       Support for the R6 MIT-SCREEN-SAVER server extension.
+                       Made the demo mode list scroll properly.
+                       Added `pedal' hack.
+Changes since 1.23:    Fixed some private-colormap oddities in slidescreen,
+                       decayscreen, and xroger.  Fixed apparent conservation-
+                       of-mass problem in pyro; made the shrapnel round.
+Changes since 1.22:    Minor tweaks for IRIX5; fixed locking race condition.
+Changes since 1.21:    Minor tweaks for X11R6.
+                       Fixes for non-default visuals.
+Changes since 1.20:    Fixed bug in color blitspin; added default image.
+                       Added diagnostics to noseguy.  Fixed off-by-one
+                       error in flame.  Added some missing casts.
+Changes since 1.18:    Added `flame' hack.
+                       Fixed a minor Motif dialog text field bug.
+                       Fixed yet another XPointer-not-defined-in-R4 bug.
+Changes since 1.17:    Added support for shadow password files.
+                       Fixed some Motif-related locking bugs.
+                       Added diagnostics when locking is disabled.
+                       Made blitspin able to use the XPM library.
+                       Added `decayscreen' hack.
+Changes since 1.16:    Added `halo' hack.
+Changes since 1.15:    Portability fixes.
+Changes since 1.14:    Broke the driver up into more source files.
+                       Moved the hacks into their own directory.
+                       Made all `time' parameters accept the 00:00:00 syntax,
+                       so that even the parameters which are normally read as
+                       minutes can be specified in seconds.
+                       Added colormap cycling to `imsmap'.
+                       Made hyper work with K&R compilers.
+Changes since 1.13:    Added `orbit' option to `attraction' hack.
+                       Added `lock-timeout' option.
+                       Cleaned up options of `maze' hack.
+Changes since 1.8:     Added demo mode, and locking.
+                       Added `maze' hack.
+                       Added `norotate' option to `rocks' hack.