http://ftp.x.org/contrib/applications/xscreensaver-3.23.tar.gz
[xscreensaver] / README
diff --git a/README b/README
index b2204503e1f3cb4bd1a634d2bc52645f107ab148..ebe58b995d25ce1133a494de73e8224737db4a6e 100644 (file)
--- a/README
+++ b/README
@@ -4,6 +4,8 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
+                     http://www.jwz.org/xscreensaver/
+
 To build on Unix:
 
   -  ./configure
@@ -18,13 +20,18 @@ 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
+     ./configure --with-motif=/opt/Motif --with-xpm=/usr/local
 
 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.
+If you are upgrading, you might want to delete your ~/.xscreensaver file.
+If you don't, you might not see the new graphics modes.  If you are upgrading
+from version 2.* to version 3.*, definitely do delete your .xscreensaver file.
+
+If you think you've found a bug, please let me know!  No bug report is too
+small.  But first, please read the enclosed `README.debugging' file to find
+out what kind of information would be most helpful to include in your bug
+report.
 
 Getting Started:
 
@@ -44,148 +51,418 @@ xscreensaver has an extensive manual -- please read it!
 
                               ============
 
-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
-as soon as there is any mouse or keyboard activity.
-
-The purpose of xscreensaver is to display pretty pictures on your screen
-when it is not in use, in keeping with the philosophy that unattended
-monitors should always be doing something interesting, just like they do
-in the movies.
-
-However, xscreensaver can also be used as a screen locker, to prevent
-others from using your terminal while your are away.
-
-The benefit that this program has over the combination of the xlock and
-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
-are being run as screensavers don't need to have any special knowledge
-about what it means to be a screensaver.
-
-The XIDLE, MIT-SCREEN-SAVER, and/or SGI SCREEN_SAVER server extensions
-will be used if you have them.
+The xscreensaver daemon waits until the keyboard and mouse have been idle
+for a period, and then runs a graphics demo chosen at random.  The demo is
+terminated as soon as there is any mouse or keyboard activity (or, in
+locking mode, when the proper password is typed.)
 
-The dialog boxes (for locking and demo-mode) look best using Motif or
-Lesstif, but can be configured to use Athena widgets instead.
+It is trivially easy to add new display modes to xscreensaver: any program
+which can be invoked in such a way that it draws on the root window of the
+screen can be used as a screensaver.  You just change a config file --
+there's no need to recompile or reinstall anything.
 
-Also included are numerous graphics hacks for use as screensavers.  There's
-nothing magic about these: they're just programs that draw on the root
-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.
-   greynetic   - Random colored/stippled rectangles.
-   rocks       - Flying through an asteroid field.
-   blitspin    - Rotate a bitmap using bitblts.
-   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.
-   epicycle    - Spiral patterns based on pre-Copernican cosmologies.
-   interference        - More groovy colored fields.
-   truchet     - Nonrepeating planar tilings.
-   bsod                - Simulates the system crashes of various other OSes.
-   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 respective man pages for more details.
-
-Other reasonable things to use as screensavers, if you have them, are
+                              ============
 
-  xdaliclock -root -builtin2   - melting digital clock
-  xswarm -r 2>&-               - swimming sperm
-  xwave -root                  - random 3d graphs
-  xbouncebits                  - bounce arbitrary bitmaps around
-  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
-  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.)
+Along with the xscreensaver daemon itself, this package also includes
+numerous graphics hacks for use as screensavers.  There is nothing magic
+about these: they are just programs that draw on the root window.
 
-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!
+More than 100 such programs are included.  For details, see the xscreensaver
+web page, or the enclosed manual pages.  There are also some helpful hints
+on customization in the xscreensaver app-defaults file (normally installed
+in /usr/lib/X11/app-defaults/XScreenSaver.)
 
 The latest version of xscreensaver is always available on the web at
-http://people.netscape.com/jwz/xscreensaver/.
+http://www.jwz.org/xscreensaver/.
 
-       -- Jamie Zawinski <jwz@netscape.com>
+                              ============
 
-\f
-Changes since 2.20:   * Made "xscreensaver-command -time" use different words.
+Changes since 3.22:   * Fixed some misplaced text fields in the Motif version
+                        of xscreensaver-demo; fixed a crash in the Gtk version
+                        that would happen if the programs list was empty.
+                      * Fixed a recently-introduced bug in `pulsar'.
+                      * Made `sierpinski3d' use solid tetrahedrons instead of
+                        points.
+                     * Added `-trace' option to `xmatrix'.
+                      * Added new hacks `xteevee' and `xspirograph'.
+Changes since 3.21:   * Fixed some bugs in xscreensaver-demo.
+                      * Rewrote the Motif version of xscreensaver-demo to
+                        match the new Gtk version.
+                      * The Athena toolkit is no longer supported.
+Changes since 3.20:   * Tweaked the xscreensaver-demo UI (Gtk only.)
+                      * Fixed a few visual selection bugs.  I think the proper
+                        GL visual should be used with nVidia systems now.
+                      * Made the Makefiles obey $install_prefix.
+                      * Made the `xscreensaver.spec' file able to generate both
+                        GL and non-GL packages simultaniously.
+Changes since 3.19:   * Added new hacks `ripples' and `sierpinski3d'.
+                      * Made `xscreensaver-command -exit' be silent when no
+                        screen saver was running (instead of complaining.)
+                      * Made `webcollage' and `vidwhacker' use `xloadimage'
+                        when available (in addition to `xli' and `xv'.)
+                      * Improved memory usage in `petri' and gave it a hard
+                        cap on how much memory it can allocate.
+                      * Added `-watch' option to `xscreensaver-command'.
+                      * Made `xscreensaver-demo' come up with the
+                        most-recently-run hack selected by default.
+                      * Rewrote the Gtk version of `xscreensaver-demo'.
+                        It's a lot easier to use now.
+                      * Extended the format of the programs list in the
+                        .xscreensaver file, for the benefit of the new
+                        capabilities of `xscreensaver-demo'.
+                        NOTE: you might want to delete your ~/.xscreensaver
+                        file and allow it to be re-created!  The old one
+                        should still work, but xscreensaver-demo won't be as
+                        pretty.
+Changes since 3.18:   * Fixed gcc dependencies in `bumps' and `ccurve'.
+                      * New hack, `extrusion'.
+                      * Some of the web sites that `webcollage' was using as
+                        its sources changed formats; tweaked it to understand
+                        the current layouts.
+                      * Added typeahead in the password dialog: if the screen
+                        is locked, and you unlock it by typing a character,
+                        that key will be automatically inserted in the
+                        password dialog (unless it is Return, Enter, Space,
+                        or a non-printing key like Shift.)
+                      * Made `xmatrix' take a `-small' option, since some
+                        folks with tiny screens prefer a smaller font.
+Changes since 3.17:   * New versions of `shadebobs', `lmorph', and `distort'.
+                      * Added `ccurve', `blaster', and `bumps' hacks.
+                      * Replaced `forest' hack with a rewritten version.
+                      * Worked around a Xinerama server bug.
+                      * Fixed a bug I introduced in 3.10 that caused some
+                        hacks to print out superfluous warnings about not
+                        having gotten enough colors.
+                      * Made `sproingies' obey the `-delay' option.
+                      * Fixed a portability bug in `shadebobs'.
+                      * Made `webcollage' and `vidwhacker' use `xli' in
+                        preference to `xv', if it is available.
+                      * Added a new source of images to `webcollage'.
+                      * If running under KDE, xscreensaver will add itself to
+                        KDE's list of screensavers (via xscreensaver.kss.)
+                      * Improved detection of GL libraries.
+                      * Made the password dialog include the date and time.
+Changes since 3.16:   * New version of `webcollage' -- deals better with
+                        corrupted images, and can use an http proxy.
+                      * New hack, `xsublim' (run it in the background,
+                        rather than adding it to the programs list.)
+                      * The xscreensaver daemon was leaking a file descriptor
+                        each time you edited your .xscreensaver file.  Fixed.
+Changes since 3.15:   * New version of `shadebobs'.
+                      * Improved image selection in `webcollage', and sped it
+                        up slightly.
+                      * Made configure find the right version of perl.
+                      * Rewrote the CGI part of `webcollage'.
+                      * `make clean' was deleting some things it shouldn't.
+                      * Fixed a typo in the default programs list.
+Changes since 3.14:   * Added `webcollage' and `shadebobs' hacks.
+                      * Added a `-stdout' arg to `vidwhacker' so that it can
+                        be used in a pipeline.
+                      * Made `petri' use less memory.
+Changes since 3.13:   * Various improvements to the Gtk port.
+                      * Turned off PAM by default on Solaris, since PAM seems
+                        generally to be misconfigured out-of-the-box.
+                      * Made the `--without-gtk' configure option work.
+                      * Made configure check the Gtk version number, since it
+                        requires 1.2.
+                      * Fixed a bug in the code that attempted to prevent
+                        changes of screen resolution while the screen is
+                        locked.
+                      * Fixed a race condition in `xscreensaver-demo' that
+                        could cause an X error at startup.
+                      * Added `-transparent' option to `deluxe'.
+                      * Added `petri' hack.
+Changes since 3.12:   * Ported `xscreensaver-demo' to Gtk.
+                      * Made it possible to build Motif, Gtk, and Athena
+                        versions of `xscreensaver-demo' in the same directory
+                        without reconfiguring.
+                      * Made `xscreensaver-demo' chase symlinks before writing
+                        the .xscreensaver file, so that if .xscreensaver is
+                        itself a symlink, the underlying file will be replaced
+                        instead.
+                      * Some Makefile and configure tweaks for Solaris and
+                        FreeBSD.
+                      * Made it possible to set the fire color in `xflame'.
+                      * Made transparency work in TrueColor (for `goop' and
+                        `qix'.)
+                      * Fixed a multi-head bug introduced by the virtual
+                        viewports stuff.
+Changes since 3.11:   * Made it so that you can't scroll the screen while the
+                        lock dialog is up (with XFree86 virtual viewports.)
+                      * Fixed a bug in `flag' that caused bob's chin to get cut
+                        off after a few iterations.
+Changes since 3.10:   * Made `xjack' be black-on-white-ish, so that it looks
+                        less like a computer screen and more like the
+                        typewritten paper it's supposed to be.
+                      * New version of `pulsar'.
+                      * Fixed Solaris compilation problem in `phosphor'.
+                      * Made xscreensaver notice XFree86's virtual root window
+                        hack, so that if the X server's root window is larger
+                        than the monitor's displayable resolution, the screen
+                        saver will limit itself to the area that actually
+                        appears on the screen.
+                      * Made the xscreensaver daemon do a better job of
+                        picking the visual class that should be used for GL
+                        programs.  Less user intervention should be needed
+                        now: you can use the logical visual name `GL' instead
+                        of having to figure out by hand which one to use.
+                      * Oops, the visual was defaulting to "best" instead of
+                        "default", because the .xscreensaver file was not being
+                        loaded quite early enough.
+                      * Made configure figure out how to build icmp ping
+                        support into the `sonar' hack automatically.
+                      * Made warnings about not being able to read shadow
+                        passwords not be printed if compiled with PAM support.
+                      * Improved PAM startup diagnostics.
+                      * Worked around the Solaris PAM bug that was causing
+                        crashes there, so now PAM is turned on by default.
+                      * Made configure detect the number of arguments that
+                        pam_strerror() takes, since on Linux, this apparently
+                        changed between 2.0 and 2.2, sigh.
+                      * Made the /proc/interrupts kludge look for "PS/2 Mouse"
+                        as well as "keyboard".
+                      * Made xscreensaver notice when there has been a sudden
+                        large jump in wall-clock time, and if so, lock right
+                        away, instead of waiting for "lockTimeout" to expire
+                        first.  (Laptops need this for safer recovery from
+                        ``hibernation.'')
+                      * Added `-throttle' option to `xscreensaver-command'.
+Changes since 3.09:   * Added `phosphor', `xmatrix', and `pulsar' hacks.
+                      * Fixed a bug in the color allocator that sometimes
+                        caused `starfish' to fall back to monochrome.
+                      * Reduced the amount of code that runs before root
+                        privileges are disavowed: "normal" and "shadow"
+                        passwords now do some initialization as root, but the
+                        PAM and Kerberos authorization schemes will be
+                        initialized while running as "nobody".  Supposedly 
+                        this closes a potential security hole when using
+                        Kerberos.
+                      * Added some more sanity checking to configure.
+Changes since 3.08:   * Added `compass', `squiral', `xflame', `wander',
+                        `spotlight', and `critical' hacks.
+                      * Added some new modes to `decayscreen'.
+                      * Made `deluxe' work in monochrome.
+                      * Generalized usage of the Double-Buffer server extension
+                        in several hacks (`compass', `deluxe', `interference',
+                        `kumppa', and `moire2'.)
+                      * Fixed another visual-depth problem in `rd-bomb'.
+                      * The screen saver will now defer blanking if neither
+                        the keyboard nor the mouse could be grabbed.  Instead,
+                        it will just try again in a few minutes.  This fixes
+                        a bad interaction between xscreensaver and programs
+                        like VMware that hold the mouse and keyboard grabbed
+                        for a long time.
+                      * Added a new erase mode (expanding spiral.)
+Changes since 3.07:   * Fixed some bugs in my port of `t3d'.
+                      * Added `penetrate' and `deluxe' hacks.
+                      * When linking against Motif 2.x, also link against XPM.
+                      * Added support for using /proc/interrupts for idle
+                        detection on Linux.  Now xscreensaver shouldn't kick
+                        in when the user is active on a non-X virtual console.
+                      * Upgraded to autoconf 2.13.
+Changes since 3.06:   * Configure tweaks (sometimes -lXmu wasn't getting linked
+                        in properly; check for _Xsetlocale in -lXintl.)
+                      * Portability fixes for sonar.c.
+                      * Fixed a compilation problem when you have GL but don't
+                        have XPM.
+                      * Made configure notice when MesaGL requires -lpthread.
+                      * Made `flame' ignore SIGFPE (not sure if this is the
+                        right fix; it seems only to be needed on FreeBSD.)
+                      * Kludged `rd-bomb' work on visuals that are of depth 24
+                        but that *do not* support pixmaps of depth 32.
+                      * Fixed `halo' to work properly in TrueColor.
+                      * Changed `xscreensaver.spec' to install the hacks in
+                        /usr/X11R6/lib/xscreensaver/ by default, since that's
+                        where recent Red Hat distributions put them.
+                      * Added `t3d' hack.
+                      * Updated versions of `crystal', `hopalong', and `flow'
+                        from xlockmore.
+                      * Imported `demon' and `loop' modes from xlockmore.
+Changes since 3.05:   * Oops, the "default-n" visual descriptor was broken;
+                        it was always installing a colormap if the
+                        `installColormap' preference was set, meaning that
+                        `xearth', `xv' and friends were using the wrong
+                        colors on 8-bit systems.
+                      * Turned off HAVE_PING in `sonar', since it compiles
+                        on some Linux systems, but not others of similar
+                        vintage...
+Changes since 3.04:   * Fixed an off-by-1 in `distort'.
+                      * Added `sonar' hack.
+                      * New version of `glplanet' (with stars.)
+                      * Made all hacks exit when you type `q' or `ESC' at them,
+                        and made them obey the WM_DELETE_WINDOW ClientMessage.
+                      * Fixed a nonfatal buffer overrun in lament (note:
+                        lament still doesn't work with MesaGL 3.0: it dies in
+                        lambda_textured_triangle1(), which is Mesa's bug, not
+                        mine.)
+Changes since 3.03:   * Added an `xscreensaver.spec' file, to make it easier
+                        for other folks to generate RPMs.
+                      * Made the password code work on HPUX in the situation
+                        where: ``enhanced security'' is available; but not 
+                        used; but the user typed a password more than 8
+                        characters long anyway.  FTSOHPUX.
+Changes since 3.02:   * Made locking work when passwd aging is enabled.
+                      * Added support for PAM (Pluggable Authentication
+                        Modules.)  It is still turned off by default, though,
+                        since it doesn't seem to work on Solaris 2.6, and has
+                        been behaving erratically on Red Hat 5.1.
+                      * Made each possible authentication method be tried in
+                        turn until one succeeds; this means that Kerberos is
+                        being used, we will first check Kerberos, and if that
+                        fails, will then consult the local password file.
+                        Likewise with PAM.
+                      * Save and restore the bits under the passwd dialog,
+                        to avoid leaving a black rectangle behind when 
+                        unlocking is cancelled.
+Changes since 3.01:   * Not everyone has sys/select.h, sigh...
+Changes since 3.00:   * Some fixes to `reflect'.
+                     * Configure tweaks.
+                     * Made it log unsuccessful attempts to unlock the screen
+                       to syslog.
+                     * Fixed a bug where `xscreensaver-demo' could be seeing
+                       a different programs list than `xscreensaver' did.
+Changes since 2.34:   * The xscreensaver daemon no longer links against Motif
+                       or Athena: demo-mode and the preferences panel are no
+                       longer built in to the daemon, but are now handled by
+                       an external program, `xscreensaver-demo'.
+                       (I decided that this, along with the recent addition
+                       of the `.xscreensaver' config file, justified bumping
+                       the version number to 3.00, since this is a fairly
+                       major architectural change.)
+                     * Lines in the `*programs' resource may now begin with
+                       the character "-", meaning "don't run this hack."
+                       In this way, it's possible to disable a hack without
+                       throwing away the information about it (making it 
+                       easier to change your mind later.)  Eventually the
+                       preferences/demo mode GUI should represent this as a
+                       checkbox or something.
+                     * Fixed a short race condition where it was possible for
+                       xscreensaver to die with a BadWindow error if it was
+                       blanking the screen just as another window was being
+                       deleted.
+                     * Made it possible to disable specific modes in `bsod'.
+Changes since 2.33:   * Fixed a bug that was making `pipes' generate way too
+                       many valves.  Made the viewpoint in `pipes' be selected
+                       randomly instead of always being -10 degrees.
+                     * Fixed a bug in the XSHM code, in the case where the
+                       server supports the XSHM extension but is not the same
+                       machine as the client.
+                     * Made `rd-bomb' default to taking up the whole screen.
+                     * Made it not try to do fading/unfading if no PseudoColor
+                       visuals exist.
+                     * Initial attempt at supporting VT-locking (doesn't work
+                       yet.)
+                     * Eliminated the `captureStdout' resource; now
+                       `captureStderr' controls both streams.
+                     * Added `-capture-stderr' and `-no-capture-stderr'
+                       command-line arguments.
+                     * Added `glplanet' hack.
+                     * When a hack is selected with `xscreensaver-command
+                       -select', that hack will be used until further notice
+                       (until the saver turns off, or another activation
+                       command is issued.)
+Changes since 2.32:   * Made `xscreensaver-command' print error messages:
+                       the xscreensaver daemon now responds to ClientMessage
+                       events by writing a response message on a window
+                       property, instead of just writing to its stderr.
+                     * Made the ~/.xscreensaver file be automatically reloaded
+                       when the file date changes.
+                     * The password dialog and splash screen no longer depend
+                       on Motif or Athena.  This should clear up a number of
+                       focus problems, and is the first step on the path
+                       toward moving all of the Motif/Athena/whatever code
+                       out of the xscreensaver daemon, and into external
+                       processes.
+                     * Don't complain about LessTif 0.86 any more, since the
+                       new password dialog makes that problem go away.
+                     * Configure tweaks for Irix 6.5, SunOS 5.something.
+                     * New `-reflect' option to `distort'.
+Changes since 2.31:   * Added reading and writing of a ~/.xscreensaver file,
+                       so that the Preferences panel can save its settings.
+                     * New version of `rubik'.
+                     * Added `-select N' argument to `xscreensaver-command'.
+                     * Oops, left out some of the `bubbles3d' files...
+Changes since 2.30:   * The cursor was invisible in the password dialog. Fixed.
+                     * Made configure warn against MesaGL 2.6.
+                     * Fixed X error at startup when using non-default visual.
+                     * New version of `crystal', `ant', and `atlantis' from
+                       xlockmore.
+                     * New hack, `bubble3d'.
+                     * Added some new modes to `bsod'.
+Changes since 2.29:   * Changed the order in which -lSM and -lICE are linked
+                       to be after Motif instead of before (Lesstif on Irix
+                       needs this.)
+Changes since 2.28:   * Work around a bash bug in configure.
+                     * Tweaked HPUX paths again.  FTSOHPUX.
+                     * Made configure recommend against LessTif 0.86, due
+                       to a bug in that version that causes a security hole
+                       in the screen locking code.  LessTif 0.87 will fix it.
+                     * Made all of the `--with' options to `configure' accept
+                       a directory option as well (so that --with-motif=/FOO
+                       will add -I/FOO/include -L/FOO/lib).  I believe this is
+                       the Configure Party Line of how do to such things.
+                     * Fixed a bug where the mouse was left un-grabbed
+                       after the first time the graphics hack was changed
+                       (simplified all of the mouse-grabbing logic.)
+                     * Maybe possibly perhaps made `vidwhacker' really not
+                       leave stray xv windows around.  This time for sure.
+                     * Added a new erase mode (random dots fizzling out.)
+                     * Added `-prefs' argument to `xscreensaver-command',
+                       that brings up the Preferences dialog directly (it
+                       seems that nobody ever noticed the `Preferences' button
+                       on the Demo Mode dialog, maybe this will help.)
+                     * Added a splash screen.  Turn it off with *splash:false.
+Changes since 2.27:   * Better macsbug text in `bsod'.
+                     * New version of `distort' with many new modes.
+                     * Plugged a leak in `coral'.
+                     * Tweaked configure for HPUX.
+                     * Removed some compiler warnings.
+                     * More consistent usage of stderr versus stdout.
+                     * More diagnostics should an X error occur.
+                     * Fixed a possible crash in SGI-specific unfading code.
+Changes since 2.26:   * Improved version of `distort'.
+                     * Made `lament' compile against OpenGL 1.0 (though it
+                       still requires 1.1 to work properly.)
+                     * Updated my email address and home page.
+Changes since 2.24:   * Improved motion in `rd-bomb'.
+                     * Added XSHM (shared memory extension) support to the
+                       `distort', `interference', `moire', `rd-bomb', and
+                       `swirl' hacks, which speeds them up a bit.
+                     * Added `lament' hack.
+Changes since 2.23:   * Tweaked the order of the -L options again.
+                     * Cleaned up configure's `--help' message.
+                     * Added `kumppa' hack.
+                     * Smarter maze-solving algorithm in `maze'.
+                     * Took `xlyap' out of the default list of hacks, since
+                       it's just incredibly buggy (and slow.)  Maybe someday
+                       someone will fix it...
+                     * Added `distort' hack, but didn't add it to the default
+                       list (yet) because it's still too slow.
+                     * Made the Athena demo dialog look more like the Motif
+                       version; it has a text-entry field now, too.
+                     * Made the Athena password dialog echo asterisks, like
+                       Motif does, instead of using a flyspeck font.
+                     * Some random configure tweaks.
+                     * Added a `timestamp' resource that makes the `-verbose'
+                       messages include the time at which they were printed.
+Changes since 2.22:   * The fix for SGI's ``scheme'' nonsense broke things, and
+                       let the user's "*background" resource show through.
+                       Fixed it in a different way.
+Changes since 2.21:   * Added support for the DPMS server extension (Display
+                       Power Management System.)
+                     * Made configure advertize the `--enable-subdir' option a
+                       little more, since that seemed to cause some people
+                       stress.  Also, made that directory be built into the
+                       xscreensaver executable, as a hardcoded prefix to
+                       $PATH.  (Might help, shouldn't hurt.)
+                     * Made configure prefer the two-arg gettimeofday to the
+                       one-arg version, since AIX doesn't have any prototypes.
+                     * Made it work with Xaw3d (the 3D Athena library.)
+                     * Made `make install' create directories as necessary.
+                     * New version of lmorph from Sverre.
+                     * Added `crystal' and `discreet' hacks from xlockmore.
+                     * Added a new mode to `bsod'.
+Changes since 2.20:   * Made `xscreensaver-command -time' use different words.
                        (It now describes the two states as "screen blanked
                        since..."  and "screen non-blanked since..." instead of
                        "active since..." and "inactive since..." which a lot
@@ -196,14 +473,14 @@ Changes since 2.20:   * Made "xscreensaver-command -time" use different words.
                        xscreensaver-command programs more obvious.
                      * Rewrote (and reorganized) parts of the xscreensaver and
                        xscreensaver-command manual pages.
-                     * Renamed xscreensaver's "-lock" command-line option to
-                       be "-lock-mode", to avoid confusion with the "-lock"
+                     * Renamed xscreensaver's `-lock' command-line option to
+                       be `-lock-mode', to avoid confusion with the `-lock'
                        option to xscreensaver-command, which does a totally
                        different thing.
-                     * Removed xscreensaver's "-demo" command-line option for
-                       a similar reason; use "xscreensaver-command -demo"
+                     * Removed xscreensaver's `-demo' command-line option for
+                       a similar reason; use `xscreensaver-command -demo'
                        instead.
-                     * Disabled SGI's "scheme" nonsense in a better way than
+                     * Disabled SGI's ``scheme'' nonsense in a better way than
                        fully-qualifying the background colors in every single
                        hack.
                      * Fixed some other minor cosmetic problems when *sgiMode
@@ -281,7 +558,7 @@ Changes since 2.12:   * Made `decayscreen' do directions other than down.
 Changes since 2.11:   * Added `README.debugging'.
                      * Added `puzzle' hack.
                      * Added `xlyap' hack.
-                     * Added "default-n" as a visual name, so that one can
+                     * 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
@@ -311,7 +588,7 @@ Changes since 2.07:   * New hacks `rd-bomb' and `coral'.
                      * 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.
+                     * 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.