XScreenSaver man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

XScreenSaver(1)					  XScreenSaver(1)

NAME
       xscreensaver  -	extensible  screen  saver framework, plus
       locking

SYNOPSIS
       xscreensaver  [-display	host:display.screen]   [-verbose]
       [-no-capture-stderr] [-no-splash]

DESCRIPTION
       The  xscreensaver  program  waits  until	 the keyboard and
       mouse have been idle for a period, and then runs a  graph
       ics  demo chosen at random.  It turns off as soon as there
       is any mouse or keyboard activity.

       This program can lock your terminal in  order  to  prevent
       others from using it, though its default mode of operation
       is merely to display pretty pictures on your  screen  when
       it is not in use.

       It  also	 provides configuration and control of your moni
       tor's power-saving features.

GETTING STARTED
       For the impatient, try this:

	    xscreensaver &
	    xscreensaver-demo

       The xscreensaver-demo(1) program pops up a dialog box that
       lets  you  configure the screen saver, and experiment with
       the various display modes.

       Note: unlike xlock(1), xscreensaver  has	 a  client-server
       model:  the  xscreensaver program is a daemon that runs in
       the  background;	 it  is	 controlled  by	 the   foreground
       xscreensaver-demo(1) and xscreensaver-command(1) programs.

CONFIGURATION
       The easiest way to configure xscreensaver is to simply run
       the  xscreensaver-demo(1) program, and change the settings
       through the GUI.	 The rest of this manual  page	describes
       lower level ways of changing settings.

       Options	to  xscreensaver are stored in one of two places:
       in a .xscreensaver file in your home directory; or in  the
       X resource database.  If the .xscreensaver file exists, it
       overrides any settings in the resource database.

       The syntax of the .xscreensaver file is similar to that of
       the  .Xdefaults	file;  for  example,  to  set the timeout
       paramter in the .xscreensaver file, you	would  write  the
       following:

	    timeout: 5

       whereas, in the .Xdefaults file, you would write

	    xscreensaver.timeout: 5

       If  you	change	a setting in the .xscreensaver file while
       xscreensaver is already running, it will notice this,  and
       reload the file.	 (The file will be reloaded the next time
       the screen saver needs to take some action, such as blank
       ing  or	unblanking  the screen, or picking a new graphics
       mode.)

       If you change a setting in your X resource database, or if
       you  want  xscreensaver to notice your changes immediately
       instead of the next time it wakes up, then you  will  need
       to  tell the running xscreensaver process to re-initialize
       itself, like so:

	    xscreensaver-command -restart

       Note that if you changed the .Xdefaults	file,  you  might
       also need to run xrdb(1):

	    xrdb < ~/.Xdefaults

       If  you	want  to  set the system-wide defaults, then make
       your edits to the xscreensaver  app-defaults  file,  which
       should  have  been  installed when xscreensaver itself was
       installed.  The app-defaults file will  usually	be  named
       /usr/lib/X11/app-defaults/XScreenSaver, but different sys
       tems might keep it in  a	 different  place  (for	 example,
       /usr/openwin/lib/app-defaults/XScreenSaver on Solaris.)

       When  settings  are  changed in the Preferences dialog box
       (see above) the current settings will be	 written  to  the
       .xscreensaver  file.   (The  .Xdefaults	file and the app-
       defaults	 file  will  never  be	written	 by  xscreensaver
       itself.)

       timeout (class Time)
	       The  screensaver	 will activate (blank the screen)
	       after the keyboard and mouse have  been	idle  for
	       this many minutes.  Default 10 minutes.

       cycle (class Time)
	       After  the  screensaver	has been running for this
	       many minutes, the currently running  graphics-hack
	       sub-process  will  be killed (with SIGTERM), and a
	       new one started.	 If this is 0, then the	 graphics
	       hack will never be changed: only one demo will run
	       until  the  screensaver	is  deactivated	 by  user
	       activity.  Default 10 minutes.

       lock (class Boolean)
	       Enable  locking:	 before the screensaver will turn
	       off, it will require you to type the  password  of
	       the  logged-in  user  (really,  the person who ran
	       xscreensaver), or the root password.  (Note:  this
	       doesn't	work  if  the  screensaver is launched by
	       xdm(1) because it can't know the	 user-id  of  the
	       logged-in user.	See the ``Using XDM(1)'' section,
	       below.

       lockTimeout (class Time)
	       If locking is enabled, this controls the length of
	       the  ``grace period'' between when the screensaver
	       activates, and when  the	 screen	 becomes  locked.
	       For  example,  if  this	is 5, and -timeout is 10,
	       then after 10 minutes, the screen would blank.  If
	       there was user activity at 12 minutes, no password
	       would be required to un-blank the screen.  But, if
	       there  was  user	 activity  at 15 minutes or later
	       (that is, -lock-timeout minutes after  activation)
	       then a password would be required.  The default is
	       0, meaning that if  locking  is	enabled,  then	a
	       password	 will  be  required as soon as the screen
	       blanks.

       passwdTimeout (class Time)
	       If the screen is locked, then  this  is	how  many
	       seconds	the password dialog box should be left on
	       the screen before giving up (default 30	seconds.)
	       This  should  not  be  too  large: the X server is
	       grabbed for the duration that the password  dialog
	       box  is up (for security purposes) and leaving the
	       server grabbed for too long can cause problems.

       dpmsEnabled (class Boolean)
	       Whether power management is enabled.

       dpmsStandby (class Time)
	       If power management is enabled, how long until the
	       monitor goes solid black.

       dpmsSuspend (class Time)
	       If power management is enabled, how long until the
	       monitor goes into power-saving mode.

       dpmsOff (class Time)
	       If power management is enabled, how long until the
	       monitor	powers	down completely.  Note that these
	       settings will have no effect  unless  both  the	X
	       server and the display hardware support power man
	       agement; not all do.   See  the	Power  Management
	       section, below, for more information.

       visualID (class VisualID)
	       Specify	which  X visual to use by default.  (Note
	       carefully that this resource is	called	visualID,
	       not  merely visual; if you set the visual resource
	       instead, things will malfunction in  obscure  ways
	       for obscure reasons.)

	       Legal values for the VisualID resource are:

	       default Use   the  screen's  default  visual  (the
		       visual of the root window.)  This  is  the
		       default.

	       best    Use  the	 visual	 which	supports the most
		       colors.	Note, however,	that  the  visual
		       with  the most colors might be a TrueColor
		       visual, which does  not	support	 colormap
		       animation.  Some programs have more inter
		       esting behavior when  run  on  PseudoColor
		       visuals than on TrueColor.

	       mono    Use  a monochrome visual, if there is one.

	       gray    Use a grayscale or staticgray  visual,  if
		       there  is  one  and  it	has more than one
		       plane (that is, it's not monochrome.)

	       color   Use the best  of	 the  color  visuals,  if
		       there are any.

	       GL      Use  the	 visual	 that  is best for OpenGL
		       programs.  (OpenGL programs have	 somewhat
		       different   requirements	  than	 other	X
		       programs.)

	       class   where class is one of StaticGray,  Static
		       Color,  TrueColor, GrayScale, PseudoColor,
		       or  DirectColor.	  Selects   the	  deepest
		       visual of the given class.

	       number  where  number  (decimal	or hex) is inter
		       preted as a visual id number, as	 reported
		       by  the	xdpyinfo(1)  program; in this way
		       you can have finer  control  over  exactly
		       which  visual  gets  used, for example, to
		       select a shallower one than  would  other
		       wise have been chosen.

	       Note  that  this option specifies only the default
	       visual that will be used: the visual used  may  be
	       overridden on a program-by-program basis.  See the
	       description of the programs resource, below.

       installColormap (class Boolean)
	       Install a private colormap while	 the  screensaver
	       is  active,  so that the graphics hacks can get as
	       many colors as possible.	  This	is  the	 default.
	       (This  only  applies  when  the	screen's  default
	       visual is being used,  since  non-default  visuals
	       get  their own colormaps automatically.)	 This can
	       also be overridden on a per-hack	 basis:	 see  the
	       discussion  of  the  default-n name in the section
	       about the programs resource.

       verbose (class Boolean)
	       Whether to print diagnostics.  Default false.

       timestamp (class Boolean)
	       Whether to print the time of day	 along	with  any
	       other diagnostic messages.  Default false.

       splash (class Boolean)
	       Whether	to  display  a	splash screen at startup.
	       Default true.

       splashDuration (class Time)
	       How long the splash screen should remain	 visible;
	       default 5 seconds.

       helpURL (class URL)
	       The  splash  screen has a Help button on it.  When
	       you press it, it will display the web  page  indi
	       cated here in your web browser.

       loadURL (class LoadURL)
	       This  is the shell command used to load a URL into
	       your web browser.  The default setting  will  load
	       it  into Netscape if it is already running, other
	       wise, will launch a new Netscape	 looking  at  the
	       helpURL.

       demoCommand (class DemoCommand)
	       This is the shell command run when the Demo button
	       on the splash window is pressed.	 It  defaults  to
	       xscreensaver-demo.

       prefsCommand (class PrefsCommand)
	       This  is the shell command run when the Prefs but
	       ton on the splash window is pressed.  It	 defaults
	       to xscreensaver-demo -prefs.

       nice (class Nice)
	       The  sub-processes created by xscreensaver will be
	       ``niced'' to this level, so that	 they  are  given
	       lower priority than other processes on the system,
	       and don't increase the  load  unnecessarily.   The
	       default is 10.

	       (Higher	numbers	 mean lower priority; see nice(1)
	       for details.)

       memoryLimit (class MemoryLimit)
	       The sub-processes created by xscreensaver will not
	       be  allowed to allocate more than this much memory
	       (more accurately, this is the maximum  size  their
	       address	space  may  become.)   If any sub-process
	       tries to allocate more than this,  malloc(3)  will
	       fail,  and the process will likely exit (or safely
	       crash) rather than going forth and hogging memory.

	       The  assumption here is that if one of the screen
	       hacks is trying to use a lot of memory, then some
	       thing has gone wrong, and it's better to kill that
	       program than to overload the machine.

	       Default: 0, meaning "no limit."	 30M  is  a  good
	       choice  on most systems.	 (But beware that setting
	       this to a small value can cause OpenGL programs to
	       malfunction on certain systems.)

       fade (class Boolean)
	       If  this	 is true, then when the screensaver acti
	       vates, the current contents  of	the  screen  will
	       fade to black instead of simply winking out.  This
	       only works on certain systems.  A fade  will  also
	       be  done	 when  switching graphics hacks (when the
	       cycle timer expires.)  Default: true.

       unfade (class Boolean)
	       If this is true, then when the screensaver deacti
	       vates,  the  original  contents of the screen will
	       fade in from black instead  of  appearing  immedi
	       ately.  This only works on certain systems, and if
	       fade is true as well.  Default false.

       fadeSeconds (class Time)
	       If fade is true, this is how long the fade will be
	       in seconds (default 3 seconds.)

       fadeTicks (class Integer)
	       If  fade	 is true, this is how many times a second
	       the colormap will be changed  to	 effect	 a  fade.
	       Higher  numbers yield smoother fades, but may make
	       the fades take longer than the specified	 fadeSec_
	       onds  if your server isn't fast enough to keep up.
	       Default 20.

       captureStderr (class Boolean)
	       Whether xscreensaver should  redirect  its  stdout
	       and  stderr  streams  to the window itself.  Since
	       its nature is to take over the screen,  you  would
	       not  normally  see  error  messages  generated  by
	       xscreensaver or the  sub-programs  it  runs;  this
	       resource	 will  cause  the  output of all relevant
	       programs to be drawn  on	 the  screensaver  window
	       itself,	as  well as being written to the control
	       ling terminal of the screensaver	 driver	 process.
	       Default true.

       font (class Font)
	       The  font used for the stdout/stderr text, if cap
	       tureStderr	 is	   true.	  Default
	       *-medium-r-*-140-*-m-*  (a  14  point  fixed-width
	       font.)

       mode (class Mode)
	       Controls the behavior of xscreensaver.  Legal val
	       ues are:

	       random  When  blanking the screen, select a random
		       display mode from  among	 those	that  are
		       enabled	 and  applicable.   This  is  the
		       default.

	       one     When blanking the screen,  only	ever  use
		       one particular display mode (the one indi
		       cated by the selected setting.)

	       blank   When blanking the screen, just  go  black:
		       don't run any graphics hacks.

	       off     Don't  ever  blank  the	screen, and don't
		       ever allow the monitor to power down.

       selected (class Integer)
	       When mode is set to one, this is	 the  one,  indi
	       cated  by  its index in the programs list.  You're
	       crazy if you count them and  set	 this  number  by
	       hand: let xscreensaver-demo(1) do it for you!

       programs (class Programs)
	       The  graphics  hacks  which xscreensaver runs when
	       the user is idle.  The value of this resource is a
	       string, one sh-syntax command per line.	Each line
	       must contain exactly one command:  no  semicolons,
	       no ampersands.

	       When  the  screensaver  starts up, one of these is
	       selected at random,  and	 run.	After  the  cycle
	       period  expires,	 it  is	 killed,  and  another is
	       selected and run.

	       If a line begins with a dash (-) then that partic
	       ular  program is disabled: it won't be selected at
	       random (though you can still select it  explicitly
	       using the xscreensaver-demo(1) program.)

	       If all programs are disabled, then the screen will
	       just be made blank, as when mode is set to  blank.

	       To disable a program, you must mark it as disabled
	       with a dash instead of removing it from the  list.
	       This is because the system-wide (app-defaults) and
	       per-user	 (.xscreensaver)  settings   are   merged
	       together, and if a user just deletes an entry from
	       their programs list, but that entry  still  exists
	       in  the	system-wide list, then it will come back.
	       However, if the user disables it, then their  set
	       ting takes precedence.

	       If  the	display has multiple screens, then a dif
	       ferent program will be run for each screen.   (All
	       screens are blanked and unblanked simultaniously.)

	       Note that you must escape the newlines; here is an
	       example	 of  how  you  might  set  this	 in  your
	       ~/.xscreensaver file:

		    programs:  \
			   qix -root			      \n\
			   ico -r -faces -sleep 1 -obj ico    \n\
			   xdaliclock -builtin2 -root	      \n\
			   xv -root -rmode 5 image.gif -quit  \n

	       Make sure your $PATH environment variable  is  set
	       up  correctly  before xscreensaver is launched, or
	       it won't be able to find the  programs  listed  in
	       the programs resource.

	       To  use a program as a screensaver, two things are
	       required: that that program draw on the root  win
	       dow  (or	 be  able to be configured to draw on the
	       root window); and  that	that  program  understand
	       ``virtual  root'' windows, as used by virtual win
	       dow managers such as tvtwm(1).	(Generally,  this
	       is  accomplished	 by  just including the "vroot.h"
	       header file in the program's source.)

	       If there are some programs that you  want  to  run
	       only  when  using a color display, and others that
	       you want to run only when using a monochrome  dis
	       play, you can specify that like this:

			   mono:   mono-program	 -root	      \n\
			   color:  color-program -root	      \n\

	       More generally, you can specify the kind of visual
	       that should be used for the window  on  which  the
	       program will be drawing.	 For example, if one pro
	       gram works best if it has a colormap, but  another
	       works  best if it has a 24-bit visual, both can be
	       accommodated:

			   PseudoColor: cmap-program  -root   \n\
			   TrueColor:	24bit-program -root   \n\

	       In addition to the symbolic visual names described
	       above (in the discussion of the visualID resource)
	       one other visual name is supported in the programs
	       list:

		default-n
		    This  is  like default, but also requests the
		    use of the default	colormap,  instead  of	a
		    private colormap.  (That is, it behaves as if
		    the -no-install command-line option was spec
		    ified,  but	 only  for this particular hack.)
		    This is  provided  because	some  third-party
		    programs   that   draw  on	the  root  window
		    (notably: xv(1), and xearth(1)) make  assump
		    tions  about  the  visual and colormap of the
		    root window: assumptions  which  xscreensaver
		    can violate.

	       If  you specify a particular visual for a program,
	       and that visual does not exist on the screen, then
	       that  program  will  not	 be  chosen to run.  This
	       means that on displays with  multiple  screens  of
	       different  depths, you can arrange for appropriate
	       hacks to be run on  each.   For	example,  if  one
	       screen is color and the other is monochrome, hacks
	       that look good in mono can  be  run  on	one,  and
	       hacks that only look good in color will show up on
	       the other.

       Normally you won't need to change the following resources:

       pointerPollTime (class Time)
	       When  server  extensions are not in use, this con
	       trols how frequently xscreensaver checks to see if
	       the   mouse  position  or  buttons  have	 changed.
	       Default 5 seconds.

       windowCreationTimeout (class Time)
	       When server extensions are not in use,  this  con
	       trols  the  delay between when windows are created
	       and when	 xscreensaver  selects	events	on  them.
	       Default 30 seconds.

       initialDelay (class Time)
	       When  server  extensions	 are not in use, xscreen_
	       saver will wait this many seconds before selecting
	       events  on  existing windows, under the assumption
	       that xscreensaver is  started  during  your  login
	       procedure,  and	the  window state may be in flux.
	       Default 0.  (This used to default to 30, but  that
	       was back in the days when slow machines and X ter
	       minals were more common...)

       sgiSaverExtension (class Boolean)
	       There are a number of different	X  server  exten
	       sions  which  can  make xscreensaver's job easier.
	       The  next  few  resources  specify  whether  these
	       extensions  should  be utilized if they are avail
	       able.

	       This   resource	 controls   whether    the    SGI
	       SCREEN_SAVER  server  extension	will  be  used to
	       decide whether the user	is  idle.   This  is  the
	       default	if  xscreensaver  has  been compiled with
	       support for this extension (which is  the  default
	       on   SGI	 systems.).   If  it  is  available,  the
	       SCREEN_SAVER method is faster  and  more	 reliable
	       than what will be done otherwise, so use it if you
	       can.  (This extension is only available on Silicon
	       Graphics systems, unfortunately.)

       mitSaverExtension (class Boolean)
	       This	resource     controls	  whether     the
	       MIT-SCREEN-SAVER server extension will be used  to
	       decide  whether	the  user  is idle.  However, the
	       default for this resource is false,  because  even
	       if  this	 extension is available, it is flaky (and
	       it also makes the fade option not work  properly.)
	       Use of this extension is not recommended.

       xidleExtension (class Boolean)
	       This  resource  controls	 whether the XIDLE server
	       extension will be used to decide whether the  user
	       is  idle.  This is the default if xscreensaver has
	       been compiled with  support  for	 this  extension.
	       (This  extension	 is  only available for X11R4 and
	       X11R5 systems, unfortunately.)

       procInterrupts (class Boolean)
	       This resource controls  whether	the  /proc/inter
	       rupts  file  should be consulted to decide whether
	       the user is idle.  This is the default if xscreen_
	       saver has been compiled on a system which supports
	       this mechanism (i.e., Linux systems.)

	       The benefit to doing this is that xscreensaver can
	       note  that the user is active even when the X con
	       sole is not the active one: if the user is  typing
	       in  another  virtual  console,  xscreensaver  will
	       notice that and will fail to activate.  For  exam
	       ple, if you're playing Quake in VGA-mode, xscreen
	       saver won't wake up in the middle of your game and
	       start competing for CPU.

	       The  drawback  to  doing	 this is that perhaps you
	       really do want idleness on the X console to  cause
	       the  X  display to lock, even if there is activity
	       on other virtual consoles.  If you want that, then
	       set  this  option  to  False.  (Or just lock the X
	       console manually.)

	       The default value for this resource  is	True,  on
	       systems where it works.

       overlayStderr (class Boolean)
	       If captureStderr is True, and your server supports
	       ``overlay'' visuals, then the text will be written
	       into  one of the higher layers instead of into the
	       same layer as the running screenhack.  Set this to
	       False  to  disable that (though you shouldn't need
	       to.)

       overlayTextForeground (class Foreground)
	       The foreground color used  for  the  stdout/stderr
	       text,  if captureStderr is true.	 Default: Yellow.

       overlayTextBackground (class Background)
	       The background color used  for  the  stdout/stderr
	       text, if captureStderr is true.	Default: Black.

       bourneShell (class BourneShell)
	       The  pathname  of the shell that xscreensaver uses
	       to start subprocesses.  This must be whatever your
	       local  variant  of  /bin/sh  is: in particular, it
	       must not be csh.

COMMAND-LINE OPTIONS
       xscreensaver also  accepts  a  few  command-line	 options,
       mostly  for  use when debugging: for normal operation, you
       should configure things via the ~/.xscreensaver file.

       -display host:display.screen
	       The X display to use.  For displays with	 multiple
	       screens,	 XScreenSaver  will manage all screens on
	       the display simultaniously.

       -verbose
	       Same as setting	the  verbose  resource	to  true:
	       print   diagnostics   on	  stderr   and	 on   the
	       xscreensaver window.

       -no-capture-stderr
	       Same as	setting	 the  captureStderr  resource  to
	       false:  do  not	redirect  the  stdout  and stderr
	       streams to the  xscreensaver  window  itself.   If
	       xscreensaver  is	 crashing,  you	 might need to do
	       this in order to see the error message.

HOW IT WORKS
       When it is time to activate the screensaver, a full-screen
       black  window  is  created  on each screen of the display.
       Each window is created in such a way that, to  any  subse
       quently-created programs, it will appear to be a ``virtual
       root'' window.  Because of this, any program  which  draws
       on  the	root window (and which understands virtual roots)
       can be used as a screensaver.

       When the user becomes active again, the	screensaver  win
       dows are unmapped, and the running subprocesses are killed
       by sending them SIGTERM.	 This is  also	how  the  subpro
       cesses  are  killed when the screensaver decides that it's
       time to run a different demo: the old one is killed and	a
       new one is launched.

       Before  launching  a  subprocess,  xscreensaver	stores an
       appropriate value for $DISPLAY in the environment that the
       child  will  receive.   (This  is  so  that  if	you start
       xscreensaver with a -display argument, the programs  which
       xscreensaver  launches  will draw on the same display; and
       so that the child will end up drawing on	 the  appropriate
       screen of a multi-headed display.)

       When  the  screensaver  turns  off,  or is killed, care is
       taken to restore the ``real'' virtual root window if there
       is  one.	  Because  of  this, it is important that you not
       kill the screensaver process with kill -9 if you are  run
       ning  a	virtual-root window manager.  If you kill it with
       -9, you may need to restart your window manager to  repair
       the  damage.   This isn't an issue if you aren't running a
       virtual-root window manager.

       For all the gory details, see the commentary at the top of
       xscreensaver.c.

       You can control a running screensaver process by using the
       xscreensaver-command(1) program (which see.)

POWER MANAGEMENT
       Modern X servers contain support to power down the monitor
       after  an  idle	period.	 If the monitor has powered down,
       then xscreensaver will notice this (after a few	minutes),
       and  will  not  waste  CPU  by drawing graphics demos on a
       black screen.  An attempt will also be made to  explicitly
       power  the  monitor  back  up  as soon as user activity is
       detected.

       As of version 3.28, the ~/.xscreensaver file controls  the
       configuration of your display's power management settings:
       if you have used xset(1) to change your	power  management
       settings,  then	xscreensaver  will override those changes
       with the values specified in ~/.xscreensaver (or with  its
       built-in	 defaults,  if	there  is no ~/.xscreensaver file
       yet.)

       To   change   your   power   management	 settings,    run
       xscreensaver-demo(1)   and  change  the	various	 timeouts
       through the user interface.  Alternately, you can edit the
       ~/.xscreensaver file directly.

       If  the	power  management  section  is	grayed out in the
       xscreensaver-demo(1) window,  then that means that your	X
       server  does  not support the XDPMS extension, and so con
       trol over the monitor's power state is not available.

       If you're using a laptop, don't be surprised  if	 changing
       the DPMS settings has no effect: many laptops have monitor
       power-saving behavior built in at a very low level that is
       invisible  to  Unix and X.  On such systems, you can typi
       cally adjust the power-saving delays only by changing set
       tings in the BIOS in some hardware-specific way.

       If  DPMS	 seems	not to be working with XFree86, make sure
       the "DPMS" option is set in your /etc/X11/XF86Config file.
       See the XF86Config(5) manual for details.

USING XDM(1)
       You can run xscreensaver from your xdm(1) session, so that
       the screensaver will run even when nobody is logged in  on
       the console.

       The  trick to using xscreensaver with xdm is this: keep in
       mind the two very different states in  which  xscreensaver
       will be running:

	   1: Nobody logged in.

	      If you're thinking of running xscreensaver from XDM
	      at all, then it's probably because you want  graph
	      ics  demos to be running on the console when nobody
	      is logged in there.   In	this  case,  xscreensaver
	      will  function only as a screen saver, not a screen
	      locker: it doesn't make sense for	 xscreensaver  to
	      lock  the	 screen,  since	 nobody is logged in yet!
	      The only thing on	 the  screen  is  the  XDM  login
	      prompt.

	   2: Somebody logged in.

	      Once  someone  has  logged in through the XDM login
	      window, the situation is very different.	For exam
	      ple:  now	 it  makes  sense to lock the screen (and
	      prompt for the logged in user's password); and  now
	      xscreensaver should consult that user's ~/.xscreen_
	      saver file; and so on.

       The difference between these two states comes  down  to	a
       question	 of,  which user is the xscreensaver process run
       ning as?	 For the first state, it doesn't matter.  If  you
       start xscreensaver in the usual XDM way, then xscreensaver
       will probably end up running as root, which  is	fine  for
       the first case (the ``nobody logged in'' case.)

       However,	 once someone is logged in, running as root is no
       longer  fine:  because  xscreensaver  will  be  consulting
       root's .xscreensaver file instead of that of the logged in
       user, and won't be prompting  for  the  logged  in  user's
       password,  and  so  on.	 (This is not a security problem,
       it's just not what you want.)

       So, once someone has logged in, you want	 xscreensaver  to
       be running as that user.	 The way to accomplish this is to
       kill the old xscreensaver process and start a new one  (as
       the new user.)

       The simplest way to accomplish all of this is as follows:

	   1: Launch xscreensaver before anyone logs in.

	      To the file /usr/lib/X11/xdm/Xsetup, add the lines

		   xhost +localhost
		   xscreensaver-command -exit
		   xscreensaver &

	      This  will  run  xscreensaver as root, over the XDM
	      login window.  Moving  the  mouse	 will  cause  the
	      screen  to  un-blank,  and  allow	 the user to type
	      their password at XDM to log in.

	   2: Restart xscreensaver when someone logs in.

	      Near the top of the file /usr/lib/X11/xdm/Xsession,
	      add those same lines:

		   xscreensaver-command -exit
		   xscreensaver &

	      When someone logs in, this will kill off the exist
	      ing (root) xscreensaver process, and  start  a  new
	      one,  running  as	 the user who has just logged in.
	      If the user's .xscreensaver file requests	 locking,
	      they'll  get  it.	  They	will  also  get their own
	      choice of timeouts, and graphics demos, and so  on.

	      Alternately,  each  user could just put those lines
	      in their personal ~/.xsession files.

       Make sure you have $PATH set up correctly  in  the  Xsetup
       and  Xsession  scripts,	or  xdm	 won't	be  able  to find
       xscreensaver, and/or xscreensaver won't be  able	 to  find
       its graphics demos.

       (If  your  system does not seem to be executing the Xsetup
       file, you may need to configure it to do	 so:  the  tradi
       tional  way  to	do this is to make that file the value of
       the     DisplayManager*setup	resource      in      the
       /usr/lib/X11/xdm/xdm-config  file.   See	 the man page for
       xdm(1) for more details.)

       It is safe to run xscreensaver as root (as xdm  is  likely
       to  do.)	  If run as root, xscreensaver changes its effec
       tive user and group ids to something safe (like	"nobody")
       before connecting to the X server or launching user-speci
       fied programs.

       An unfortunate side effect of  this  (important)	 security
       precaution  is  that  it	 may  conflict	with cookie-based
       authentication.

       If  you	get  "connection  refused"  errors  when  running
       xscreensaver  from  xdm, then this probably means that you
       have xauth(1) or some other security mechanism turned  on.
       One  way	 around	 this  is  to  add  "xhost +localhost" to
       Xsetup, just before xscreensaver is launched.

       Note that this will give access to the X server to  anyone
       capable	of  logging  in	 to the local machine, so in some
       environments, this might not be appropriate.   If  turning
       off  file-system-based  access  control is not acceptable,
       then running xscreensaver from the Xsetup file  might  not
       be  possible, and xscreensaver will only work when running
       as a normal, unprivileged user.

       For more information on	the  X	server's  access  control
       mechanisms,  see	 the  man  pages  for X(1), Xsecurity(1),
       xauth(1), and xhost(1).

USING GDM(1)
       Using xscreensaver with gdm(1) is easy, because gdm has	a
       configuration  tool.  Just fire up gdmconfig(1) and on the
       Background page, type "xscreensaver  -nosplash"	into  the
       Background  Program  field.   That  will	 cause gdm to run
       xscreensaver while nobody is logged in,	and  kill  it  as
       soon  as	 someone  does	log  in.   (The user will then be
       responsible for starting xscreensaver  on  their	 own,  if
       they want.)

       In  this situation, the xscreensaver process will probably
       be running as user gdm instead of root.	You can configure
       the  settings  for  this nobody-logged-in state (timeouts,
       DPMS, etc.) by editing the ~gdm/.xscreensaver file.

USING CDE (COMMON DESKTOP ENVIRONMENT)
       The easiest way to use xscreensaver on a system	with  CDE
       is  to simply switch off the built-in CDE screensaver, and
       use xscreensaver instead; and second, to	 tell  the  front
       panel to run xscreensaver-command(1) with the -lock option
       when the Lock icon is clicked.

       To accomplish this involves five steps:

	   1: Switch off CDE's locker
	      Do this by turning off ``Screen  Saver  and  Screen
	      Lock''  in the Screen section of the Style Manager.

	   2: Edit sessionetc
	      Edit the file ~/.dt/sessions/sessionetc and add  to
	      it the line

		   xscreensaver &

	      And  make	 sure  the sessionetc file is executable.
	      This will cause xscreensaver to  be  launched  when
	      you  log	in.   (As always, make sure that xscreen
	      saver and the graphics demos are on your $PATH; the
	      path  needs  to be set in .cshrc and/or .dtprofile,
	      not .login.)

	   3: Create XScreenSaver.dt
	      Create a	file  called  ~/.dt/types/XScreenSaver.dt
	      with the following contents:

		   ACTION XScreenSaver
		   {
		     LABEL	   XScreenSaver
		     TYPE	   COMMAND
		     EXEC_STRING   xscreensaver-command -lock
		     ICON	   Dtkey
		     WINDOW_TYPE   NO_STDIO
		   }

	      This  defines  a ``lock'' command for the CDE front
	      panel, that knows how to talk to xscreensaver.

	   4: Create Lock.fp
	      Create a file called ~/.dt/types/Lock.fp	with  the
	      following contents:

		   CONTROL Lock
		   {
		     TYPE	      icon
		     CONTAINER_NAME   Switch
		     CONTAINER_TYPE   SWITCH
		     POSITION_HINTS   1
		     ICON	      Fplock
		     LABEL	      Lock
		     PUSH_ACTION      XScreenSaver
		     HELP_TOPIC	      FPOnItemLock
		     HELP_VOLUME      FPanel
		   }

	      This  associates	the CDE front panel ``Lock'' icon
	      with the lock command we just defined in step 3.

	   5: Restart
	      Select ``Restart Workspace Manager'' from the popup
	      menu  to	make your changes take effect.	If things
	      seem not to be working, check the file ~/.dt/error_
	      log for error messages.

USING HP VUE (VISUAL USER ENVIRONMENT)
       Since  CDE  is  a  descendant of VUE, the instructions for
       using xscreensaver under VUE are similar to the above:

	   1: Switch off VUE's locker
	      Open the ``Style Manager'' and  select  ``Screen.''
	      Turn off ``Screen Saver and Screen Lock'' option.

	   2: Make sure you have a Session
	      Next,  go to the Style Manager's, ``Startup'' page.
	      Click on ``Set Home Session'' to create a	 session,
	      then  on	``Return to Home Session'' to select this
	      session each time you log in.

	   3: Edit vue.session
	      Edit the file ~/.vue/sessions/home/vue.session  and
	      add to it the line

		   vuesmcmd -screen 0 -cmd "xscreensaver"

	      This  will  cause	 xscreensaver to be launched when
	      you log in.  (As always, make  sure  that	 xscreen
	      saver and the graphics demos are on your $PATH; the
	      path needs to be set in .cshrc and/or .profile, not
	      .login.)

	   3: Edit vuewmrc
	      Edit  the	 file  ~/.vue/vuewmrc and add (or change)
	      the Lock control:

		   CONTROL Lock
		   {
		     TYPE	  button
		     IMAGE	  lock
		     PUSH_ACTION  f.exec "xscreensaver-command -lock"
		     HELP_TOPIC	  FPLock
		   }

	      This associates the VUE front panel  ``Lock''  icon
	      with the xscreensaver lock command.

USING KDE (K DESKTOP ENVIRONMENT)
       I  understand  that  KDE	 has  invented	their own wrapper
       around xscreensaver, that  is  inferior	to  xscreensaver-
       demo(1)	in  any number of ways.	 I've never actually seen
       it.  Presumably, there is  some	way  to	 turn  off  KDE's
       screensaver  framework,	and  make  it  so  that the usual
       xscreensaver-demo(1)  and  xscreensaver-command(1)  mecha
       nisms  are used, in a similar way to how one can reconfig
       ure CDE and VUE environments, above.

       But I don't know how.  If you do, please let me know,  and
       I'll document it here.

ADDING TO MENUS
       The xscreensaver-command(1) program is a perfect candidate
       for something to add to your window manager's popup menus.
       If  you	use mwm(1), 4Dwm(1), twm(1), or (probably) any of
       twm's many descendants, you can do it like this:

       1. Create ~/.mwmrc (or ~/.twmrc or ...)
	  If you don't have a  ~/.mwmrc	 file  (or,  on	 SGIs,	a
	  ~/.4Dwmrc  file;  or,	 with  twm, a ~/.twmrc file) then
	  create one by making a copy  of  the	/usr/lib/X11/sys_
	  tem.mwmrc  file  (or /usr/lib/X11/twm/system.twmrc, and
	  so on.)

       2. Add a menu definition.
	  Something like this:

	       menu XScreenSaver
	       {
		"Blank Screen Now" !"sleep 3; xscreensaver-command -activate"
		"Lock Screen Now"  !"sleep 3; xscreensaver-command -lock"
		"Screen Saver Demo"	    !"xscreensaver-demo"
		"Screen Saver Preferences"  !"xscreensaver-demo -prefs"
		"Reinitialize Screen Saver" !"xscreensaver-command -restart"
		"Kill Screen Saver"	    !"xscreensaver-command -exit"
		"Launch Screen Saver"	    !"xscreensaver &"
	       }

       3. Add the menu
	  For mwm(1) and 4Dwm(1), find the section  of	the  file
	  that	says  Menu  DefaultRootMenu.  For twm(1), it will
	  probably be menu "defops".  If you add a line somewhere
	  in that menu definition that reads

		 "XScreenSaver"	       f.menu XScreenSaver

	  then	this  will  add	 an XScreenSaver sub-menu to your
	  default root-window popup menu.  Alternately, you could
	  just	put the xscreensaver menu items directly into the
	  root menu.

       For  Fvwm2,  the	 process  is  similar:	first  create	a
       ~/.fvwm2rc file if you don't already have one, by making a
       copy of the /etc/X11/fvwm2/system.fvwm2rc file.	Then, add
       a menu definition to it:

	    AddToMenu XScreenSaver "XScreenSaver" Title
	    + "Blank Screen Now"	  Exec xscreensaver-command -activate
	    + "Lock Screen Now"		  Exec xscreensaver-command -lock
	    + "Screen Saver Demo"	  Exec xscreensaver-command -demo
	    + "Screen Saver Preferences"  Exec xscreensaver-command -prefs
	    + "Reinitialize Screen Saver" Exec xscreensaver-command -restart
	    + "Kill Screen Saver"	  Exec xscreensaver-command -exit
	    + "Launch Screen Saver"	  Exec xscreensaver
	    + "Run Next Demo"		  Exec xscreensaver-command -next
	    + "Run Previous Demo"	  Exec xscreensaver-command -prev

	    # To put the XScreenSaver sub-menu at the end of the root menu:
	    AddToMenu RootMenu "XScreenSaver" Popup XScreenSaver

       The  Enlightenment  window manager keeps each of its menus
       in a separate file. So, you need to create  a  file  named
       ~/.enlightenment/xscreensaver.menu with the contents:

	    "XScreenSaver Commands"
	     "Blank Screen Now"	   NULL exec "xscreensaver-command -activate"
	     "Lock Screen Now"	   NULL exec "xscreensaver-command -lock"
	     "Screen Saver Demo"   NULL exec "xscreensaver-command -demo"
	     "Screen Saver Prefs"  NULL exec "xscreensaver-command -prefs"
	     "Reinitialize Saver"  NULL exec "xscreensaver-command -restart"
	     "Kill Screen Saver"   NULL exec "xscreensaver-command -exit"
	     "Launch Screen Saver" NULL exec "xscreensaver"

       then add

	     "XScreenSaver"	   NULL menu "xscreensaver.menu"

       to ~/.enlightenment/file.menu to put the XScreenSaver sub
       menu on your left-button root-window menu.

       As you see, every window manager does  this  stuff  gratu
       itously	differently,  just  to	make your life difficult.
       You are in a maze of twisty menu configuration  languages,
       all alike.

BUGS
       Bugs?   There  are no bugs.  Ok, well, maybe.  If you find
       one,  please  let  me  know.   http://www.jwz.org/xscreen
       saver/bugs.html	explains how to construct the most useful
       bug reports.

       Locking and XDM
	       If xscreensaver	has  been  launched  from  xdm(1)
	       before anyone has logged in, you will need to kill
	       and then restart the xscreensaver daemon after you
	       have  logged  in,  or  you will be confused by the
	       results.	 (For example, locking	won't  work,  and
	       your ~/.xscreensaver file will be ignored.)

	       When  you are logged in, you want the xscreensaver
	       daemon to be running under your user  id,  not  as
	       root or some other user.

	       If  it  has  already  been started by xdm, you can
	       kill it by sending it the exit command,	and  then
	       re-launching  it as you, by putting something like
	       the following in your personal X startup script:

		    xscreensaver-command -exit
		    xscreensaver &

	       The ``Using XDM(1)''  section,  above,  goes  into
	       more  detail,  and  explains  how to configure the
	       system to do this for all users automatically.

       Locking and root logins
	       In order for it to be safe for xscreensaver to  be
	       launched	 by  xdm,  certain  precautions had to be
	       taken, among them that xscreensaver never runs  as
	       root.   In  particular,	if it is launched as root
	       (as xdm is likely to do), xscreensaver  will  dis
	       avow  its  privileges, and switch itself to a safe
	       user id (such as nobody.)

	       An implication of this is that if you  log  in  as
	       root  on	 the console, xscreensaver will refuse to
	       lock the screen (because it can't tell the differ
	       ence  between root being logged in on the console,
	       and a normal user being logged in on  the  console
	       but  xscreensaver  having  been	launched  by  the
	       xdm(1) Xsetup file.)

	       The solution to this is simple: you  shouldn't  be
	       logging	in  on	the  console as root in the first
	       place!  (What, are you crazy or something?)

	       Proper Unix hygiene dictates that you  should  log
	       in  as  yourself,  and su(1) to root as necessary.
	       People who spend their day logged in as	root  are
	       just begging for disaster.

       XAUTH and XDM
	       For  xscreensaver to work when launched by xdm(1),
	       programs running on  the	 local	machine	 as  user
	       "nobody"	 must be able to connect to the X server.
	       This means that if you want to run xscreensaver on
	       the  console  while  nobody  is logged in, you may
	       need to disable cookie-based access  control  (and
	       allow  all  users  who  can  log	 in  to the local
	       machine to connect to the display.)

	       You should be sure  that	 this  is  an  acceptable
	       thing  to  do in your environment before doing it.
	       See the ``Using XDM(1)'' section, above, for  more
	       details.

	       If  anyone  has	suggestions  on	 how xscreensaver
	       could be made to work with  xdm(1)  without  first
	       turning	 off  .Xauthority-based	 access	 control,
	       please let me know.

       Passwords
	       If you  get  an	error  message	at  startup  like
	       ``couldn't get password of user'' then this proba
	       bly means that you're on a  system  in  which  the
	       getpwent(3)  library  routine  can  only be effec
	       tively used by root.  If this is	 the  case,  then
	       xscreensaver  must  be installed as setuid to root
	       in order for locking to work.  Care has been taken
	       to make this a safe thing to do.

	       It  also	 may  mean  that  your system uses shadow
	       passwords  instead  of  the  standard  getpwent(3)
	       interface;  in  that  case, you may need to change
	       some options with configure and recompile.

	       If you change your password after xscreensaver has
	       been  launched,	it  will  continue using your old
	       password to unlock the screen  until  xscreensaver
	       is restarted.  So, after you change your password,

	       you'll have to do

		    xscreensaver-command -restart

	       to make xscreensaver notice.

       PAM Passwords
	       If your system uses PAM (Pluggable  Authentication
	       Modules),  then	in  order for xscreensaver to use
	       PAM properly, PAM must be told about xscreensaver.
	       The   xscreensaver   installation  process  should
	       update the PAM data (on	Linux,	by  creating  the
	       file   /etc/pam.d/xscreensaver  for  you,  and  on
	       Solaris, by telling you what lines to add  to  the
	       /etc/pam.conf file.)

	       If  the	PAM configuration files do not know about
	       xscreensaver, then you might  be	 in  a	situation
	       where  xscreensaver will refuse to ever unlock the
	       screen.

	       This is a design flaw in PAM (there is no way  for
	       a  client  to  tell  the	 difference  between  PAM
	       responding ``I have never heard of your	module,''
	       and responding, ``you typed the wrong password.'')
	       As far as I can tell, there is no way for xscreen
	       saver to automatically work around this, or detect
	       the problem in advance, so if you have  PAM,  make
	       sure it is configured correctly!

       Colormap lossage: TWM
	       The  installColormap option doesn't work very well
	       with the twm(1) window  manager	and  its  descen
	       dants.

	       There  is a race condition between the screensaver
	       and this window manager, which can result  in  the
	       screensaver's colormap not getting installed prop
	       erly, meaning the graphics hacks	 will  appear  in
	       essentially  random  colors.   (If the screen goes
	       white instead of black, this is probably why.)

	       The mwm(1) and olwm(1) window managers don't  have
	       this problem.  The race condition exists because X
	       (really, ICCCM) does not	 provide  a  way  for  an
	       OverrideRedirect	 window to have its own colormap,
	       short of grabbing the server (which is  neither	a
	       good  idea,  nor	 really possible with the current
	       design.)	  What	happens	 is  that,  as	soon   as
	       xscreensaver  installs  its colormap, twm responds
	       to  the	resultant  ColormapNotify  event  by  re-
	       instaling  the  default colormap.  Apparently, twm
	       doesn't always do this; it seems to  do	it  regu
	       larly  if the screensaver is activated from a menu
	       item, but seems to not do it  if	 the  screensaver
	       comes on of its own volition, or is activated from
	       another console.

	       Attention, window manager authors!
		   You should only  call  XInstallColormap(3)  in
		   response  to	 user  events.	 That  is,  it is
		   appropriate to install a colormap in	 response
		   to	FocusIn,   FocusOut,   EnterNotify,   and
		   LeaveNotify events; but it is not  appropriate
		   to  call  it	 in  response  to  ColormapNotify
		   events.  If you install colormaps in	 response
		   to  application actions as well as in response
		   to user actions, then you create the situation
		   where  it  is impossible for override-redirect
		   applications (such as xscreensaver) to display
		   their windows in the proper colors.

       Colormap lossage: XV, XAnim, XEarth
	       Some  programs  don't  operate properly on visuals
	       other than the  default	one,  or  with	colormaps
	       other than the default one.  See the discussion of
	       the magic "default-n" visual name in the	 descrip
	       tion of the programs resource in the Configuration
	       section.	 When programs only work with the default
	       colormap, you need to use a syntax like this:

		       default-n: xv -root image-1.gif -quit  \n\
		       default-n: xearth -nostars -wait 0     \n\

	       It would also work to turn off the installColormap
	       option altogether, but that would deny extra  col
	       ors  to	those programs that can take advantage of
	       them.

       Machine Load
	       Although this program ``nices''	the  subprocesses
	       that it starts, graphics-intensive subprograms can
	       still overload the machine by causing the X server
	       process	itself (which is not ``niced'') to suck a
	       lot of cycles.  Care should be taken to slow  down
	       programs	 intended  for	use  as	 screensavers  by
	       inserting strategic calls to sleep(3) or usleep(3)
	       (or making liberal use of any -delay options which
	       the programs may provide.)

	       Note that the OpenGL-based graphics demos are real
	       pigs on machines that don't have texture hardware.

	       Also, an active	screensaver  will  cause  your	X
	       server  to  be pretty much permanently swapped in;
	       but the same is true of	any  program  that  draws
	       periodically, like xclock(1) or xload(1).

       Latency and Responsiveness
	       If  the	subprocess is drawing too quickly and the
	       connection to the X server is a slow one (such  as
	       an  X terminal running over a phone line) then the
	       screensaver might not turn off right away when the
	       user  becomes  active  again  (the ico(1) demo has
	       this problem if being  run  in  full-speed  mode).
	       This  can  be  alleviated  by  inserting strategic
	       calls to XSync(3) in code intended for  use  as	a
	       screensaver.   This  prevents  too  much	 graphics
	       activity from being buffered up.

       XFree86's Magic Keystrokes
	       The  XFree86  X	 server	  traps	  certain   magic
	       keystrokes  before  client programs ever see them.
	       Two that are of note are Ctrl+Alt+Backspace, which
	       causes  the  X  server  to  exit; and Ctrl+Alt+Fn,
	       which switches virtual  consoles.   The	X  server
	       will  respond to these keystrokes even if xscreen
	       saver has the screen locked.   Depending	 on  your
	       setup, you might consider this a problem.

	       Unfortunately,  there  is  no way for xscreensaver
	       itself to override  the	interpretation	of  these
	       keys.   If  you want to disable Ctrl+Alt+Backspace
	       globally, you need to set the DontZap flag in your
	       /etc/X11/XF86Config  file.   See the XF86Config(5)
	       manual for details.

	       There is no way (as far as I can tell) to  disable
	       the VT-switching keystrokes.

	       Some  Linux  systems  come  with	 a  VT_LOCKSWITCH
	       ioctl, that one could theoretically use to prevent
	       VT-switching  while  the	 screen	 is  locked;  but
	       unfortunately, this ioctl  can  only  be	 used  by
	       root,  which  means that xscreensaver can't use it
	       (since  xscreensaver   disavows	 its   privileges
	       shortly after startup, for security reasons.)

	       Any  suggestions for other solutions to this prob
	       lem are welcome.

       XView Clients
	       Apparently there are some problems with XView pro
	       grams  getting  confused	 and  thinking	that  the
	       screensaver window is the real  root  window  even
	       when the screensaver is not active: ClientMessages
	       intended for the window manager are  sent  to  the
	       screensaver  window instead.  This could be solved
	       by making xscreensaver  forward	all  unrecognised
	       ClientMessages  to the real root window, but there
	       may be other problems as well.  If anyone has  any
	       insight	on  the cause of this problem, please let
	       me know.	 (XView is an X11 toolkit that implements
	       the  (quite  abominable)	 Sun  OpenLook	look-and-
	       feel.)

       MIT Extension and Fading
	       The MIT-SCREEN-SAVER extension is junk.	Don't use
	       it.

	       When  using the MIT-SCREEN-SAVER extension in con
	       junction with the fade option,  you'll  notice  an
	       unattractive  flicker just before the fade begins.
	       This is because the server  maps	 a  black  window
	       just  before  it tells the xscreensaver process to
	       activate.  The  xscreensaver  process  immediately
	       unmaps that window, but this results in a flicker.
	       I haven't figured a way	to get	around	this;  it
	       seems  to  be a fundamental property of the (mis-)
	       design of this server extension.

	       It sure would be nice if someone	 would	implement
	       the  SGI	 SCREEN_SAVER  extension in XFree86; it's
	       dead  simple,  and  works  far  better  than   the
	       overengineered  and broken MIT-SCREEN-SAVER exten
	       sion.

       SGI Power Saver
	       If you're running Irix 6.3, you	might  find  that
	       your monitor is powering down after an hour or two
	       even if you've told it not to.  This is	fixed  by
	       SGI patches 2447 and 2537.

	       If  you're  running Irix 6.5, this bug is back.	I
	       don't know a fix.

       MesaGL and Voodoo Cards
	       If  you	have  a	 3Dfx/Voodoo  card,  the  default
	       settings	 for  xscreensaver  will run the GL-based
	       graphics demos in such a way that  they	will  not
	       take  advantage	of  the 3D acceleration hardware.
	       The solution is to change the programs entries for
	       the GL hacks from this:

			   gears -root			      \n\

	       to this:

			   MESA_GLX_FX=fullscreen  gears      \n\

	       That  is,  make	sure  that $MESA_GLX_FX is set to
	       fullscreen, and don't tell the program to draw  on
	       the  root  window.  This may seem strange, but the
	       setup used by Mesa and these  kinds  of	cards  is
	       strange!

	       For those who don't know, these cards work by sit
	       ting between your normal video card and the  moni
	       tor,  and seizing control of the monitor when it's
	       time to do 3D.  But this means that accelerated 3D
	       only  happens in full-screen mode (you can't do it
	       in a window, and you can't see the  output  of  3D
	       and  2D programs simultaniously), and that 3D will
	       probably drive your monitor at a lower resolution,
	       as well.	 It's bizarre.

	       This  probably isn't ever necessary on more modern
	       cards; I'm not sure.

	       If you find that GL programs  only  work	 properly
	       when  run  as  root, and not as normal users, then
	       the problem is that your	 /dev/3dfx  file  is  not
	       configured properly.  Check the Linux 3Dfx FAQ.

       Keyboard LEDs
	       If  procInterrupts  is on (which is the default on
	       Linux systems) and you're using some program  that
	       toggles	the state of your keyboard LEDs, xscreen
	       saver won't work right: turning those LEDs  on  or
	       off  causes  a  keyboard interrupt, which xscreen
	       saver will interpret  as	 user  activity.   So  if
	       you're  using  such  a program, set the procInter_
	       rupts resource to False.

       Extensions
	       If you are not making use of  one  of  the  server
	       extensions   (XIDLE,  SGI  SCREEN_SAVER,	 or  MIT-
	       SCREEN-SAVER), then it is possible, in rare situa
	       tions,  for  xscreensaver  to interfere with event
	       propagation and make another  X	program	 malfunc
	       tion.   For  this to occur, that other application
	       would need to not select KeyPress  events  on  its
	       non-leaf	 windows  within  the first 30 seconds of
	       their existence, but then select for  them  later.
	       In  this	 case,	that client might fail to receive
	       those events.  This isn't very likely, since  pro
	       grams  generally	 select	 a constant set of events
	       immediately after creating their windows and  then
	       don't  change  them,  but  this is the reason that
	       it's a good idea to install and	use  one  of  the
	       server  extensions  instead,  to	 work around this
	       shortcoming in the X protocol.

	       In all these years,  I've  not  heard  of  even	a
	       single case of this happening, but it is theoreti
	       cally possible, so I'm mentioning it for complete
	       ness...

       Red Hot Lava
	       There  need  to	be a lot more graphics hacks.  In
	       particular, there should	 be  a	simulation  of	a
	       Lavalite (tm).

ENVIRONMENT
       DISPLAY to get the default host and display number, and to
	       inform the sub-programs of the screen on which  to
	       draw.

       PATH    to find the sub-programs to run.

       HOME    for  the	 directory in which to read the .xscreen_
	       saver file.

       XENVIRONMENT
	       to get the name of a resource file that	overrides
	       the  global  resources stored in the RESOURCE_MAN
	       AGER property.

UPGRADES
       The latest version of xscreensaver, an online  version  of
       this   manual,	and   a	  FAQ  can  always  be	found  at
       http://www.jwz.org/xscreensaver/

SEE ALSO
       X(1),	xscreensaver-demo(1),	 xscreensaver-command(1),
       xscreensaver-gl-helper(1),  xdm(1), xset(1), Xsecurity(1),
       xauth(1), xhost(1).  ant(1),  atlantis(1),  attraction(1),
       blitspin(1),  bouboule(1), braid(1), bsod(1), bubble3d(1),
       bubbles(1), cage(1),  compass(1),  coral(1),  critical(1),
       crystal(1),    cynosure(1),    decayscreen(1),	 deco(1),
       deluxe(1), demon(1),  discrete(1),  distort(1),	drift(1),
       epicycle(1), fadeplot(1), flag(1), flame(1), flow(1), for
       est(1),	 galaxy(1),   gears(1),	  glplanet(1),	 goop(1),
       grav(1),	 greynetic(1),	halo(1),  helix(1),  hopalong(1),
       hypercube(1),  ifs(1),  imsmap(1),  interference(1),  jig
       saw(1),	julia(1),  kaleidescope(1), kumppa(1), lament(1),
       laser(1),  lightning(1),	 lisa(1),  lissie(1),  lmorph(1),
       loop(1),	  maze(1),   moebius(1),   moire(1),   moire2(1),
       morph3d(1), mountain(1), munch(1),  noseguy(1),	pedal(1),
       penetrate(1), penrose(1), petri(1), phosphor(1), pipes(1),
       pulsar(1),   pyro(1),   qix(1),	 rd-bomb(1),	rocks(1),
       rorschach(1),	 rotor(1),    rubik(1),	   sierpinski(1),
       slidescreen(1), slip(1), sonar(1),  sphere(1),  spiral(1),
       spotlight(1),	sproingies(1),	 squiral(1),   stairs(1),
       starfish(1),   strange(1),   superquadrics(1),	swirl(1),
       t3d(1),	 triangle(1),  truchet(1),  vines(1),  wander(1),
       worm(1),	 xflame(1),   xjack(1),	  xlyap(1),   xmatrix(1),
       bongo(1),  ico(1),  xaos(1),  xbouncebits(1), xcthugha(1),
       xdaliclock(1), xfishtank(1), xmountains(1), xsplinefun(1),
       xswarm(1), xtacy(1), xv(1), chbg(1), xwave(1).

COPYRIGHT
       Copyright    1991,  1992,  1993,	 1994, 1995, 1996, 1997,
       1998, 1999, 2000, 2001, 2002 by Jamie  Zawinski.	  Permis
       sion to use, copy, modify, distribute, and sell this soft
       ware and its  documentation  for	 any  purpose  is  hereby
       granted	without	 fee,  provided	 that the above copyright
       notice appear in all copies and that both  that	copyright
       notice  and  this  permission  notice appear in supporting
       documentation.  No  representations  are	 made  about  the
       suitability  of this software for any purpose.  It is pro
       vided "as is" without express or implied warranty.

AUTHOR
       Jamie Zawinski <jwz@jwz.org>.  Written in late 1991;  ver
       sion 1.0 posted to comp.sources.x on 17-Aug-1992.

       Please  let  me	know  if  you  find  any bugs or make any
       improvements.

ACKNOWLEDGEMENTS
       Thanks to Angela Goodman for the XScreenSaver logo.

       Thanks to the many people who  have  contributed	 graphics
       demos to the package.

       Thanks to David Wojtowicz for implementing lockTimeout.

       Thanks  to  Martin  Kraemer  for adding support for shadow
       passwords and locking-disabled diagnostics.

       Thanks to Patrick Moreau for the VMS port.

       Thanks to Mark Bowyer for figuring out how to hook  it  up
       to CDE.

       Thanks to Nat Lanza for the Kerberos support.

       Thanks to Bill Nottingham for the initial PAM support.

       And  thanks  to	Jon  A.	 Christopher for implementing the
       Athena dialog support, back in the days before Lesstif  or
       Gtk were viable alternatives to Motif.

X Version 11		24-Feb-2002 (4.01)	  XScreenSaver(1)
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net