When executed, screensaver splits off a child process to run in the background. The child first reads in a file in bitmap(1) format; the default file is /usr/local/lib/X/Xscreensaver but can be specified by the -b option. This bitmap is bounced (slowly) around the display, and at random times, the angle of reflection will also be at random.
If a file exists with the same name as the bitmap file, but with .pm appended to it, then this bitmap is also read in. The original bitmap is displayed during AM hours and this second bitmap, during PM hours.
If the file is not in bitmap(1) format, it is assumed to be a sequence of lines containing 4 items, separated by white space. The first item is the name of another file (which must be in bitmap(1) format). If a relative pathname is specified, it is relative to the directory of the original file. The second item on the line is the color of this part of the bitmap, and the last two items are the relative x and y coordinate of this bitmap to the whole bitmap. Thus, a full color bitmap can be produced.
By default, the font used to display the time while the bitmap is being bounced around the screen is 9x15. An alternate font may be specified by using the -f option.
The -l option sets the auto-lock feature, that requests the password of the current user before un-blanking the screen (the root password will always unlock the screen).
When the X window system and screensaver are started at boot time, the -L flag should be given with the tty of the login window. This automatically disables the locking feature if no one is logged into the login window.
Normally, screensaver checks the master end of all pseudo-tty's to determine input activity. This is imperfect, as not all applications use pseudo-tty's and mouse activity is not considered at all. If the -i option is specified to the X server, then it will update the file changed time on the specified file when any keyboard or mouse input occurs. Specifying the same -i option and file to screensaver will then cause it to monitor this file and determine when to blank the screen. This option also allows screensaver to run on hosts with multiple displays, as each separate X server could specify a different file to update.
The initial position of the icon is in the upper left-hand corner of the display, but can be set to any other position by using the geometry argument:
The display screensaver will blank is specified in the DISPLAY environment variable, or as display on the command line.
If either the left or right button of the mouse is released while the cursor is in the icon, the display will be instantly blanked. If the middle button is pressed, a menu is displayed, allowing various parameters to be set, such as auto-locking on timeouts and turning on and off the automatic timeouts.