I got this great blurb from the Linux version, it has been slightly edited. ------------------------------------------------------------------------------ Installation: Move xlock into /usr/bin/X11 (or wherever your X binaries are). Move XLock.ad into /usr/lib/X11/app-defaults (or wherever your application defaults files are) and rename to XLock. (without the dot) You might want to edit the XLock application defaults file to suit your personal preferences. Move xlock.man to /usr/man/mann/xlock.n Operation: Under X, run xlock. The screen will clear, and some pretty animated picture (exactly which depends on which module is active) will appear on the screen. If you hit a key, then the screen will clear, and (unless you've changed the application defaults file that I packaged with this) you'll get a white screen with some graphics in the top center. These graphics consist of a reduced size image of the module you were viewing, the name of the user who executed xlock, and password prompt field, and some short instructions. At this point, you can either click on the graphic to return to xlock, or you can type a password. If the password is verifiable as the root password, or the password of the user listed above, then xlock will terminate. THIS IS THE ONLY WAY TO STOP XLOCK WITHOUT SHUTTING DOWN THE X SERVER. That's what makes it a lock. XLock is by no means a passive program... It uses quite a bit of CPU, so don't expect to be able to do a compile in the background. XLock is able to nice itself to relieve this problem a bit, but it can only help so much. Resources: There are two sets of resources for XLock. The first set are (what I call) global XLock resources, while the second set consists of module-specific resources. I'll get more into modules a little further below. The global resources are: XLock.mode: This sets the module. More about this later. XLock.font: This is the font used on the password entry screen. XLock.background: The background color for the password entry screen. XLock.foreground: The foreground color for the password entry screen. XLock.username: The label for the field indicating the user name. XLock.password: The label for the password prompt. XLock.info: The "short instructions" to print. XLock.validate: A message to display while checking the password XLock.invalid: A message to display if the password is incorrect XLock.nice: How much XLock should nice itself. XLock.timeout: How long to wait idle at the password prompt. XLock.mono: Monochrome mode (yes or no) XLock.nolock: disable the lock mechanism (yes or no) XLock.remote: allow remote locking (meaningless under linux) XLock.allowroot: allow the root password to unlock (yes or no) XLock.enablesaver: allow the system screensaver to work (yes or no) XLock.allowaccess: allow other clients to connect while active (meaningless under linux) XLock.echokeys: Echo "?" for each password keypress (yes or no) XLock.usefirst: Ignore the first character typed (yes or no) XLock.verbose: Verbose mode. (yes or no) Xlock has a number of modules which it can display. Currently, the modules are: hop (hopalong fractals), QIX (as in the arcade game), world (spining Earths), life (Conway's game of life), swarm (a wasp tries to escape some bees), rotor (truly strange), pyro (fireworks), flame (cosmic flame fractals -- my favorite), worm (crawling multi-colored worms), blank (just a screen blanker). Each module has the following resources defined: XLock..delay: How long to wait between draws (usec) XLock..batchcount: How many draws between initializations XLock..saturation: Saturation (as in HSV) of colors to use. It turns out that each module is characterized by a number of inializations, separated by a number of "draws". It's a little hard to describe exactly what these are without showing you the source code, but let me give you a concrete example: The life module initializes by clearing the screen and initializing the playing field. It then draws the playing field on the screen. In each draw phase, one generation is calculated, and then drawn on the screen. After a certain number of generations, the current game is thrown away, and a fresh one is started. Do-it-Yourselfers: If you want to build your own xlock, you've got two choices. a) Link xlock.a against libX11.a and libm.a: gcc -o xlock xlock.a -lX11 -lm This will give you a good xlock whenever you change your compiler or libraries. b) Get the sources and compile them yourself. You should use the sources that I've uploaded, because the original sources can't compiler under Linux. To build your own xlock.a, just make the object files, then run: ar c xlock.a xlock.o hsbramp.o usleep.o resource.o hopalong.o \ qix.o life.o image.o blank.o swarm.o rotor.o pyro.o \ flame.o worm.o Darren Senn sinster@scintilla.capitola.ca.us 5/12/92