X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=local%2Fman%2Fcat.1%2Fxscreensaver.1;h=53b31a0fb6ad09575a66e2676255dd661e4e129c;hb=41fae2ad67bc37e31c4d967bae81e4f3f50fa55a;hp=bca556030ab02451e449919884c58247d57084bd;hpb=3ee611d60b5c560208c27e83b0c4930596fddd8b;p=xscreensaver diff --git a/local/man/cat.1/xscreensaver.1 b/local/man/cat.1/xscreensaver.1 index bca55603..53b31a0f 100644 --- a/local/man/cat.1/xscreensaver.1 +++ b/local/man/cat.1/xscreensaver.1 @@ -1,397 +1,595 @@ +XScreenSaver(1) XScreenSaver(1) +NNAAMMEE + xscreensaver - graphics hack and screen locker, launched + when the user is idle +SSYYNNOOPPSSIISS + xxssccrreeeennssaavveerr [-display _h_o_s_t_:_d_i_s_p_l_a_y_._s_c_r_e_e_n] [-timeout _i_n_t] + [-cycle _i_n_t] [-lock-mode] [-no-lock-mode] [-lock-timeout + _i_n_t] [-visual _v_i_s_u_a_l] [-install] [-no-install] [-verbose] + [-silent] [-timestamp] [-capture-stderr] [-no-cap- + ture-stderr] [-splash] [-no-splash] [-nice _i_n_t] + [-mit-extension] [-no-mit-extension] [-sgi-extension] + [-no-sgi-extension] [-xidle-extension] [-no-xidle-exten- + sion] [-proc-interrupts] [-no-proc-interrupts] [-xrm + _r_e_s_o_u_r_c_e_s] +DDEESSCCRRIIPPTTIIOONN + The _x_s_c_r_e_e_n_s_a_v_e_r 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 xxlloocckk(1) and xxaauuttoolloocckk(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. +GGEETTTTIINNGG SSTTAARRTTEEDD + For the impatient, try this: + xscreensaver & + xscreensaver-demo + The xxssccrreeeennssaavveerr--ddeemmoo(1) program should pop up a dialog + box that lets you experiment with the xscreensaver set- + tings and graphics modes. + NNoottee:: unlike xxlloocckk(1), xscreensaver has a client-server + model: the _x_s_c_r_e_e_n_s_a_v_e_r program is a daemon that runs in + the background; it is controlled by the foreground + xxssccrreeeennssaavveerr--ddeemmoo(1) and xxssccrreeeennssaavveerr--ccoommmmaanndd(1) programs. +CCOONNFFIIGGUURRAATTIIOONN + Options to _x_s_c_r_e_e_n_s_a_v_e_r are specified in one of two + places: in a _._x_s_c_r_e_e_n_s_a_v_e_r file in your home directory; or + in the X resource database. If the _._x_s_c_r_e_e_n_s_a_v_e_r 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 _._x_s_c_r_e_e_n_s_a_v_e_r file is similar to that of + the _._X_d_e_f_a_u_l_t_s file; for example, to set the _t_i_m_e_o_u_t + paramter in the _._x_s_c_r_e_e_n_s_a_v_e_r file, you would write the + following: + timeout: 5 + whereas, in the _._X_d_e_f_a_u_l_t_s file, you would write + xscreensaver.timeout: 5 + If you change a setting in the _._x_s_c_r_e_e_n_s_a_v_e_r 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 _._X_d_e_f_a_u_l_t_s file, you might + also need to run xxrrddbb(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 + _._x_s_c_r_e_e_n_s_a_v_e_r file. (The _._X_d_e_f_a_u_l_t_s file and the app- + defaults file will never be written by xscreensaver + itself.) + ttiimmeeoouutt (class TTiimmee) + The screensaver will activate (blank the screen) + after the keyboard and mouse have been idle for + this many minutes. Default 10 minutes. + ccyyccllee (class TTiimmee) + 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 SSIIGGTTEERRMM), 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. + lloocckk (class BBoooolleeaann) + 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. (NNoottee:: this + doesn't work if the screensaver is launched by + xxddmm(1) because it can't know the user-id of the + logged-in user. See the ``_U_s_i_n_g _X_D_M_(_1_)'' section, + below. + lloocckkTTiimmeeoouutt (class TTiimmee) + 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 _-_t_i_m_e_o_u_t 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, _-_l_o_c_k_-_t_i_m_e_o_u_t 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. + ppaasssswwddTTiimmeeoouutt (class TTiimmee) + 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. + vviissuuaallIIDD (class VViissuuaallIIDD) + Specify which X visual to use by default. (Note + carefully that this resource is called vviissuuaallIIDD, + not merely vviissuuaall; if you set the vviissuuaall resource + instead, things will malfunction in obscure ways + for obscure reasons.) + Legal values for the VViissuuaallIIDD resource are: + ddeeffaauulltt Use the screen's default visual (the + visual of the root window.) This is the + default. + bbeesstt Use the visual which supports the most +X Version 11 20-Jun-99 (3.15) 3 - 1 +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. + mmoonnoo Use a monochrome visual, if there is one. + ggrraayy Use a grayscale or staticgray visual, if + there is one and it has more than one + plane (that is, it's not monochrome.) -XScreenSaver(1) XScreenSaver(1) + ccoolloorr Use the best of the color visuals, if + there are any. + GGLL Use the visual that is best for OpenGL + programs. (OpenGL programs have somewhat + different requirements than other X pro- + grams.) + + _c_l_a_s_s where _c_l_a_s_s is one of SSttaattiiccGGrraayy, SSttaattiicc-- + CCoolloorr, TTrruueeCCoolloorr, GGrraayySSccaallee, PPsseeuuddooCCoolloorr, + or DDiirreeccttCCoolloorr. Selects the deepest + visual of the given class. + + _n_u_m_b_e_r where _n_u_m_b_e_r (decimal or hex) is inter- + preted as a visual id number, as reported + by the xxddppyyiinnffoo(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. -NNAAMMEE - xscreensaver - graphics hack and screen locker, launched - when the user is idle + Note that this option specifies only the _d_e_f_a_u_l_t + visual that will be used: the visual used may be + overridden on a program-by-program basis. See the + description of the pprrooggrraammss resource, below. -SSYYNNOOPPSSIISS - xxssccrreeeennssaavveerr [-display _h_o_s_t_:_d_i_s_p_l_a_y_._s_c_r_e_e_n] [-timeout _i_n_t] - [-cycle _i_n_t] [-nice _i_n_t] [-lock] [-no-lock] [-lock-timeout - _i_n_t] [-demo] [-visual _v_i_s_u_a_l] [-install] [-no-install] - [-verbose] [-silent] [-xidle-extension] [-no-xidle-exten- - sion] [-sgi-extension] [-no-sgi-extension] [-mit-exten- - sion] [-no-mit-extension] [-xrm _r_e_s_o_u_r_c_e_s] + iinnssttaallllCCoolloorrmmaapp (class BBoooolleeaann) + 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 ddeeffaauulltt--nn name in the section + about the pprrooggrraammss resource. -DDEESSCCRRIIPPTTIIOONN - The _x_s_c_r_e_e_n_s_a_v_e_r 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. + vveerrbboossee (class BBoooolleeaann) + Whether to print diagnostics. Default false. - 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 xxlloocckk(1) and xxaauuttoolloocckk(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. -OOPPTTIIOONNSS - _x_s_c_r_e_e_n_s_a_v_e_r accepts the following command line options: - --ttiimmeeoouutt _m_i_n_u_t_e_s - The screensaver will activate after the keyboard - and mouse have been idle for this many minutes. - Default 10. - --ccyyccllee _m_i_n_u_t_e_s - After the screensaver has been running for this - many minutes, the currently running graphics hack - sub-process will be killed (with SSIIGGTTEERRMM), and a - new one started. If this is 0, then the graphics - hack will not be changed: only one demo will run - until the screensaver is deactivated by user - activity. Default 10. +X Version 11 20-Jun-99 (3.15) 4 - --nniiccee _i_n_t_e_g_e_r - The sub-processes created by _x_s_c_r_e_e_n_s_a_v_e_r 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 20. - (Higher numbers mean lower priority; see nniiccee(1) -X Version 11 31-May-97 1 +XScreenSaver(1) XScreenSaver(1) + ttiimmeessttaammpp (class BBoooolleeaann) + Whether to print the time of day along with any + other diagnostic messages. Default false. + ssppllaasshh (class BBoooolleeaann) + Whether to display a splash screen at startup. + Default true. + ssppllaasshhDDuurraattiioonn (class TTiimmee) + How long the splash screen should remain visible; + default 5 seconds. -XScreenSaver(1) XScreenSaver(1) + hheellppUURRLL (class UURRLL) + The splash screen has a _H_e_l_p button on it. When + you press it, it will display the web page indi- + cated here in your web browser. + llooaaddUURRLL (class LLooaaddUURRLL) + 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 + _h_e_l_p_U_R_L. - for details.) + ddeemmooCCoommmmaanndd (class DDeemmooCCoommmmaanndd) + This is the shell command run when the _D_e_m_o button + on the splash window is pressed. It defaults to + _x_s_c_r_e_e_n_s_a_v_e_r_-_d_e_m_o. - --lloocckk Enable locking: before the screensaver will turn - off, it requires you to type the password of the - person who launched the screensaver, or the root - password. (Note: this doesn't work if the screen- - saver is launched by xxddmm(1) because it can't know - the user-id of the logged-in user.) + pprreeffssCCoommmmaanndd (class PPrreeffssCCoommmmaanndd) + This is the shell command run when the _P_r_e_f_s but- + ton on the splash window is pressed. It defaults + to _x_s_c_r_e_e_n_s_a_v_e_r_-_d_e_m_o _-_p_r_e_f_s. - --nnoo--lloocckk - Disable locking. This is the default. + nniiccee (class NNiiccee) + The sub-processes created by _x_s_c_r_e_e_n_s_a_v_e_r 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. - --lloocckk--ttiimmeeoouutt _m_i_n_u_t_e_s - This is how long after the screensaver activates - that locking is enabled. For example, if this is - 5, and _-_t_i_m_e_o_u_t is 10, then after 10 minutes, the - screen would blank. If there was user activity at - 12 minutes, no password would be required. But, - if there was user activity at 15 minutes or later - (_-_l_o_c_k_-_t_i_m_e_o_u_t minutes after activation) then a - password would be required. The default is 0, - meaning that if locking is enabled, then a pass- - word will be required as soon as the screensaver - activates. - - --ddeemmoo Enter the interactive demo mode immediately after - startup. Normally demo mode is invoked via the - xxssccrreeeennssaavveerr--ccoommmmaanndd(1) program, but this is a - shortcut for new users. See below for a descrip- - tion of how demo-mode works. + (Higher numbers mean lower priority; see nniiccee(1) + for details.) - --vviissuuaall _v_i_s_u_a_l - Specify which X visual to use by default. Legal - values are: + ffaaddee (class BBoooolleeaann) + 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 _c_y_c_l_e timer + expires.) Default: true. - ddeeffaauulltt Use the screen's default visual (the - visual of the root window.) This is the - default. - bbeesstt 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. - mmoonnoo Use a monochrome visual, if there is one. - ggrraayy Use a grayscale or staticgray visual, if - there is one and it has more than one - plane (that is, it's not monochrome.) +X Version 11 20-Jun-99 (3.15) 5 - ccoolloorr Use the best of the color visuals, if - there are any. -X Version 11 31-May-97 2 +XScreenSaver(1) XScreenSaver(1) + uunnffaaddee (class BBoooolleeaann) + 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 _f_a_d_e is true as well. Default + false. + ffaaddeeSSeeccoonnddss (class TTiimmee) + If _f_a_d_e is true, this is how long the fade will be + in seconds (default 3 seconds.) + ffaaddeeTTiicckkss (class IInntteeggeerr) + If _f_a_d_e 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 _f_a_d_e_S_e_c_- + _o_n_d_s if your server isn't fast enough to keep up. + Default 20. -XScreenSaver(1) XScreenSaver(1) + ccaappttuurreeSSttddeerrrr (class BBoooolleeaann) + Whether _x_s_c_r_e_e_n_s_a_v_e_r 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. + ffoonntt (class FFoonntt) + The font used for the stdout/stderr text, if ccaapp-- + ttuurreeSSttddeerrrr is true. Default + **--mmeeddiiuumm--rr--**--114400--**--mm--** (a 14 point fixed-width + font.) - _c_l_a_s_s where _c_l_a_s_s is one + pprrooggrraammss (class PPrrooggrraammss) + The graphics hacks which _x_s_c_r_e_e_n_s_a_v_e_r runs when + the user is idle. The value of this resource is a + string, one _s_h-syntax command per line. Each line + must contain exactly one command: no semicolons, + no ampersands. - of SSttaattiiccGGrraayy, SSttaattiiccCCoolloorr, TTrruueeCCoolloorr, - GGrraayySSccaallee, PPsseeuuddooCCoolloorr, or DDiirreeccttCCoolloorr. - Selects the deepest visual of the given - class. + When the screensaver starts up, one of these is + selected at random, and run. After the _c_y_c_l_e + period expires, it is killed, and another is + selected and run. - _n_u_m_b_e_r where _n_u_m_b_e_r (decimal or hex) is inter- - preted as a visual id number, as reported - by the xxddppyyiinnffoo(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. + If the value of this resource is empty, then no + programs will be run; the screen will simply be + made black. - Note that this option specifies only the _d_e_f_a_u_l_t - visual that will be used: the visual used may be - overridden on a program-by-program basis. See the - description of the pprrooggrraammss resource, below. - --iinnssttaallll - When using a non-default visual, install a private - colormap while the screensaver is active, so that - the graphics hacks can get as many colors as pos- - sible. 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.) - --nnoo--iinnssttaallll - Use the default colormap. - --vveerrbboossee - Print diagnostics. +X Version 11 20-Jun-99 (3.15) 6 - --ssiilleenntt - --xxiiddllee--eexxtteennssiioonn - Use the XXIIDDLLEE server extension to decide whether - the user is idle. This is the default if _x_s_c_r_e_e_n_- - _s_a_v_e_r has been compiled with support for this - extension. On X11R4 or X11R5 systems, the XIdle - method is faster and more reliable than what will - be done otherwise, so use it if you can. - --nnoo--xxiiddllee--eexxtteennssiioonn - Don't use the XXIIDDLLEE server extension. - --ssggii--eexxtteennssiioonn - Use the SGI SSCCRREEEENN__SSAAVVEERR server extension to - decide whether the user is idle. This is the - default if _x_s_c_r_e_e_n_s_a_v_e_r has been compiled with - support for this extension (which is the default - on SGI systems.). If it is available, the +XScreenSaver(1) XScreenSaver(1) -X Version 11 31-May-97 3 + 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 + _~_/_._x_s_c_r_e_e_n_s_a_v_e_r 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 $$PPAATTHH environment variable is set + up correctly _b_e_f_o_r_e xscreensaver is launched, or + it won't be able to find the programs listed in + the _p_r_o_g_r_a_m_s 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 ttvvttwwmm(1). (Generally, this + is accomplished by just including the _"_v_r_o_o_t_._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: -XScreenSaver(1) XScreenSaver(1) + PseudoColor: cmap-program -root \n\ + TrueColor: 24bit-program -root \n\ + In addition to the symbolic visual names described + above (in the discussion of the _v_i_s_u_a_l_I_D resource) + one other visual name is supported in the _p_r_o_g_r_a_m_s + list: - SSCCRREEEENN__SSAAVVEERR method is faster and more reliable - than what will be done otherwise, so use it if you - can. + ddeeffaauulltt--nn + This is like ddeeffaauulltt, but also requests the - --nnoo--ssggii--eexxtteennssiioonn - Don't use the SGI SSCCRREEEENN__SSAAVVEERR server extension. - --mmiitt--eexxtteennssiioonn - Use the MMIITT--SSCCRREEEENN--SSAAVVEERR server extension to - decide whether the user is idle. This is the - default if _x_s_c_r_e_e_n_s_a_v_e_r has been compiled with - support for this extension. However, this exten- - sion is flaky, so it's use is not really recom- - mended. (It also makes the _f_a_d_e option not work - properly.) - --nnoo--mmiitt--eexxtteennssiioonn - Don't use the MMIITT--SSCCRREEEENN--SSAAVVEERR server extension. +X Version 11 20-Jun-99 (3.15) 7 -XX RREESSOOUURRCCEESS - _x_s_c_r_e_e_n_s_a_v_e_r understands the following resources: - ttiimmeeoouutt (class TTiimmee) - Same as the _-_t_i_m_e_o_u_t command-line option. Default - 10 minutes. - ccyyccllee (class TTiimmee) - Same as the _-_c_y_c_l_e command-line option. Default - 10 minutes. - nniiccee (class NNiiccee) - Same as the _-_n_i_c_e command-line option. Default - 10. +XScreenSaver(1) XScreenSaver(1) - lloocckk (class BBoooolleeaann) - Same as the _-_l_o_c_k command-line option. - lloocckkTTiimmeeoouutt (class TTiimmee) - Same as the _-_l_o_c_k_-_t_i_m_e_o_u_t command-line option. + use of the default colormap, instead of a + private colormap. (That is, it behaves as if + the _-_n_o_-_i_n_s_t_a_l_l 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: xxvv(1), and xxeeaarrtthh(1)) make assump- + tions about the visual and colormap of the + root window: assumptions which xscreensaver + can violate. - ppaasssswwddTTiimmeeoouutt (class TTiimmee) - 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.) 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. + 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. - vveerrbboossee (class BBoooolleeaann) - Same as the _-_v_e_r_b_o_s_e command-line option. + Normally you won't need to change the following resources: + ppooiinntteerrPPoollllTTiimmee (class TTiimmee) + When server extensions are not in use, this con- + trols how frequently _x_s_c_r_e_e_n_s_a_v_e_r checks to see if + the mouse position or buttons have changed. + Default 5 seconds. + wwiinnddoowwCCrreeaattiioonnTTiimmeeoouutt (class TTiimmee) + When server extensions are not in use, this con- + trols the delay between when windows are created + and when _x_s_c_r_e_e_n_s_a_v_e_r selects events on them. + Default 30 seconds. -X Version 11 31-May-97 4 + iinniittiiaallDDeellaayy (class TTiimmee) + When server extensions are not in use, _x_s_c_r_e_e_n_- + _s_a_v_e_r will wait this many seconds before selecting + events on existing windows, under the assumption + that _x_s_c_r_e_e_n_s_a_v_e_r 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...) + ssggiiSSaavveerrEExxtteennssiioonn (class BBoooolleeaann) + 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) - xxiiddllee (class BBoooolleeaann) - Same as the _-_x_i_d_l_e command-line option. - ffaaddee (class BBoooolleeaann) - 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. Default true. A fade will also - be done when switching graphics hacks (when the - _c_y_c_l_e timer expires.) - uunnffaaddee (class BBoooolleeaann) - 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 _f_a_d_e is true as well. Default - false. +XScreenSaver(1) XScreenSaver(1) - ffaaddeeSSeeccoonnddss (class TTiimmee) - If _f_a_d_e is true, this is how long the fade will be - in seconds (default 3.) - ffaaddeeTTiicckkss (class IInntteeggeerr) - If _f_a_d_e 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 _f_a_d_e_S_e_c_- - _o_n_d_s if your server isn't fast enough to keep up. - Default 20. + This resource controls whether the SGI + SSCCRREEEENN__SSAAVVEERR server extension will be used to + decide whether the user is idle. This is the + default if _x_s_c_r_e_e_n_s_a_v_e_r has been compiled with + support for this extension (which is the default + on SGI systems.). If it is available, the + SSCCRREEEENN__SSAAVVEERR 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.) + + mmiittSSaavveerrEExxtteennssiioonn (class BBoooolleeaann) + This resource controls whether the + MMIITT--SSCCRREEEENN--SSAAVVEERR server extension will be used to + decide whether the user is idle. However, the + default for this resource is _f_a_l_s_e, because even + if this extension is available, it is flaky (and + it also makes the ffaaddee option not work properly.) + Use of this extension is not recommended. + + xxiiddlleeEExxtteennssiioonn (class BBoooolleeaann) + This resource controls whether the XXIIDDLLEE server + extension will be used to decide whether the user + is idle. This is the default if _x_s_c_r_e_e_n_s_a_v_e_r has + been compiled with support for this extension. + (This extension is only available for X11R4 and + X11R5 systems, unfortunately.) + + pprrooccIInntteerrrruuppttss (class BBoooolleeaann) + This resource controls whether the //pprroocc//iinntteerr-- + rruuppttss file should be consulted to decide whether + the user is idle. This is the default if _x_s_c_r_e_e_n_- + _s_a_v_e_r has been compiled on a system which supports + this mechanism (i.e., Linux systems.) - vviissuuaallIIDD (class VViissuuaallIIDD) - Same as the _-_v_i_s_u_a_l command-line option. Default - ddeeffaauulltt. + The benefit to doing this is that _x_s_c_r_e_e_n_s_a_v_e_r 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. - iinnssttaallllCCoolloorrmmaapp (class BBoooolleeaann) - Same as the _-_i_n_s_t_a_l_l command-line option. Default - true. + The drawback to doing this is that perhaps you + _r_e_a_l_l_y _d_o 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.) - ccaappttuurreeSSttddeerrrr (class BBoooolleeaann) - Whether _x_s_c_r_e_e_n_s_a_v_e_r should redirect its standard- - error stream to the window itself. Since its - nature is to take over the screen, you would not - normally see error messages generated by the - screensaver or the programs it runs; this resource - will cause the output of all relevant programs to - be drawn on the screensaver window itself instead - of written to the controlling terminal of the - screensaver driver process. Default true. + The default value for this resource is True, on + systems where it works. - ccaappttuurreeSSttddoouutt (class BBoooolleeaann) - Like ccaappttuurreeSSttddeerrrr but for the standard-output -X Version 11 31-May-97 5 +X Version 11 20-Jun-99 (3.15) 9 @@ -400,64 +598,64 @@ X Version 11 31-May-97 5 XScreenSaver(1) XScreenSaver(1) - stream. Default true. - - ffoonntt (class FFoonntt) - The font used for the stdout/stderr text, if ccaapp-- - ttuurreeSSttddoouutt or ccaappttuurreeSSttddeerrrr are true. Default - **--mmeeddiiuumm--rr--**--114400--**--mm--** (a 14 point fixed-width - font.) - - tteexxttFFoorreeggrroouunndd (class FFoorreeggrroouunndd) + oovveerrllaayySSttddeerrrr (class BBoooolleeaann) + If ccaappttuurreeSSttddeerrrr 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.) + + oovveerrllaayyTTeexxttFFoorreeggrroouunndd (class FFoorreeggrroouunndd) The foreground color used for the stdout/stderr - text, if ccaappttuurreeSSttddoouutt or ccaappttuurreeSSttddeerrrr are true. - Default: Yellow. + text, if ccaappttuurreeSSttddeerrrr is true. Default: Yellow. - tteexxttBBaacckkggrroouunndd (class BBaacckkggrroouunndd) + oovveerrllaayyTTeexxttBBaacckkggrroouunndd (class BBaacckkggrroouunndd) The background color used for the stdout/stderr - text, if ccaappttuurreeSSttddoouutt or ccaappttuurreeSSttddeerrrr are true. - Default: Black. + text, if ccaappttuurreeSSttddeerrrr is true. Default: Black. - pprrooggrraammss (class PPrrooggrraammss) - The graphics hacks which _x_s_c_r_e_e_n_s_a_v_e_r runs when - the user is idle. The value of this resource is a - string, one _s_h-syntax command per line. Each line - must contain exactly one command -- no semicolons, - no ampersands. + bboouurrnneeSShheellll (class BBoouurrnneeSShheellll) + The pathname of the shell that _x_s_c_r_e_e_n_s_a_v_e_r uses + to start subprocesses. This must be whatever your + local variant of //bbiinn//sshh is: in particular, it + must not be ccsshh. - When the screensaver starts up, one of these is - selected at random, and run. After the _c_y_c_l_e - period expires, it is killed, and another is - selected and run. +CCOOMMMMAANNDD--LLIINNEE OOPPTTIIOONNSS + _x_s_c_r_e_e_n_s_a_v_e_r also accepts the following command line + options. Except for the _-_d_i_s_p_l_a_y option, these command- + line options are all simply shorthand for the X resources + described in the _C_o_n_f_i_g_u_r_a_t_i_o_n section, above. - If the value of this resource is empty, then no - programs will be run; the screen will simply be - made black. + --ddiissppllaayy _h_o_s_t_:_d_i_s_p_l_a_y_._s_c_r_e_e_n + The X display to use. For displays with multiple + screens, XScreenSaver will manage all screens on + the display simultaniously; the _s_c_r_e_e_n argument + (the ``default'' screen) says which screen should + be used for dialog boxes (the password window, + _D_e_m_o _M_o_d_e, etc.) - If the display has multiple screens, then a dif- - ferent program will be run for each screen. + --ttiimmeeoouutt _m_i_n_u_t_e_s + Same as the _t_i_m_e_o_u_t resource. - Note that you must escape the newlines; here is an - example of how you might set this in your _._X_d_e_- - _f_a_u_l_t_s file: + --ccyyccllee _m_i_n_u_t_e_s + Same as the _c_y_c_l_e resource. - xscreensaver.programs: \ - qix -root \n\ - ico -r -faces -sleep 1 -obj ico \n\ - xdaliclock -builtin2 -root \n\ - xv -root -rmode 5 image.gif -quit \n + --lloocckk--mmooddee + Same as setting the _l_o_c_k resource to _t_r_u_e. + + --nnoo--lloocckk--mmooddee + Same as setting the _l_o_c_k resource to _f_a_l_s_e. + + --lloocckk--ttiimmeeoouutt _m_i_n_u_t_e_s + Same as the _l_o_c_k_T_i_m_e_o_u_t resource. + + --vviissuuaall _v_i_s_u_a_l + Same as the _v_i_s_u_a_l_I_D 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_v_t_w_m. (Generally, this is - accomplished by just including the _"_v_r_o_o_t_._h_" -X Version 11 31-May-97 6 +X Version 11 20-Jun-99 (3.15) 10 @@ -466,64 +664,64 @@ X Version 11 31-May-97 6 XScreenSaver(1) XScreenSaver(1) - header file in the program's source.) + --iinnssttaallll + Same as setting the _i_n_s_t_a_l_l_C_o_l_o_r_m_a_p resource to + _t_r_u_e. - 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: + --nnoo--iinnssttaallll + Same as setting the _i_n_s_t_a_l_l_C_o_l_o_r_m_a_p resource to + _f_a_l_s_e. - mono: mono-program -root \n\ - color: color-program -root \n\ + --vveerrbboossee + Same as setting the _v_e_r_b_o_s_e resource to _t_r_u_e. - 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 - accomidated: + --ssiilleenntt Same as setting the _v_e_r_b_o_s_e resource to _f_a_l_s_e. - PseudoColor: cmap-program -root \n\ - TrueColor: 24bit-program -root \n\ + --ttiimmeessttaammpp + Same as setting the _t_i_m_e_s_t_a_m_p resource to _t_r_u_e. - (This sort of thing used to be accomplished with - the _c_o_l_o_r_P_r_o_g_r_a_m_s and _m_o_n_o_P_r_o_g_r_a_m_s resources, but - those resources have now been removed; a warning - will be issued if they are used.) + --ccaappttuurree--ssttddeerrrr + Same as setting the _c_a_p_t_u_r_e_S_t_d_e_r_r resource to + _t_r_u_e. - 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. + --nnoo--ccaappttuurree--ssttddeerrrr + Same as setting the _c_a_p_t_u_r_e_S_t_d_e_r_r resource to + _f_a_l_s_e. + --ssppllaasshh Same as setting the _s_p_l_a_s_h resource to _t_r_u_e. - Normally you won't need to change the following resources: + --nnoo--ssppllaasshh + Same as setting the _s_p_l_a_s_h resource to _f_a_l_s_e. - bboouurrnneeSShheellll (class BBoouurrnneeSShheellll) - The pathname of the shell that _x_s_c_r_e_e_n_s_a_v_e_r uses - to start subprocesses. This must be whatever your - local variant of //bbiinn//sshh is -- in particular, it - must not be ccsshh. + --nniiccee _i_n_t_e_g_e_r + Same as the _n_i_c_e resource. - wwiinnddoowwCCrreeaattiioonnTTiimmeeoouutt (class TTiimmee) - When server extensions are not in use, this con- - trols the delay between when windows are created - and when _x_s_c_r_e_e_n_s_a_v_e_r selects events on them. - Default 30 seconds. + --ssggii--eexxtteennssiioonn + Same as setting the _s_g_i_S_a_v_e_r_E_x_t_e_n_s_i_o_n resource to + _t_r_u_e. - ppooiinntteerrPPoollllTTiimmee (class TTiimmee) - When server extensions are not in use, this con- - trols how frequently _x_s_c_r_e_e_n_s_a_v_e_r checks to see if + --nnoo--ssggii--eexxtteennssiioonn + Same as setting the _s_g_i_S_a_v_e_r_E_x_t_e_n_s_i_o_n resource to + _f_a_l_s_e. + --mmiitt--eexxtteennssiioonn + Same as setting the _m_i_t_S_a_v_e_r_E_x_t_e_n_s_i_o_n resource to + _t_r_u_e. + --nnoo--mmiitt--eexxtteennssiioonn + Same as setting the _m_i_t_S_a_v_e_r_E_x_t_e_n_s_i_o_n resource to + _f_a_l_s_e. -X Version 11 31-May-97 7 + --xxiiddllee--eexxtteennssiioonn + Same as setting the _x_i_d_l_e_E_x_t_e_n_s_i_o_n resource to + _t_r_u_e. + + --nnoo--xxiiddllee--eexxtteennssiioonn + Same as setting the _x_i_d_l_e_E_x_t_e_n_s_i_o_n resource to + + + +X Version 11 20-Jun-99 (3.15) 11 @@ -532,36 +730,33 @@ X Version 11 31-May-97 7 XScreenSaver(1) XScreenSaver(1) - the mouse position or buttons have changed. - Default 5 seconds. + _f_a_l_s_e. - iinniittiiaallDDeellaayy (class TTiimmee) - When server extensions are not in use, _x_s_c_r_e_e_n_- - _s_a_v_e_r will wait this many seconds before selecting - events on existing windows, under the assumption - that _x_s_c_r_e_e_n_s_a_v_e_r is started during your login - procedure, and the window state may be in flux. - Default 30 seconds. + --pprroocc--iinntteerrrruuppttss + Same as setting the _p_r_o_c_I_n_t_e_r_r_u_p_t_s resource to + _t_r_u_e. - oovveerrllaayySSttddeerrrr (class BBoooolleeaann) - If ccaappttuurreeSSttddeerrrr or ccaappttuurreeSSttddoouutt are 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.) + --nnoo--pprroocc--iinntteerrrruuppttss + Same as setting the _p_r_o_c_I_n_t_e_r_r_u_p_t_s resource to + _f_a_l_s_e. + + --xxrrmm _r_e_s_o_u_r_c_e_-_s_p_e_c_i_f_i_c_a_t_i_o_n + As with all other Xt programs, you can specify X + resources on the command-line using the _-_x_r_m argu- + ment. Most of the interesting resources have com- + mand-line equivalents, however. HHOOWW IITT WWOORRKKSS When it is time to activate the screensaver, a full-screen black window is created on each screen of the display. - The window or windows is given the appropriate properties - so that, to any subsequently-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. + 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 + dows are unmapped, and the running subprocesses are killed by sending them SSIIGGTTEERRMM. 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 @@ -587,9 +782,12 @@ HHOOWW IITT WWOORRKKSS For all the gory details, see the commentary at the top of xscreensaver.c. + You can control a running screensaver process by using the + xxssccrreeeennssaavveerr--ccoommmmaanndd(1) program (which see.) -X Version 11 31-May-97 8 + +X Version 11 20-Jun-99 (3.15) 12 @@ -598,64 +796,262 @@ X Version 11 31-May-97 8 XScreenSaver(1) XScreenSaver(1) - You can control a running screensaver process by using the - xxssccrreeeennssaavveerr--ccoommmmaanndd(1) program (which see.) +PPOOWWEERR MMAANNAAGGEEMMEENNTT + Modern X servers contain support to power down the monitor + after an idle period. If the monitor has powered down, + then _x_s_c_r_e_e_n_s_a_v_e_r 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 xxsseett(1) + will accept a ddppmmss option. So, if you wanted _x_s_c_r_e_e_n_s_a_v_e_r + 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 xxsseett(1) program for details. + (Note that power management requires both software support + in the X server, and hardware support in the monitor + itself.) UUSSIINNGG XXDDMM((11)) - You can run _x_s_c_r_e_e_n_s_a_v_e_r from your xdm session, so that + You can run _x_s_c_r_e_e_n_s_a_v_e_r from your xxddmm(1) session, so that the screensaver will run even when nobody is logged in on - the console. Simply add ""xxssccrreeeennssaavveerr &&"" to your - _/_u_s_r_/_l_i_b_/_X_1_1_/_x_d_m_/_X_s_e_t_u_p file. Because _x_d_m grabs the key- - board, keypresses will not make the screensaver deacti- - vate, but any mouse activity will. - - (If your system does not seem to be executing the _X_s_e_t_u_p - 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 _D_i_s_p_l_a_y_M_a_n_a_g_e_r_*_s_e_t_u_p resource in the _x_d_m_-_c_o_n_f_i_g file. - See the man page for xxddmm(1) for more details.) - - Users may want to add ""xxssccrreeeennssaavveerr--ccoommmmaanndd --rreessttaarrtt"" to - their startup scripts, so that the screensaver will be - reinitialized with their private resource settings when - they log in. - - It is safe to run this program as root (as _x_d_m is likely - to do.) If run as root, _x_s_c_r_e_e_n_s_a_v_e_r changes its effec- - tive user and group ids to something safe (like _"_n_o_b_o_d_y_") + the console. + + The trick to using xscreensaver with _x_d_m is this: keep in + mind the two very different states in which xscreensaver + will be running: + + 11:: NNoobbooddyy llooggggeedd iinn.. + + 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. + + 22:: SSoommeebbooddyy llooggggeedd iinn.. + + 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 _~_/_._x_s_c_r_e_e_n_- + _s_a_v_e_r file; and so on. + + The difference between these two states comes down to a + question of, which user is the _x_s_c_r_e_e_n_s_a_v_e_r 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 _x_s_c_r_e_e_n_s_a_v_e_r 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 _._x_s_c_r_e_e_n_s_a_v_e_r 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: + + 11:: LLaauunncchh xxssccrreeeennssaavveerr bbeeffoorree aannyyoonnee llooggss iinn.. + + To the file _/_u_s_r_/_l_i_b_/_X_1_1_/_x_d_m_/_X_s_e_t_u_p, 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. + + 22:: RReessttaarrtt xxssccrreeeennssaavveerr wwhheenn ssoommeeoonnee llooggss iinn.. + + Near the top of the file _/_u_s_r_/_l_i_b_/_X_1_1_/_x_d_m_/_X_s_e_s_s_i_o_n, + 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 _~_/_._x_s_e_s_s_i_o_n files. + + Make sure you have $$PPAATTHH set up correctly in the _X_s_e_t_u_p + and _X_s_e_s_s_i_o_n scripts, or _x_d_m won't be able to find + _x_s_c_r_e_e_n_s_a_v_e_r, and/or _x_s_c_r_e_e_n_s_a_v_e_r won't be able to find + its graphics demos. + + (If your system does not seem to be executing the _X_s_e_t_u_p + + + +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 _D_i_s_p_l_a_y_M_a_n_a_g_e_r_*_s_e_t_u_p resource in the + _/_u_s_r_/_l_i_b_/_X_1_1_/_x_d_m_/_x_d_m_-_c_o_n_f_i_g file. See the man page for + xxddmm(1) for more details.) + + It is safe to run _x_s_c_r_e_e_n_s_a_v_e_r as root (as _x_d_m is likely + to do.) If run as root, _x_s_c_r_e_e_n_s_a_v_e_r changes its effec- + tive user and group ids to something safe (like _"_n_o_b_o_d_y_") before connecting to the X server or launching user-speci- fied programs. - Locking doesn't work if the screensaver is launched by - _x_d_m. To get around this, you can run the screensaver from - _x_d_m without locking, and kill and restart it from your - personal X startup script to enable locking; for example: + 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 + _x_s_c_r_e_e_n_s_a_v_e_r from _x_d_m, then this probably means that you + have xxaauutthh(1) or some other security mechanism turned on. + One way around this is to add ""xxhhoosstt ++llooccaallhhoosstt"" to + _X_s_e_t_u_p, just before _x_s_c_r_e_e_n_s_a_v_e_r 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 _x_s_c_r_e_e_n_s_a_v_e_r from the _X_s_e_t_u_p 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 XX(1), XXsseeccuurriittyy(1), + xxaauutthh(1), and xxhhoosstt(1). + +UUSSIINNGG CCDDEE ((CCOOMMMMOONN DDEESSKKTTOOPP EENNVVIIRROONNMMEENNTT)) + The easiest way to use _x_s_c_r_e_e_n_s_a_v_e_r on a system with CDE + is to simply switch off the built-in CDE screensaver, and + use _x_s_c_r_e_e_n_s_a_v_e_r instead; and second, to tell the front + panel to run xxssccrreeeennssaavveerr--ccoommmmaanndd(1) with the _-_l_o_c_k option + when the _L_o_c_k icon is clicked. + + To accomplish this involves five steps: + + 11:: SSwwiittcchh ooffff CCDDEE''ss lloocckkeerr + Do this by turning off ``_S_c_r_e_e_n _S_a_v_e_r _a_n_d _S_c_r_e_e_n + _L_o_c_k'' in the Screen section of the Style Manager. + + 22:: EEddiitt sseessssiioonneettcc + Edit the file _~_/_._d_t_/_s_e_s_s_i_o_n_s_/_s_e_s_s_i_o_n_e_t_c and add to + it the line + + xscreensaver & + + This will cause _x_s_c_r_e_e_n_s_a_v_e_r to be launched when + + - xscreensaver-command -exit ; xscreensaver +X Version 11 20-Jun-99 (3.15) 15 -DDEEMMOO MMOODDEE - If _x_s_c_r_e_e_n_s_a_v_e_r receives the DDEEMMOO ClientMessage, which is - done by running the xxssccrreeeennssaavveerr--ccoommmmaanndd program with the - --ddeemmoo option, the screensaver will black the screen and - pop up a dialog box from which you can examine and experi- - ment with the client programs. - The dialog box contains a scrolling list, a text field, - and a number of buttons. - Double-clicking on one of the programs in the list will - run it. Clicking the mouse again will bring the dialog - box back. - Single-clicking in the list will place the indicated pro- - gram and its args in the text field to be edited. Edit - the arguments and hit return to run the program with the - parameters you have specified. (Note that these are one- +XScreenSaver(1) XScreenSaver(1) + + + you log in. (As always, make sure that xscreen- + saver and the graphics demos are on your $$PPAATTHH; the + path needs to be set in _._c_s_h_r_c and/or _._d_t_p_r_o_f_i_l_e, + not _._l_o_g_i_n.) + + 33:: CCrreeaattee XXSSccrreeeennSSaavveerr..ddtt + Create a file called _~_/_._d_t_/_t_y_p_e_s_/_X_S_c_r_e_e_n_S_a_v_e_r_._d_t + 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 _x_s_c_r_e_e_n_s_a_v_e_r. + + 44:: CCrreeaattee LLoocckk..ffpp + Create a file called _~_/_._d_t_/_t_y_p_e_s_/_L_o_c_k_._f_p 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. + 55:: RReessttaarrtt + Select ``_R_e_s_t_a_r_t _W_o_r_k_s_p_a_c_e _M_a_n_a_g_e_r'' from the popup + menu to make your changes take effect. If things + seem not to be working, check the file _~_/_._d_t_/_e_r_r_o_r_- + _l_o_g for error messages. -X Version 11 31-May-97 9 +UUSSIINNGG HHPP VVUUEE ((VVIISSUUAALL UUSSEERR EENNVVIIRROONNMMEENNTT)) + Since CDE is a descendant of VUE, the instructions for + using xscreensaver under VUE are similar to the above: + + 11:: SSwwiittcchh ooffff VVUUEE''ss lloocckkeerr + Open the ``_S_t_y_l_e _M_a_n_a_g_e_r'' and select ``_S_c_r_e_e_n.'' + Turn off ``_S_c_r_e_e_n _S_a_v_e_r _a_n_d _S_c_r_e_e_n _L_o_c_k'' option. + + + +X Version 11 20-Jun-99 (3.15) 16 @@ -664,64 +1060,196 @@ X Version 11 31-May-97 9 XScreenSaver(1) XScreenSaver(1) - time changes and won't be remembered; to make the changes - permanent, you need to edit your X resource file.) - - The buttons are: - - RRuunn NNeexxtt - Clicking this button will run the next program in - the list after the currently-selected one, and - will scroll around to the top when it reaches the - bottom. - - RRuunn PPrreevviioouuss - Opposite of Run Next; at the top, it scrolls - around to the bottom. - - EEddiitt PPaarraammeetteerrss - This pops up a second dialog box, in which you - have the option to interactively change most of - the screensaver's operational parameters, such as - its timeouts, and whether it should lock the - screen. Changing these parameters here will - affect only the running _x_s_c_r_e_e_n_s_a_v_e_r process; to - make the changes permanent, you need to edit your - X resource file. - - EExxiitt DDeemmoo MMooddee - Returns to normal screensaver operation. - - RReeiinniittiiaalliizzee - This causes the X resource database to be re-read, - to pick up any changes you might have made. This - works by causing the screensaver process to exit - and then restart itself with the same command-line - arguments. This is just like the _-_r_e_s_t_a_r_t argu- - ment to xxssccrreeeennssaavveerr--ccoommmmaanndd(1) except that when - executed from this button, the screensaver will - automatically return to demo mode after restart- - ing. + 22:: MMaakkee ssuurree yyoouu hhaavvee aa SSeessssiioonn + Next, go to the Style Manager's, ``_S_t_a_r_t_u_p'' page. + Click on ``_S_e_t _H_o_m_e _S_e_s_s_i_o_n'' to create a session, + then on ``_R_e_t_u_r_n _t_o _H_o_m_e _S_e_s_s_i_o_n'' to select this + session each time you log in. + + 33:: EEddiitt vvuuee..sseessssiioonn + Edit the file _~_/_._v_u_e_/_s_e_s_s_i_o_n_s_/_h_o_m_e_/_v_u_e_._s_e_s_s_i_o_n and + add to it the line + + vuesmcmd -screen 0 -cmd "xscreensaver" + + This will cause _x_s_c_r_e_e_n_s_a_v_e_r to be launched when + you log in. (As always, make sure that xscreen- + saver and the graphics demos are on your $$PPAATTHH; the + path needs to be set in _._c_s_h_r_c and/or _._p_r_o_f_i_l_e, not + _._l_o_g_i_n.) + + 33:: EEddiitt vvuueewwmmrrcc + Edit the file _~_/_._v_u_e_/_v_u_e_w_m_r_c 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. + + +AADDDDIINNGG TTOO MMEENNUUSS + The xxssccrreeeennssaavveerr--ccoommmmaanndd(1) program is a perfect candidate + for something to add to your window manager's popup menus. + If you use mmwwmm(1), 44DDwwmm(1), ttwwmm(1), or (probably) any of + _t_w_m's many descendants, you can do it like this: + + 11.. CCrreeaattee ~~//..mmwwmmrrcc ((oorr ~~//..ttwwmmrrcc oorr ......)) + If you don't have a _~_/_._m_w_m_r_c file (or, on SGIs, a + _~_/_._4_D_w_m_r_c file; or, with twm, a _~_/_._t_w_m_r_c file) then + create one by making a copy of the _/_u_s_r_/_l_i_b_/_X_1_1_/_s_y_s_- + _t_e_m_._m_w_m_r_c file (or _/_u_s_r_/_l_i_b_/_X_1_1_/_t_w_m_/_s_y_s_t_e_m_._t_w_m_r_c, and + so on.) + + 22.. AAdddd aa mmeennuu ddeeffiinniittiioonn.. + 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 &" + } + + + 33.. AAdddd tthhee mmeennuu + For mmwwmm(1) and 44DDwwmm(1), find the section of the file + that says _M_e_n_u _D_e_f_a_u_l_t_R_o_o_t_M_e_n_u. For ttwwmm(1), it will + probably be _m_e_n_u _"_d_e_f_o_p_s_". 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. BBUUGGSS - (This is not a bug, but) note that as of release 1.32, the - ccoolloorrPPrrooggrraammss and mmoonnooPPrrooggrraammss resources are no longer - used: they have been supplanted by the extended syntax of - the pprrooggrraammss resource (see above.) + 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. - Extensions - If you are not making use of one of the server - extensions (XXIIDDLLEE, SSCCRREEEENN__SSAAVVEERR, or MMIITT--SSCCRREEEENN-- - SSAAVVEERR), then it is possible, in rare situations, - for _x_s_c_r_e_e_n_s_a_v_e_r to interfere with event propaga- - tion and make another X program malfunction. For - this to occur, that other application would need - to _n_o_t select KKeeyyPPrreessss events on its non-leaf win- - dows within the first 30 seconds of their + LLoocckkiinngg aanndd XXDDMM + If xscreensaver has been launched from xxddmm(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 _~_/_._x_s_c_r_e_e_n_s_a_v_e_r file will be ignored.) + + When you are logged in, you want the _x_s_c_r_e_e_n_s_a_v_e_r + daemon to be running under _y_o_u_r user id, not as + root or some other user. + + If it has already been started by _x_d_m, you can + kill it by sending it the eexxiitt 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 ``_U_s_i_n_g _X_D_M_(_1_)'' 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) + + + LLoocckkiinngg aanndd rroooott llooggiinnss + In order for it to be safe for xscreensaver to be + launched by _x_d_m, certain precautions had to be + taken, among them that xscreensaver never runs as + _r_o_o_t. In particular, if it is launched as root + (as _x_d_m is likely to do), xscreensaver will dis- + avow its privileges, and switch itself to a safe + user id (such as _n_o_b_o_d_y.) + + An implication of this is that if you log in as + _r_o_o_t on the console, xscreensaver will refuse to + lock the screen (because it can't tell the differ- + ence between _r_o_o_t being logged in on the console, + and a normal user being logged in on the console + but xscreensaver having been launched by the + xxddmm(1) _X_s_e_t_u_p file.) + + The solution to this is simple: you shouldn't be + logging in on the console as _r_o_o_t in the first + place! (What, are you crazy or something?) + + Proper Unix hygiene dictates that you should log + in as yourself, and ssuu(1) to _r_o_o_t as necessary. + People who spend their day logged in as _r_o_o_t are + just begging for disaster. + + XXAAUUTTHH aanndd XXDDMM + For xscreensaver to work when launched by xxddmm(1), + programs running on the local machine as user + _"_n_o_b_o_d_y_" 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 ``_U_s_i_n_g _X_D_M_(_1_)'' section, above, for more + details. + + If anyone has suggestions on how xscreensaver + could be made to work with xxddmm(1) without first + turning off _._X_a_u_t_h_o_r_i_t_y-based access control, + please let me know. + PPaasssswwoorrddss + If you get an error message at startup like + ``couldn't get password of _u_s_e_r'' then this proba- + bly means that you're on a system in which the + ggeettppwweenntt(3) library routine can only be effec- + tively used by root. If this is the case, then + _x_s_c_r_e_e_n_s_a_v_e_r must be installed as setuid to root + in order for locking to work. Care has been taken -X Version 11 31-May-97 10 + +X Version 11 20-Jun-99 (3.15) 19 @@ -730,130 +1258,262 @@ X Version 11 31-May-97 10 XScreenSaver(1) XScreenSaver(1) - existence, but then select for them later. In - this case, that client _m_i_g_h_t fail to receive those - events. This isn't very likely, since programs - generally select a constant set of events immedi- - ately 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 shortcom- - ing in the X protocol. + to make this a safe thing to do. + + It also may mean that your system uses shadow + passwords instead of the standard ggeettppwweenntt(3) + interface; in that case, you may need to change + some options with _c_o_n_f_i_g_u_r_e 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 _x_s_c_r_e_e_n_s_a_v_e_r notice. + + PPAAMM PPaasssswwoorrddss + 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 _/_e_t_c_/_p_a_m_._d_/_x_s_c_r_e_e_n_s_a_v_e_r for you, and on + Solaris, by telling you what lines to add to the + _/_e_t_c_/_p_a_m_._c_o_n_f file.) + + If the PAM configuration files do not know about + xscreensaver, then you _m_i_g_h_t 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! + + CCoolloorrmmaapp lloossssaaggee:: TTWWMM + The iinnssttaallllCCoolloorrmmaapp option doesn't work very well + with the ttwwmm(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 mmwwmm(1) and oollwwmm(1) window managers don't have + + + +X Version 11 20-Jun-99 (3.15) 20 + - Machine Load - Although this program ``nices'' the subprocesses + + + +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, ttwwmm responds + to the resultant CCoolloorrmmaappNNoottiiffyy event by re- + instaling the default colormap. Apparently, ttwwmm + doesn't _a_l_w_a_y_s 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. + + AAtttteennttiioonn,, wwiinnddooww mmaannaaggeerr aauutthhoorrss!! + You should only call XXIInnssttaallllCCoolloorrmmaapp(3) in + response to user events. That is, it is + appropriate to install a colormap in response + to FFooccuussIInn, FFooccuussOOuutt, EEnntteerrNNoottiiffyy, and + LLeeaavveeNNoottiiffyy events; but it is not appropriate + to call it in response to CCoolloorrmmaappNNoottiiffyy + events. If you install colormaps in response + to _a_p_p_l_i_c_a_t_i_o_n actions as well as in response + to _u_s_e_r 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. + + CCoolloorrmmaapp lloossssaaggee:: XXVV,, XXAAnniimm,, XXEEaarrtthh + 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 pprrooggrraammss resource in the _C_o_n_f_i_g_u_r_a_t_i_o_n + 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 iinnssttaallllCCoolloorrmmaapp + option altogether, but that would deny extra col- + ors to those programs that _c_a_n take advantage of + them. + + MMaacchhiinnee LLooaadd + 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 + 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 sslleeeepp(3) or uusslleeeepp(3) + + + +X Version 11 20-Jun-99 (3.15) 21 + + + + + +XScreenSaver(1) XScreenSaver(1) + + (or making liberal use of any _-_d_e_l_a_y options which the programs may provide.) - 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 + 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 xxcclloocckk(1) or xxllooaadd(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 + LLaatteennccyy aanndd RReessppoonnssiivveenneessss + 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 iiccoo(1) demo has - this problem if being run in full-speed mode). - This can be alleviated by inserting strategic - calls to XXSSyynncc(3) in code intended for use as a + user becomes active again (the iiccoo(1) demo has + this problem if being run in full-speed mode). + This can be alleviated by inserting strategic + calls to XXSSyynncc(3) in code intended for use as a screensaver. This prevents too much graphics activity from being buffered up. - Locking and XDM - Locking doesn't work if the screensaver is - launched by _x_d_m. The reason for this is that when - it is launched by _x_d_m, the screensaver process is - owned by some standard user id (such as _r_o_o_t or - _d_a_e_m_o_n) instead of the user who is logged in on - the console: because the screensaver was started - _b_e_f_o_r_e anyone was logged in. In order for the - screensaver to prompt for the password of the per- - son who had logged in from _x_d_m, it would need to - know who that user was, and there is no reliable - and safe way to figure that out. (And even if - there was, there would be some other security - issues here as well.) + XXFFrreeee8866''ss MMaaggiicc KKeeyyssttrrookkeess + 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_n, + 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. - So if you want to use it as a locker, you must + 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 _D_o_n_t_Z_a_p flag in your + _/_e_t_c_/_X_1_1_/_X_F_8_6_C_o_n_f_i_g file. See the XXFF8866CCoonnffiigg(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.) -X Version 11 31-May-97 11 + Any suggestions for other solutions to this prob- + lem are welcome. - -XScreenSaver(1) XScreenSaver(1) +X Version 11 20-Jun-99 (3.15) 22 - start it with your user id. If it has already - been started by _x_d_m, you can kill it with xxssccrreeeenn-- - ssaavveerr--ccoommmmaanndd --eexxiitt, and then start it again as - you. - Passwords - If you get an error message like ``couldn't get - password of _u_s_e_r'' then this probably means that - you're on a system in which the ggeettppwweenntt(3) - library routine can only be effectively used by - root. If this is the case, then _x_s_c_r_e_e_n_s_a_v_e_r must - be installed as setuid to root. 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 _g_e_t_p_w_e_n_t inter- - face; in that case, you may need to change some - options in _c_o_n_f_i_g_._h and recompile. - TWM and Colormaps - The iinnssttaallllCCoolloorrmmaapp option doesn't work very well - with the ttwwmm(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.) +XScreenSaver(1) XScreenSaver(1) - The mmwwmm(1) and oollwwmm(1) window managers don't seem - to have this problem. The race condition exists - because X apparently 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 the - screensaver installs its colormap, ttwwmm responds to - the CCoolloorrmmaappNNoottiiffyy event that is generated by re- - instaling the default colormap. Apparently, ttwwmm - doesn't _a_l_w_a_y_s 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. Any thoughts on this problem are - welcome... - XView Clients + XXVViieeww CClliieennttss 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.) + + MMIITT EExxtteennssiioonn aanndd FFaaddiinngg + The MMIITT--SSCCRREEEENN--SSAAVVEERR extension is junk. Don't use + it. + + When using the MMIITT--SSCCRREEEENN--SSAAVVEERR extension in con- + junction with the ffaaddee 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 _x_s_c_r_e_e_n_s_a_v_e_r process to + activate. The _x_s_c_r_e_e_n_s_a_v_e_r 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 SSGGII SSCCRREEEENN__SSAAVVEERR extension in XFree86; it's + dead simple, and works far better than the + overengineered and broken MMIITT--SSCCRREEEENN--SSAAVVEERR exten- + sion. + SSGGII PPoowweerr SSaavveerr + 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. -X Version 11 31-May-97 12 + If you're running Irix 6.5, this bug is back. I + don't know a fix. + + MMeessaaGGLL aanndd VVooooddoooo CCaarrddss + 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 pprrooggrraammss entries for + + + + + + +X Version 11 20-Jun-99 (3.15) 23 @@ -862,34 +1522,82 @@ X Version 11 31-May-97 12 XScreenSaver(1) XScreenSaver(1) - 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. - - MIT Extension and Fading - When using the MMIITT--SSCCRREEEENN--SSAAVVEERR extension in con- - junction with the ffaaddee option, you may notice an - unattractive flicker just before the fade begins. - This is because the server maps a black window - just before it tells the _x_s_c_r_e_e_n_s_a_v_e_r process to - activate. The _x_s_c_r_e_e_n_s_a_v_e_r 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. + the GL hacks from this: + + gears -root \n\ - LessTif (Motif Clone) - Rumor has it that demo mode is buggy if XScreen- - Saver was compiled with the GNU LessTif reimple- - mentation of Motif. Since it works fine with OSF - Motif on a variety of systems, I assume these - problems are due to bugs in LessTif. Again, any - insight would be appreciated. + to this: - Red Hot Lava + MESA_GLX_FX=fullscreen gears \n\ + + That is, make sure that $$MMEESSAA__GGLLXX__FFXX is set to + _f_u_l_l_s_c_r_e_e_n, 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 _i_s + 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 _/_d_e_v_/_3_d_f_x file is not + configured properly. Check the Linux 3Dfx FAQ. + + KKeeyybbooaarrdd LLEEDDss + If _p_r_o_c_I_n_t_e_r_r_u_p_t_s 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 _p_r_o_c_I_n_t_e_r_- + _r_u_p_t_s resource to False. + + EExxtteennssiioonnss + If you are not making use of one of the server + extensions (XXIIDDLLEE, SSGGII SSCCRREEEENN__SSAAVVEERR, or MMIITT-- + SSCCRREEEENN--SSAAVVEERR), then it is possible, in rare situa- + tions, for _x_s_c_r_e_e_n_s_a_v_e_r to interfere with event + propagation and make another X program malfunc- + tion. For this to occur, that other application + would need to _n_o_t select KKeeyyPPrreessss 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 _m_i_g_h_t 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... + + RReedd HHoott LLaavvaa There need to be a lot more graphics hacks. In particular, there should be a simulation of a Lavalite (tm). @@ -899,27 +1607,45 @@ EENNVVIIRROONNMMEENNTT inform the sub-programs of the screen on which to draw. + PPAATTHH to find the sub-programs to run. + + HHOOMMEE for the directory in which to read and write the + _._x_s_c_r_e_e_n_s_a_v_e_r file. + XXEENNVVIIRROONNMMEENNTT - to get the name of a resource file that overrides - the global resources stored in the RESOURCE_MAN- + to get the name of a resource file that overrides + the global resources stored in the RESOURCE_MAN- AGER property. UUPPGGRRAADDEESS - The latest version can always be found at http://peo- - ple.netscape.com/jwz/xscreensaver/ + The latest version can always be found at + http://www.jwz.org/xscreensaver/ SSEEEE AALLSSOO - XX(1), xxssccrreeeennssaavveerr--ccoommmmaanndd(1), xxlloocckk(1), xxnnlloocckk(1), xxaauu-- - ttoolloocckk(1), xxddmm(1), aattttrraaccttiioonn(1), ggrreeyynneettiicc(1), hheelliixx(1), - hhooppaalloonngg(1), nnoosseegguuyy(1), ppyyrroo(1), xxrrooggeerr(1), qqiixx(1), - rroocckkss(1), rroorrsscchhaacchh(1), bblliittssppiinn(1), iimmssmmaapp(1), - sslliiddeessccrreeeenn(1), ddeeccaayyssccrreeeenn(1), mmaazzee(1), hhyyppeerrccuubbee(1), - hhaalloo(1), ffllaammee(1), ppeeddaall(1), llmmoorrpphh(1), ddeeccoo(1), mmooiirree(1), - kkaalleeiiddeessccooppee(1), bbuubbbblleess(1), lliigghhttnniinngg(1), ssttrraannggee(1), + XX(1), xxssccrreeeennssaavveerr--ddeemmoo(1), xxssccrreeeennssaavveerr--ccoommmmaanndd(1), + xxddmm(1), xxsseett(1), XXsseeccuurriittyy(1), xxaauutthh(1), xxhhoosstt(1). + aanntt(1), aattllaannttiiss(1), aattttrraaccttiioonn(1), bblliittssppiinn(1), + bboouubboouullee(1), bbrraaiidd(1), bbssoodd(1), bbuubbbbllee33dd(1), bbuubbbblleess(1), + ccaaggee(1), ccoommppaassss(1), ccoorraall(1), ccrriittiiccaall(1), ccrryyssttaall(1), + ccyynnoossuurree(1), ddeeccaayyssccrreeeenn(1), ddeeccoo(1), ddeelluuxxee(1), ddeemmoonn(1), + ddiissccrreettee(1), ddiissttoorrtt(1), ddrriifftt(1), eeppiiccyyccllee(1), ffaaddee-- + pplloott(1), ffllaagg(1), ffllaammee(1), ffllooww(1), ffoorreesstt(1), ggaallaaxxyy(1), + ggeeaarrss(1), ggllppllaanneett(1), ggoooopp(1), ggrraavv(1), ggrreeyynneettiicc(1), + hhaalloo(1), hheelliixx(1), hhooppaalloonngg(1), hhyyppeerrccuubbee(1), iiffss(1), + iimmssmmaapp(1), iinntteerrffeerreennccee(1), jjiiggssaaww(1), jjuulliiaa(1), kkaalleeii-- + ddeessccooppee(1), kkuummppppaa(1), llaammeenntt(1), llaasseerr(1), lliigghhttnniinngg(1), + lliissaa(1), lliissssiiee(1), llmmoorrpphh(1), lloooopp(1), mmaazzee(1), mmooee-- + bbiiuuss(1), mmooiirree(1), mmooiirree22(1), mmoorrpphh33dd(1), mmoouunnttaaiinn(1), + mmuunncchh(1), nnoosseegguuyy(1), ppeeddaall(1), ppeenneettrraattee(1), ppeennrroossee(1), + ppeettrrii(1), pphhoosspphhoorr(1), ppiippeess(1), ppuullssaarr(1), ppyyrroo(1), + qqiixx(1), rrdd--bboommbb(1), rroocckkss(1), rroorrsscchhaacchh(1), rroottoorr(1), + rruubbiikk(1), ssiieerrppiinnsskkii(1), sslliiddeessccrreeeenn(1), sslliipp(1), + ssoonnaarr(1), sspphheerree(1), ssppiirraall(1), ssppoottlliigghhtt(1), sspprrooiinn-- + ggiieess(1), ssqquuiirraall(1), ssttaaiirrss(1), ssttaarrffiisshh(1), ssttrraannggee(1), -X Version 11 31-May-97 13 +X Version 11 20-Jun-99 (3.15) 25 @@ -928,53 +1654,53 @@ X Version 11 31-May-97 13 XScreenSaver(1) XScreenSaver(1) - ffrraacctt(1), ssppiirraall(1), llaasseerr(1), ggrraavv(1), ddrriifftt(1), iiffss(1), - jjuulliiaa(1), ppeennrroossee(1), ssiieerrppiinnsskkii(1), hhooppaalloonngg(1), - bbrraaiidd(1), bboouubboouullee(1), ggaallaaxxyy(1), ffllaagg(1), ffoorreesstt(1), - sspphheerree(1), lliissaa(1), xxddaalliicclloocckk(1), xxbboouunncceebbiittss(1), iiccoo(1), - xxsswwaarrmm(1), xxwwaavvee(1), xxvv(1), xxttaaccyy(1), bboonnggoo(1), xxffiisshh-- - ttaannkk(1) + ssuuppeerrqquuaaddrriiccss(1), sswwiirrll(1), tt33dd(1), ttrriiaannggllee(1), + ttrruucchheett(1), vviinneess(1), wwaannddeerr(1), wwoorrmm(1), xxffllaammee(1), + xxjjaacckk(1), xxllyyaapp(1), xxmmaattrriixx(1), xxrrooggeerr(1), bboonnggoo(1), + iiccoo(1), xxaaooss(1), xxbboouunncceebbiittss(1), xxcctthhuugghhaa(1), xxddaallii-- + cclloocckk(1), xxffiisshhttaannkk(1), xxmmoouunnttaaiinnss(1), xxsspplliinneeffuunn(1), + xxsswwaarrmm(1), xxttaaccyy(1), xxvv(1), xxwwaavvee(1). CCOOPPYYRRIIGGHHTT - Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997 by - Jamie Zawinski. Permission to use, copy, modify, dis- - tribute, and sell this software 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 provided "as is" without express or - implied warranty. + 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. AAUUTTHHOORR - Jamie Zawinski . Written in late 1991; - first posted to comp.sources.x on 13-Aug-1992. + Jamie Zawinski . 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. +AACCKKNNOOWWLLEEDDGGEEMMEENNTTSS + Thanks to the many people who have contributed graphics + demos to the package. + Thanks to David Wojtowicz for implementing _l_o_c_k_T_i_m_e_o_u_t. - Thanks to Martin Kraemer for adding support for shadow + Thanks to Martin Kraemer for adding support for shadow passwords and locking-disabled diagnostics. - Thanks to the many people who have contributed graphics - demos to the package. - Thanks to Patrick Moreau for the VMS port. - And huge thanks to Jon A. Christopher for implementing the - Athena dialog support, so that locking and demo-mode work - even if you don't have Motif. - - - - - + 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. @@ -985,6 +1711,6 @@ AAUUTTHHOORR -X Version 11 31-May-97 14 +X Version 11 20-Jun-99 (3.15) 26