Distributed by NeXTessories Shareware, May 1,1990

*********************************************************************************************
This is shareware, please send in $5 for registration of each implentation of this program to:

						Nextessories
						MIT Branch 
						P.O. Box 128
						Cambridge, MA
									02139
In addition to you $5 (made payable to "Nextessories"), please include your US-mail address,
phone number and e-mail address.	
					
	Our shareware policy is to provide you with low cost, useful software, however we realize that
even the for most useful program most users are unwilling to send in registration money. This is
program is part of an experimant testing the feasability of software distribution for the NeXT via
shareware. The idea is to initially distribute a crude version of the program, then users who 
register will be entitled to free upgrades. We beleive that this is highly benificial in determining the
desirability of a particular program, encouraging shareware, and efficient evolution (of the program
taht is). Desirability will be measured by number of registered users, comments and desires 
from these users will effect future upgrades. In this way the author will not wast time programming undeseriable features (thus keeping the price low), users can "direct" the evolution of future
upgrades (creating a more useful, quality program). We all benifit from shareware so please, if
you like this program, want to get a free upgrade, and want to see more shareware like this
send in your registration. In addition to encouraging shareware and the upgrade you will be put
on our mailing list so you will be notified of new products (you may of course decline this if you 
wish).

Welcome to Screensaver 0.5 (alpha).
---------------------------------------------------
Screensaver is a program which works on top of the NeXT screensaver.
When the screen would normally dim after the period of time defined in
Preferences, it executes the file "screensaver.aux" when screensaver is running.
This extends even to the login window.

To install the program so that it will start up automatically upon machine startup, use the install script "install_screensaver" provided with the program.

procedure:

1) login as root (or su)
2) cd into the directory in which both "install_screensaver" and
"screensaver" exist.
3) type "install_screensaver"

The script places a line in your rc.local file so that "screensaver"
gets executed every time the machine boots.  Make sure you only run
the install script once so that it doesn't wind up being executed
multiple times when you boot up.  The script also makes the assumption
that a directory "/LocalApps" exists.  If you'd rather the program be
installed somewhere else, just edit the script and replace
"/LocalApps" with the directory you'd like it to be in.

Included are a few example screensavers mostly taken from /NextLibrary/Images/Scene_movies. The example screensavers are located in the directory "screensavers" . You can preview a  screensaver simply by executing it (i.e. type its name). Any executable file (including shell scripts) may be used as a screensaver. To use a particular screensaver file (say "bozobounce") :

1) login as root (or su)
2) cd into the directory of "bozobounce" (say /LocalApps/screensavers).
3) type "rm /LocalApps/screensaver.aux"
4) type "ln -s /LocalApps/screensavers/bozobounce /LocalApps/screensaver.aux"


There are a few other utilities provided:

pscreen --- a sh script which sets up a white window and gray border and allows you to
 dump multiple raw postscript files directly to the screen. 
		   
	  	   syntax:  pscreen file1 file2 file3 ... etc ...
		   
setdimtime --- allows you to select an arbitrary screen dim time. Useful for testing 
screensaver.

		   syntax:  setdimtime  {time} ,   where {time} is a positive integer  and 68 is
		    about 1 second.

getcursor --- Attempt to restore the cursor. 

		   syntax:  getcursor
		   
		   
Creating custom screeensavers:
-------------------------------------------- 

	Creating a custom screensaver is easy! Any executable file will do. Here are a few 
	suggestions:
	
1) Take some of your favorite postscript code and make it repeat indefinitely, re-draw it 
in a random place, or according to some function. See tree for an example
      
2) Use a pswraped function as in the Qix example.

3) Flip between  several screens as in the screens example.

Look over the examples and use your imagination. Keep in mind that your program
should run indefinitely. Screensaver forks the process "screensaver.aux" when screen
is to be saved and  when there is activity, screensaver promptly kill this process first 
with a kill -1 and then later with a kill -9 if kill -1 fails. Keep this in mind when writing
custom applications.

Potential problems:
--------------------------

1) Be careful when using scripts/programs that hide or change the cursor as they may 
permanently hide the cursor. In such cases you may have to execute the file "getcursor"
or some such.
 
2)  Always use full search paths from the root directory to load in auxiliary files from your 
 screensaver file. 
      
3) Excessive disk access and child processes from auxiliary files may cause problems.

4) If you use "canned" code that has its own method of exiting, be sure to either modify
it or remember to exit  the way it expects otherwise unpredicatble results may occur. For
example the Scene_movies usually exit via a mouse click. Since most Scene movies hide
the cursor, an abnormal exit may leave you without a cursor. In this case you could also always
invoke "getcursor" to restore the cursor, but it's better to exit screensave (and Scene_movie)
with a mouse click or simply delete the mouseclick and hidecursor routines.
 
5) Screensavers that use pft or other window server programs may not function in the login window.
If you want your screensaver to extend into the login window be sure it outputs directly to the window
device as with the justblack example.

The next release of Screensaver:
----------------------------------------------

	This is version 0.5 alpha, i.e. a very crude release. The next release will include a 
full user interface for selecting screensavers, creating new screensavers and easy
installation. In addition there will be significant speed and cpu enhancements plus
added sound capabilities and better process cleanup,  lockout positions, smooter trasitions, 
and timed shutoff. Perhaps screensaver.aux will be loaded in at boottime rather than
executed every screensave. Please send in  your registration for upgrades and share any neat screensavers you create. Comments and suggestions are very welcome.

dnp@math.mit.edu

     
