a screen saver and locker for the X window system
by Jamie Zawinski
+ http://www.jwz.org/xscreensaver/
+
To build on Unix:
- ./configure
configure scripts (those generated by the GNU autoconf system.)
The most important hint is probably this:
- ./configure --includedir=/opt/Motif/include --libdir=/opt/Motif/lib
+ ./configure --with-motif=/opt/Motif --with-xpm=/usr/local
To build on VMS, see README.VMS.
-If you think you've found a bug, please let me know; but first, read
-the enlosed `README.debugging' file to find out what kind of information
-would be most helpful to include in your bug report.
+If you think you've found a bug, please let me know! No bug report is too
+small. But first, please read the enclosed `README.debugging' file to find
+out what kind of information would be most helpful to include in your bug
+report.
Getting Started:
============
-The xscreensaver program waits until the keyboard and mouse have been idle
-for a period, and then runs a graphics demo chosen at random. It turns off
-as soon as there is any mouse or keyboard activity.
-
-The purpose of xscreensaver is to display pretty pictures on your screen
-when it is not in use, in keeping with the philosophy that unattended
-monitors should always be doing something interesting, just like they do
-in the movies.
-
-However, xscreensaver can also be used as a screen locker, to prevent
-others from using your terminal while your are away.
-
-The benefit that this program has over the combination of the xlock and
-xautolock programs is the ease with which new graphics hacks can be
-installed: you don't need to recompile this program to add a new display
-mode, you just change some resource settings. Any program which can be
-invoked in such a way that it draws on the root window of the screen can
-now be used as a screensaver without modification. The programs that
-are being run as screensavers don't need to have any special knowledge
-about what it means to be a screensaver.
-
-The XIDLE, MIT-SCREEN-SAVER, and/or SGI SCREEN_SAVER server extensions
-will be used if you have them.
-
-The dialog boxes (for locking and demo-mode) look best using Motif or
-Lesstif, but can be configured to use Athena widgets instead.
+The xscreensaver daemon waits until the keyboard and mouse have been idle
+for a period, and then runs a graphics demo chosen at random. The demo is
+terminated as soon as there is any mouse or keyboard activity (or, in
+locking mode, when the proper password is typed.)
-Also included are numerous graphics hacks for use as screensavers. There's
-nothing magic about these: they're just programs that draw on the root
-window, which are pointed at by the screensaver's default resource settings.
+It is trivially easy to add new display modes to xscreensaver: any program
+which can be invoked in such a way that it draws on the root window of the
+screen can be used as a screensaver. You just change a resource setting --
+there's no need to recompile or reinstall anything.
- qix - My own implementation of this, with many more options
- than you would have thought qix could have.
- helix - Generates spirally "stringart" patterns.
- pedal - Draws a different kind of spirally pattern.
- rorschach - Random inkblot patterns.
- attraction - A bouncing ball demo, or a qix-like demo, or a wild
- color-cycling thing, with some odd rules.
- greynetic - Random colored/stippled rectangles.
- rocks - Flying through an asteroid field.
- blitspin - Rotate a bitmap using bitblts.
- imsmap - Generates random maps or cloud formations.
- hypercube - 2d projection of a hypercube rotating on all four axes.
- slidescreen - Divides the screen into a grid and plays a 16-puzzle on it.
- decayscreen - A melting effect.
- jigsaw - Turns the screen into a jigsaw puzzle and shuffles it.
- halo - Random circular patterns.
- pyro - Fireworks. Looks a lot like the version in xlock.
- hopalong - Fractals. I snarfed this code from xlock.
- flame - Fractals. Also from xlock.
- noseguy - A guy with a big nose wanders around the screen saying
- things. I snarfed this code from xnlock.
- maze - This is the X maze demo modified to take a -root option
- so that it works with xscreensaver.
- lmorph - morphing line drawings.
- bubbles - condensation forms on your monitor, then pops.
- deco - Generates Brady-Bunch-era wall paneling.
- moire - Circular interference patterns.
- moire2 - More moire.
- kaleidescope - Groovy, man.
- swirl - Swirly color-cycling patterns.
- bouboule - Spinning bubbles on a transparent ball.
- braid - Draws random color-cycling braids around a circle.
- drift - Drifting recursive fractal cosmic flames.
- vines - Small, curvy geometric patterns.
- galaxy - Spinning, colliding galaxies.
- grav - Orbital simulation and/or cloud chamber.
- ifs - Spinning, colliding iterated-function-system shapes.
- julia - Animated rendition of the Julia set.
- laser - Moving radiating lines.
- lightning - Crackling fractal lightning bolts.
- penrose - Quasiperiodic tilings.
- sierpinski - two-dimensional Sierpinski triangle.
- slip - Sucks your desktop through a jet engine.
- spiral - Circular color-cycling interference patterns.
- strange - Animating strange attractors.
- flag - A waving flag of an arbitrary bitmap or text.
- sphere - Draws a bunch of shaded spheres.
- forest - grows a fractal forest.
- lisa - draws animated full-loop lisajous figures.
- lissie - another lisajous path.
- goop - Squishy transparent oil-and-bubble images
- starfish - Radially-symmetric throbbing colormap-hacking blobs.
- munch - The classic 1962-vintage "munching squares" hack.
- rd-bomb - Reaction-diffusion fractals.
- coral - Simulation of coral growth, sort of.
- fadeplot - Draws a swimming ribbon.
- mountain - Generates mountains on a square grid.
- triangle - Generates mountains on a triangular grid.
- worm - Draws wiggly worms.
- rotor - Draws a rotating spiral pattern.
- ant - A cellular automaton.
- xjack - Simulates a schizophrenic typist.
- xlyap - Calculates and displays Lyapunov exponents.
- flow - More strange attractors.
- epicycle - Spiral patterns based on pre-Copernican cosmologies.
- interference - More groovy colored fields.
- truchet - Nonrepeating planar tilings.
- bsod - Simulates the system crashes of various other OSes.
- crystal - A kaleidoscope of moving polygons.
- discrete - Various fractal-ish "discrete map" forms.
- distort - A moving lens wanders around the screen, magnifying it.
- kumppa - Spinning 3D color fields, kinda.
- gears - Draws interlocking rotating gears (GLX only.)
- morph3d - Draws shiny shape-changing 3d forms (GLX only.)
- superquadrics - More shiny shape-changing 3d forms (GLX only.)
- pipes - Generates a field of intertwined plumbing (GLX only.)
- rubik - Solves a Rubik's Cube (GLX only.)
- sproingies - Marble Madness meets Q-Bert (GLX only.)
- stairs - Draws Escher's infinite staircase (GLX only.)
- cage - Draws Escher's impossible cage (GLX only.)
- moebius - Draws Escher's Moebius Strip II (GLX only.)
- atlantis - Draws swimming mammals (GLX only.)
-
-All of these will pop up their own window unless given that -root option.
-See their respective man pages for more details.
-
-Other reasonable things to use as screensavers, if you have them, are
+ ============
- xdaliclock -root -builtin2 - melting digital clock
- xswarm -r 2>&- - swimming sperm
- xwave -root - random 3d graphs
- xbouncebits - bounce arbitrary bitmaps around
- ico -r -p8 -faces -sleep 1 - it's dull, but it's there
- xv -root file.gif -quit - they don't all have to animate!
- xsplinefun - bouncing splines
- xfishtank -c black -d -r 1 - fish (use version 2.0 or later)
- xmountains -b - very realistic generated mountains
- xtacy -root - various eye candy
- xearth -wait 0 -timewarp 400 - the earth as seen from space
- /usr/demos/bin/bongo - an SGI GL demo
- /usr/demos/bin/ep -S - another: the stunning ElectroPaint.
- (Compile hacks/xscreensaver-sgigl.c
- to use these with xscreensaver.)
+Along with the xscreensaver daemon itself, this package also includes
+numerous graphics hacks for use as screensavers. There is nothing magic
+about these: they are just programs that draw on the root window.
-You can get most of these from the contrib directory on ftp.x.org. If you
-know of (or write) any other interesting programs that can be used as
-screensavers, please let me know!
+More than 80 such programs are included. For details, see the xscreensaver
+web page, or the enclosed manual pages. There are also some helpful hints
+on customization in the xscreensaver app-defaults file (normally installed
+in /usr/lib/X11/app-defaults/XScreenSaver.)
The latest version of xscreensaver is always available on the web at
-http://people.netscape.com/jwz/xscreensaver/.
+http://www.jwz.org/xscreensaver/.
- -- Jamie Zawinski <jwz@netscape.com>
+ ============
-\f
+Changes since 2.30: * The cursor was invisible in the password dialog. Fixed.
+ * Made configure warn against MesaGL 2.6.
+ * Fixed X error at startup when using non-default visual.
+ * New version of `crystal', `ant', and `atlantis' from
+ xlockmore.
+ * New hack, `bubble3d'.
+ * Added some new modes to `bsod'.
+Changes since 2.29: * Changed the order in which -lSM and -lICE are linked
+ to be after Motif instead of before (Lesstif on Irix
+ needs this.)
+Changes since 2.28: * Work around a bash bug in configure.
+ * Tweaked HPUX paths again. FTSOHPUX.
+ * Made configure recommend against LessTif 0.86, due
+ to a bug in that version that causes a security hole
+ in the screen locking code. LessTif 0.87 will fix it.
+ * Made all of the `--with' options to `configure' accept
+ a directory option as well (so that --with-motif=/FOO
+ will add -I/FOO/include -L/FOO/lib). I believe this is
+ the Configure Party Line of how do to such things.
+ * Fixed a bug where the mouse was left un-grabbed
+ after the first time the graphics hack was changed
+ (simplified all of the mouse-grabbing logic.)
+ * Maybe possibly perhaps made `vidwhacker' really not
+ leave stray xv windows around. This time for sure.
+ * Added a new erase mode (random dots fizzling out.)
+ * Added `-prefs' argument to `xscreensaver-command',
+ that brings up the Preferences dialog directly (it
+ seems that nobody ever noticed the `Preferences' button
+ on the Demo Mode dialog, maybe this will help.)
+ * Added a splash screen. Turn it off with *splash:false.
+Changes since 2.27: * Better macsbug text in `bsod'.
+ * New version of `distort' with many new modes.
+ * Plugged a leak in `coral'.
+ * Tweaked configure for HPUX.
+ * Removed some compiler warnings.
+ * More consistent usage of stderr versus stdout.
+ * More diagnostics should an X error occur.
+ * Fixed a possible crash in SGI-specific unfading code.
+Changes since 2.26: * Improved version of `distort'.
+ * Made `lament' compile against OpenGL 1.0 (though it
+ still requires 1.1 to work properly.)
+ * Updated my email address and home page.
+Changes since 2.24: * Improved motion in `rd-bomb'.
+ * Added XSHM (shared memory extension) support to the
+ `distort', `interference', `moire', `rd-bomb', and
+ `swirl' hacks, which speeds them up a bit.
+ * Added `lament' hack.
Changes since 2.23: * Tweaked the order of the -L options again.
* Cleaned up configure's --help message.
* Added `kumppa' hack.