--- /dev/null
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+N\bNA\bAM\bME\bE
+ xscreensaver - graphics hack and screen locker, launched
+ when the user is idle
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+ x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br [-display _\bh_\bo_\bs_\bt_\b:_\bd_\bi_\bs_\bp_\bl_\ba_\by_\b._\bs_\bc_\br_\be_\be_\bn] [-timeout _\bi_\bn_\bt]
+ [-cycle _\bi_\bn_\bt] [-lock-mode] [-no-lock-mode] [-lock-timeout
+ _\bi_\bn_\bt] [-visual _\bv_\bi_\bs_\bu_\ba_\bl] [-install] [-no-install] [-verbose]
+ [-silent] [-timestamp] [-capture-stderr] [-no-cap-
+ ture-stderr] [-splash] [-no-splash] [-nice _\bi_\bn_\bt]
+ [-mit-extension] [-no-mit-extension] [-sgi-extension]
+ [-no-sgi-extension] [-xidle-extension] [-no-xidle-exten-
+ sion] [-proc-interrupts] [-no-proc-interrupts] [-xrm
+ _\br_\be_\bs_\bo_\bu_\br_\bc_\be_\bs]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ The _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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.
+
+ The benefit that this program has over the combination of
+ the x\bxl\blo\boc\bck\bk(1) and x\bxa\bau\but\bto\bol\blo\boc\bck\bk(1) programs is the ease with
+ which new graphics hacks can be installed. You don't need
+ to recompile (or even re-run) this program to add a new
+ display mode.
+
+G\bGE\bET\bTT\bTI\bIN\bNG\bG S\bST\bTA\bAR\bRT\bTE\bED\bD
+ For the impatient, try this:
+
+ xscreensaver &
+ xscreensaver-demo
+
+ The x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-d\bde\bem\bmo\bo(1) program should pop up a dialog
+ box that lets you experiment with the xscreensaver set-
+ tings and graphics modes.
+
+ N\bNo\bot\bte\be:\b: unlike x\bxl\blo\boc\bck\bk(1), xscreensaver has a client-server
+ model: the _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br program is a daemon that runs in
+ the background; it is controlled by the foreground
+ x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-d\bde\bem\bmo\bo(1) and x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-c\bco\bom\bmm\bma\ban\bnd\bd(1) programs.
+
+C\bCO\bON\bNF\bFI\bIG\bGU\bUR\bRA\bAT\bTI\bIO\bON\bN
+ Options to _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br are specified in one of two
+ places: in a _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br file in your home directory; or
+ in the X resource database. If the _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br file
+ exists, it overrides any settings in the resource
+ database.
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 1
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ The syntax of the _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br file is similar to that of
+ the _\b._\bX_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bs file; for example, to set the _\bt_\bi_\bm_\be_\bo_\bu_\bt
+ paramter in the _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br file, you would write the
+ following:
+
+ timeout: 5
+
+ whereas, in the _\b._\bX_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bs file, you would write
+
+ xscreensaver.timeout: 5
+
+ If you change a setting in the _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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 _\b._\bX_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bs file, you might
+ also need to run x\bxr\brd\bdb\bb(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
+ _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br file. (The _\b._\bX_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bs file and the app-
+ defaults file will never be written by xscreensaver
+ itself.)
+
+
+ t\bti\bim\bme\beo\bou\but\bt (class T\bTi\bim\bme\be)
+ The screensaver will activate (blank the screen)
+ after the keyboard and mouse have been idle for
+ this many minutes. Default 10 minutes.
+
+ c\bcy\byc\bcl\ble\be (class T\bTi\bim\bme\be)
+ After the screensaver has been running for this
+ many minutes, the currently running graphics-hack
+
+
+
+X Version 11 20-Jun-99 (3.15) 2
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ sub-process will be killed (with S\bSI\bIG\bGT\bTE\bER\bRM\bM), 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.
+
+ l\blo\boc\bck\bk (class B\bBo\boo\bol\ble\bea\ban\bn)
+ 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. (N\bNo\bot\bte\be:\b: this
+ doesn't work if the screensaver is launched by
+ x\bxd\bdm\bm(1) because it can't know the user-id of the
+ logged-in user. See the ``_\bU_\bs_\bi_\bn_\bg _\bX_\bD_\bM_\b(_\b1_\b)'' section,
+ below.
+
+ l\blo\boc\bck\bkT\bTi\bim\bme\beo\bou\but\bt (class T\bTi\bim\bme\be)
+ 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 _\b-_\bt_\bi_\bm_\be_\bo_\bu_\bt 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, _\b-_\bl_\bo_\bc_\bk_\b-_\bt_\bi_\bm_\be_\bo_\bu_\bt 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.
+
+ p\bpa\bas\bss\bsw\bwd\bdT\bTi\bim\bme\beo\bou\but\bt (class T\bTi\bim\bme\be)
+ 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.
+
+ v\bvi\bis\bsu\bua\bal\blI\bID\bD (class V\bVi\bis\bsu\bua\bal\blI\bID\bD)
+ Specify which X visual to use by default. (Note
+ carefully that this resource is called v\bvi\bis\bsu\bua\bal\blI\bID\bD,
+ not merely v\bvi\bis\bsu\bua\bal\bl; if you set the v\bvi\bis\bsu\bua\bal\bl resource
+ instead, things will malfunction in obscure ways
+ for obscure reasons.)
+
+ Legal values for the V\bVi\bis\bsu\bua\bal\blI\bID\bD resource are:
+
+ d\bde\bef\bfa\bau\bul\blt\bt Use the screen's default visual (the
+ visual of the root window.) This is the
+ default.
+
+ b\bbe\bes\bst\bt Use the visual which supports the most
+
+
+
+X Version 11 20-Jun-99 (3.15) 3
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ 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.
+
+ m\bmo\bon\bno\bo Use a monochrome visual, if there is one.
+
+ g\bgr\bra\bay\by Use a grayscale or staticgray visual, if
+ there is one and it has more than one
+ plane (that is, it's not monochrome.)
+
+ c\bco\bol\blo\bor\br Use the best of the color visuals, if
+ there are any.
+
+ G\bGL\bL Use the visual that is best for OpenGL
+ programs. (OpenGL programs have somewhat
+ different requirements than other X pro-
+ grams.)
+
+ _\bc_\bl_\ba_\bs_\bs where _\bc_\bl_\ba_\bs_\bs is one of S\bSt\bta\bat\bti\bic\bcG\bGr\bra\bay\by, S\bSt\bta\bat\bti\bic\bc-\b-
+ C\bCo\bol\blo\bor\br, T\bTr\bru\bue\beC\bCo\bol\blo\bor\br, G\bGr\bra\bay\byS\bSc\bca\bal\ble\be, P\bPs\bse\beu\bud\bdo\boC\bCo\bol\blo\bor\br,
+ or D\bDi\bir\bre\bec\bct\btC\bCo\bol\blo\bor\br. Selects the deepest
+ visual of the given class.
+
+ _\bn_\bu_\bm_\bb_\be_\br where _\bn_\bu_\bm_\bb_\be_\br (decimal or hex) is inter-
+ preted as a visual id number, as reported
+ by the x\bxd\bdp\bpy\byi\bin\bnf\bfo\bo(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 _\bd_\be_\bf_\ba_\bu_\bl_\bt
+ visual that will be used: the visual used may be
+ overridden on a program-by-program basis. See the
+ description of the p\bpr\bro\bog\bgr\bra\bam\bms\bs resource, below.
+
+ i\bin\bns\bst\bta\bal\bll\blC\bCo\bol\blo\bor\brm\bma\bap\bp (class B\bBo\boo\bol\ble\bea\ban\bn)
+ 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 d\bde\bef\bfa\bau\bul\blt\bt-\b-n\bn name in the section
+ about the p\bpr\bro\bog\bgr\bra\bam\bms\bs resource.
+
+ v\bve\ber\brb\bbo\bos\bse\be (class B\bBo\boo\bol\ble\bea\ban\bn)
+ Whether to print diagnostics. Default false.
+
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 4
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ t\bti\bim\bme\bes\bst\bta\bam\bmp\bp (class B\bBo\boo\bol\ble\bea\ban\bn)
+ Whether to print the time of day along with any
+ other diagnostic messages. Default false.
+
+ s\bsp\bpl\bla\bas\bsh\bh (class B\bBo\boo\bol\ble\bea\ban\bn)
+ Whether to display a splash screen at startup.
+ Default true.
+
+ s\bsp\bpl\bla\bas\bsh\bhD\bDu\bur\bra\bat\bti\bio\bon\bn (class T\bTi\bim\bme\be)
+ How long the splash screen should remain visible;
+ default 5 seconds.
+
+ h\bhe\bel\blp\bpU\bUR\bRL\bL (class U\bUR\bRL\bL)
+ The splash screen has a _\bH_\be_\bl_\bp button on it. When
+ you press it, it will display the web page indi-
+ cated here in your web browser.
+
+ l\blo\boa\bad\bdU\bUR\bRL\bL (class L\bLo\boa\bad\bdU\bUR\bRL\bL)
+ 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
+ _\bh_\be_\bl_\bp_\bU_\bR_\bL.
+
+ d\bde\bem\bmo\boC\bCo\bom\bmm\bma\ban\bnd\bd (class D\bDe\bem\bmo\boC\bCo\bom\bmm\bma\ban\bnd\bd)
+ This is the shell command run when the _\bD_\be_\bm_\bo button
+ on the splash window is pressed. It defaults to
+ _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br_\b-_\bd_\be_\bm_\bo.
+
+ p\bpr\bre\bef\bfs\bsC\bCo\bom\bmm\bma\ban\bnd\bd (class P\bPr\bre\bef\bfs\bsC\bCo\bom\bmm\bma\ban\bnd\bd)
+ This is the shell command run when the _\bP_\br_\be_\bf_\bs but-
+ ton on the splash window is pressed. It defaults
+ to _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br_\b-_\bd_\be_\bm_\bo _\b-_\bp_\br_\be_\bf_\bs.
+
+ n\bni\bic\bce\be (class N\bNi\bic\bce\be)
+ The sub-processes created by _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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 n\bni\bic\bce\be(1)
+ for details.)
+
+ f\bfa\bad\bde\be (class B\bBo\boo\bol\ble\bea\ban\bn)
+ 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 displays with writable colormaps,
+ that is, if the screen's default visual is a Pseu-
+ doColor visual. A fade will also be done when
+ switching graphics hacks (when the _\bc_\by_\bc_\bl_\be timer
+ expires.) Default: true.
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 5
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ u\bun\bnf\bfa\bad\bde\be (class B\bBo\boo\bol\ble\bea\ban\bn)
+ 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 displays with writable
+ colormaps, and if _\bf_\ba_\bd_\be is true as well. Default
+ false.
+
+ f\bfa\bad\bde\beS\bSe\bec\bco\bon\bnd\bds\bs (class T\bTi\bim\bme\be)
+ If _\bf_\ba_\bd_\be is true, this is how long the fade will be
+ in seconds (default 3 seconds.)
+
+ f\bfa\bad\bde\beT\bTi\bic\bck\bks\bs (class I\bIn\bnt\bte\beg\bge\ber\br)
+ If _\bf_\ba_\bd_\be 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 _\bf_\ba_\bd_\be_\bS_\be_\bc_\b-
+ _\bo_\bn_\bd_\bs if your server isn't fast enough to keep up.
+ Default 20.
+
+ c\bca\bap\bpt\btu\bur\bre\beS\bSt\btd\bde\ber\brr\br (class B\bBo\boo\bol\ble\bea\ban\bn)
+ Whether _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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.
+
+ f\bfo\bon\bnt\bt (class F\bFo\bon\bnt\bt)
+ The font used for the stdout/stderr text, if c\bca\bap\bp-\b-
+ t\btu\bur\bre\beS\bSt\btd\bde\ber\brr\br is true. Default
+ *\b*-\b-m\bme\bed\bdi\biu\bum\bm-\b-r\br-\b-*\b*-\b-1\b14\b40\b0-\b-*\b*-\b-m\bm-\b-*\b* (a 14 point fixed-width
+ font.)
+
+ p\bpr\bro\bog\bgr\bra\bam\bms\bs (class P\bPr\bro\bog\bgr\bra\bam\bms\bs)
+ The graphics hacks which _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br runs when
+ the user is idle. The value of this resource is a
+ string, one _\bs_\bh-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 _\bc_\by_\bc_\bl_\be
+ period expires, it is killed, and another is
+ selected and run.
+
+ If the value of this resource is empty, then no
+ programs will be run; the screen will simply be
+ made black.
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 6
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ 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
+ _\b~_\b/_\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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 $\b$P\bPA\bAT\bTH\bH environment variable is set
+ up correctly _\bb_\be_\bf_\bo_\br_\be xscreensaver is launched, or
+ it won't be able to find the programs listed in
+ the _\bp_\br_\bo_\bg_\br_\ba_\bm_\bs 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 t\btv\bvt\btw\bwm\bm(1). (Generally, this
+ is accomplished by just including the _\b"_\bv_\br_\bo_\bo_\bt_\b._\bh_\b"
+ 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 _\bv_\bi_\bs_\bu_\ba_\bl_\bI_\bD resource)
+ one other visual name is supported in the _\bp_\br_\bo_\bg_\br_\ba_\bm_\bs
+ list:
+
+ d\bde\bef\bfa\bau\bul\blt\bt-\b-n\bn
+ This is like d\bde\bef\bfa\bau\bul\blt\bt, but also requests the
+
+
+
+X Version 11 20-Jun-99 (3.15) 7
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ use of the default colormap, instead of a
+ private colormap. (That is, it behaves as if
+ the _\b-_\bn_\bo_\b-_\bi_\bn_\bs_\bt_\ba_\bl_\bl 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: x\bxv\bv(1), and x\bxe\bea\bar\brt\bth\bh(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:
+
+
+ p\bpo\boi\bin\bnt\bte\ber\brP\bPo\bol\bll\blT\bTi\bim\bme\be (class T\bTi\bim\bme\be)
+ When server extensions are not in use, this con-
+ trols how frequently _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br checks to see if
+ the mouse position or buttons have changed.
+ Default 5 seconds.
+
+ w\bwi\bin\bnd\bdo\bow\bwC\bCr\bre\bea\bat\bti\bio\bon\bnT\bTi\bim\bme\beo\bou\but\bt (class T\bTi\bim\bme\be)
+ When server extensions are not in use, this con-
+ trols the delay between when windows are created
+ and when _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br selects events on them.
+ Default 30 seconds.
+
+ i\bin\bni\bit\bti\bia\bal\blD\bDe\bel\bla\bay\by (class T\bTi\bim\bme\be)
+ When server extensions are not in use, _\bx_\bs_\bc_\br_\be_\be_\bn_\b-
+ _\bs_\ba_\bv_\be_\br will wait this many seconds before selecting
+ events on existing windows, under the assumption
+ that _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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...)
+
+ s\bsg\bgi\biS\bSa\bav\bve\ber\brE\bEx\bxt\bte\ben\bns\bsi\bio\bon\bn (class B\bBo\boo\bol\ble\bea\ban\bn)
+ 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.
+
+
+
+X Version 11 20-Jun-99 (3.15) 8
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ This resource controls whether the SGI
+ S\bSC\bCR\bRE\bEE\bEN\bN_\b_S\bSA\bAV\bVE\bER\bR server extension will be used to
+ decide whether the user is idle. This is the
+ default if _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br has been compiled with
+ support for this extension (which is the default
+ on SGI systems.). If it is available, the
+ S\bSC\bCR\bRE\bEE\bEN\bN_\b_S\bSA\bAV\bVE\bER\bR 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.)
+
+ m\bmi\bit\btS\bSa\bav\bve\ber\brE\bEx\bxt\bte\ben\bns\bsi\bio\bon\bn (class B\bBo\boo\bol\ble\bea\ban\bn)
+ This resource controls whether the
+ M\bMI\bIT\bT-\b-S\bSC\bCR\bRE\bEE\bEN\bN-\b-S\bSA\bAV\bVE\bER\bR server extension will be used to
+ decide whether the user is idle. However, the
+ default for this resource is _\bf_\ba_\bl_\bs_\be, because even
+ if this extension is available, it is flaky (and
+ it also makes the f\bfa\bad\bde\be option not work properly.)
+ Use of this extension is not recommended.
+
+ x\bxi\bid\bdl\ble\beE\bEx\bxt\bte\ben\bns\bsi\bio\bon\bn (class B\bBo\boo\bol\ble\bea\ban\bn)
+ This resource controls whether the X\bXI\bID\bDL\bLE\bE server
+ extension will be used to decide whether the user
+ is idle. This is the default if _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br has
+ been compiled with support for this extension.
+ (This extension is only available for X11R4 and
+ X11R5 systems, unfortunately.)
+
+ p\bpr\bro\boc\bcI\bIn\bnt\bte\ber\brr\bru\bup\bpt\bts\bs (class B\bBo\boo\bol\ble\bea\ban\bn)
+ This resource controls whether the /\b/p\bpr\bro\boc\bc/\b/i\bin\bnt\bte\ber\br-\b-
+ r\bru\bup\bpt\bts\bs file should be consulted to decide whether
+ the user is idle. This is the default if _\bx_\bs_\bc_\br_\be_\be_\bn_\b-
+ _\bs_\ba_\bv_\be_\br has been compiled on a system which supports
+ this mechanism (i.e., Linux systems.)
+
+ The benefit to doing this is that _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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
+ _\br_\be_\ba_\bl_\bl_\by _\bd_\bo 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.
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 9
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ o\bov\bve\ber\brl\bla\bay\byS\bSt\btd\bde\ber\brr\br (class B\bBo\boo\bol\ble\bea\ban\bn)
+ If c\bca\bap\bpt\btu\bur\bre\beS\bSt\btd\bde\ber\brr\br 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.)
+
+ o\bov\bve\ber\brl\bla\bay\byT\bTe\bex\bxt\btF\bFo\bor\bre\beg\bgr\bro\bou\bun\bnd\bd (class F\bFo\bor\bre\beg\bgr\bro\bou\bun\bnd\bd)
+ The foreground color used for the stdout/stderr
+ text, if c\bca\bap\bpt\btu\bur\bre\beS\bSt\btd\bde\ber\brr\br is true. Default: Yellow.
+
+ o\bov\bve\ber\brl\bla\bay\byT\bTe\bex\bxt\btB\bBa\bac\bck\bkg\bgr\bro\bou\bun\bnd\bd (class B\bBa\bac\bck\bkg\bgr\bro\bou\bun\bnd\bd)
+ The background color used for the stdout/stderr
+ text, if c\bca\bap\bpt\btu\bur\bre\beS\bSt\btd\bde\ber\brr\br is true. Default: Black.
+
+ b\bbo\bou\bur\brn\bne\beS\bSh\bhe\bel\bll\bl (class B\bBo\bou\bur\brn\bne\beS\bSh\bhe\bel\bll\bl)
+ The pathname of the shell that _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br uses
+ to start subprocesses. This must be whatever your
+ local variant of /\b/b\bbi\bin\bn/\b/s\bsh\bh is: in particular, it
+ must not be c\bcs\bsh\bh.
+
+C\bCO\bOM\bMM\bMA\bAN\bND\bD-\b-L\bLI\bIN\bNE\bE O\bOP\bPT\bTI\bIO\bON\bNS\bS
+ _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br also accepts the following command line
+ options. Except for the _\b-_\bd_\bi_\bs_\bp_\bl_\ba_\by option, these command-
+ line options are all simply shorthand for the X resources
+ described in the _\bC_\bo_\bn_\bf_\bi_\bg_\bu_\br_\ba_\bt_\bi_\bo_\bn section, above.
+
+ -\b-d\bdi\bis\bsp\bpl\bla\bay\by _\bh_\bo_\bs_\bt_\b:_\bd_\bi_\bs_\bp_\bl_\ba_\by_\b._\bs_\bc_\br_\be_\be_\bn
+ The X display to use. For displays with multiple
+ screens, XScreenSaver will manage all screens on
+ the display simultaniously; the _\bs_\bc_\br_\be_\be_\bn argument
+ (the ``default'' screen) says which screen should
+ be used for dialog boxes (the password window,
+ _\bD_\be_\bm_\bo _\bM_\bo_\bd_\be, etc.)
+
+ -\b-t\bti\bim\bme\beo\bou\but\bt _\bm_\bi_\bn_\bu_\bt_\be_\bs
+ Same as the _\bt_\bi_\bm_\be_\bo_\bu_\bt resource.
+
+ -\b-c\bcy\byc\bcl\ble\be _\bm_\bi_\bn_\bu_\bt_\be_\bs
+ Same as the _\bc_\by_\bc_\bl_\be resource.
+
+ -\b-l\blo\boc\bck\bk-\b-m\bmo\bod\bde\be
+ Same as setting the _\bl_\bo_\bc_\bk resource to _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-l\blo\boc\bck\bk-\b-m\bmo\bod\bde\be
+ Same as setting the _\bl_\bo_\bc_\bk resource to _\bf_\ba_\bl_\bs_\be.
+
+ -\b-l\blo\boc\bck\bk-\b-t\bti\bim\bme\beo\bou\but\bt _\bm_\bi_\bn_\bu_\bt_\be_\bs
+ Same as the _\bl_\bo_\bc_\bk_\bT_\bi_\bm_\be_\bo_\bu_\bt resource.
+
+ -\b-v\bvi\bis\bsu\bua\bal\bl _\bv_\bi_\bs_\bu_\ba_\bl
+ Same as the _\bv_\bi_\bs_\bu_\ba_\bl_\bI_\bD resource.
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 10
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ -\b-i\bin\bns\bst\bta\bal\bll\bl
+ Same as setting the _\bi_\bn_\bs_\bt_\ba_\bl_\bl_\bC_\bo_\bl_\bo_\br_\bm_\ba_\bp resource to
+ _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-i\bin\bns\bst\bta\bal\bll\bl
+ Same as setting the _\bi_\bn_\bs_\bt_\ba_\bl_\bl_\bC_\bo_\bl_\bo_\br_\bm_\ba_\bp resource to
+ _\bf_\ba_\bl_\bs_\be.
+
+ -\b-v\bve\ber\brb\bbo\bos\bse\be
+ Same as setting the _\bv_\be_\br_\bb_\bo_\bs_\be resource to _\bt_\br_\bu_\be.
+
+ -\b-s\bsi\bil\ble\ben\bnt\bt Same as setting the _\bv_\be_\br_\bb_\bo_\bs_\be resource to _\bf_\ba_\bl_\bs_\be.
+
+ -\b-t\bti\bim\bme\bes\bst\bta\bam\bmp\bp
+ Same as setting the _\bt_\bi_\bm_\be_\bs_\bt_\ba_\bm_\bp resource to _\bt_\br_\bu_\be.
+
+ -\b-c\bca\bap\bpt\btu\bur\bre\be-\b-s\bst\btd\bde\ber\brr\br
+ Same as setting the _\bc_\ba_\bp_\bt_\bu_\br_\be_\bS_\bt_\bd_\be_\br_\br resource to
+ _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-c\bca\bap\bpt\btu\bur\bre\be-\b-s\bst\btd\bde\ber\brr\br
+ Same as setting the _\bc_\ba_\bp_\bt_\bu_\br_\be_\bS_\bt_\bd_\be_\br_\br resource to
+ _\bf_\ba_\bl_\bs_\be.
+
+ -\b-s\bsp\bpl\bla\bas\bsh\bh Same as setting the _\bs_\bp_\bl_\ba_\bs_\bh resource to _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-s\bsp\bpl\bla\bas\bsh\bh
+ Same as setting the _\bs_\bp_\bl_\ba_\bs_\bh resource to _\bf_\ba_\bl_\bs_\be.
+
+ -\b-n\bni\bic\bce\be _\bi_\bn_\bt_\be_\bg_\be_\br
+ Same as the _\bn_\bi_\bc_\be resource.
+
+ -\b-s\bsg\bgi\bi-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn
+ Same as setting the _\bs_\bg_\bi_\bS_\ba_\bv_\be_\br_\bE_\bx_\bt_\be_\bn_\bs_\bi_\bo_\bn resource to
+ _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-s\bsg\bgi\bi-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn
+ Same as setting the _\bs_\bg_\bi_\bS_\ba_\bv_\be_\br_\bE_\bx_\bt_\be_\bn_\bs_\bi_\bo_\bn resource to
+ _\bf_\ba_\bl_\bs_\be.
+
+ -\b-m\bmi\bit\bt-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn
+ Same as setting the _\bm_\bi_\bt_\bS_\ba_\bv_\be_\br_\bE_\bx_\bt_\be_\bn_\bs_\bi_\bo_\bn resource to
+ _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-m\bmi\bit\bt-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn
+ Same as setting the _\bm_\bi_\bt_\bS_\ba_\bv_\be_\br_\bE_\bx_\bt_\be_\bn_\bs_\bi_\bo_\bn resource to
+ _\bf_\ba_\bl_\bs_\be.
+
+ -\b-x\bxi\bid\bdl\ble\be-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn
+ Same as setting the _\bx_\bi_\bd_\bl_\be_\bE_\bx_\bt_\be_\bn_\bs_\bi_\bo_\bn resource to
+ _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-x\bxi\bid\bdl\ble\be-\b-e\bex\bxt\bte\ben\bns\bsi\bio\bon\bn
+ Same as setting the _\bx_\bi_\bd_\bl_\be_\bE_\bx_\bt_\be_\bn_\bs_\bi_\bo_\bn resource to
+
+
+
+X Version 11 20-Jun-99 (3.15) 11
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ _\bf_\ba_\bl_\bs_\be.
+
+ -\b-p\bpr\bro\boc\bc-\b-i\bin\bnt\bte\ber\brr\bru\bup\bpt\bts\bs
+ Same as setting the _\bp_\br_\bo_\bc_\bI_\bn_\bt_\be_\br_\br_\bu_\bp_\bt_\bs resource to
+ _\bt_\br_\bu_\be.
+
+ -\b-n\bno\bo-\b-p\bpr\bro\boc\bc-\b-i\bin\bnt\bte\ber\brr\bru\bup\bpt\bts\bs
+ Same as setting the _\bp_\br_\bo_\bc_\bI_\bn_\bt_\be_\br_\br_\bu_\bp_\bt_\bs resource to
+ _\bf_\ba_\bl_\bs_\be.
+
+ -\b-x\bxr\brm\bm _\br_\be_\bs_\bo_\bu_\br_\bc_\be_\b-_\bs_\bp_\be_\bc_\bi_\bf_\bi_\bc_\ba_\bt_\bi_\bo_\bn
+ As with all other Xt programs, you can specify X
+ resources on the command-line using the _\b-_\bx_\br_\bm argu-
+ ment. Most of the interesting resources have com-
+ mand-line equivalents, however.
+
+H\bHO\bOW\bW I\bIT\bT W\bWO\bOR\bRK\bKS\bS
+ 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 S\bSI\bIG\bGT\bTE\bER\bRM\bM. 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, _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br stores an
+ appropriate value for $\b$D\bDI\bIS\bSP\bPL\bLA\bAY\bY in the environment that the
+ child will recieve. (This is so that if you start
+ _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br with a _\b-_\bd_\bi_\bs_\bp_\bl_\ba_\by argument, the programs which
+ _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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 _\bk_\bi_\bl_\bl _\b-_\b9 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
+ x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-c\bco\bom\bmm\bma\ban\bnd\bd(1) program (which see.)
+
+
+
+X Version 11 20-Jun-99 (3.15) 12
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+P\bPO\bOW\bWE\bER\bR M\bMA\bAN\bNA\bAG\bGE\bEM\bME\bEN\bNT\bT
+ Modern X servers contain support to power down the monitor
+ after an idle period. If the monitor has powered down,
+ then _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br will notice this, 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.
+
+ If your X server supports power management, then x\bxs\bse\bet\bt(1)
+ will accept a d\bdp\bpm\bms\bs option. So, if you wanted _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br
+ to activate after 5 minutes, but you wanted your monitor
+ to power down after one hour (3600 seconds) you would do
+ this:
+
+ xset dpms 3600
+
+ See the man page for the x\bxs\bse\bet\bt(1) program for details.
+ (Note that power management requires both software support
+ in the X server, and hardware support in the monitor
+ itself.)
+
+U\bUS\bSI\bIN\bNG\bG X\bXD\bDM\bM(\b(1\b1)\b)
+ You can run _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br from your x\bxd\bdm\bm(1) session, so that
+ the screensaver will run even when nobody is logged in on
+ the console.
+
+ The trick to using xscreensaver with _\bx_\bd_\bm is this: keep in
+ mind the two very different states in which xscreensaver
+ will be running:
+
+ 1\b1:\b: N\bNo\bob\bbo\bod\bdy\by l\blo\bog\bgg\bge\bed\bd i\bin\bn.\b.
+
+ 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\b2:\b: S\bSo\bom\bme\beb\bbo\bod\bdy\by l\blo\bog\bgg\bge\bed\bd i\bin\bn.\b.
+
+ 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 _\b~_\b/_\b._\bx_\bs_\bc_\br_\be_\be_\bn_\b-
+ _\bs_\ba_\bv_\be_\br file; and so on.
+
+ The difference between these two states comes down to a
+ question of, which user is the _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br process run-
+ ning as? For the first state, it doesn't matter. If you
+
+
+
+X Version 11 20-Jun-99 (3.15) 13
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ start _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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 _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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\b1:\b: L\bLa\bau\bun\bnc\bch\bh x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br b\bbe\bef\bfo\bor\bre\be a\ban\bny\byo\bon\bne\be l\blo\bog\bgs\bs i\bin\bn.\b.
+
+ To the file _\b/_\bu_\bs_\br_\b/_\bl_\bi_\bb_\b/_\bX_\b1_\b1_\b/_\bx_\bd_\bm_\b/_\bX_\bs_\be_\bt_\bu_\bp, add the lines
+
+ 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\b2:\b: R\bRe\bes\bst\bta\bar\brt\bt x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br w\bwh\bhe\ben\bn s\bso\bom\bme\beo\bon\bne\be l\blo\bog\bgs\bs i\bin\bn.\b.
+
+ Near the top of the file _\b/_\bu_\bs_\br_\b/_\bl_\bi_\bb_\b/_\bX_\b1_\b1_\b/_\bx_\bd_\bm_\b/_\bX_\bs_\be_\bs_\bs_\bi_\bo_\bn,
+ 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 _\b~_\b/_\b._\bx_\bs_\be_\bs_\bs_\bi_\bo_\bn files.
+
+ Make sure you have $\b$P\bPA\bAT\bTH\bH set up correctly in the _\bX_\bs_\be_\bt_\bu_\bp
+ and _\bX_\bs_\be_\bs_\bs_\bi_\bo_\bn scripts, or _\bx_\bd_\bm won't be able to find
+ _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br, and/or _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br won't be able to find
+ its graphics demos.
+
+ (If your system does not seem to be executing the _\bX_\bs_\be_\bt_\bu_\bp
+
+
+
+X Version 11 20-Jun-99 (3.15) 14
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ 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 _\bD_\bi_\bs_\bp_\bl_\ba_\by_\bM_\ba_\bn_\ba_\bg_\be_\br_\b*_\bs_\be_\bt_\bu_\bp resource in the
+ _\b/_\bu_\bs_\br_\b/_\bl_\bi_\bb_\b/_\bX_\b1_\b1_\b/_\bx_\bd_\bm_\b/_\bx_\bd_\bm_\b-_\bc_\bo_\bn_\bf_\bi_\bg file. See the man page for
+ x\bxd\bdm\bm(1) for more details.)
+
+ It is safe to run _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br as root (as _\bx_\bd_\bm is likely
+ to do.) If run as root, _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br changes its effec-
+ tive user and group ids to something safe (like _\b"_\bn_\bo_\bb_\bo_\bd_\by_\b")
+ 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
+ _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br from _\bx_\bd_\bm, then this probably means that you
+ have x\bxa\bau\but\bth\bh(1) or some other security mechanism turned on.
+ One way around this is to add "\b"x\bxh\bho\bos\bst\bt +\b+l\blo\boc\bca\bal\blh\bho\bos\bst\bt"\b" to
+ _\bX_\bs_\be_\bt_\bu_\bp, just before _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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 _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br from the _\bX_\bs_\be_\bt_\bu_\bp 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\bX(1), X\bXs\bse\bec\bcu\bur\bri\bit\bty\by(1),
+ x\bxa\bau\but\bth\bh(1), and x\bxh\bho\bos\bst\bt(1).
+
+U\bUS\bSI\bIN\bNG\bG C\bCD\bDE\bE (\b(C\bCO\bOM\bMM\bMO\bON\bN D\bDE\bES\bSK\bKT\bTO\bOP\bP E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT)\b)
+ The easiest way to use _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br on a system with CDE
+ is to simply switch off the built-in CDE screensaver, and
+ use _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br instead; and second, to tell the front
+ panel to run x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-c\bco\bom\bmm\bma\ban\bnd\bd(1) with the _\b-_\bl_\bo_\bc_\bk option
+ when the _\bL_\bo_\bc_\bk icon is clicked.
+
+ To accomplish this involves five steps:
+
+ 1\b1:\b: S\bSw\bwi\bit\btc\bch\bh o\bof\bff\bf C\bCD\bDE\bE'\b's\bs l\blo\boc\bck\bke\ber\br
+ Do this by turning off ``_\bS_\bc_\br_\be_\be_\bn _\bS_\ba_\bv_\be_\br _\ba_\bn_\bd _\bS_\bc_\br_\be_\be_\bn
+ _\bL_\bo_\bc_\bk'' in the Screen section of the Style Manager.
+
+ 2\b2:\b: E\bEd\bdi\bit\bt s\bse\bes\bss\bsi\bio\bon\bne\bet\btc\bc
+ Edit the file _\b~_\b/_\b._\bd_\bt_\b/_\bs_\be_\bs_\bs_\bi_\bo_\bn_\bs_\b/_\bs_\be_\bs_\bs_\bi_\bo_\bn_\be_\bt_\bc and add to
+ it the line
+
+ xscreensaver &
+
+ This will cause _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br to be launched when
+
+
+
+X Version 11 20-Jun-99 (3.15) 15
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ you log in. (As always, make sure that xscreen-
+ saver and the graphics demos are on your $\b$P\bPA\bAT\bTH\bH; the
+ path needs to be set in _\b._\bc_\bs_\bh_\br_\bc and/or _\b._\bd_\bt_\bp_\br_\bo_\bf_\bi_\bl_\be,
+ not _\b._\bl_\bo_\bg_\bi_\bn.)
+
+ 3\b3:\b: C\bCr\bre\bea\bat\bte\be X\bXS\bSc\bcr\bre\bee\ben\bnS\bSa\bav\bve\ber\br.\b.d\bdt\bt
+ Create a file called _\b~_\b/_\b._\bd_\bt_\b/_\bt_\by_\bp_\be_\bs_\b/_\bX_\bS_\bc_\br_\be_\be_\bn_\bS_\ba_\bv_\be_\br_\b._\bd_\bt
+ 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 _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br.
+
+ 4\b4:\b: C\bCr\bre\bea\bat\bte\be L\bLo\boc\bck\bk.\b.f\bfp\bp
+ Create a file called _\b~_\b/_\b._\bd_\bt_\b/_\bt_\by_\bp_\be_\bs_\b/_\bL_\bo_\bc_\bk_\b._\bf_\bp 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\b5:\b: R\bRe\bes\bst\bta\bar\brt\bt
+ Select ``_\bR_\be_\bs_\bt_\ba_\br_\bt _\bW_\bo_\br_\bk_\bs_\bp_\ba_\bc_\be _\bM_\ba_\bn_\ba_\bg_\be_\br'' from the popup
+ menu to make your changes take effect. If things
+ seem not to be working, check the file _\b~_\b/_\b._\bd_\bt_\b/_\be_\br_\br_\bo_\br_\b-
+ _\bl_\bo_\bg for error messages.
+
+U\bUS\bSI\bIN\bNG\bG H\bHP\bP V\bVU\bUE\bE (\b(V\bVI\bIS\bSU\bUA\bAL\bL U\bUS\bSE\bER\bR E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT)\b)
+ Since CDE is a descendant of VUE, the instructions for
+ using xscreensaver under VUE are similar to the above:
+
+ 1\b1:\b: S\bSw\bwi\bit\btc\bch\bh o\bof\bff\bf V\bVU\bUE\bE'\b's\bs l\blo\boc\bck\bke\ber\br
+ Open the ``_\bS_\bt_\by_\bl_\be _\bM_\ba_\bn_\ba_\bg_\be_\br'' and select ``_\bS_\bc_\br_\be_\be_\bn.''
+ Turn off ``_\bS_\bc_\br_\be_\be_\bn _\bS_\ba_\bv_\be_\br _\ba_\bn_\bd _\bS_\bc_\br_\be_\be_\bn _\bL_\bo_\bc_\bk'' option.
+
+
+
+X Version 11 20-Jun-99 (3.15) 16
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ 2\b2:\b: M\bMa\bak\bke\be s\bsu\bur\bre\be y\byo\bou\bu h\bha\bav\bve\be a\ba S\bSe\bes\bss\bsi\bio\bon\bn
+ Next, go to the Style Manager's, ``_\bS_\bt_\ba_\br_\bt_\bu_\bp'' page.
+ Click on ``_\bS_\be_\bt _\bH_\bo_\bm_\be _\bS_\be_\bs_\bs_\bi_\bo_\bn'' to create a session,
+ then on ``_\bR_\be_\bt_\bu_\br_\bn _\bt_\bo _\bH_\bo_\bm_\be _\bS_\be_\bs_\bs_\bi_\bo_\bn'' to select this
+ session each time you log in.
+
+ 3\b3:\b: E\bEd\bdi\bit\bt v\bvu\bue\be.\b.s\bse\bes\bss\bsi\bio\bon\bn
+ Edit the file _\b~_\b/_\b._\bv_\bu_\be_\b/_\bs_\be_\bs_\bs_\bi_\bo_\bn_\bs_\b/_\bh_\bo_\bm_\be_\b/_\bv_\bu_\be_\b._\bs_\be_\bs_\bs_\bi_\bo_\bn and
+ add to it the line
+
+ vuesmcmd -screen 0 -cmd "xscreensaver"
+
+ This will cause _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br to be launched when
+ you log in. (As always, make sure that xscreen-
+ saver and the graphics demos are on your $\b$P\bPA\bAT\bTH\bH; the
+ path needs to be set in _\b._\bc_\bs_\bh_\br_\bc and/or _\b._\bp_\br_\bo_\bf_\bi_\bl_\be, not
+ _\b._\bl_\bo_\bg_\bi_\bn.)
+
+ 3\b3:\b: E\bEd\bdi\bit\bt v\bvu\bue\bew\bwm\bmr\brc\bc
+ Edit the file _\b~_\b/_\b._\bv_\bu_\be_\b/_\bv_\bu_\be_\bw_\bm_\br_\bc 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.
+
+
+A\bAD\bDD\bDI\bIN\bNG\bG T\bTO\bO M\bME\bEN\bNU\bUS\bS
+ The x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-c\bco\bom\bmm\bma\ban\bnd\bd(1) program is a perfect candidate
+ for something to add to your window manager's popup menus.
+ If you use m\bmw\bwm\bm(1), 4\b4D\bDw\bwm\bm(1), t\btw\bwm\bm(1), or (probably) any of
+ _\bt_\bw_\bm's many descendants, you can do it like this:
+
+ 1\b1.\b. C\bCr\bre\bea\bat\bte\be ~\b~/\b/.\b.m\bmw\bwm\bmr\brc\bc (\b(o\bor\br ~\b~/\b/.\b.t\btw\bwm\bmr\brc\bc o\bor\br .\b..\b..\b.)\b)
+ If you don't have a _\b~_\b/_\b._\bm_\bw_\bm_\br_\bc file (or, on SGIs, a
+ _\b~_\b/_\b._\b4_\bD_\bw_\bm_\br_\bc file; or, with twm, a _\b~_\b/_\b._\bt_\bw_\bm_\br_\bc file) then
+ create one by making a copy of the _\b/_\bu_\bs_\br_\b/_\bl_\bi_\bb_\b/_\bX_\b1_\b1_\b/_\bs_\by_\bs_\b-
+ _\bt_\be_\bm_\b._\bm_\bw_\bm_\br_\bc file (or _\b/_\bu_\bs_\br_\b/_\bl_\bi_\bb_\b/_\bX_\b1_\b1_\b/_\bt_\bw_\bm_\b/_\bs_\by_\bs_\bt_\be_\bm_\b._\bt_\bw_\bm_\br_\bc, and
+ so on.)
+
+ 2\b2.\b. A\bAd\bdd\bd a\ba m\bme\ben\bnu\bu d\bde\bef\bfi\bin\bni\bit\bti\bio\bon\bn.\b.
+ Something like this:
+
+ menu XScreenSaver
+ {
+ "Blank Screen Now" !"sleep 3; xscreensaver-command -activate"
+ "Lock Screen Now" !"sleep 3; xscreensaver-command -lock"
+
+
+
+X Version 11 20-Jun-99 (3.15) 17
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ "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\b3.\b. A\bAd\bdd\bd t\bth\bhe\be m\bme\ben\bnu\bu
+ For m\bmw\bwm\bm(1) and 4\b4D\bDw\bwm\bm(1), find the section of the file
+ that says _\bM_\be_\bn_\bu _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bR_\bo_\bo_\bt_\bM_\be_\bn_\bu. For t\btw\bwm\bm(1), it will
+ probably be _\bm_\be_\bn_\bu _\b"_\bd_\be_\bf_\bo_\bp_\bs_\b". 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.
+
+ Other window managers are guaranteed to do things gratu-
+ itously differently.
+
+B\bBU\bUG\bGS\bS
+ 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.
+
+ L\bLo\boc\bck\bki\bin\bng\bg a\ban\bnd\bd X\bXD\bDM\bM
+ If xscreensaver has been launched from x\bxd\bdm\bm(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 _\b~_\b/_\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br file will be ignored.)
+
+ When you are logged in, you want the _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br
+ daemon to be running under _\by_\bo_\bu_\br user id, not as
+ root or some other user.
+
+ If it has already been started by _\bx_\bd_\bm, you can
+ kill it by sending it the e\bex\bxi\bit\bt 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 ``_\bU_\bs_\bi_\bn_\bg _\bX_\bD_\bM_\b(_\b1_\b)'' section, above, goes into
+ more detail, and explains how to configure the
+ system to do this for all users automatically.
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 18
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ L\bLo\boc\bck\bki\bin\bng\bg a\ban\bnd\bd r\bro\boo\bot\bt l\blo\bog\bgi\bin\bns\bs
+ In order for it to be safe for xscreensaver to be
+ launched by _\bx_\bd_\bm, certain precautions had to be
+ taken, among them that xscreensaver never runs as
+ _\br_\bo_\bo_\bt. In particular, if it is launched as root
+ (as _\bx_\bd_\bm is likely to do), xscreensaver will dis-
+ avow its privileges, and switch itself to a safe
+ user id (such as _\bn_\bo_\bb_\bo_\bd_\by.)
+
+ An implication of this is that if you log in as
+ _\br_\bo_\bo_\bt on the console, xscreensaver will refuse to
+ lock the screen (because it can't tell the differ-
+ ence between _\br_\bo_\bo_\bt being logged in on the console,
+ and a normal user being logged in on the console
+ but xscreensaver having been launched by the
+ x\bxd\bdm\bm(1) _\bX_\bs_\be_\bt_\bu_\bp file.)
+
+ The solution to this is simple: you shouldn't be
+ logging in on the console as _\br_\bo_\bo_\bt in the first
+ place! (What, are you crazy or something?)
+
+ Proper Unix hygiene dictates that you should log
+ in as yourself, and s\bsu\bu(1) to _\br_\bo_\bo_\bt as necessary.
+ People who spend their day logged in as _\br_\bo_\bo_\bt are
+ just begging for disaster.
+
+ X\bXA\bAU\bUT\bTH\bH a\ban\bnd\bd X\bXD\bDM\bM
+ For xscreensaver to work when launched by x\bxd\bdm\bm(1),
+ programs running on the local machine as user
+ _\b"_\bn_\bo_\bb_\bo_\bd_\by_\b" 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 ``_\bU_\bs_\bi_\bn_\bg _\bX_\bD_\bM_\b(_\b1_\b)'' section, above, for more
+ details.
+
+ If anyone has suggestions on how xscreensaver
+ could be made to work with x\bxd\bdm\bm(1) without first
+ turning off _\b._\bX_\ba_\bu_\bt_\bh_\bo_\br_\bi_\bt_\by-based access control,
+ please let me know.
+
+ P\bPa\bas\bss\bsw\bwo\bor\brd\bds\bs
+ If you get an error message at startup like
+ ``couldn't get password of _\bu_\bs_\be_\br'' then this proba-
+ bly means that you're on a system in which the
+ g\bge\bet\btp\bpw\bwe\ben\bnt\bt(3) library routine can only be effec-
+ tively used by root. If this is the case, then
+ _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br must be installed as setuid to root
+ in order for locking to work. Care has been taken
+
+
+
+X Version 11 20-Jun-99 (3.15) 19
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ to make this a safe thing to do.
+
+ It also may mean that your system uses shadow
+ passwords instead of the standard g\bge\bet\btp\bpw\bwe\ben\bnt\bt(3)
+ interface; in that case, you may need to change
+ some options with _\bc_\bo_\bn_\bf_\bi_\bg_\bu_\br_\be 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 _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br notice.
+
+ P\bPA\bAM\bM P\bPa\bas\bss\bsw\bwo\bor\brd\bds\bs
+ 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 _\b/_\be_\bt_\bc_\b/_\bp_\ba_\bm_\b._\bd_\b/_\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br for you, and on
+ Solaris, by telling you what lines to add to the
+ _\b/_\be_\bt_\bc_\b/_\bp_\ba_\bm_\b._\bc_\bo_\bn_\bf file.)
+
+ If the PAM configuration files do not know about
+ xscreensaver, then you _\bm_\bi_\bg_\bh_\bt 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!
+
+ C\bCo\bol\blo\bor\brm\bma\bap\bp l\blo\bos\bss\bsa\bag\bge\be:\b: T\bTW\bWM\bM
+ The i\bin\bns\bst\bta\bal\bll\blC\bCo\bol\blo\bor\brm\bma\bap\bp option doesn't work very well
+ with the t\btw\bwm\bm(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 m\bmw\bwm\bm(1) and o\bol\blw\bwm\bm(1) window managers don't have
+
+
+
+X Version 11 20-Jun-99 (3.15) 20
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ 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, t\btw\bwm\bm responds
+ to the resultant C\bCo\bol\blo\bor\brm\bma\bap\bpN\bNo\bot\bti\bif\bfy\by event by re-
+ instaling the default colormap. Apparently, t\btw\bwm\bm
+ doesn't _\ba_\bl_\bw_\ba_\by_\bs 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.
+
+ A\bAt\btt\bte\ben\bnt\bti\bio\bon\bn,\b, w\bwi\bin\bnd\bdo\bow\bw m\bma\ban\bna\bag\bge\ber\br a\bau\but\bth\bho\bor\brs\bs!\b!
+ You should only call X\bXI\bIn\bns\bst\bta\bal\bll\blC\bCo\bol\blo\bor\brm\bma\bap\bp(3) in
+ response to user events. That is, it is
+ appropriate to install a colormap in response
+ to F\bFo\boc\bcu\bus\bsI\bIn\bn, F\bFo\boc\bcu\bus\bsO\bOu\but\bt, E\bEn\bnt\bte\ber\brN\bNo\bot\bti\bif\bfy\by, and
+ L\bLe\bea\bav\bve\beN\bNo\bot\bti\bif\bfy\by events; but it is not appropriate
+ to call it in response to C\bCo\bol\blo\bor\brm\bma\bap\bpN\bNo\bot\bti\bif\bfy\by
+ events. If you install colormaps in response
+ to _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn actions as well as in response
+ to _\bu_\bs_\be_\br 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.
+
+ C\bCo\bol\blo\bor\brm\bma\bap\bp l\blo\bos\bss\bsa\bag\bge\be:\b: X\bXV\bV,\b, X\bXA\bAn\bni\bim\bm,\b, X\bXE\bEa\bar\brt\bth\bh
+ 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 p\bpr\bro\bog\bgr\bra\bam\bms\bs resource in the _\bC_\bo_\bn_\bf_\bi_\bg_\bu_\br_\ba_\bt_\bi_\bo_\bn
+ 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 i\bin\bns\bst\bta\bal\bll\blC\bCo\bol\blo\bor\brm\bma\bap\bp
+ option altogether, but that would deny extra col-
+ ors to those programs that _\bc_\ba_\bn take advantage of
+ them.
+
+ M\bMa\bac\bch\bhi\bin\bne\be L\bLo\boa\bad\bd
+ 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 s\bsl\ble\bee\bep\bp(3) or u\bus\bsl\ble\bee\bep\bp(3)
+
+
+
+X Version 11 20-Jun-99 (3.15) 21
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ (or making liberal use of any _\b-_\bd_\be_\bl_\ba_\by 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 x\bxc\bcl\blo\boc\bck\bk(1) or x\bxl\blo\boa\bad\bd(1).
+
+ L\bLa\bat\bte\ben\bnc\bcy\by a\ban\bnd\bd R\bRe\bes\bsp\bpo\bon\bns\bsi\biv\bve\ben\bne\bes\bss\bs
+ 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 i\bic\bco\bo(1) demo has
+ this problem if being run in full-speed mode).
+ This can be alleviated by inserting strategic
+ calls to X\bXS\bSy\byn\bnc\bc(3) in code intended for use as a
+ screensaver. This prevents too much graphics
+ activity from being buffered up.
+
+ X\bXF\bFr\bre\bee\be8\b86\b6'\b's\bs M\bMa\bag\bgi\bic\bc K\bKe\bey\bys\bst\btr\bro\bok\bke\bes\bs
+ 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+F_\bn,
+ 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 _\bD_\bo_\bn_\bt_\bZ_\ba_\bp flag in your
+ _\b/_\be_\bt_\bc_\b/_\bX_\b1_\b1_\b/_\bX_\bF_\b8_\b6_\bC_\bo_\bn_\bf_\bi_\bg file. See the X\bXF\bF8\b86\b6C\bCo\bon\bnf\bfi\big\bg(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.
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 22
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ X\bXV\bVi\bie\bew\bw C\bCl\bli\bie\ben\bnt\bts\bs
+ 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.)
+
+ M\bMI\bIT\bT E\bEx\bxt\bte\ben\bns\bsi\bio\bon\bn a\ban\bnd\bd F\bFa\bad\bdi\bin\bng\bg
+ The M\bMI\bIT\bT-\b-S\bSC\bCR\bRE\bEE\bEN\bN-\b-S\bSA\bAV\bVE\bER\bR extension is junk. Don't use
+ it.
+
+ When using the M\bMI\bIT\bT-\b-S\bSC\bCR\bRE\bEE\bEN\bN-\b-S\bSA\bAV\bVE\bER\bR extension in con-
+ junction with the f\bfa\bad\bde\be 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 _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br process to
+ activate. The _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br 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 S\bSG\bGI\bI S\bSC\bCR\bRE\bEE\bEN\bN_\b_S\bSA\bAV\bVE\bER\bR extension in XFree86; it's
+ dead simple, and works far better than the
+ overengineered and broken M\bMI\bIT\bT-\b-S\bSC\bCR\bRE\bEE\bEN\bN-\b-S\bSA\bAV\bVE\bER\bR exten-
+ sion.
+
+ S\bSG\bGI\bI P\bPo\bow\bwe\ber\br S\bSa\bav\bve\ber\br
+ 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.
+
+ M\bMe\bes\bsa\baG\bGL\bL a\ban\bnd\bd V\bVo\boo\bod\bdo\boo\bo C\bCa\bar\brd\bds\bs
+ If you have a 3Dfx/Voodoo card, the default set-
+ tings 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 p\bpr\bro\bog\bgr\bra\bam\bms\bs entries for
+
+
+
+
+
+
+X Version 11 20-Jun-99 (3.15) 23
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ the GL hacks from this:
+
+ gears -root \n\
+
+ to this:
+
+ MESA_GLX_FX=fullscreen gears \n\
+
+ That is, make sure that $\b$M\bME\bES\bSA\bA_\b_G\bGL\bLX\bX_\b_F\bFX\bX is set to
+ _\bf_\bu_\bl_\bl_\bs_\bc_\br_\be_\be_\bn, 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 _\bi_\bs
+ 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.
+
+ If you find that GL programs only work properly
+ when run as root, and not as normal users, then
+ the problem is that your _\b/_\bd_\be_\bv_\b/_\b3_\bd_\bf_\bx file is not
+ configured properly. Check the Linux 3Dfx FAQ.
+
+ K\bKe\bey\byb\bbo\boa\bar\brd\bd L\bLE\bED\bDs\bs
+ If _\bp_\br_\bo_\bc_\bI_\bn_\bt_\be_\br_\br_\bu_\bp_\bt_\bs 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 _\bp_\br_\bo_\bc_\bI_\bn_\bt_\be_\br_\b-
+ _\br_\bu_\bp_\bt_\bs resource to False.
+
+ E\bEx\bxt\bte\ben\bns\bsi\bio\bon\bns\bs
+ If you are not making use of one of the server
+ extensions (X\bXI\bID\bDL\bLE\bE, S\bSG\bGI\bI S\bSC\bCR\bRE\bEE\bEN\bN_\b_S\bSA\bAV\bVE\bER\bR, or M\bMI\bIT\bT-\b-
+ S\bSC\bCR\bRE\bEE\bEN\bN-\b-S\bSA\bAV\bVE\bER\bR), then it is possible, in rare situa-
+ tions, for _\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br to interfere with event
+ propagation and make another X program malfunc-
+ tion. For this to occur, that other application
+ would need to _\bn_\bo_\bt select K\bKe\bey\byP\bPr\bre\bes\bss\bs 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 _\bm_\bi_\bg_\bh_\bt 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
+
+
+
+X Version 11 20-Jun-99 (3.15) 24
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ 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 sin-
+ gle case of this happening, but it is theoreti-
+ cally possible, so I'm mentioning it for complete-
+ ness...
+
+ R\bRe\bed\bd H\bHo\bot\bt L\bLa\bav\bva\ba
+ There need to be a lot more graphics hacks. In
+ particular, there should be a simulation of a
+ Lavalite (tm).
+
+E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+ D\bDI\bIS\bSP\bPL\bLA\bAY\bY to get the default host and display number, and to
+ inform the sub-programs of the screen on which to
+ draw.
+
+ P\bPA\bAT\bTH\bH to find the sub-programs to run.
+
+ H\bHO\bOM\bME\bE for the directory in which to read and write the
+ _\b._\bx_\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br file.
+
+ X\bXE\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+ to get the name of a resource file that overrides
+ the global resources stored in the RESOURCE_MAN-
+ AGER property.
+
+U\bUP\bPG\bGR\bRA\bAD\bDE\bES\bS
+ The latest version can always be found at
+ http://www.jwz.org/xscreensaver/
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ X\bX(1), x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-d\bde\bem\bmo\bo(1), x\bxs\bsc\bcr\bre\bee\ben\bns\bsa\bav\bve\ber\br-\b-c\bco\bom\bmm\bma\ban\bnd\bd(1),
+ x\bxd\bdm\bm(1), x\bxs\bse\bet\bt(1), X\bXs\bse\bec\bcu\bur\bri\bit\bty\by(1), x\bxa\bau\but\bth\bh(1), x\bxh\bho\bos\bst\bt(1).
+ a\ban\bnt\bt(1), a\bat\btl\bla\ban\bnt\bti\bis\bs(1), a\bat\btt\btr\bra\bac\bct\bti\bio\bon\bn(1), b\bbl\bli\bit\bts\bsp\bpi\bin\bn(1),
+ b\bbo\bou\bub\bbo\bou\bul\ble\be(1), b\bbr\bra\bai\bid\bd(1), b\bbs\bso\bod\bd(1), b\bbu\bub\bbb\bbl\ble\be3\b3d\bd(1), b\bbu\bub\bbb\bbl\ble\bes\bs(1),
+ c\bca\bag\bge\be(1), c\bco\bom\bmp\bpa\bas\bss\bs(1), c\bco\bor\bra\bal\bl(1), c\bcr\bri\bit\bti\bic\bca\bal\bl(1), c\bcr\bry\bys\bst\bta\bal\bl(1),
+ c\bcy\byn\bno\bos\bsu\bur\bre\be(1), d\bde\bec\bca\bay\bys\bsc\bcr\bre\bee\ben\bn(1), d\bde\bec\bco\bo(1), d\bde\bel\blu\bux\bxe\be(1), d\bde\bem\bmo\bon\bn(1),
+ d\bdi\bis\bsc\bcr\bre\bet\bte\be(1), d\bdi\bis\bst\bto\bor\brt\bt(1), d\bdr\bri\bif\bft\bt(1), e\bep\bpi\bic\bcy\byc\bcl\ble\be(1), f\bfa\bad\bde\be-\b-
+ p\bpl\blo\bot\bt(1), f\bfl\bla\bag\bg(1), f\bfl\bla\bam\bme\be(1), f\bfl\blo\bow\bw(1), f\bfo\bor\bre\bes\bst\bt(1), g\bga\bal\bla\bax\bxy\by(1),
+ g\bge\bea\bar\brs\bs(1), g\bgl\blp\bpl\bla\ban\bne\bet\bt(1), g\bgo\boo\bop\bp(1), g\bgr\bra\bav\bv(1), g\bgr\bre\bey\byn\bne\bet\bti\bic\bc(1),
+ h\bha\bal\blo\bo(1), h\bhe\bel\bli\bix\bx(1), h\bho\bop\bpa\bal\blo\bon\bng\bg(1), h\bhy\byp\bpe\ber\brc\bcu\bub\bbe\be(1), i\bif\bfs\bs(1),
+ i\bim\bms\bsm\bma\bap\bp(1), i\bin\bnt\bte\ber\brf\bfe\ber\bre\ben\bnc\bce\be(1), j\bji\big\bgs\bsa\baw\bw(1), j\bju\bul\bli\bia\ba(1), k\bka\bal\ble\bei\bi-\b-
+ d\bde\bes\bsc\bco\bop\bpe\be(1), k\bku\bum\bmp\bpp\bpa\ba(1), l\bla\bam\bme\ben\bnt\bt(1), l\bla\bas\bse\ber\br(1), l\bli\big\bgh\bht\btn\bni\bin\bng\bg(1),
+ l\bli\bis\bsa\ba(1), l\bli\bis\bss\bsi\bie\be(1), l\blm\bmo\bor\brp\bph\bh(1), l\blo\boo\bop\bp(1), m\bma\baz\bze\be(1), m\bmo\boe\be-\b-
+ b\bbi\biu\bus\bs(1), m\bmo\boi\bir\bre\be(1), m\bmo\boi\bir\bre\be2\b2(1), m\bmo\bor\brp\bph\bh3\b3d\bd(1), m\bmo\bou\bun\bnt\bta\bai\bin\bn(1),
+ m\bmu\bun\bnc\bch\bh(1), n\bno\bos\bse\beg\bgu\buy\by(1), p\bpe\bed\bda\bal\bl(1), p\bpe\ben\bne\bet\btr\bra\bat\bte\be(1), p\bpe\ben\bnr\bro\bos\bse\be(1),
+ p\bpe\bet\btr\bri\bi(1), p\bph\bho\bos\bsp\bph\bho\bor\br(1), p\bpi\bip\bpe\bes\bs(1), p\bpu\bul\bls\bsa\bar\br(1), p\bpy\byr\bro\bo(1),
+ q\bqi\bix\bx(1), r\brd\bd-\b-b\bbo\bom\bmb\bb(1), r\bro\boc\bck\bks\bs(1), r\bro\bor\brs\bsc\bch\bha\bac\bch\bh(1), r\bro\bot\bto\bor\br(1),
+ r\bru\bub\bbi\bik\bk(1), s\bsi\bie\ber\brp\bpi\bin\bns\bsk\bki\bi(1), s\bsl\bli\bid\bde\bes\bsc\bcr\bre\bee\ben\bn(1), s\bsl\bli\bip\bp(1),
+ s\bso\bon\bna\bar\br(1), s\bsp\bph\bhe\ber\bre\be(1), s\bsp\bpi\bir\bra\bal\bl(1), s\bsp\bpo\bot\btl\bli\big\bgh\bht\bt(1), s\bsp\bpr\bro\boi\bin\bn-\b-
+ g\bgi\bie\bes\bs(1), s\bsq\bqu\bui\bir\bra\bal\bl(1), s\bst\bta\bai\bir\brs\bs(1), s\bst\bta\bar\brf\bfi\bis\bsh\bh(1), s\bst\btr\bra\ban\bng\bge\be(1),
+
+
+
+X Version 11 20-Jun-99 (3.15) 25
+
+
+
+
+
+XScreenSaver(1) XScreenSaver(1)
+
+
+ s\bsu\bup\bpe\ber\brq\bqu\bua\bad\bdr\bri\bic\bcs\bs(1), s\bsw\bwi\bir\brl\bl(1), t\bt3\b3d\bd(1), t\btr\bri\bia\ban\bng\bgl\ble\be(1),
+ t\btr\bru\buc\bch\bhe\bet\bt(1), v\bvi\bin\bne\bes\bs(1), w\bwa\ban\bnd\bde\ber\br(1), w\bwo\bor\brm\bm(1), x\bxf\bfl\bla\bam\bme\be(1),
+ x\bxj\bja\bac\bck\bk(1), x\bxl\bly\bya\bap\bp(1), x\bxm\bma\bat\btr\bri\bix\bx(1), x\bxr\bro\bog\bge\ber\br(1), b\bbo\bon\bng\bgo\bo(1),
+ i\bic\bco\bo(1), x\bxa\bao\bos\bs(1), x\bxb\bbo\bou\bun\bnc\bce\beb\bbi\bit\bts\bs(1), x\bxc\bct\bth\bhu\bug\bgh\bha\ba(1), x\bxd\bda\bal\bli\bi-\b-
+ c\bcl\blo\boc\bck\bk(1), x\bxf\bfi\bis\bsh\bht\bta\ban\bnk\bk(1), x\bxm\bmo\bou\bun\bnt\bta\bai\bin\bns\bs(1), x\bxs\bsp\bpl\bli\bin\bne\bef\bfu\bun\bn(1),
+ x\bxs\bsw\bwa\bar\brm\bm(1), x\bxt\bta\bac\bcy\by(1), x\bxv\bv(1), x\bxw\bwa\bav\bve\be(1).
+
+C\bCO\bOP\bPY\bYR\bRI\bIG\bGH\bHT\bT
+ Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+ 1998, 1999 by Jamie Zawinski. Permission to use, copy,
+ modify, distribute, and sell this software and its docu-
+ mentation 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 per-
+ mission notice appear in supporting documentation. No
+ representations are made about the suitability of this
+ software for any purpose. It is provided "as is" without
+ express or implied warranty.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+ Jamie Zawinski <jwz@jwz.org>. Written in late 1991; first
+ posted to comp.sources.x on 13-Aug-1992.
+
+ Please let me know if you find any bugs or make any
+ improvements.
+
+A\bAC\bCK\bKN\bNO\bOW\bWL\bLE\bED\bDG\bGE\bEM\bME\bEN\bNT\bTS\bS
+ Thanks to the many people who have contributed graphics
+ demos to the package.
+
+ Thanks to David Wojtowicz for implementing _\bl_\bo_\bc_\bk_\bT_\bi_\bm_\be_\bo_\bu_\bt.
+
+ 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 20-Jun-99 (3.15) 26
+
+