http://packetstormsecurity.org/UNIX/admin/xscreensaver-3.31.tar.gz
[xscreensaver] / driver / XScreenSaver.ad.in
index 6e354619ce783e3d1e58463dfa83d7c5d3480194..abb3dcab17a8bba6806d961a171a8c8073553cdf 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 3.03
-!                                15-Nov-98
+!                              version 3.31
+!                              29-Mar-2001
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
 ! your home directory, the settings in that file take precedence.
 
 
-*timeout:              10
-*cycle:                        10
-*lockTimeout:          0
-*passwdTimeout:                30
+! Don't hand this file to "xrdb" -- that isn't how app-defaults files work.
+! Though app-defaults files have (mostly) the same syntax as your ~/.Xdefaults
+! file, they are used differently, and if you run this file through xrdb,
+! you will probably mess things up.
+
+#error Do not run app-defaults files through xrdb!
+#error That does not do what you might expect.
+#error Put this file in /usr/lib/X11/app-defaults/XScreenSaver instead.
+
+! /* (xrdb prevention kludge: whole file)
+
+*timeout:              0:10:00
+*cycle:                        0:10:00
+*lockTimeout:          0:00:00
+*passwdTimeout:                0:00:30
+*dpmsEnabled:          False
+*dpmsStandby:          2:00:00
+*dpmsSuspend:          2:00:00
+*dpmsOff:              4:00:00
 *nice:                 10
 *lock:                 False
 *lockVTs:              True
 *timestamp:            False
 *fade:                 True
 *unfade:               False
-*fadeSeconds:          3
+*fadeSeconds:          0:00:03
 *fadeTicks:            20
 *splash:               True
-*splashDuration:       5
+*splashDuration:       0:00:05
+*visualID:             default
 
 *captureStderr:        True
 *overlayTextForeground:        #FFFF00
 *overlayStderr:                True
 *font:                 *-medium-r-*-140-*-m-*
 
+! The default is to use these extensions if available (as noted.)
+*sgiSaverExtension:    True
+*mitSaverExtension:    False
+*xidleExtension:       True
+*procInterrupts:       True
+
 ! This is what the "Demo" button on the splash screen runs (/bin/sh syntax.)
 *demoCommand: xscreensaver-demo
 
 ! The "helpURL" will be substituted for up to two occurrences of "%s".
 *loadURL: netscape -remote 'openURL(%s)' || netscape '%s'
 
+! This is what the "Manual" button in xscreensaver-demo runs (/bin/sh syntax.)
+*manualCommand: xterm +sb -fg black -bg gray75 -T '%s manual' \
+        -e /bin/sh -c 'man "%s" || read foo'
+! Gnome folks might prefer this:
+!*manualCommand: gnome-help-browser 'man:%s'
+
+
+! The format used for printing the date and time in the password dialog box
+! (see the strftime(3) manual page for details.)
+*dateFormat:           %d-%b-%y (%a); %I:%M %p
+! To show the time only:
+! *dateFormat:         %I:%M %p
+! For 24 hour time:
+! *dateFormat:         %H:%M
+
 
 ! Turning on "installColormap" interacts erratically with twm and tvtwm,
 ! but seems to work fine with mwm and olwm.  Try it and see.  If your
 ! colormaps, but others prefer 24-bit windows, that also can be arranged
 ! (in this case, by using "PseudoColor:" versus "TrueColor:".)
 !
+! Some of the screenhacks are written using OpenGL.  OpenGL programs are
+! a bit different than normal X programs, in that they prefer visuals that
+! are *half* as deep as the screen.  You can tell xscreensaver to select a
+! good visual for a GL program by using the magic visual name "GL".
+!
 ! All programs must be launched in such a way that they draw on the root
 ! window; they should not be spawned in the background with "&".  If shell
 ! metacharacters are used, they must be understandable to `sh', not `csh'
 ! (the $SHELL variable is not consulted, for unfortunate but good reasons.)
 !
-! Be sure to check out Demo Mode: run the command `xscreensaver-command -demo'
-! and it will cause the running XScreenSaver program to pop up a dialog box
-! that lets you try out the following programs interactively.  See the man
-! pages for details.
-!
-*programs:     qix -root -solid -delay 0 -segments 100                 \n\
-               attraction -root -mode balls                            \n\
-               attraction -root -mode lines -points 3 -segments 200    \n\
-               attraction -root -mode splines -segments 300            \n\
-               attraction -root -mode lines -radius 300                  \
-                       -orbit -vmult 0.5                               \n\
-               pyro -root                                              \n\
-               helix -root                                             \n\
-               pedal -root                                             \n\
-               rorschach -root -offset 7                               \n\
-               hopalong -root                                          \n\
-               greynetic -root                                         \n\
-               xroger -root                                            \n\
-               imsmap -root                                            \n\
-               slidescreen -root                                       \n\
-               decayscreen -root                                       \n\
-               jigsaw -root                                            \n\
-               blitspin -root -grab                                    \n\
-               slip -root                                              \n\
-               distort -root                                           \n\
-               hypercube -root                                         \n\
-               halo -root                                              \n\
-               maze -root                                              \n\
-               noseguy -root                                           \n\
-               flame -root                                             \n\
-               lmorph -root                                            \n\
-               deco -root                                              \n\
-               moire -root                                             \n\
-               moire2 -root                                            \n\
-               lightning -root                                         \n\
-               strange -root                                           \n\
-               spiral -root                                            \n\
-               laser -root                                             \n\
-               grav -root                                              \n\
-               grav -root -trail -decay                                \n\
-               drift -root                                             \n\
-               ifs -root                                               \n\
-               julia -root                                             \n\
-               penrose -root                                           \n\
-               sierpinski -root                                        \n\
-               braid -root                                             \n\
-               galaxy -root                                            \n\
-               bouboule -root                                          \n\
-               swirl -root                                             \n\
-               flag -root                                              \n\
-               sphere -root                                            \n\
-               forest -root                                            \n\
-               lisa -root                                              \n\
-               lissie -root                                            \n\
-               goop -root                                              \n\
-               starfish -root                                          \n\
-               starfish -root -blob                                    \n\
-               munch -root                                             \n\
-               fadeplot -root                                          \n\
-               coral -root                                             \n\
-               mountain -root                                          \n\
-               triangle -root                                          \n\
-               worm -root                                              \n\
-               rotor -root                                             \n\
-               ant -root                                               \n\
-               vines -root                                             \n\
-               kaleidescope -root                                      \n\
-               xjack -root                                             \n\
-  -            xlyap -root -randomize                                  \n\
-               cynosure -root                                          \n\
-               flow -root                                              \n\
-               epicycle -root                                          \n\
-               interference -root                                      \n\
-               truchet -root -randomize                                \n\
-               bsod -root                                              \n\
-               crystal -root                                           \n\
-               discrete -root                                          \n\
-               kumppa -root                                            \n\
-               rd-bomb -root                                           \n\
-               rd-bomb -root -speed 1 -size 0.1                        \n\
-                                                                         \
-       mono:   rocks -root                                             \n\
-       color:  rocks -root -fg darksalmon                              \n\
-                                                                         \
-       mono:   qix -root -linear -count 5 -size 200 -spread 30           \
-                       -segments 75 -solid -xor                        \n\
-                                                                         \
-       color:  attraction -root -mode polygons                         \n\
-       color:  attraction -root -mode filled-splines -segments 0       \n\
-       color:  attraction -root -glow -points 10                       \n\
-       color:  bubbles -root                                           \n\
-                                                                         \
-  PseudoColor: qix -root -count 4 -solid -transparent                  \n\
-  PseudoColor: qix -root -count 5 -solid -transparent -linear            \
-                       -segments 250 -size 100                         \n\
-                                                                         \
-@GL_KLUDGE@    gears -root                                             \n\
-@GL_KLUDGE@    superquadrics -root                                     \n\
-@GL_KLUDGE@    morph3d -root                                           \n\
-@GL_KLUDGE@    cage -root                                              \n\
-@GL_KLUDGE@    moebius -root                                           \n\
-@GL_KLUDGE@    stairs -root                                            \n\
-@GL_KLUDGE@    pipes -root                                             \n\
-@GL_KLUDGE@    sproingies -root                                        \n\
-@GL_KLUDGE@    rubik -root                                             \n\
-@GL_KLUDGE@    atlantis -root                                          \n\
-@GL_KLUDGE@    lament -root                                            \n\
-@GL_KLUDGE@    bubble3d -root                                          \n\
-@GL_KLUDGE@    glplanet -root                                          \n
-
-! A few of the hacks require OpenGL, and will only be built if you have it.
-! If your vendor doesn't provide real OpenGL, you might want to consider
-! building MesaGL, which is a free implementation -- GL is way cool.
-!
-! Note that those hacks (gears, superquadratics, morph3d, cage, moebius,
-! stairs, pipes, sproingies, and rubik) tend to work best on a visual *half*
-! as deep as the depth of the screen, since that way, they can do
-! double-buffering -- try it and see, but you will probably find that you
-! should specify the deepest visual that is half as deep as the screen.
-!
-! For example, on a screen that supports both 24-bit TrueColor and 12-bit
-! PseudoColor, the 12-bit visual will probably work best (this is true of
-! base-model SGI Indys: the 0x29 visual is the one you want.)  Oddly, on SGI
-! O2s, (machines that have serious hardware support for GL) the 12-bit
-! PseudoColor visual looks awful (you get a black and white, flickery image.)
-! On these machines, the visual you want turns out to be 0x31 -- this is but
-! one of the eight 15-bit TrueColor visuals (yes, 8, and yes, 15) that O2s
-! provide.  This is the only visual that works properly -- as far as xdpyinfo
-! is concerned, all of the 15-bit TrueColor visuals are identical, but some
-! flicker like mad, and some have deeply weird artifacts (hidden surfaces
-! show through!)  I suppose these other visuals must be tied to some arcane
-! hardware feature...  Your mileage, therefore, may vary dramatically.
+! Be sure to check out Demo Mode: run the `xscreensaver-demo' program to
+! edit the current list of programs interactively, try out the various modes,
+! and change other parameters.  See the man page for details.
 !
-! Some other programs that you might want to track down (these work as
-! XScreenSaver helpers, but are not distributed with it):
-!
-!              xdaliclock -root -builtin2                              \n\
-!              xswarm -r 2>&-                                          \n\
-!              xwave -root                                             \n\
-!              xbouncebits ...                                         \n\
-!              ico -r -faces -sleep 1 -obj ico                         \n\
-!              xsplinefun                                              \n\
-!              xmountains -b -M                                        \n\
-!      color:  xfishtank -c black -d -r 2                              \n\
+*programs:                                                                   \
+                "Qix (solid)"  qix -root -solid -delay 0 -segments 100     \n\
+          "Qix (transparent)"  qix -root -count 4 -solid -transparent      \n\
+               "Qix (linear)"  qix -root -count 5 -solid -transparent        \
+                                 -linear -segments 250 -size 100           \n\
+- mono:           "Qix (xor)"  qix -root -linear -count 5 -size 200          \
+                                 -spread 30 -segments 75 -solid -xor       \n\
+                                                                             \
+         "Attraction (balls)"  attraction -root -mode balls                \n\
+         "Attraction (lines)"  attraction -root -mode lines -points 3        \
+                                 -segments 200                             \n\
+-         "Attraction (poly)"  attraction -root -mode polygons             \n\
+       "Attraction (splines)"  attraction -root -mode splines -segments      \
+                                 300                                       \n\
+       "Attraction (orbital)"  attraction -root -mode lines -radius 300      \
+                                 -orbit -vmult 0.5                         \n\
+                                                                             \
+                               pyro -root                                  \n\
+                               rocks -root                                 \n\
+                               helix -root                                 \n\
+                               pedal -root                                 \n\
+                               rorschach -root -offset 7                   \n\
+                               hopalong -root                              \n\
+                               greynetic -root                             \n\
+                               imsmap -root                                \n\
+                               slidescreen -root                           \n\
+                               decayscreen -root                           \n\
+                               jigsaw -root                                \n\
+                               blitspin -root -grab                        \n\
+                               slip -root                                  \n\
+                               distort -root                               \n\
+                               spotlight -root                             \n\
+             "Ripples (oily)"  ripples -root -oily -light 2                \n\
+             "Ripples (stir)"  ripples -root -oily -light 2 -stir          \n\
+          "Ripples (desktop)"  ripples -root -water -light 6               \n\
+                               hypercube -root                             \n\
+                               hyperball -root                             \n\
+                               halo -root                                  \n\
+                               maze -root                                  \n\
+                               noseguy -root                               \n\
+                               flame -root                                 \n\
+                               lmorph -root                                \n\
+                               deco -root                                  \n\
+                               moire -root                                 \n\
+                               moire2 -root                                \n\
+                               lightning -root                             \n\
+                               strange -root                               \n\
+                               spiral -root                                \n\
+                               laser -root                                 \n\
+                               grav -root                                  \n\
+              "Grav (trails)"  grav -root -trail -decay                    \n\
+                               drift -root                                 \n\
+                               ifs -root                                   \n\
+                               julia -root                                 \n\
+                               penrose -root                               \n\
+                               sierpinski -root                            \n\
+                               braid -root                                 \n\
+                               galaxy -root                                \n\
+                               bouboule -root                              \n\
+                               swirl -root                                 \n\
+                               flag -root                                  \n\
+                               sphere -root                                \n\
+                               forest -root                                \n\
+                               lisa -root                                  \n\
+                               lissie -root                                \n\
+                               goop -root -max-velocity 0.5 -elasticity      \
+                                 0.9                                       \n\
+                               starfish -root                              \n\
+            "Starfish (blob)"  starfish -root -blob                        \n\
+                               munch -root                                 \n\
+                               fadeplot -root                              \n\
+                               coral -root -delay 0                        \n\
+                               mountain -root                              \n\
+                               triangle -root -delay 1                     \n\
+                               worm -root                                  \n\
+                               rotor -root                                 \n\
+                               ant -root                                   \n\
+                               demon -root                                 \n\
+                               loop -root                                  \n\
+                               vines -root                                 \n\
+                               kaleidescope -root                          \n\
+                               xjack -root                                 \n\
+                               xlyap -root -randomize                      \n\
+                               cynosure -root                              \n\
+                               flow -root                                  \n\
+                               epicycle -root                              \n\
+                               interference -root                          \n\
+                               truchet -root -randomize                    \n\
+                               bsod -root                                  \n\
+                               crystal -root                               \n\
+                               discrete -root                              \n\
+                               kumppa -root                                \n\
+                               rd-bomb -root                               \n\
+           "RD-Bomb (mobile)"  rd-bomb -root -speed 1 -size 0.1            \n\
+                               sonar -root                                 \n\
+                               t3d -root                                   \n\
+                               penetrate -root                             \n\
+                               deluxe -root                                \n\
+                               compass -root                               \n\
+                               squiral -root                               \n\
+                               xflame -root                                \n\
+                               wander -root                                \n\
+             "Wander (spots)"  wander -root -advance 0 -size 10 -circles     \
+                                 True -length 10000 -reset 100000          \n\
+                               critical -root                              \n\
+                               phosphor -root                              \n\
+                               xmatrix -root                               \n\
+                               petri -root -size 2 -count 20               \n\
+                    "Petri 2"  petri -root -minlifespeed 0.02                \
+                                 -maxlifespeed 0.03 -minlifespan 1           \
+                                 -maxlifespan 1 -instantdeathchan 0          \
+                                 -minorchan 0 -anychan 0.3                 \n\
+                               shadebobs -root                             \n\
+                               ccurve -root                                \n\
+                               blaster -root                               \n\
+                               bumps -root                                 \n\
+                               xteevee -root                               \n\
+                               xspirograph -root                           \n\
+                               nerverot -root                              \n\
+-          "NerveRot (dense)"  nerverot -root -count 1000                  \n\
+-          "NerveRot (thick)"  nerverot -root -count 100 -line-width 4       \
+                               -max-nerve-radius 0.8 -nervousness 0.5 -db  \n\
+                               xrayswarm -root                             \n\
+-             "Zoom (Fatbits)" zoom -root                                  \n\
+              "Zoom (Lenses)"  zoom -root -lenses                          \n\
+                               rotzoomer -root                             \n\
+-         "RotZoomer (mobile)" rotzoomer -root -move                       \n\
+-         "RotZoomer (sweep)"  rotzoomer -root -sweep                      \n\
+                               whirlwindwarp -root                         \n\
+  color:                       bubbles -root                               \n\
+  default-n:                   webcollage -root                            \n\
+  default-n:  "WebCollage (whacked)"                                         \
+                               webcollage -root -filter                      \
+                                 'vidwhacker -stdin -stdout'               \n\
+- default-n:                   vidwhacker -root                            \n\
+                                                                             \
+@GL_KLUDGE@ GL:                        gears -root                                 \n\
+@GL_KLUDGE@ GL:        "Gears (planetary)" gears -root -planetary                  \n\
+@GL_KLUDGE@ GL:                        superquadrics -root                         \n\
+@GL_KLUDGE@ GL:                        morph3d -root                               \n\
+@GL_KLUDGE@ GL:                        cage -root                                  \n\
+@GL_KLUDGE@ GL:                        moebius -root                               \n\
+@GL_KLUDGE@ GL:                        stairs -root                                \n\
+@GL_KLUDGE@ GL:                        pipes -root                                 \n\
+@GL_KLUDGE@ GL:                        sproingies -root                            \n\
+@GL_KLUDGE@ GL:                        rubik -root                                 \n\
+@GL_KLUDGE@ GL:                        atlantis -root                              \n\
+@GL_KLUDGE@ GL:                        lament -root                                \n\
+@GL_KLUDGE@ GL:                        bubble3d -root                              \n\
+@GL_KLUDGE@ GL:                        glplanet -root                              \n\
+@GL_KLUDGE@ GL:                        pulsar -root                                \n\
+-         GL:     "Pulsar (textures)"                                        \
+                                 pulsar -root -texture -mipmap               \
+                                 -texture_quality -light -fog              \n\
+@GLE_KLUDGE@GL:                        extrusion -root                             \n\
+@GL_KLUDGE@ GL:                        sierpinski3d -root                          \n\
+@GL_KLUDGE@ GL:                        gflux -root                                 \n\
+@GL_KLUDGE@ GL:                        stonerview -root                            \n\
+@GL_KLUDGE@ GL:                        starwars -root                              \n\
+@GL_KLUDGE@ GL:                        gltext -root                                \n\
+@GL_KLUDGE@ GL:        "GLText (clock)" gltext -text "%A%n%d %b %Y%n%r" -root      \n\
+@GL_KLUDGE@ GL:         "Molecule"             molecule -root                      \n\
+@GL_KLUDGE@ GL:         "Molecule (lumpy)"     molecule -root -no-bonds -no-labels \n\
+@GL_KLUDGE@ GL:                        dangerball -root                            \n\
+                                                                             \
+-                              xdaliclock -root -builtin3 -cycle           \n\
+- default-n:                   xearth -nofork -nostars -ncolors 50           \
+                                 -night 3 -wait 0 -timewarp 400.0 -pos       \
+                                 sunrel/38/-30                             \n\
+-                              ssystem -fullscreen :32                     \n\
+-                              xmountains -b -M -Z 0 -r 1                  \n\
+-      "XMountains (top)"      xmountains -b -M -Z 0 -r 1 -m               \n\
+-                               xaos -root -autopilot -incoloring -1         \
+                                  -nogui -outcoloring -1                   \n\
+-                              xfishtank -d -s                             \n\
+-                              xsnow                                       \n\
+-                              goban -root                                 \n\
+-                              electricsheep                               \n\
+-                              cosmos -root                                \n
+
+
+! To display a randomized slideshow of images, you can do something like this:
 !
-! xtacy is ok, but it only works on the default visual.  We can satisfy
-! that constraint like so:
+!    default-n:  "Slideshow"   xv -root -rmode 5 -random -viewonly           \
+!                                -wloop -wait 30 $HOME/bitmaps/*.jpg       \n\
 !
-!     default: xtacy -root -delay 100 -funky -number 3                 \n\
-!     default: xtacy -root -delay 100 -gravity                         \n\
-!     default: xtacy -root -delay 100 -mixer                           \n\
-!     default: xtacy -root -delay 100 -taffy -pal 4                    \n\
-! 
-! To display a randomized slideshow of images, you can do something like this:
+! or, if you prefer "xli" to "xv", like this: (but note that xli's "-delay"
+! option doesn't work in conjunction with "-onroot", so you need to add a
+! line for each image individually... "xv" is better in this respect.)
 !
-!     default-n: xv -root -rmode 5  image-1.gif  -quit
-!     default-n: xv -root -rmode 5  image-2.gif  -quit
-!     default-n: xv -root -rmode 5  image-3.gif  -quit
-!              ...and so on...
+!    default-n: xli -quiet -onroot -center -border black                     \
+!                $HOME/bitmaps/pic1.jpg                                    \n\
+!    default-n: xli -quiet -onroot -center -border black                     \
+!                $HOME/bitmaps/pic2.jpg                                    \n\
+!    default-n: xli -quiet -onroot -center -border black                     \
+!                $HOME/bitmaps/pic3.jpg                                    \n\
 !
 ! Note that we've used "default-n" as the visual name, rather than just
 ! "default": this means "default visual, no install", that is, it's like
 ! specifying the command-line arguments "-visual default -no-install".
-! This is necessary because, when XV is running in "-root" mode, it always
-! assumes that the default visual and colormap are being used, rather than 
-! examining the window it is drawing on to see what visual and colormap it 
-! has.  If we didn't force the default visual to be used, xv would get an
+! This is necessary because, when XV or XLI arerunning in "-root" mode, they
+! always assume that the default visual and colormap are being used, rather
+! than  examining the window it is drawing on to see what visual and colormap
+! it has.  If we didn't force the default visual to be used, we would get an
 ! X error.  If we didn't force the default colormap to be installed, the
 ! colors would be all wrong.  "default-i" may also be used as a visual name
 ! (meaning, "-visual default -install") but you probably won't ever need
 ! to use that.
 !
-! XEarth is nice, too:
-!
-!     default-n: xearth -nostars -wait 0 -timewarp 400 -pos sunrel/38/-30
-!
 !
 ! Some of the GL demos that SGI ships work with XScreenSaver; most don't.
 ! XScreenSaver includes a program (not built or installed by default)
 !
 !     xscreensaver-sgigl /usr/sbin/ep -S
 !
+! (But note that, on non-SGIs, the bundled "stonerview" hack is a decent
+! clone of "ep".  Yay!)
+!
 ! You can also use the "ant" demo, but first you need to wrap a shell script
 ! around it that cds to its home directory, so that it can find its files;
-! and also pass it the -S argument, to prevent it from forking.
-!
-!
-! Also, since these actually end up mapping their own windows instead of
-! drawing on the XScreenSaver-provided root, when they are being run from
-! demo-mode, you can't pop up the demo-mode dialog just by clicking the
-! mouse: you must first type ESC to make the SGI programs exit.  This sucks.
-! Things should work properly when they are being run by xscreensaver in
-! non-demo-mode, however.
-!
+! and also pass it the -S argument, to prevent it from forking.  What a mess!
 ! Basically, the SGI demo writers went out of their way to make my life hell.
 
 
 !=============================================================================
 
 
-XScreenSaver.pointerPollTime:          5
-XScreenSaver.initialDelay:             0
-XScreenSaver.windowCreationTimeout:    30
+XScreenSaver.pointerPollTime:          0:00:05
+XScreenSaver.initialDelay:             0:00:00
+XScreenSaver.windowCreationTimeout:    0:00:30
 XScreenSaver.bourneShell:              /bin/sh
 
 
@@ -315,18 +387,19 @@ XScreenSaver.bourneShell:         /bin/sh
 *Dialog.bodyFont:              *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
 *Dialog.labelFont:             *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
 *Dialog.buttonFont:            *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
+*Dialog.dateFont:              *-courier-medium-r-*-*-*-80-*-*-*-iso8859-1
 *Dialog.foreground:            #000000
 *Dialog.background:            #BFBFBF
 *Dialog.Button.foreground:     #000000
 *Dialog.Button.background:     #D0D0D0
 *Dialog.text.foreground:       #000000
 *Dialog.text.background:       #FFFFFF
-*Dialog.logo.foreground:       #FF0000
-*Dialog.logo.background:       #FFFFFF
+*passwd.thermometer.foreground:        #FF0000
+*passwd.thermometer.background:        #FFFFFF
 *Dialog.topShadowColor:                #E7E7E7
 *Dialog.bottomShadowColor:     #737373
-*Dialog.logo.width:            200
-*Dialog.logo.height:           200
+*Dialog.logo.width:            210
+*Dialog.logo.height:           210
 *Dialog.internalBorderWidth:   30
 *Dialog.borderWidth:           1
 *Dialog.shadowThickness:       4
@@ -339,7 +412,7 @@ XScreenSaver.bourneShell:           /bin/sh
 *passwd.thermometer.width:     8
 
 *splash.heading.label:         XScreenSaver %s
-*splash.body.label:            Copyright Â© 1991-1998 by
+*splash.body.label:            Copyright Â© 1991-2001 by
 *splash.body2.label:           Jamie Zawinski <jwz@jwz.org>
 *splash.demo.label:            Demo
 *splash.prefs.label:           Prefs
@@ -350,38 +423,101 @@ XScreenSaver.bourneShell:                /bin/sh
 ! 
 *fontList:                       *-helvetica-medium-r-*-*-*-120-*-*-*-iso8859-1
 *demoDialog*label1.fontList:     *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1
-*XmTextField.fontList:             *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1
+*cmdText.fontList:                 *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1
 *label0.fontList:                  *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
-XScreenSaver*XmList.fontList:      *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1
-! Need to fully-qualify the preceeding in the case of of *sgiMode.
-
-*XmDialogShell*foreground:             #000000
-*XmDialogShell*background:             #E5E5E5
-*XmDialogShell*XmTextField.foreground: #000000
-*XmDialogShell*XmTextField.background: #FFFFFF
-*XmDialogShell*demoList.foreground:    #000000
-*XmDialogShell*demoList.background:    #FFFFFF
-
-*XmDialogShell.title:          XScreenSaver
-*versionWarning_popup.title:   XScreenSaver Warning
-*demoForm_popup.title:         XScreenSaver Demo
-*preferencesForm_popup.title:  XScreenSaver Preferences
+XScreenSaver*doc.fontList:       *-helvetica-medium-r-*-*-*-100-*-*-*-iso8859-1
+! above must be fully qualified to get around *sgiMode.
+
+*foreground:                   #000000
+*background:                   #C0C0C0
+*XmTextField.foreground:       #000000
+*XmTextField.background:       #FFFFFF
+*list.foreground:              #000000
+*list.background:              #FFFFFF
+
+*ApplicationShell.title:       XScreenSaver
+*warning.title:                        XScreenSaver
+*warning_popup.title:          XScreenSaver
 *allowShellResize:             True
 *autoUnmanage:                 False
 
-! This doesn't work.  Motif ignores it if there is a scroll-list!
-*demoDialog.maxWidth:          600
-
-*label1.labelString:           XScreenSaver %s
-*label1.label:                 XScreenSaver %s
-*label2.labelString: Copyright Â© 1991-1998 by Jamie Zawinski <jwz@jwz.org>
-*label2.label:      Copyright Â© 1991-1998 by Jamie Zawinski <jwz@jwz.org>
-*demoList.visibleItemCount:    10
-*demoList.automaticSelection:  True
-*next.labelString:             Run Next
-*prev.labelString:             Run Previous
-*edit.labelString:             Preferences
-*restart.labelString:          Reinitialize
+*menubar*file.labelString:     File
+*menubar*file.mnemonic:                F
+*file.blank.labelString:       Blank Screen Now
+*file.blank.mnemonic:          B
+*file.lock.labelString:                Lock Screen Now
+*file.lock.mnemonic:           L
+*file.kill.labelString:                Kill Daemon
+*file.kill.mnemonic:           K
+*file.restart.labelString:     Restart Daemon
+*file.restart.mnemonic:                R
+*file.exit.labelString:                Exit
+*file.exit.mnemonic:           E
+
+*menubar*edit.labelString:     Edit
+*menubar*edit.mnemonic:                E
+*edit.cut.labelString:         Cut
+*edit.cut.mnemonic:            u
+*edit.copy.labelString:                Copy
+*edit.copy.mnemonic:           C
+*edit.paste.labelString:       Paste
+*edit.paste.mnemonic:          P
+
+*menubar*help.labelString:     Help
+*menubar*help.mnemonic:                H
+*help.about.labelString:       About...
+*help.about.mnemonic:          A
+*help.docMenu.labelString:     Documentation...
+*help.docMenu.mnemonic:                D
+
+*demoTab.marginWidth:          10
+*optionsTab.marginWidth:       10
+
+*XmScrolledWindow.topOffset:   10
+*XmScrolledWindow.leftOffset:  10
+*demoTab.topOffset:            4
+*form1.bottomOffset:           10
+*form3.leftOffset:             10
+*form3.rightOffset:            10
+*frame.topOffset:              10
+*frame.bottomOffset:           10
+*enabled.topOffset:            10
+*visLabel.topOffset:           10
+*combo.topOffset:              10
+*form4.bottomOffset:           4
+*hr.bottomOffset:              4
+*XmComboBox.marginWidth:       0
+*XmComboBox.marginHeight:      0
+
+*demo.marginWidth:             30
+*demo.marginHeight:            4
+*man.marginWidth:              10
+*man.marginHeight:             4
+*down.leftOffset:              40
+*down.marginWidth:             4
+*down.marginHeight:            4
+*up.marginWidth:               4
+*up.marginHeight:              4
+*frame.traversalOn:            False
+
+*list.automaticSelection:      True
+*list.visibleItemCount:                20
+*doc.columns:                  60
+*combo.columns:                        11
+
+*demoTab.labelString:          Graphics Demos
+*optionsTab.labelString:       Screensaver Options
+*down.labelString:             \\/ 
+*up.labelString:               /\\ 
+*frameLabel.labelString:       
+*cmdLabel.labelString:         Command Line:
+*cmdLabel.alignment:           ALIGNMENT_BEGINNING
+*enabled.labelString:          Enabled
+*visLabel.labelString:         Visual:
+*visLabel.alignment:           ALIGNMENT_END
+*visLabel.leftOffset:          20
+*demo.labelString:             Demo
+*man.labelString:              Documentation...
 *done.labelString:             Quit
 
 *preferencesLabel.labelString: XScreenSaver Parameters
@@ -399,109 +535,829 @@ XScreenSaver*XmList.fontList:      *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1
 *fadeToggle.labelString:       Fade Colormap
 *unfadeToggle.labelString:     Unfade Colormap
 *lockToggle.labelString:       Require Password
-*preferencesDone.labelString:  OK
-*preferencesCancel.labelString:        Cancel
 
 
-! Disable Motif drag-and-drop in dialog boxes.  This is kind of pathetic, but
-! in some older versions of Motif, most any attempt to drag cause immediate
-! flaming death from above.  This *should* rip the legs off that bug.
-! (But sadly, Lesstif 0.86 and earlier ignore these resources *and* have
-! buggy drag-and-drop.)
+*OK.marginWidth:               30
+*OK.marginHeight:              4
+*OK.leftOffset:                        10
+*OK.bottomOffset:              10
+*Cancel.marginWidth:           30
+*Cancel.marginHeight:          4
+*Cancel.rightOffset:           10
+*Cancel.bottomOffset:          10
+
+
+
+
+!=============================================================================
+!
+! Online documentation for xscreensaver-demo.
 !
-XScreenSaver*dragInitiatorProtocolStyle: DRAG_NONE
-XScreenSaver*dragReceiverProtocolStyle:  DRAG_NONE
+!=============================================================================
 
+! sanity check -- hands off.
+*hacks.documentation.isInstalled: True
 
+*hacks.qix.documentation:                                              \
+This is the swiss army chainsaw of qix programs.  It bounces a series  \
+of line segments around the screen, and uses variations on this basic  \
+motion pattern to produce all sorts of different presentations: line   \
+segments, filled polygons, overlapping translucent areas...  Written   \
+by Jamie Zawinski.
 
-! Resources for the Athena dialog boxes of the "xscreensaver-demo" program.
-! 
-*demo_dialog.title:            XScreenSaver Demo
-*preferences_dialog.title:     XScreenSaver Preferences
-*warning_dialog.title:         XScreenSaver Warning
-
-! For some reason, it doesn't size correctly by itself.
-*demo_dialog.geometry:         =640x400
-
-*demo_dialog*font:             *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1
-*preferences_dialog*font:      *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1
-*demo_dialog*label1.font:      *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
-*preferences_dialog*label1.font:*-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
-XScreenSaver*warning_dialog*label0.font:       \
-                               *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
-XScreenSaver*warning_dialog*Label.font:        \
-                               *-helvetica-bold-r-*-*-*-120-*-*-*-iso8859-1
-XScreenSaver*warning_dialog*Command.font: \
-                               *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1
-XScreenSaver.demo_dialog*List.font:    \
-                               *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1
-XScreenSaver.demo_dialog*Text*font:    \
-                               *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1
-
-XScreenSaver.demo_dialog*foreground:                   #000000
-XScreenSaver.demo_dialog*background:                   #E5E5E5
-XScreenSaver.demo_dialog*List.background:              #FFFFFF
-XScreenSaver.demo_dialog*Scrollbar.background:         #D9D9D9
-XScreenSaver.demo_dialog*Command.background:           #D9D9D9
-XScreenSaver.demo_dialog*Text*background:              #FFFFFF
-
-XScreenSaver.preferences_dialog*foreground:            #000000
-XScreenSaver.preferences_dialog*background:            #E5E5E5
-XScreenSaver.preferences_dialog*Command.background:    #D9D9D9
-XScreenSaver.preferences_dialog*Toggle.background:     #D9D9D9
-XScreenSaver.preferences_dialog*Text*background:       #FFFFFF
-
-XScreenSaver.warning_dialog*foreground:                        #000000
-XScreenSaver.warning_dialog*background:                        #E5E5E5
-XScreenSaver.warning_dialog*Command.background:                #D9D9D9
-
-*preferences_dialog*Dialog.value.translations: #override\n\
-       <Key>Return: beginning-of-line()\n
-
-*demo_dialog*viewport.height:                  200
-*Form.borderWidth:                             0
-*Box.borderWidth:                              0
-*Label.borderWidth:                            0
-*preferences_dialog*Dialog.borderWidth:                0
-
-*demo_dialog*next.label:                       Run Next
-*demo_dialog*prev.label:                       Run Previous
-*demo_dialog*edit.label:                       Preferences
-*demo_dialog*restart.label:                    Reinitialize
-*demo_dialog*done.label:                       Quit
-XScreenSaver.demo_dialog*Command.internalWidth:  10
-XScreenSaver.demo_dialog*Command.internalHeight: 4
-
-*preferences_dialog*timeout.label:             Saver Timeout:
-*preferences_dialog*cycle.label:               Cycle Timeout:
-*preferences_dialog*fade.label:                        Fade Duration:
-*preferences_dialog*ticks.label:               Fade Ticks:
-*preferences_dialog*lockTime.label:            Lock Timeout:
-*preferences_dialog*passwdTime.label:          Password Timeout:
-XScreenSaver.preferences_dialog*Command.internalWidth:  10
-XScreenSaver.preferences_dialog*Command.internalHeight: 4
-
-*preferences_dialog*label1.label:              XScreenSaver Parameters
-*preferences_dialog*buttonbox.verbose.label:   Verbose
-*preferences_dialog*buttonbox.cmap.label:      Install Colormap
-*preferences_dialog*buttonbox.fade.label:      Fade Colormap
-*preferences_dialog*buttonbox.unfade.label:    Unfade Colormap
-*preferences_dialog*buttonbox.lock.label:      Require Password
-*preferences_dialog*done.label:                        Ok
-*preferences_dialog*cancel.label:              Cancel
-
-*warning_dialog*ok.label:                      Ok
-
-*warning_dialog*horizDistance:                 30
-*warning_dialog*vertDistance:                  0
-
-*warning_dialog*Label.internalWidth:           1
-*warning_dialog*Label.internalHeight:          0
-
-*warning_dialog*label0.horizDistance:          80
-*warning_dialog*label0.vertDistance:           20
-
-*warning_dialog*Command.horizDistance:         160
-*warning_dialog*Command.vertDistance:          20
-*warning_dialog*Command.internalWidth:         20
-*warning_dialog*Command.internalHeight:                5
+*hacks.attraction.documentation:                                       \
+Like qix, this uses a simple simple motion model to generate many      \
+different display modes.  The control points attract each other up to  \
+a certain distance, and then begin to repel each other.         The            \
+attraction/repulsion is proportional to the distance between any two   \
+particles, similar to the strong and weak nuclear forces.              \
+                                                                   \n\n\
+One of the most interesting ways to watch this hack is simply as       \
+bouncing balls, because their motions and interactions with each       \
+other are so odd.  Sometimes two balls will get into a tight orbit     \
+around each other, to be interrupted later by a third, or by the edge  \
+of the screen. It looks quite chaotic.                                 \
+                                                                   \n\n\
+Written by Jamie Zawinski, based on Lisp code by John Pezaris.
+
+*hacks.pyro.documentation:                                             \
+Pyro draws exploding fireworks.         Blah blah blah.  Written by Jamie      \
+Zawinski.
+
+*hacks.helix.documentation:                                            \
+This repeatedly generates spirally string-art-ish patterns.  Written   \
+by Jamie Zawinski.
+
+*hacks.pedal.documentation:                                            \
+This is sort of a combination spirograph/string-art.  It generates a   \
+large, complex polygon, and lets the X server do the bulk of the work  \
+by giving it an even/odd winding rule. Written by Dale Moore, based    \
+on some ancient PDP-11 code.
+
+*hacks.rorschach.documentation:                                                \
+This generates random inkblot patterns.         The algorithm is deceptively   \
+simple for how well it works; it merely walks a dot around the screen  \
+randomly, and then reflects the image horizontally, vertically, or     \
+both.  Any deep-seated neurotic tendencies which this program reveals  \
+are your own problem.  Written by Jamie Zawinski.
+
+*hacks.hopalong.documentation:                                         \
+This draws lacy fractal patterns, based on iteration in the imaginary  \
+plane, from a 1986 Scientific American article.         Mostly written by      \
+Patrick Naughton.
+
+*hacks.greynetic.documentation:                                                \
+This draws random colored and stippled rectangles.  Written by Jamie   \
+Zawinski.
+
+*hacks.imsmap.name: IMSmap
+*hacks.imsmap.documentation:                                           \
+This generates random cloud-like patterns.  It looks quite different   \
+in monochrome and color.  The basic idea is to take four points on     \
+the edge of the image, and assign each a random ``elevation''. Then    \
+find the point between them, and give it a value which is the average  \
+of the other four, plus some small random offset. Then coloration is   \
+done based on elevation.                                               \
+                                                                   \n\n\
+The color selection is done by binding the elevation to either hue,    \
+saturation, or brightness, and assigning random values to the others.  \
+The ``brightness'' mode tends to yield cloudlike patterns, and the     \
+others tend to generate images that look like heat-maps or CAT-scans.  \
+Written by Juergen Nickelsen and Jamie Zawinski.
+
+*hacks.slidescreen.name: SlideScreen
+*hacks.slidescreen.documentation:                                      \
+This grabs an image of whatever is on your screen, divides it into a   \
+grid, and then randomly shuffles the squares around as if it was one   \
+of those annoying ``16-puzzle'' games, where there is a grid of                \
+squares, one of which is missing.  I hate trying to solve those                \
+puzzles, but watching one permute itself is more amusing.  Written by  \
+Jamie Zawinski.
+
+*hacks.decayscreen.name: DecayScreen
+*hacks.decayscreen.documentation:                                      \
+This grabs an image of whatever is on your screen, and makes it melt.  \
+You've no doubt seen this effect before, but no screensaver would      \
+really be complete without it. It works best if there's something      \
+colorful visible.  Warning, if the effect continues after the screen   \
+saver is off, seek medical attention.  Written by David Wald and       \
+Vivek Khera.                                                           \
+                                                                   \n\n\
+A number of these screenhacks have the ability to take an image of     \
+your desktop and manipulate it in some way.  On SGI systems, these     \
+programs are able to (at random) pull their source image from the      \
+system's video input instead!  This works nicely if you leave some     \
+some random television station plugged in.
+
+*hacks.jigsaw.documentation:                                           \
+This grabs a screen image, carves it up into a jigsaw puzzle,          \
+shuffles it, and then solves the puzzle.  This works especially well   \
+when you feed it an external video signal instead of letting it grab   \
+the screen image (actually, I guess this is generally true...) When    \
+it is grabbing a video image, it is sometimes pretty hard to guess     \
+what the image is going to look like once the puzzle is solved.                \
+Written by Jamie Zawinski.
+
+*hacks.blitspin.name: BlitSpin
+*hacks.blitspin.documentation:                                         \
+The ``blitspin'' hack repeatedly rotates a bitmap by 90 degrees by     \
+using logical operations: the bitmap is divided into quadrants, and    \
+the quadrants are shifted clockwise.  Then the same thing is done      \
+again with progressively smaller quadrants, except that all            \
+sub-quadrants of a given size are rotated in parallel. Written by      \
+Jamie Zawinski based on some cool SmallTalk code seen in in Byte       \
+Magazine in 1981.                                                      \
+                                                                   \n\n\
+As you watch it, the image appears to dissolve into static and then    \
+reconstitute itself, but rotated. You can provide the image to use,    \
+as an XBM or XPM file, or tell it to grab a screen image and rotate    \
+that.
+
+*hacks.slip.documentation:                                             \
+This program throws some random bits on the screen, then sucks them    \
+through a jet engine and spews them out the other side.         To avoid       \
+turning the image completely to mush, every now and then it will and   \
+then it interjects some splashes of color into the scene, or go into   \
+a spin cycle, or stretch the image like taffy, or (this is my          \
+addition) grab an image of your current desktop to chew on.            \
+Originally written by Scott Draves; whacked on by Jamie Zawinski.
+
+*hacks.distort.documentation:                                          \
+This hack grabs an image of the screen, and then lets a transparent    \
+lens wander around the screen, magnifying whatever is underneath.      \
+Written by Jonas Munsin.
+
+*hacks.spotlight.documentation:                                                \
+Draws a spotlight scanning across a black screen, illumnating the      \
+underlying desktop when it passes.  Written by Rick Schultz.
+
+*hacks.hypercube.documentation:                                                \
+This displays 2D projections of the sequence of 3D objects which are   \
+the projections of the 4D analog to the cube: as a square is composed  \
+of four lines, each touching two others; and a cube is composed of     \
+six squares, each touching four others; a hypercube is composed of     \
+eight cubes, each touching six others. To make it easier to            \
+visualize the rotation, it uses a different color for the edges of     \
+each face.  Don't think about it too long, or your brain will melt.    \
+Written by Joe Keane, Fritz Mueller, and Jamie Zawinski.
+
+*hacks.hyperball.documentation:                                                \
+Hyperball is to hypercube as dodecahedron is to cube: this displays    \
+a 2D projection of the sequence of 3D objects which are the projections        \
+of the 4D analog to the dodecahedron.  Written by Joe Keane.
+
+*hacks.halo.documentation:                                             \
+This draws trippy psychedelic circular patterns that hurt to look at.  \
+It can also animate the control-points, but that takes a lot of CPU    \
+and bandwidth. Written by Jamie Zawinski.
+
+*hacks.maze.documentation:                                             \
+This is the ancient X maze demo, modified to work with xscreensaver.   \
+It generates a random maze, then solves it with visual feedback.       \
+Originally by Jim Randell; modified by a cast of thousands.
+
+*hacks.noseguy.documentation:                                          \
+A little man with a big nose wanders around your screen saying         \
+things.         The things which he says can come from a file, or from an      \
+external program like `zippy' or `fortune'.  This was extracted from   \
+`xnlock' by Dan Heller.         Colorized by Jamie Zawinski.
+
+*hacks.flame.documentation:                                            \
+Another iterative fractal generator.  Written by Scott Draves.
+
+*hacks.lmorph.name: LMorph
+*hacks.lmorph.documentation:                                           \
+This generates random spline-ish line drawings and morphs between      \
+them.  Written by Sverre H.  Huseby and Glenn T.  Lines.
+
+*hacks.deco.documentation:                                             \
+This one subdivides and colors rectangles randomly.  It looks kind of  \
+like Brady-Bunch-era rec-room wall paneling.  (Raven says: ``this      \
+screensaver is ugly enough to peel paint.'')  Written by Jamie         \
+Zawinski, inspired by Java code by Michael Bayne.
+
+*hacks.moire.documentation:                                            \
+This one draws cool circular interference patterns.  Most of the       \
+circles you see aren't explicitly rendered, but show up as a result    \
+of interactions between the other pixels that were drawn.  Written by  \
+Jamie Zawinski, inspired by Java code by Michael Bayne.         As he          \
+pointed out, the beauty of this one is that the heart of the display   \
+algorithm can be expressed with just a pair of loops and a handful of  \
+arithmetic, giving it a high ``display hack metric''.
+
+*hacks.moire2.documentation:                                           \
+Another example of the fun you can have with moire                     \
+interference patterns; this hack generates fields of concentric                \
+circles or ovals, and combines the planes with various operations.     \
+The planes are moving independently of one another, causing the                \
+interference lines to ``spray.''  Written by Jamie Zawinski.
+
+*hacks.lightning.documentation:                                                \
+This one draws crackling fractal lightning bolts.  It's simple,                \
+direct, and to the point.  If only it had sound... Written by Keith    \
+Romberg.
+
+*hacks.strange.documentation:                                          \
+This draws strange attractors: it's a colorful,                                \
+unpredictably-animating field of dots that swoops and twists around.   \
+The motion is very nice.  Written by Massimino Pascal.
+
+*hacks.spiral.documentation:                                           \
+Moving circular patterns, by Peter Schmitzberger.  Moving circular     \
+patterns means moire; interference patterns, of course.
+
+*hacks.laser.documentation:                                            \
+Moving radiating lines, that look vaguely like scanning laser beams.   \
+Written by Pascal Pensa.  (Frankie say: relax.)
+
+*hacks.grav.documentation:                                             \
+This program draws a simple orbital simulation.         If you turn on         \
+trails, it looks kind of like a cloud-chamber photograph.  Written     \
+by Greg Bowering.
+
+*hacks.drift.documentation:                                            \
+How could one possibly describe this except as ``drifting recursive    \
+fractal cosmic flames?''  Another fine hack from the Scott Draves      \
+collection of fine hacks.
+
+*hacks.ifs.name: IFS
+*hacks.ifs.documentation:                                              \
+This one draws spinning, colliding iterated-function-system images.    \
+Written by Massimino Pascal.
+
+*hacks.julia.documentation:                                            \
+This one draws spinning, animating (are you detecting a pattern here   \
+yet?)  explorations of the Julia set. You've probably seen static      \
+images of this fractal form before, but it's a lot of fun to watch in  \
+motion as well.         One interesting thing is that there is a small         \
+swinging dot passing in front of the image, which indicates the                \
+control point from which the rest of the image was generated.          \
+Written by Sean McCullough.
+
+*hacks.penrose.documentation:                                          \
+Draws quasiperiodic tilings; think of the implications on modern       \
+formica technology.  Written by Timo Korvola.                          \
+                                                                   \n\n\
+In April 1997, Sir Roger Penrose, a British math professor who has     \
+worked with Stephen Hawking on such topics as relativity, black                \
+holes, and whether time has a beginning, filed a                       \
+copyright-infringement lawsuit against the Kimberly-Clark              \
+Corporation, which Penrose said copied a pattern he created (a         \
+pattern demonstrating that ``a nonrepeating pattern could exist in     \
+nature'') for its Kleenex quilted toilet paper.        Penrose said he         \
+doesn't like litigation but, ``When it comes to the population of      \
+Great Britain being invited by a multinational to wipe their bottoms   \
+on what appears to be the work of a Knight of the Realm, then a last   \
+stand must be taken.''                                                 \
+                                                                   \n\n\
+As reported by News of the Weird #491, 4-jul-1997.
+
+*hacks.sierpinski.documentation:                                       \
+This draws the two-dimensional variant of the recursive Sierpinski     \
+triangle fractal.  Written by Desmond Daignault.
+
+*hacks.braid.documentation:                                            \
+Draws random color-cycling inter-braided concentric circles.  Written  \
+by John Neil.
+
+*hacks.galaxy.documentation:                                           \
+This draws spinning galaxies, which then collide and scatter their     \
+stars to the, uh, four winds or something.  Originally an Amiga                \
+program by Uli Siegmund.
+
+*hacks.bouboule.documentation:                                         \
+This draws what looks like a spinning, deforming baloon with           \
+varying-sized spots painted on its invisible surface.  Written by      \
+Jeremie Petit.
+
+*hacks.swirl.documentation:                                            \
+More flowing, swirly patterns. This version is by M.  Dobie and R.     \
+Taylor, but you might have seen a Mac program similar to this called   \
+FlowFazer.  There is also a cool Java applet of a similar concept
+
+*hacks.flag.documentation:                                             \
+This draws a waving colored flag, that undulates its way around the    \
+screen.         The trick is the flag can contain arbitrary text and images.   \
+By default, it displays either the current system name and OS          \
+type, or a picture of ``Bob,'' but you can replace the text or the     \
+image with a command-line option.  Written by Charles Vidal and Jamie  \
+Zawinski.
+
+*hacks.sphere.documentation:                                           \
+Another of the classic screenhacks of the distant past, this one       \
+draws shaded spheres in multiple colors.  This hack traces its         \
+lineage back to Tom Duff in 1982.
+
+*hacks.forest.documentation:                                           \
+This draws fractal trees.  Written by Peter Baumung.  Everybody loves  \
+fractals, right?
+
+*hacks.lisa.documentation:                                             \
+This draws Lisajous loops, by Caleb Cullen.  Remember that device      \
+they had the Phantom Zone prisoners in during their trial in           \
+Superman?  I think that was one of these.
+
+*hacks.lissie.documentation:                                           \
+Another Lissajous figure.  This one draws the progress of circular     \
+shapes along a path.  Written by Alexander Jolk.
+
+*hacks.goop.documentation:                                             \
+This draws set of animating, transparent, amoeba-like blobs.  The      \
+blobs change shape as they wander around the screen, and they are      \
+translucent, so you can see the lower blobs through the higher ones,   \
+and when one passes over another, their colors merge.  Written by      \
+Jamie Zawinski.         I got the idea for this from a cool mouse pad I        \
+have, which achieves the same kind of effect in real life by having    \
+several layers plastic with colored oil between them.  Written by      \
+Jamie Zawinski.
+
+*hacks.starfish.documentation:                                         \
+This generates a sequence of undulating, throbbing, star-like          \
+patterns which pulsate, rotate, and turn inside out.  Another display  \
+mode uses these shapes to lay down a field of colors, which are then   \
+cycled.         The motion is very organic.  Written by Jamie Zawinski.
+
+*hacks.munch.documentation:                                          \n\
+        DATAI 2                                                              \n\
+        ADDB 1,2                                                     \n\
+        ROTC 2,-22                                                   \n\
+        XOR 1,2                                                              \n\
+        JRST .-4                                                     \n\
+                                                                     \n\
+As reported by HAKMEM, in 1962, Jackson Wright wrote the above PDP-1   \
+code. That code still lives on in this screenhack, some 35 years       \
+later.  The number of lines of enclosing code has increased            \
+substantially, however.  This version is by Tim Showalter.
+
+*hacks.fadeplot.name: FadePlot
+*hacks.fadeplot.documentation:                                         \
+Draws what looks like a waving ribbon following a sinusoidal path.     \
+Written by Bas van Gaalen and Charles Vidal.
+
+*hacks.coral.documentation:                                            \
+Simulates coral growth, albeit somewhat slowly.         This image doesn't     \
+really do it justice.  Written by Frederick Roeber.
+
+*hacks.mountain.documentation:                                         \
+Generates random 3d plots that look vaguely mountainous.  Written by   \
+Pascal Pensa.
+
+*hacks.triangle.documentation:                                         \
+Generates random mountain ranges using iterative subdivision of                \
+triangles.  Written by Tobias Gloth.
+
+*hacks.worm.documentation:                                             \
+An ancient xlock hack that draws multicolored worms that crawl around  \
+the screen.  Written by Brad Taylor, Dave Lemke, Boris Putanec, and    \
+Henrik Theiling.
+
+*hacks.rotor.documentation:                                            \
+Another ancient xlock demo, this one by Tom Lawrence.  It draws a      \
+line segment moving along a complex spiraling curve.  I tweaked this   \
+to generate curvier lines, but still frames of it don't look like      \
+much.
+
+*hacks.ant.documentation:                                              \
+A cellular automaton that is really a two-dimensional Turing machine:  \
+as the heads (``ants'') walk along the screen, they change pixel       \
+values in their path.  Then, as they pass over changed pixels, their   \
+behavior is influenced.         Written by David Bagley.
+
+*hacks.demon.documentation:                                            \
+A cellular automaton that starts with a random field, and organizes    \
+it into stripes and spirals.  Written by David Bagley.
+
+*hacks.loop.documentation:                                             \
+This one produces loop-shaped colonies that spawn, age, and            \
+eventually die.         Written by David Bagley.
+
+*hacks.vines.documentation:                                            \
+This one generates a continuous sequence of small, curvy geometric     \
+patterns.  It scatters them around your screen until it fills up,      \
+then it clears the screen and starts over.  Written by Tracy Camp and  \
+David Hansen.
+
+*hacks.kaleidescope.documentation:                                     \
+Another clone of an ancient meme, consisting largely of frenetic       \
+rotational motion of colored lines.  This one is by Ron Tapia. The     \
+motion is nice, but I think it needs more solids, or perhaps just      \
+brighter colors.  More variations in the rotational speed might help,  \
+too.
+
+*hacks.xjack.documentation:                                            \
+This program behaves schizophrenically and makes a lot of typos.       \
+Written by Jamie Zawinski.  If you haven't seen Stanley Kubrick's      \
+masterpiece, ``The Shining,'' you won't get it.         Those who have         \
+describe this hack as ``inspired.''
+
+*hacks.xlyap.documentation:                                            \
+This generates pretty fractal pictures by doing funky math involving   \
+the ``Lyapunov exponent.''  It has a cool interactive mode, too.       \
+Written by Ron Record.
+
+*hacks.cynosure.documentation:                                         \
+A hack similar to `greynetic', but less frenetic.  The first           \
+implementation was by Stephen Linhart; then Ozymandias G. Desiderata   \
+wrote a Java applet clone.  That clone was discovered by Jamie         \
+Zawinski, and ported to C for inclusion here.
+
+*hacks.flow.documentation:                                             \
+Another series of strange attractors: a flowing series of points,      \
+making strange rotational shapes.  Written by Jeff Butterworth.
+
+*hacks.epicycle.documentation:                                         \
+This program draws the path traced out by a point on the edge of a     \
+circle.         That circle rotates around a point on the rim of another       \
+circle, and so on, several times. These were the basis for the         \
+pre-heliocentric model of planetary motion.  Written by James          \
+Youngman.
+
+*hacks.interference.documentation:                                     \
+Another color-field hack, this one works by computing decaying         \
+sinusoidal waves, and allowing them to interfere with each other as    \
+their origins move.  Written by Hannu Mallat.
+
+*hacks.truchet.documentation:                                          \
+This draws line- and arc-based Truchet patterns that tile the screen.  \
+Written by Adrian Likins.
+
+*hacks.bsod.name: BSOD
+*hacks.bsod.documentation:                                             \
+BSOD stands for ``Blue Screen of Death.''  The finest in personal      \
+computer emulation, this hack simulates popular screen savers from a   \
+number of less robust operating systems.  Written by Jamie Zawinski.
+
+*hacks.crystal.documentation:                                          \
+Moving polygons, similar to a kaleidescope (more like a kaleidescope   \
+than the hack called `kaleid,' actually.) This one by Jouk Jansen.
+
+*hacks.discrete.documentation:                                         \
+More ``discrete map'' systems, including new variants of Hopalong and  \
+Julia, and a few others.  Written by Tim Auckland.
+
+*hacks.kumppa.documentation:                                           \
+Spiraling, spinning, and very, very fast splashes of color rush                \
+toward the screen.  Written by Teemu Suutari.
+
+*hacks.rd-bomb.name: RD-Bomb
+*hacks.rd-bomb.documentation:                                          \
+Another variation of the `Bomb' program by Scott Draves.  This draws   \
+a grid of growing square-like shapes that, once they overtake each     \
+other, react in unpredictable ways.  ``RD'' stands for                 \
+reaction-diffusion.
+
+*hacks.sonar.documentation:                                            \
+This program draws a simulation of a sonar screen.  Written by         \
+default, it displays a random assortment of ``bogies'' on the screen,  \
+but if compiled properly, it can ping (pun intended) your local                \
+network, and actually plot the proximity of the other hosts on your    \
+network to you.         It would be easy to make it monitor other sources of   \
+data, too.  (Processes?         Active network connections?  CPU usage per     \
+user?) Written by Stephen Martin.
+
+*hacks.t3d.name: T3D
+*hacks.t3d.documentation:                                              \
+This draws a working analog clock composed of floating, throbbing      \
+bubbles.  Written by Bernd Paysan.
+
+*hacks.penetrate.documentation:                                                \
+This hack simulates the classic arcade game Missile Command.  Written  \
+by Adam Miller.
+
+*hacks.deluxe.documentation:                                           \
+This draws a pulsing sequence of stars, circles, and lines.  It would  \
+look better if it was faster, but as far as I can tell, there is no    \
+way to make this be both: fast, and flicker-free.  Yet another reason  \
+X sucks.  Written by Jamie Zawinski.
+
+*hacks.compass.documentation:                                          \
+This draws a compass, with all elements spinning about randomly, for   \
+that ``lost and nauseous'' feeling. Written by Jamie Zawinski.
+
+*hacks.squiral.documentation:                                          \
+Draws a set of interacting, square-spiral-producing automata.  The     \
+spirals grow outward until they hit something, then they go around     \
+it.  Written by Jeff Epler.
+
+*hacks.xflame.documentation:                                           \
+Draws a simulation of pulsing fire.  It can also take an arbitrary     \
+image and set it on fire too.  Written by Carsten Haitzler, hacked on  \
+by many others.
+
+*hacks.wander.documentation:                                           \
+Draws a colorful random-walk, in various forms.         Written by Rick        \
+Campbell.
+
+*hacks.critical.documentation:                                         \
+Draws a system of self-organizing lines.  It starts out as random      \
+squiggles, but after a few iterations, order begins to appear.         \
+Written by Martin Pool.
+
+*hacks.phosphor.documentation:                                         \
+Draws a simulation of an old terminal, with large pixels and           \
+long-sustain phosphor. It can run any program as a source of the text  \
+it displays.  Written by Jamie Zawinski.
+
+*hacks.xmatrix.documentation:                                          \
+A rendition of the text scrolls seen in the movie ``The Matrix.''      \
+Written by Jamie Zawinski.
+
+*hacks.petri.documentation:                                            \
+This simulates colonies of mold growing in a petri dish.  Growing      \
+colored circles overlap and leave spiral interference in their wake.   \
+Written by Dan Bornstein.
+
+*hacks.shadebobs.name: ShadeBobs
+*hacks.shadebobs.documentation:                                                \
+This draws smoothly-shaded oscilating oval patterns, that look         \
+something like vapor trails or neon tubes.  Written by Shane Smit.
+
+*hacks.ccurve.name: C Curve
+*hacks.ccurve.documentation:                                           \
+Generates self-similar linear fractals, including the classic ``C      \
+Curve.''  Written by Rick Campbell.
+
+*hacks.blaster.documentation:                                          \
+Draws a simulation of flying space-combat robots (cleverly disguised   \
+as colored circles) doing battle in front of a moving star field.      \
+Written by Jonathan Lin.
+
+*hacks.bumps.documentation:                                            \
+A bit like `Spotlight', except that instead of merely exposing part    \
+of your desktop, it creates a bump map from it.         Basically, it          \
+3D-izes a roaming section of your desktop, based on color intensity.   \
+Written by Shane Smit.
+
+*hacks.xteevee.name: XTeeVee
+*hacks.xteevee.documentation:                                          \
+XTeeVee simulates various television problems, including static,       \
+loss of vertical hold, and a test pattern.  By Greg Knauss.
+
+*hacks.xspirograph.name: XSpiroGraph
+*hacks.xspirograph.documentation:                                      \
+Simulates that pen-in-nested-plastic-gears toy from your childhood.     \
+By Rohit Singh.
+
+*hacks.nerverot.name: NerveRot
+*hacks.nerverot.documentation:                                          \
+Draws different shapes composed of nervously vibrating squiggles,       \
+as if seen through a camera operated by a monkey on crack.              \
+By Dan Bornstein.
+
+*hacks.webcollage.name: WebCollage
+*hacks.webcollage.documentation:                                       \
+This program makes collages out of random images pulled off of the     \
+World Wide Web.         It finds these images by doing random web searches,    \
+and then extracting images from the returned pages.  It can also be    \
+set up to filter the images through the `VidWhacker' program, above,   \
+which looks really great.                                              \
+                                                                   \n\n\
+(Note that most of the images it finds are text, and not pictures.     \
+This is because most of the web is pictures of text.  Which is pretty  \
+sad.)  Written by Jamie Zawinski.
+
+*hacks.vidwhacker.name: VidWhacker
+*hacks.vidwhacker.documentation:                                       \
+This is actually just a shell script that grabs a frame of video from  \
+the system's video input, and then uses some PBM filters (chosen at    \
+random) to manipulate and recombine the video frame in various ways    \
+(edge detection, subtracting the image from a rotated version of       \
+itself, etc.)  Then it displays that image for a few seconds, and      \
+does it again. This works really well if you just feed broadcast       \
+television into it.                                                    \
+                                                                   \n\n\
+Currently, the three lines of the script that actually grab the                \
+source picture are SGI specific, but it should be trivial to adapt it  \
+to work on other systems that can grab video (please send me the       \
+changes if you do this...)
+
+*hacks.rocks.documentation:                                            \
+This draws an animation of flight through an asteroid field, with      \
+changes in rotation and direction.  It can also display 3D             \
+separations for red/blue glasses!  Mostly written by Jamie Zawinski.
+
+*hacks.bubbles.documentation:                                          \
+This simulates the kind of bubble formation that happens when water    \
+boils:small bubbles appear, and as they get closer to each other,      \
+they combine to form larger bubbles, which eventually pop.  Written    \
+by James Macnicol.
+
+*hacks.gears.documentation:                                            \
+This draws sets of turning, interlocking gears, rotating in three      \
+dimensions.  Another GL hack, by Danny Sung, Brian Paul, Ed Mackey,    \
+and Jamie Zawinski.
+
+*hacks.superquadrics.documentation:                                    \
+Ed Mackey reports that he wrote the first version of this program in   \
+BASIC on a Commodore 64 in 1987, as a 320x200 black and white          \
+wireframe.  Now it is GL and has specular reflections.
+
+*hacks.morph3d.name: Morph3D
+*hacks.morph3d.documentation:                                          \
+Another 3d shape-changing GL hack, by Marcelo Vianna.  It has the      \
+same shiny-plastic feel as Superquadrics, as many computer-generated   \
+objects do...
+
+*hacks.cage.documentation:                                             \
+This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius      \
+strip, and rotates it in three dimensions.  Written by Marcelo         \
+Vianna.
+
+*hacks.moebius.documentation:                                          \
+Another M.  C. Escher hack by Marcelo Vianna, this one draws           \
+``Moebius Strip II,'' a GL image of ants walking along the surface of  \
+a moebius strip.
+
+*hacks.stairs.documentation:                                           \
+by Marcelo Vianna's third Escher GL hack, this one draws an            \
+``infinite'' staircase.
+
+*hacks.pipes.documentation:                                            \
+If you've ever been in the same room with a Windows NT machine,                \
+you've probably seen this GL hack.  This version is by Marcelo         \
+Vianna.
+
+*hacks.sproingies.documentation:                                       \
+Q-Bert meets Marble Madness!  Written by Ed Mackey.
+
+*hacks.rubik.documentation:                                            \
+Draws a Rubik's Cube that rotates in three dimensions and repeatedly   \
+shuffles and solves itself.  Another fine GL hack by Marcelo Vianna.
+
+*hacks.atlantis.documentation:                                         \
+This is xfishtank writ large: a GL animation of a number of sharks,    \
+dolphins, and whales.  The swimming motions are great. Originally      \
+written by Mark Kilgard.
+
+*hacks.lament.documentation:                                           \
+Animates a simulation of Lemarchand's Box, repeatedly solving itself.  \
+Requires OpenGL, and a machine with fast hardware support for texture  \
+maps.  Warning: occasionally opens doors.  Written by Jamie Zawinski.
+
+*hacks.bubble3d.name: Bubble3D
+*hacks.bubble3d.documentation:                                         \
+Draws a stream of rising, undulating 3D bubbles, rising toward the     \
+top of the screen, with nice specular reflections. Written by Richard  \
+Jones.
+
+*hacks.glplanet.name: GLPlanet
+*hacks.glplanet.documentation:                                         \
+Draws a planet bouncing around in space.  Written by David Konerding.  \
+The built-in image is a map of the earth (extracted from `xearth'),    \
+but you can wrap any texture around the sphere, e.g., the planetary    \
+textures that come with `ssystem'.
+
+*hacks.pulsar.documentation:                                           \
+Draws some intersecting planes, making use of alpha blending, fog,     \
+textures, and mipmaps, plus a ``frames per second'' meter so that you  \
+can tell how fast your graphics card is...  Requires OpenGL.  Written  \
+by David Konerding.
+
+*hacks.extrusion.documentation:                                                \
+Draws various rotating extruded shapes that twist around, lengthen,    \
+and turn inside out.  Created by David Konerding from the samples      \
+that come with the GL Extrusion library by Linas Vepstas.
+
+*hacks.sierpinski3d.name: Sierpinski3D
+*hacks.sierpinski3d.documentation:                                     \
+This draws the three-dimensional variant of the recursive Sierpinski   \
+triangle fractal, using GL.  Written by Tim Robinson and Jamie Zawinski.
+
+*hacks.ripples.documentation:                                          \
+This draws rippling interference patterns like splashing water.                \
+With the -water option, it manipulates your desktop image to look      \
+like something is dripping into it.  Written by Tom Hammersley.
+
+*hacks.gflux.name: GFlux
+*hacks.gflux.documentation:                                            \
+Draws a rippling waves on a rotating wireframe grid, using GL.         \
+Written by Josiah Pease.
+
+*hacks.xrayswarm.name: XRaySwarm
+*hacks.xrayswarm.documentation:                                        \
+Draws a few swarms of critters flying around the screen, with nicely   \
+faded color trails behind them.  Written by Chris Leger.
+
+*hacks.zoom.documentation:                                              \
+Zooms in on a part of the screen and then moves around.  With the       \
+-lenses option the result is like looking through many overlapping      \
+lenses rather than just a simple zoom.  Written by James Macnicol.
+
+*hacks.whirlwindwarp.name: WhirlwindWarp
+*hacks.whirlwindwarp.documentation:                                  \
+Floating stars are acted upon by a mixture of simple 2D              \
+forcefields.  The strength of each forcefield changes                \
+continuously, and it is also switched on and off at random.          \
+By Paul 'Joey' Clark.
+
+*hacks.rotzoomer.name: RotZoomer
+*hacks.rotzoomer.documentation:                                      \
+Creates a collage of rotated and scaled portions of the              \
+screen. Written by Claudio Matsuoka.
+
+*hacks.stonerview.name: StonerView
+*hacks.stonerview.documentation:                                     \
+Chains of colorful squares dance around each other in complex spiral \
+patterns.  Written by Andrew Plotkin, based on SGI's `electropaint'  \
+screensaver.
+
+*hacks.starwars.name: StarWars
+*hacks.starwars.documentation:                                       \
+Draws a stream of text slowly scrolling into the distance at an      \
+angle, over a star field, like at the beginning of the movie of the  \
+same name.  Written by Jamie Zawinski and Claudio Matauoka.
+
+*hacks.gltext.name: GLText
+*hacks.gltext.documentation:                                         \
+Displays a few lines of text spinning around in a solid 3D font.     \
+Written by Jamie Zawinski.
+
+*hacks.molecule.documentation:                                       \
+Draws several different representations of molecules.  Some common   \
+molecules are built in, and it can also read PDB (Protein Data Base) \
+files as input.  Written by Jamie Zawinski.
+
+*hacks.dangerball.name: DangerBall
+*hacks.dangerball.documentation:                                     \
+Draws a ball that periodically extrudes many random spikes.  Ouch!   \
+Written by Jamie Zawinski.
+
+
+!=============================================================================
+!
+! Documentation for some programs that are not bundled with XScreenSaver
+!
+!=============================================================================
+
+*hacks.xdaliclock.name: XDaliClock
+*hacks.xdaliclock.documentation:                                       \
+XDaliClock draws a large digital clock, the numbers of which change by \
+``melting'' into their new shapes.  Written by Jamie Zawinski.  This   \
+is not included with the XScreenSaver package, but if you don't have   \
+it already, you can find it at <http://www.jwz.org/xdaliclock/>.
+
+*hacks.xearth.documentation:                                           \
+XEarth draws an image of the Earth, as seen from your favorite vantage \
+point in space, correctly shaded for the current position of the Sun.  \
+Written by Kirk Johnson.  This is not included with the XScreenSaver   \
+package, but if you don't have it already, you can find it at          \
+<http://www.cs.colorado.edu/~tuna/xearth/>.
+
+*hacks.ssystem.name: SSystem
+*hacks.ssystem.documentation:                                          \
+SSystem is a GL Solar System simulator.  It simulates flybys of Sun,   \
+the nine planets and a few major satellites, with four camera modes.   \
+Written by Raul Alonso.  This is not included with the XScreenSaver    \
+package, but if you don't have it already, you can find it at          \
+<http://www1.las.es/~amil/ssystem/>.
+
+*hacks.xmountains.documentation:                                       \
+XMountains generates realistic-looking fractal terrains of snow-capped \
+mountains near water, with either a top view or a side view.           \
+Written by Stephen Booth.  This is not included with the XScreenSaver  \
+package, but if you don't have it already, you can find it at          \
+<http://www.epcc.ed.ac.uk/~spb/xmountains/>.                           \
+                                                                   \n\n\
+Be sure to compile it with -DVROOT or it won't work right when launched        \
+by the xscreensaver daemon.
+
+*hacks.xaos.name: XaoS
+*hacks.xaos.documentation:                                             \
+XaoS generates fast fly-through animations of the Mandelbrot and other \
+fractal sets.  Written by Thomas Marsh and Jan Hubicka.    This is not \
+included with the XScreenSaver package, but if you don't have it       \
+already, you can find it at <http://limax.paru.cas.cz/~hubicka/XaoS/>.
+
+*hacks.xfishtank.name: XFishTank
+*hacks.xfishtank.documentation:                                                \
+Fish!  This is not included with the XScreenSaver package, but if you  \
+don't have it already, you can find it at                               \
+<http://metalab.unc.edu/pub/Linux/X11/demos/>.
+
+*hacks.xsnow.documentation:                                            \
+Draws falling snow and the occasional tiny Santa.  By Rick Jansen.      \
+You can find it at <http://www.euronet.nl/~rja/Xsnow/>.
+
+*hacks.goban.documentation:                                            \
+Replays historical games of go (aka wei-chi and baduk) on the screen.   \
+By Scott Draves.  You can find it at <http://www.draves.org/goban/>.
+
+*hacks.electricsheep.name: ElectricSheep
+*hacks.electricsheep.documentation:                                    \
+ElectricSheep is an xscreensaver module that displays mpeg video of    \
+an animated fractal flame.  In the background, it contributes render   \
+cycles to the next animation.  Periodically it uploades completed      \
+frames to the server, where they are compressed for distribution to    \
+all clients.                                                           \
+                                                                   \n\n\
+This program is recommended only if you have a high bandwidth          \
+connection to the Internet.                                            \
+                                                                   \n\n\
+By Scott Draves.  You can find it at <http://www.electricsheep.org/>.   \
+See that web site for configuration information.
+
+*hacks.cosmos.documentation:                                           \
+Draws fireworks and zooming, fading flares.  By Tom Campbell.           \
+You can find it at <http://www.mindspring.com/~campbell/cosmos/>.
+
+! (xrdb prevention kludge: whole file) */