! a screen saver and locker for the X window system
! by Jamie Zawinski
!
-! version 3.20
-! 12-Nov-99
+! version 3.32
+! 15-Apr-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
+*grabDesktopImages: True
+*grabVideoFrames: False
+*chooseRandomImages: False
+*imageDirectory:
*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
! 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.)
"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\
- xroger -root \n\
imsmap -root \n\
slidescreen -root \n\
decayscreen -root \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\
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\
\
-- mono: "Rocks (mono)" rocks -root \n\
- color: "Rocks (color)" rocks -root -fg darksalmon \n\
-- mono: "Qix (xor)" qix -root -linear -count 5 -size 200 \
- -spread 30 -segments 75 -solid -xor \n\
- color: "Attraction (poly)" attraction -root -mode polygons \n\
-- color: "Attraction (filled)" attraction -root -mode filled-splines \
- -segments 0 \n\
-- Color: "Attraction (glow)" attraction -root -glow -points 10 \n\
- color: bubbles -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\
-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
+
-! 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\
-!
-! xtacy is ok, but it only works on the default visual. We can satisfy
-! that constraint like so:
-!
-! default: "Xtacy (funky)" xtacy -root -delay 100 -funky -number 3 \n\
-! default: "Xtacy (grav)" xtacy -root -delay 100 -gravity \n\
-! default: "Xtacy (mixer)" xtacy -root -delay 100 -mixer \n\
-! default: "Xtacy (taffy)" xtacy -root -delay 100 -taffy -pal 4 \n\
-!
! To display a randomized slideshow of images, you can do something like this:
!
! default-n: "Slideshow" xv -root -rmode 5 -random -viewonly \
! (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
*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
*passwd.thermometer.width: 8
*splash.heading.label: XScreenSaver %s
-*splash.body.label: Copyright © 1991-1999 by
+*splash.body.label: Copyright © 1991-2001 by
*splash.body2.label: Jamie Zawinski <jwz@jwz.org>
*splash.demo.label: Demo
*splash.prefs.label: Prefs
!
*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-1999 by Jamie Zawinski <jwz@jwz.org>
-*label2.label: Copyright © 1991-1999 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
*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.)
-!
-XScreenSaver*dragInitiatorProtocolStyle: DRAG_NONE
-XScreenSaver*dragReceiverProtocolStyle: DRAG_NONE
-
+*OK.marginWidth: 30
+*OK.marginHeight: 4
+*OK.leftOffset: 10
+*OK.bottomOffset: 10
+*Cancel.marginWidth: 30
+*Cancel.marginHeight: 4
+*Cancel.rightOffset: 10
+*Cancel.bottomOffset: 10
-! 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*run.label: Run
-*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
!=============================================================================
! sanity check -- hands off.
*hacks.documentation.isInstalled: True
-*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.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 \
This draws random colored and stippled rectangles. Written by Jamie \
Zawinski.
-*hacks.xroger.documentation: \
-The XScreenSaver logo. Don't you hate it? So do I. Would you like \
-to design a new logo for XScreenSaver? If so, send jwz your \
-submissions.
-
*hacks.imsmap.name: IMSmap
*hacks.imsmap.documentation: \
This generates random cloud-like patterns. It looks quite different \
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 \
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 \
by James Macnicol.
*hacks.gears.documentation: \
-This draws a set of turning, interlocking gears, rotating in three \
-dimensions. Another GL hack, by Danny Sung, Brian Paul, and Ed \
-Mackey.
+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 \
*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.
+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.
+
!=============================================================================
!
*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.
+``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.
+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.
+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.
+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) */