"Fossies" - the Fresh Open Source Software Archive

Member "xlockmore-5.74/README" (5 Nov 2023, 49119 Bytes) of package /linux/misc/xlockmore-5.74.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "README": 5.69_vs_5.70.

    1 xlockmore-5.74: the maintained version of xlock
    2 see docs/Revisions for more version stuff
    3 see docs/TODO for stuff to do :)
    4 Help is always appreciated too ;) .
    5 
    6 Primary site: https://www.sillycycle.com/xlock
    7 Alternate site: http://ibiblio.org/pub/Linux/X11/screensavers
    8 Web page: https://www.sillycycle.com/xlockmore.html
    9 Maintainer: David A. Bagley <bagleyd AT verizon.net>
   10 Primary key fingerprint: 1B79 C847 8F23 6DCD ADC0  D6AC CF15 9707 3779 19AE
   11 
   12 Send all bug reports to bagleyd AT verizon.net .  Also just
   13 send me mail if you want to be on a list for latest releases.
   14 
   15 Adapted from Patrick J. Naughton's original xlock, with lots of help
   16 from others.
   17 
   18 Notice: a new bug is now seen when compiling with gcc -O2 on Linux (the
   19 current default) for pacman mode which gives the pacman an annoying
   20 hesitation behavior and lasts until a ghost comes close enough to trigger
   21 it to do something else.  So it is recommended to compile all first with -O2
   22 and then remove pacman.o and edit the Makefile to use -O1.  This is also 
   23 seen in older versions of this package with new compilations.  Seen with
   24 gcc 9.3.0.
   25 
   26 How to build?
   27 -------------
   28   An ANSI C compiler is required for build.
   29   motif (and editres) are used to build xmlock and are not used in xlock.
   30 
   31   Check below to see if your machine is one mentioned that causes
   32   problems, otherwise it should be easy.  Just to be safe after installing
   33   test it with something like: `/usr/local/bin/xlock -debug -verbose`
   34 
   35   If you installed this before you may want to back up your XLock.ad file
   36   if you made changes, since `make install` will overwrite this.
   37 
   38   There are 3 ways to build:
   39 
   40   configure:
   41     `configure --help` to see options.
   42 
   43 		configure ; make ; make install
   44 
   45 		For Linux and others you may want something like:
   46     configure --prefix=/usr/X11R6 ; make ; make install
   47     that way it will install it in /usr/X11R6 not /usr/local
   48 		For Suns you may want:
   49     configure --prefix=/usr/openwin ; make ; make install
   50 
   51   imake:
   52     Sometimes this is not setup correctly by the distributor ... i.e. not
   53     my fault.  You may want to do these quick edits to the iconfig.h so you
   54     have more capabilities:
   55 
   56     Do you have XPM?              If so, uncomment "#define XpmLibrary".
   57     Do you have OpenGL or Mesa?   If so, uncomment "#define GLLibrary".
   58     Do you have CDE?              If so, uncomment "#define DtSaverLibrary".
   59     Do you have RPLAY?            If so, uncomment "#define RplayLibrary".
   60     Do you have NAS?              If so, uncomment "#define NasLibrary".
   61     Do you have Motif?            If so, uncomment "#define XmLibrary".
   62 
   63     Examine iconfig.h for other optional capabilities.
   64 
   65     xmkmf ; make Makefiles ; make depend ; make ; make install
   66     or
   67     xmkmf -a ; make ; make install
   68 
   69   make.com:
   70     See VMS below.
   71 
   72 
   73 Note to binary redistributors:
   74 -----------------------------
   75   Probably should not distribute with any library requirements
   76   (except possibly XPM, unless you statically link them in
   77   and with USE_BOMB since it might not run right if you do not know
   78   if your users will use xdm or not.  For example:
   79     configure --without-xpm --without-opengl --without-mesa
   80       --without-dtsaver --without-rplay --without-nas --disable-bomb; make
   81   You may want to distribute it with the xlock/XLock.ad file with "XLock."
   82   instances replaced with "*".  On Sun's, I need it to override the system
   83   XLock.ad  file.
   84   Please let me know if there are other concerns.
   85 
   86 
   87 Likely Problems
   88 ---------------
   89   Make sure you use the new XLock.ad resource file (or at least remove the
   90     old one) otherwise several modes will not be set up nicely.  This is
   91     usually put as a file in $HOME/XLock and/or
   92     $WHEREVER_X11_IS_LOADED/lib/X11/app-defaults/XLock .
   93 
   94   "Key: " this usually means you should get your administrator to setuid
   95     xlock to root or at least setgid xlock to shadow.  If you do not have
   96     a friendly administrator it is asking for a key (password) that it will
   97     save encrypted your $HOME/.xlockrc file.
   98 
   99   Debugging options I use frequently:
  100     xlock -debug -verbose -erasemode no_fade -duration 2 -sequential
  101 
  102   AIX (IBM RS6000)
  103     AIX's "make":
  104       AIX's "make" can not handle "+=" so if you use the iconfig.h, you
  105       have to group all your DEFINES into one long line and use "="
  106       instead.  GNU's "make" solves this problem.
  107     AIX 3.1 and less:
  108       it SHOULD compile automatically with -DLESS_THAN_AIX3_2 using the
  109       iconfig.h, since the passwd struct is not available.
  110     AIX 3.2 and greater:
  111       one must have setuid xlock to root if you want to use it
  112       without being root.
  113        su - root
  114        chown root xlock
  115        chmod u+s xlock
  116        chmod og+rx xlock
  117     AFS users:
  118       See iconfig.h, grep on "AFS".
  119     Some machines have an alternate password shadowing method, if someone
  120       figures it out mail me the patch.
  121     AIX with DCE you will need "-ls" among the XLOCKLIBS.
  122 
  123   Alpha-OSF/1 (Digital Equipment Corp)
  124 
  125     Enhanced security:
  126       Compile with -DOSF1_ENH_SEC see iconfig.h
  127         chown auth.auth xlock
  128         chmod 2755 xlock
  129       Unfortunately the following is reportedly broken since xlockmore-2.10
  130       and needs a patch, I heard it produces the following at runtime.
  131 Unaligned access pid=1767 <xlock> va=140489e24 pc=3ff807d9978 ra=3ff807d9880
  132 type=ldq
  133 Segmentation fault (core dumped)
  134 
  135   Apollo (HP)
  136     Shift-Control-Break is caught.  See HP.
  137 
  138   CDE (DT) Common Desktop Environment.
  139     Go to the CDE DT CONFIG SECTION of the
  140      iconfig.h and uncomment (should be autodetected if you use configure)
  141 XCOMM #define DtSaverLibrary
  142     Here's what it does:
  143       The DT screensaver is part of the dtwm window manager and what it does
  144       is create a full-screen-sized window for each screen of your display.
  145       This is different from other screen savers which use virtual roots.
  146 
  147       What the DTSAVER option does is basically call a DT routine that
  148       returns the id's of the windows it creates for the screensaver.  Then
  149       xlockmore will use these windows to display its stuff.
  150 
  151       DT has a program where you can select your screensaver modes (or
  152       screen saver programs), ala xmlock, and set your screensaver settings.
  153       It also creates a small window where if you select a particular mode
  154       it will run the screen saver and display it on that small window.
  155 
  156       https://www.reddit.com/r/linux/comments/jv7zra/guide_the_easiest_way_to_install_cde_common/
  157       If using Linux and using configure, edit modes/Makefile for this line:
  158       before -lm for the XLOCKLIBS, may need to add "-lXm -ltt -lDtXinerama ".
  159 
  160     Here's how to set it up on your home directory.
  161       cp etc/dtprofile $HOME/.dtprofile
  162         This uses a ksh syntax.  If your shell is csh or other change it
  163         accordingly.
  164       cp etc/dtscreen.dt $HOME/.dt/types
  165         The actions points to /usr/remote so you may want to change this.
  166       After this you need to completely logout from your CDE session and log
  167       back in so it will read the .dtprofile.  (If you just modify the actions
  168       in dtscreen.dt you don't need to log out; you can simply restart your
  169       dtwm.)
  170     Here's how to set it up on your system.
  171       edit /usr/dt/bin/Xsession DTSCREENSAVERLIST to contain the
  172         DTSCREENSAVERLIST stuff in etc/dtprofile
  173       cp -p /usr/dt/appconfig/types/C/dtscreen.dt /usr/dt/appconfig/types/C/dtscreen.dt.save
  174       cp etc/dtscreen.dt /usr/dt/appconfig/types/C/dtscreen.dt
  175 
  176     The disadvantage to the above is some features of xlock are absent,
  177       in particular, the logout lab feature.  This version of xlock does not
  178       have a a drop in replacement for the Screen Style Manager.  Here is a
  179       work around on Solaris in 3 patches:
  180       1. Take out Screen option.
  181       2. Put in /usr/local/bin/xlock as the default locker.
  182       3. Turn off the default DT locking mechanism.
  183 *** /usr/dt/app-defaults/C/Dtstyle.orig	Fri Apr 12 11:53:00 1996
  184 --- /usr/dt/app-defaults/C/Dtstyle	Thu Jul 24 09:47:34 1997
  185 ***************
  186 *** 24,30 ****
  187   !#   Do not translate the following
  188   !###
  189   !# componentList specifies the buttons that appear in the Style Manager.
  190 ! Dtstyle*componentList:  Color Font Backdrop Keyboard Mouse Beep Screen Dtwm Startup
  191 
  192   !# The Style Manager may be oriented vertically by commenting out this line
  193   Dtstyle*mainRC.orientation:         HORIZONTAL
  194 --- 24,31 ----
  195   !#   Do not translate the following
  196   !###
  197   !# componentList specifies the buttons that appear in the Style Manager.
  198 ! !#Dtstyle*componentList:  Color Font Backdrop Keyboard Mouse Beep Screen Dtwm Startup
  199 ! Dtstyle*componentList:  Color Font Backdrop Keyboard Mouse Beep Dtwm Startup
  200 
  201   !# The Style Manager may be oriented vertically by commenting out this line
  202   Dtstyle*mainRC.orientation:         HORIZONTAL
  203 *** /usr/dt/appconfig/types/C/dt.dt.orig	Fri Apr 12 11:53:28 1996
  204 --- /usr/dt/appconfig/types/C/dt.dt	Thu Jul 24 11:32:21 1997
  205 ***************
  206 *** 226,235 ****
  207   ACTION LockDisplay
  208   {
  209   	LABEL		LockDisplay
  210 !         TYPE            TT_MSG
  211 !         TT_CLASS	TT_REQUEST
  212 !         TT_SCOPE	TT_SESSION
  213 !         TT_OPERATION	Display_Lock
  214           DESCRIPTION     The LockDisplay action locks the workstation. \
  215                           You must know the user's or root password to \
  216                           unlock the workstation.
  217 --- 226,239 ----
  218   ACTION LockDisplay
  219   {
  220   	LABEL		LockDisplay
  221 ! #        TYPE            TT_MSG
  222 ! #        TT_CLASS	TT_REQUEST
  223 ! #        TT_SCOPE	TT_SESSION
  224 ! #        TT_OPERATION	Display_Lock
  225 !         TYPE            COMMAND
  226 !         ARG_COUNT	0
  227 !         WINDOW_TYPE	NO_STDIO
  228 !         EXEC_STRING	/usr/local/bin/xlock
  229           DESCRIPTION     The LockDisplay action locks the workstation. \
  230                           You must know the user's or root password to \
  231                           unlock the workstation.
  232 *** /usr/dt/config/C/sys.resources.orig	Fri Apr 12 11:53:15 1996
  233 --- /usr/dt/config/C/sys.resources	Thu Jul 24 11:33:57 1997
  234 ***************
  235 *** 82,88 ****
  236 
  237 
  238   dtsession*saverTimeout:  10
  239 ! dtsession*lockTimeout:   30
  240   dtsession*cycleTimeout:  3
  241   dtsession*saverList: StartDtscreenBlank
  242 
  243 --- 82,89 ----
  244 
  245 
  246   dtsession*saverTimeout:  10
  247 ! !#dtsession*lockTimeout:   30
  248 ! dtsession*lockTimeout:   0
  249   dtsession*cycleTimeout:  3
  250   dtsession*saverList: StartDtscreenBlank
  251 
  252 
  253   Using xlock from the dtwm front panel
  254   (from Sun Infodoc ID 13527 available from http://sunsolve.sun.com)
  255 --------------------------------------------------------------------
  256 First the easy way (This is to overwrite the default CDE action)
  257 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  258 
  259 1. Run dtcreate
  260 2. Create an action called LockDisplay
  261 3. Set the "Command when action is opened" field to:
  262 		 /usr/openwin/bin/xlock
  263 4. Set the "Window Type" field to No Output.
  264 5. Save the file ==> this creates a LockDisplay.dt in ~/.dt/types
  265 6. Reload the action.
  266 
  267 This will help you to bring up xlock when you are using lock in the
  268 front panel.
  269 
  270 			
  271 
  272 
  273 Second way (another way to use action)
  274 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  275 
  276 1. Create a new action for your desktop.  We'll call it Xlock.
  277 2. Tell the desktop about the new action and then test it.
  278 3. Modify the front panel so that it will call your new
  279            action, Xlock, instead of the old action, LockDisplay.
  280 
  281 1. CREATING A NEW ACTION:
  282 
  283         - cd to ~/.dt/types and create a file called Xlock.dt.
  284         - Add the following action definition to this file.
  285 
  286 ACTION Xlock
  287 {
  288         LABEL           Xlock
  289         ARG_COUNT       0
  290         TYPE            COMMAND
  291         WINDOW_TYPE     NO_STDIO
  292         EXEC_STRING     /usr/openwin/bin/xlock
  293         DESCRIPTION     xlock
  294 }
  295 
  296         - This action definition defines an action called "Xlock".
  297           When the action is called, it will execute xlock by
  298           calling /usr/openwin/bin/xlock.
  299 
  300 2. TELLING THE DESKTOP ABOUT THE NEW ACTION AND TESTING IT:
  301 
  302         - Now that we have defined the new Xlock action, we need to
  303           first tell the desktop about it and then test it.
  304         - To tell the desktop about the new action bring up
  305           the "Application Manager".  You can do this by selecting
  306           it from the front panel.
  307         - From the Application Manager, select "Desktop_Tools"
  308         - Now, select "Reload Actions". 
  309 
  310         - At this point, the desktop knows about the new Xlock action.
  311           To test it, type "dtaction Xlock".  Xlock should start up.
  312 
  313 
  314 3. ADDING THE NEW ACTION TO THE FRONT PANEL:
  315           
  316         - copy the dtwm front panel configuration file, dtwm.fp, from 
  317           /opt/CDE/appconfig/types/C directory to your personal dt 
  318           directory "~/.dt/types" directory.
  319         - cd to ~/.dt/types
  320         - From here, edit the dtwm.fp
  321         - Search for Lock.  You should see something like:
  322 
  323 CONTROL Lock
  324 {
  325   TYPE                  icon
  326   CONTAINER_NAME        Switch
  327   CONTAINER_TYPE        SWITCH
  328   POSITION_HINTS        1
  329   ICON                  Fplock
  330   LABEL                 Lock
  331   PUSH_ACTION           LockDisplay
  332   HELP_TOPIC            FPOnItemLock
  333   HELP_VOLUME           FPanel
  334 }
  335 
  336         - When you press the lock icon on the front panel, it calls
  337           the action LockDisplay.  The above paragraph is the definition
  338           for that front panel lock icon.
  339 
  340         - To get the front panel lock icon to call the action we
  341           just defined, Xlock, instead of the LockDisplay action, all 
  342           you need do is change the PUSH_ACTION line from 
  343           "LockDisplay" to "Xlock".  
  344           
  345 CONTROL Lock
  346 {
  347   TYPE                  icon
  348   CONTAINER_NAME        Switch
  349   CONTAINER_TYPE        SWITCH
  350   POSITION_HINTS        1
  351   ICON                  Fplock
  352   LABEL                 Lock
  353   PUSH_ACTION           Xlock
  354   HELP_TOPIC            FPOnItemLock
  355   HELP_VOLUME           FPanel
  356 }
  357 
  358         - Note:  You might change the Label field to Xlock and you 
  359           might remove the HELP_TOPIC and HELP_VOLUME fields, but this
  360           modification is not necessary.
  361 
  362         - Now tell the window manager to reread the configuration
  363           files.  You do this by selecting "Restart Workspace Manager..."
  364           from your workspace menu.
  365 
  366         - Press the lock icon on the front panel...xlock should be 
  367           called.  If not, make sure your DTDATABASESEARCHPATH 
  368           environment variable contains $HOME/.dt/types.
  369 --------------------------------------------------------------------
  370 
  371   Cygwin32:
  372     Build like this:
  373       CFLAGS="-O2 -m486 -Wall" CXXFLAGS="-O2 -m486 -Wall"\
  374         ./configure --prefix=/usr/X11R6 --disable-allow-root --disable-bomb\
  375         --enable-unstable --enable-orig-xpm-patch --enable-xlockrc\
  376 	--enable-def-play="cat > /dev/dsp < "
  377       Not done: text3d (sound is better with wav files)
  378     Currently fpos_t gives a bunch of errors
  379     http://groups.google.com/group/nodejs/browse_thread/thread/9b1634f50a3a4864
  380     I used the "most ugly solution" and it seems to work.  Add
  381 #include "/usr/include/cygwin/config.h" 
  382        to the top of config.h after you run configure.
  383 
  384   DCE authentication (tested only on HP's)
  385     See iconfig.h (xmkmf) or modes/Makefile.in (configure).
  386 
  387   Digital Unix
  388     Reported that 3.2D (8bpp) password screen color map gets messed up
  389     sometimes when in random mode as it switches from one mode to another.
  390 
  391   ESIX
  392     Similar to Solaris2.x.  You will need a -DSVR4 to compile.
  393     chmod 440 /etc/shadow
  394     if you get libX11.so.xxx not found
  395       link with the static versions of the X libraries
  396     chmod 2755 xlock
  397 
  398   FreeBSD
  399     One may have to setuid xlock to root (are there any objections?).
  400     Also see "XFree86" if applicable.
  401 
  402   HP
  403     Shift-Control-Break is caught.  This uses a library Xhp11 that may
  404       not exist on some systems.  Comment out
  405         XHPDisableReset(dsp);
  406       and
  407         XHPEnableReset(dsp);
  408       in "xlock.c" if you do not have this library.
  409       May have to setuid xlock to root.
  410     The optimizer may break in xlock/ .
  411     HP's "make":
  412       HP's "make" can not handle "+=" so if you use the iconfig.h, you
  413       have to group all your DEFINES into one long line and use "="
  414       instead.  GNU's "make" solves this problem.
  415     HP-UX with Secured Passwords:
  416       Compile with -DHPUX_SECURE_PASSWD and setuid xlock to root.
  417     HP-UX with Passwd Etc:
  418       Compile with -DHP_PASSWDETC .
  419       Link with -lrgy -lnck -lndbm .
  420       This is insecure so make sure you know this by having you go to the
  421       code to enable it.
  422     Calls to XSetScreenSaver when using CDE (i.e. not called with -dtsaver)
  423       are not supported.  This can cause a disruption in the rpc ttdbserver
  424       system resulting in the CDE lock and exit buttons to fail, 5 to 50%
  425       of the time.  I am told this will not be fixed by HP, only documented.
  426       The only supported method of doing this stuff is via dtstyle.
  427     configure --without-editres   if configure gets tripped up
  428     I found on my system -g -O trips up on life.c and shape.c ... so just
  429       have one or the other.
  430 
  431   IRIX (SGI)
  432     OpenGL works but may be a little flaky.
  433     Add this to the Makefile.
  434       -DglGenTextures=glGenTexturesEXT\
  435       -DglDeleteTextures=glDeleteTexturesEXT\
  436       -DglBindTexture=glBindTextureEXT
  437     xmlock will not work because there is a /usr/bin/X11/xlock too,
  438     so either rename that one or do not use xmlock.
  439 
  440   KERBEROS
  441     See iconfig.h (xmkmf) or configure --help .
  442 
  443   Linux (Intel 80386, 80486, & Pentium)
  444     Red Hat and PAM ... may not work ... #define BAD_PAM in config.h after
  445       you do a configure and before a make.  Then make sure xlock is setuid
  446       root.
  447     If you are using elf _or_ shadow passwords:
  448       xlock should compile with -DHAVE_SHADOW
  449       this is already forced if you have elf so do not worry, it should
  450       work even if you do not have shadow passwording.
  451     If you are _not_ using elf and are using shadow passwords:
  452       (this old version of shadowing has a _MAJOR_ known security flaw)
  453       link with -lshadow -lgdbm
  454     Next if using shadow passwords:
  455       chown root.root xlock  (or root.shadow if it exists)
  456       chmod 4755 xlock
  457       (chmod 2755 xlock may be better if shadow has group read for root group)
  458       Also check that the following was done:
  459         Your /usr/X11R6/lib/X11/config/linux.cf should have
  460 #define HasShadowPasswd         YES
  461           This would let the iconfig.h work automatically for compile/link.
  462         chown root.root /etc/shadow   (or root.shadow if it exists)
  463         chmod 400 /etc/shadow
  464         (chmod 440 /etc/shadow may be better).
  465     If you want to install shadow passwords on a system that doesn't
  466       already have them  (be careful, it can be tricky),  see
  467       http://sunsite.unc.edu/linux/HOWTO/Shadow-Password-HOWTO.html
  468     XShm.h needed by fzort.c... pull it in with
  469       sudo apt-get install libxext-dev
  470 
  471     Also see "XFree86" if applicable.
  472 
  473   Linux (Alpha)
  474     Change the order of XLIB and XPMLIB in the iconfig.h so the XPMLIB
  475      comes first.  Intel stuff above probably applies as well.
  476 
  477   Mesa and OpenGL
  478     I assume the Mesa 3-D Graphics Library for the Imakefile.  See below
  479       on availability.  Follow its instructions and then go to Mesa
  480       section of the iconfig.h and uncomment
  481 XCOMM #define GLLibrary
  482       Mesa and sometimes OpenGL are autodetected if you use configure.
  483       xlock using the Mesa Libraries (<= 2.6) setuid root has a known
  484          method for users to obtain root privledges!
  485        Mesa leak (<=3.4.1) you may want to fix a leak for glXUseXFont()
  486 *** src/X/xfonts.c.orig	Fri Feb  9 09:42:36 2001
  487 --- src/X/xfonts.c	Thu May  3 09:24:21 2001
  488 ***************
  489 *** 260,266 ****
  490     bm = (GLubyte *) MALLOC((max_bm_width * max_bm_height) * sizeof 
  491   (GLubyte));
  492     if (!bm) {
  493 !       XFreeFontInfo( NULL, fs, 0 );
  494         gl_error(NULL, GL_OUT_OF_MEMORY,
  495                   "Couldn't allocate bitmap in glXUseXFont()");
  496         return;
  497 --- 260,266 ----
  498     bm = (GLubyte *) MALLOC((max_bm_width * max_bm_height) * sizeof 
  499   (GLubyte));
  500     if (!bm) {
  501 !       XFreeFontInfo( NULL, fs, 1 );
  502         gl_error(NULL, GL_OUT_OF_MEMORY,
  503                   "Couldn't allocate bitmap in glXUseXFont()");
  504         return;
  505 ***************
  506 *** 375,381 ****
  507       }
  508   
  509     FREE(bm);
  510 !   XFreeFontInfo( NULL, fs, 0 );
  511     XFreeGC (dpy, gc);
  512   
  513     /* Restore saved packing modes.  */
  514 --- 375,381 ----
  515       }
  516   
  517     FREE(bm);
  518 !   XFreeFontInfo( NULL, fs, 1 );
  519     XFreeGC (dpy, gc);
  520   
  521     /* Restore saved packing modes.  */
  522 
  523 
  524   PAM
  525     http://www.kernel.org/pub/linux/libs/pam/
  526     Problem reported (elho's patch there currently added):
  527       https://nvd.nist.gov/vuln/detail/CVE-2006-0061
  528       https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=318123
  529       https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=399003
  530 
  531   Rplay
  532     Audio package.  See below on availability.  Follow its instructions and
  533       then go to iconfig.h and uncomment (should be autodetected if you use
  534       configure)
  535 XCOMM #define RplayLibrary
  536       See config directory for example.  (Note: The example files are
  537       concerned with getting it working ... not security).
  538 
  539   Solaris2 and greater (Sun SPARC)
  540     I found this link helpful to link with the native g++ on Solaris 10.
  541       ln -s /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/libgcc.a libgcc.a
  542     You could use Mesa or OpenGL.  I found a developers version of OpenGL at
  543       http://www.sun.com/software/graphics/OpenGL/index.html
  544     Solaris2.6 may not work with rplay.  configure --without-rplay
  545     If you get something like:
  546 xlock.c:1584: `sigset_t' undeclared (first use this function)
  547       try removing -I/usr/include from the Makefiles or get rid of -Xc
  548       in the xlock/Makefile.  If someone figures out a way around this
  549       in the code let me know.
  550     To get xlock working with Sun's GL libraries and includes
  551       If you get "macro `glNormal3f' used with just one arg" ... you need
  552          -DSUN_OGL_NO_VERTEX_MACROS
  553       If using Imakefile, see iconfig.h .
  554       After a make, use on a display that supports GLX  `xdpyinfo | grep GLX`
  555     Imake will compile with the -DHAVE_SHADOW switch.
  556     With GNU's gcc, get rid of the "-ansi" during compilation, also
  557       one may want to get rid of the -xF references in
  558       /usr/openwin/lib/config/sun.cf and Imake.tmpl if you get a
  559       cc: language F not recognized
  560     Solaris2.x NIS+ or not using NIS (/etc/passwd):
  561       If you use netgroup make sure there is a return at the end of file.
  562     If your using g++-2.95 or later and have old X11 includes you may have
  563       to change "g++" to "g++ -fpermissive" in the Makefiles.
  564     Sometimes a path to stdc++ library or something is not set right by
  565       configure.  The symptom is that xlock runs fine as root but gives a
  566       "No such file or directory" error for a library when run by a user.
  567       Edit with the modes/Makefile adding to XLOCKLDFLAGS the path to the
  568       directory of the library and rebuild.
  569 
  570   SunOS4.1.x (Sun Sparc & 680x0)
  571     bubble may crash the xnews server if patch 100444-76 OpenWindows V3.0
  572       Server patch is installed.  To test this
  573       `strings /usr/openwin/bin/xnews | grep Patch`
  574       It would then show Patch #3000-124 if 10044-76 is installed.
  575     Put in a link from /usr/include/X11 to your ${OPENWINHOME}/include/X11
  576       to use the xmkmf or use the configure file provided.
  577     gcc -Wall gives a lot of silly warnings, its safe to disregard them.
  578     If your using g++-2.95 or later and have old X11 includes you may have
  579       to change "g++" to "g++ -fpermissive" in the Makefiles.
  580 
  581   Ultrix (DEC)
  582     I heard that the logout button just kills xlock.
  583     USE_XLOCKRC feature unimplemented, but may not be hard to do.
  584     xlock must be either setuid root or setgid authread to validate the
  585       password on an Ultrix system.
  586 
  587   VMS (DEC)
  588     You may want to set a few things like vroot, bomb, and sound (see audio
  589       below) at the top of the file.
  590     All you should need to do to build the executable is:
  591         $ @make
  592     To run xlock a symbol needs to be defined, for example:
  593         XLOCK:==$H268SYSEXE:XLOCK
  594       where H268SYSEXE is a logical name pointing to the directory where
  595       XLOCK.EXE resides. The '$' after == means this is a foreign command
  596       and VMS makes the command line available to the program.
  597     If the link bombs out I recommend trying it again like the following:
  598         $ @make clean
  599         $ @make
  600     -allowroot only works if you have SYSPRV enabled which is a bit limiting.
  601       Unless one uses the privileged install by a system manager.  To do
  602       this, the following command needs to be executed at system startup
  603       (i.e. included in systartup_vms.com):
  604          INSTALL ADD {dev}:[{dir}]XLOCK.EXE/PRIV=(SYSPRV)
  605       where {dev}:[{dir}] is the full path of the executable.
  606     The XLock file normally in /usr/lib/X11/app-defaults needs to be in the
  607       directory DECW$SYSTEM_DEFAULTS on VMS systems and be called
  608       'DECW$XLOCK.DAT'.
  609     USE_XLOCKRC, USE_AUTO_LOGOUT, USE_BUTTON_LOGOUT, & USE_MULTIPLE_ROOT
  610       features are not implemented.
  611     To use audio:
  612       Set "sound" to be 1 in the make.com file.  Only available on the Alpha.
  613       To get it work on a VAX some editing of the make.com is needed
  614         (scan for USE_VMSPLAY)
  615       The default sound files are hard coded to be in the current directory
  616         see line 128 or so of the resource.c file but can be overruled from
  617         the command line or the resourcefile decw$xlock.dat.
  618       Sounds did not work for me on the VAX.
  619       It should work OK on an AXP. (Due to a bug in the SO driver on some
  620         models running VMS7.0, sounds are only available on the headset).
  621     To use new event loop:
  622        For VMS7.0 and higher : new event loop is used by default.
  623          You do not need to install extra software.
  624        For VMS6.2 or lower :
  625          You need some UNIX utilities installed (XVMSUTILS).  See where to get
  626          it below.
  627          Look at the make.com and xvmsutil stuff.
  628     Latest on VMS sound
  629       first it tests if the SO: device is present
  630       Then if it could be compiled in (license problems) MMOV (Multimedia
  631       services for OpenVMS) is used. Probably you'll need the Developer
  632       license to get it compiled.
  633       limitations :
  634          -currently the SYSNAM privilege is needed to play sounds
  635           (limitation of MMOV)
  636          -some compilation warnings/informationals in the routines which
  637           are taken from the users system disk. (problem in MMOV)
  638          -One warning due to multiple defined symbols in the libraries
  639           issued by Compaq should be ignored.
  640          -Presently A developer license for MMOV is needed. Probably by
  641           slightly modifying DEF_PLAY the Run-time license could also
  642           be usable.
  643 
  644   X11
  645     If your using g++-2.95 or later and have old X11 includes you may have
  646       to change "g++" to "g++ -fpermissive" in the Makefiles.
  647 
  648   XFree86
  649     Add the following to ~/.Xdefaults
  650 XLock.startCmd: xmodmap -e 'keycode 37=' -e 'keycode 109='
  651 XLock.endCmd:   xmodmap -e 'keycode 37=Control_L' -e 'keycode 109=Control_R'
  652       which unmaps both Control keys when xlock is started, and restores the
  653       mapping when it ends. Restart your session so .Xdefaults is read...
  654       Works perfectly.
  655     Other less perfect methods...
  656       Control-Alt-Backspace will defeat locking mechanism and return your
  657         console back unless you put "DontZap" in your XF86Config file.
  658         (In X11R5, that would be a "dontzap" in your Xconfig file).
  659       Control-Alt-F1 (among others) will defeat locking mechanism with
  660         virtual terminals. This is not too good, right?  If you are using
  661         Linux, try vlock on tsx-11.mit.edu in /pub/linux/sources/usr.bin .
  662         The current XFree86 (as far as I know) does not have a server
  663         extension for catching or disabling VT switching.
  664       Here is a work around, put this line in /etc/profile:
  665           alias x='(startx >/dev/null &);clear;logout'
  666         then use 'x' instead of 'startx' (with no other active VT's).
  667       Try configuring with --enable-vtlock .  This is experimental and requires
  668         xlock being setuid to root so there are security concerns with it.
  669         See man pages for its runtime options.
  670 
  671   XPM
  672     Full color pixmap package.  See below on availability.  Follow its
  673       instructions and then go to iconfig.h and uncomment (should be
  674       autodetected if you use configure)
  675 XCOMM #define XpmLibrary
  676 
  677   X-Terminal
  678     (My heart bleeds for you.)
  679     To get xlock to run, run with -remote option or set XLock.remote on
  680     in XLock.ad .  You might have to use -allowaccess as well.
  681 
  682   tvtwm
  683     One used to get following error when running xlock (+nolock) with
  684       tvtwm.
  685     X Error of failed request:  BadWindow (invalid Window parameter)
  686     What happens is that RootWindow(dsp, screen) fails when tvtwm is
  687       running.  There is a kludge fix, but multiscreens will not work
  688       right with tvtwm and xlock. (grep on TVTWM in xlock.c).
  689     Another option, don't compile with -DUSE_VROOT .  If you debug it
  690       mail ME -OR- both the author of tvtwm and ME the patch.
  691     StickyAbove problems:
  692       Windows in a tvtwm that have "StickyAbove" set to true are still
  693       visible when xlock (+inroot) is running. If this bothers you,
  694       don't compile with -DUSE_VROOT .  Is it possible to have xlock
  695       set "StickyAbove" to true as well?
  696 
  697   fvwm
  698     -install does not install colormaps.  fvwm will not allow an
  699     application to install its own colormap.  You could always edit the
  700     source if you have it, (fvwm-1.24r)colormaps.c, where it says
  701  if(ReInstall)
  702    {
  703      XInstallColormap(dpy,last_cmap);
  704    }
  705     make sure this does not happen.
  706     (fvwm does this because its following the X11 docs which say that
  707     window managers should not allow an application to install colormaps).
  708 
  709   swirl (and tube) mode
  710     Use with -install to see colormap change.
  711     See "fvwm" if applicable.
  712     "swirl" cycles its colors, except black and white.
  713     This is easily seen when on a color monitor one enters:
  714        ./xlock -mode swirl -inwindow -install
  715     now move the mouse in the window.
  716     If you find this annoying compile swirl.c with -DFORCEFIXEDCOLORS.
  717     I hear it LOCKS UP on i386BsdArchitecture and tvtwm.
  718     With twm (and fvwm see above) the colormap does not change.
  719 
  720   transparent mode
  721      Try this fudge:
  722        xlock -mode blank -geometry 1x1 -enablesaver
  723 
  724   SafeWord
  725     Edit config.h.in ... uncomment SAFEWORD line near bottom.
  726     In modes/Makefile.in make sure SAFEWORD is linked in, comment out
  727       similar link that does not contain safeword libraries.
  728     Put the cust*.h files in the main xlock directory.
  729     Use `configure; make`.
  730     Get back to me if it works or does not work.
  731 
  732   Dynamic Linking
  733     Dynamic Linking using elf on the Linux and Sun.  This is kind of fragile
  734       and will break other systems.  GL modes using Mesa on a PseudoColor
  735       display seem to run short of colors.
  736     Linux:
  737       Not all distributions of Linux have "dlfcn.h" which is needed.
  738       Using configure --enable-modules (MODULE_PATH set in modes/Makefile(.in)
  739         and xlock/Makefile(.in)) then build as normal. This is not recommended
  740         since random mode seems to act very strangely.
  741       Uncomment at least "#define Modules" in iconfig.h, run "xmkmf -a"
  742         and run make install as normal.
  743     Sun:
  744       Need Gnu's make
  745       Can use gcc (recommended) or cc 
  746         cc and CC problem with C++ modes (solitaire and text3d)
  747           xlock: LoadModule: modes/solitaire.xlk: ld.so.1: xlock/xlock: fatal:
  748           relocation error: file modes/solitaire.xlk: symbol __0OnwUi:
  749           referenced symbol not found unrecognized mode "solitaire").
  750       configure will not work.
  751       Uncomment at least "#define Modules" in iconfig.h.
  752       If you have more than one C++ compiler set CXX in iconfig.h
  753         (seems to default to g++ for me)
  754       xmkmf -a # Ignore errors on Sun (should not get errors on Linux)
  755       Edit generated Makefiles like this:
  756 for i in Makefile xlock/Makefile modes/Makefile modes/glx/Makefile ; do
  757   # both cc (& CC) and gcc (& g++)
  758   sed -e "s#/usr/ccs/bin/make#/usr/local/bin/make#g" $i > $i.tmp ; mv $i.tmp $i
  759   sed -e "s# -z text -M mapfile##g" $i > $i.tmp ; mv $i.tmp $i
  760   sed -e "s# -Xc -xF -xcg92##g" $i > $i.tmp ; mv $i.tmp $i
  761   #following seds for gcc and g++ only
  762   sed -e "s#= cc\$#= gcc#g" $i > $i.tmp ; mv $i.tmp $i
  763   sed -e "s#= cc #= gcc #g" $i > $i.tmp ; mv $i.tmp $i
  764   sed -e "s# -Kpic##g" $i > $i.tmp ; mv $i.tmp $i
  765 done
  766          For g++ and Sun edit modes/Makefile and modes/glx/Makefile for
  767             -isystem change (use grep on isystem to find it).
  768          Also, if you have more than one C++ compiler set CXX in Makefile.
  769       make install
  770 
  771 Personal Use
  772 ------------
  773   You may want to compile with USE_XLOCKRC .  xlock will then prompt
  774   you the first time you use it for a password.  It is then encrypted
  775   and stored in your $HOME/.xlockrc file.  This is also good for
  776   users who have an unrecognized shadow password environment.  See
  777   iconfig.h file (xmkmf) or `configure --help` for an example.
  778   Please note that it may be rude to use xlock in a lab environment.
  779 
  780 Lab Environment
  781 ---------------
  782   The auto logout feature, when enabled, will log out a user after
  783   30 minutes (by default).  The timeout can be changed or disabled
  784   with a command-line option (or x resource -- this is allowed because
  785   the logout button can always be used; see below).  The time
  786   remaining before auto-logout is displayed on the password entry
  787   screen.
  788 
  789   The logout button, when enabled, is a button that appears on the
  790   password entry screen after 5 minutes (configurable at
  791   compile-time) that, when clicked, logs out the user.  The rationale
  792   for this thing is that in a lab environment, we wanted a way for
  793   users to be able to reliably lock their display for short periods
  794   of time, but still be allowed to have the display locked for longer
  795   than that if the lab isn't busy.  If the lab IS busy, and there is
  796   a need for workstations, the logout button can be used to logout
  797   someone who's been gone for more than 5 minutes.
  798 
  799   Of course, the auto-logout and the logout button are
  800   enabled/disabled by compile-time defines.  All these are OFF by
  801   default.  One can also force use these features with a local policy
  802   of exemptions (e.g. username or group). See the iconfig.h file or
  803   `configure --help` for an example.  Edit your /etc/xlock.staff
  804   file to reflect your policy.  If using xdm, you may just want to use
  805   -DCLOSEDOWN_LOGOUT (or -DSESSION_LOGOUT <- old way) in conjunction
  806   with -DUSE_AUTO_LOGOUT or -DUSE_BUTTON_LOGOUT.  That way all
  807   backgrounded processes owned by a user do not have to be killed.
  808 
  809   Don't PANIC, the auto-logout and the logout button will not run if
  810   you are root.  Otherwise, it will kill all of root's processes, not
  811   a good idea.  As long as you do not lock the screen (using -nolock,
  812   -inwindow, or -inroot) the policy of xlock users does not go into
  813   effect.  If configured with --use-button-logout=-1, the user can decide
  814   if he/she wants the logout button enabled (not enabled if
  815   XLock.buttonLogout=0).
  816 
  817   Also there are -DUSE_MULTIPLE_ROOT and -DUSE_MULTIPLE_USER options
  818   where users with the same uid can unlock the screen.  -DXLOCK_GROUP
  819   option for all users in the xlock group can unlock.
  820 
  821   blank mode only
  822     Change xlock/XLock.ad from
  823 XLock.mode: random
  824 !XLock.mode: blank
  825     to
  826 !XLock.mode: random
  827 XLock.mode: blank
  828 
  829     Do a configure with these options, since they would useless now...
  830     configure  --without-opengl --without-mesa --without-xpm
  831     Edit the generated config.h, add "#define BLANK_ONLY", then to a make.
  832 
  833 xlock still does not work:  :-(
  834 -------------------------------
  835   If all that does not work you may need to adjust xlock.h, passwd.c
  836   xlock.c, and resource.c since these files are highly implementation
  837   dependent.  If you have to make this kind of change to get it working,
  838   let me know.
  839 
  840   You can try compiling with -g and running it with -debug and your
  841   favorite debugger, so xlock will run in a more friendly way (i.e. it
  842   does not lock the screen).  There are also may be compile time switches
  843   that could be turned on with -DDEBUG depending on what is not working
  844   correctly.
  845 
  846   Here is a simple recipe:
  847     Make sure the 12th line in the iconfig.h is a comment
  848       (This is because the debug library for xpm is not usually installed)
  849 XCOMM #define XpmLibrary
  850     xmkmf  <or configure --without-xpm>
  851     edit Makefile  on the line with CC = gcc or or CC = cc change to
  852                CC = gcc -g -DDEBUG
  853     make depend <but not if using configure>
  854     make
  855     gdb xlock  (xdb or dbx xlock may work too.)
  856     run -debug <other xlock options you want here>
  857     where
  858     print <relevant variables>
  859       (you may have to use "up" to take you to xlockmore code)>
  860     Mail me the results.
  861 
  862   If xlock crashes for you when in random mode... try this and mail
  863     me the results.  (If it runs for a long time partial result will do
  864     (gut the middle part)).
  865   xlock -mode random -modelist all +install -debug -verbose
  866     -modelist all: all modes except blank
  867     -debug: so it does not lock the screen.
  868     -verbose: for maximum verbosity.
  869     +install: so it does not keep changing the colormap
  870 
  871 
  872 Other things to try: (if you got it working :-) )
  873 -------------------------------------------------
  874 
  875   Check out etc directory for menus and other goodies.
  876 
  877   If you like to check out what xlock looks like on multiscreens and you
  878     do not have them... but do have Linux and Xnest ... try:
  879      Xnest -ac -scrns 3 :1 &
  880      xterm -display :1.0
  881     And run xlock from the created xterm.  (For some reason I have to do
  882     it as root).
  883     If you are using Mesa, it must be compiled without SHM extension do
  884       to a bug in Xnest (even in XFree3.3 == X11R6.3) or you will get
  885       "BadDrawable (invalid Pixmap or Window parameter)".
  886   Also try sudo apt-get install xserver-xephyr
  887     Xephyr -ac -scrns 2 -parent :1.0 -screen 444x444 -parent :1.1 -screen 512x512 :1 &
  888 
  889   You may want to change the 1st line of XLock.ad "random" to "blank",
  890   "life", or whatever your favorite is and copy it to
  891   /usr/lib/X11/app-defaults or $HOME (or wherever your application
  892   defaults files are) and rename to XLock .
  893 
  894   You may want some of the modes never to come up in random.  This is
  895   already hard coded for the blank mode.  See xlock man page on "modelist".
  896   In mode.c you can hard code others by just putting the stuff that you do
  897   not like in the LockProcs to the end of the static array and in
  898   random.c increase NUMSPECIAL by the number of new screens that you do
  899   not want displayed.
  900 
  901   You may want to move xlock into /usr/bin/X11 (or wherever your X
  902   binaries are). You may also want to move xlock.man to
  903   /usr/man/man1/xlock.1 .
  904 
  905   If you want to remove some unwanted modes just edit "mode.h" and
  906   "mode.c" grep the for the unwanted modes.  You might want to edit
  907   the man page and your favorite make file as well.
  908 
  909   I am very interested in cellular automata.  I am always looking to
  910   improve ant, life, life3d, and life1d.  If anyone knows any new
  911   collections (I have lifep.zip (May 94) and xlife 3.0) let me know.  If
  912   you would like further information let me know.  There are several
  913   run-time options to check out, see docs/cell_automata.
  914 
  915   Still like xscreensaver better?  (Obscenities omitted ;) ) Try
  916   setting your apps-defaults file for xscreensaver like:
  917 *programs:      xlock -nolock +grabmouse -mode random
  918 
  919   If you want to hack a new mode check out docs/HACKERS.GUIDE.  Then
  920   when working, just mail it to me, grep on "Maintainer" for the
  921   address.
  922 
  923 
  924 Other related stuff (all not maintained by me):
  925 --------------------------------------------------------------------
  926   NAME
  927    LOCATION (last seen at)
  928    DESCRIPTION
  929  =============
  930   audio/VMS
  931     http://axp616.gsi.de:8080/www/vms/mzsw.html
  932   fortune (sudo apt-get -y install fortune-mod)
  933     ftp://igor.girton.cam.ac.uk/pub/funny/cookie.tgz
  934     ftp://ftp.uu.net/systems/unix/BSD/games/fortune
  935     ftp://ftp.sterling.com/usenet/alt.sources/index (grep for cookie)
  936     Please note that my format is slightly different.  The number at the
  937       top of the file should match `grep -c "^%%$" fortune.dat`
  938   freetype and gltt for text3d
  939     copy C:\Windows\Fonts\arial.ttf to /usr/lib/X11/xlock/fonts
  940     http://freetype.sourceforge.net/ is the official site for freetype
  941       (need 1.3.1) I used configure --prefix=/usr to keep it simple.
  942       It fails in ftdump.c but this is in test dir, ignore and just do
  943       make install
  944     http://gltt.sourceforge.net/ is the official site for gltt (2.5.2)
  945       configure was not working so copied mkinstalldirs, install-sh,
  946         config.sub, and config.guess this distribution again used
  947         configure --prefix=/usr
  948       edit GLTTGlyphPolygonizerHandler.h to add GLTTGlyphPolyonizer header
  949       To get this to compile with CC on Sun with 2.5 (mainly for xlock
  950         maintainer's reference in case he ever has to do it again; if this is
  951         built using g++ then xlock must be built using g++ if you want text3d
  952         to work).
  953           configure --with-ttf-includes=/usr/openwin/include/freetype --with-ttf-libraries=/usr/openwin/lib
  954           change g++ reference in generated Makefile to CC
  955           change .la references to .a in Makefile to produce a libgltt.a
  956           remove -Wall to get rid of warnings in Makefile
  957           change compiler_o_lo="no" for libtool
  958           remove -fPIC to get rid of warnings in libtool
  959         gltt-2.5 may cause xlock to coredump if symbol.ttf or wingding.ttf
  960           if xlock tries to use them.  The following patch will take care of
  961           this:
  962 *** gltt-2.5/FTFace.C	Sat Mar 13 11:51:49 1999
  963 --- gltt-2.5-DAB/FTFace.C	Wed Aug  8 14:06:03 2001
  964 ***************
  965 *** 112,117 ****
  966 --- 112,119 ----
  967   
  968     if( i == n )
  969       {
  970 +     return GLTT_FALSE;
  971 + #if 0
  972       TT_Face_Properties  properties;
  973       TT_Get_Face_Properties( *face, &properties );
  974       int num_glyphs= properties.num_Glyphs;
  975 ***************
  976 *** 125,130 ****
  977 --- 127,133 ----
  978   
  979         indices[ascii_code]= glyph_index;
  980         }
  981 + #endif
  982       }
  983      else
  984       {
  985 
  986   freetype2 and FTGL for text3d2
  987     copy C:\Windows\Fonts\arial.ttf to /usr/lib/X11/xlock/fonts
  988     http://www.freetype.org/ need 2.x
  989     http://homepages.paradise.net.nz/henryj/code/#FTGL
  990 	=> there's a bug in FTGL that is "known" in text3d2
  991   gtk 2.0 (sudo apt-get -y install libgtk2.0-dev)
  992   imagemagick
  993     http://www.imagemagick.org/
  994   imake (sudo apt-get install xutils-dev) xmkmf
  995     ftp://hpux.csc.liv.ac.uk/hpux/X11/Core/imake-5.06/imake-5.06-ss-9.03.tar.gz
  996     I had to worry about FIXUP_CPP_WHITESPACE.
  997   Lesstif (defunct) (sudo apt-get -y install lesstif2-dev)
  998     ftp://ftp.hungry.com/pub/hungry/lesstif/lesstif-current.tar.gz
  999     Lesstif Library (just like Motif)
 1000   Man2HTML
 1001     ftp://sunsite.unc.edu/pub/Linux/system/Manual-pagers/vh-man2html-1.4.tar.gz
 1002   Mesa (similar to OpenGL) (sudo apt-get -y install libgl1-mesa-dev)
 1003     ftp://iris.ssec.wisc.edu/pub/Mesa
 1004     Mesa 3-D Graphics Library (like OpenGL) Mesa-3.0 or greater required.
 1005     Mesa-2.2 and below has some memory leaks and 2.6 and below has some
 1006       security concerns.
 1007   Mingw (sudo apt-get -y install g++-mingw-w64-i686)
 1008   Motif (sudo apt-get -y install libmotif-dev)
 1009   PAM (sudo apt-get -y install libpam0g-dev
 1010   NAS (audio package, defunct) (sudo apt-get -y install nas-dev)
 1011     ftp://ftp.x.org/contrib/audio/nas
 1012   OpenGL (for Sun)
 1013     http://www.sun.com/software/graphics/OpenGL/
 1014   rplay (audio package, defunct) (sudo apt-get -y install librplay3-dev)
 1015     ftp://ftp.x.org/contrib/audio/rplay
 1016   UNIX/VMS
 1017     Unix-like routines XVMSUTILS can be found at
 1018       http://axp616.gsi.de:8080/www/vms/mzsw.html
 1019   xautolock (runs xlock after a idle time)
 1020     ftp://ftp.x.org/contrib/applications
 1021     ftp://sunsite.unc.edu/pub/Linux/X11/screensavers
 1022     (I use openwin and I put this in my $HOME/.openwin-init)
 1023     toolwait /usr/local/bin/xautolock -time 5 -locker "xlock -lockdelay 30"
 1024   XPM
 1025     ftp://ftp.x.org/contrib/libraries (sudo apt-get -y install libxpm-dev)
 1026     color pixmaps
 1027   XPM/VMS
 1028     use the one above or xlock may bomb out,
 1029     compile with cc/standard=vaxc/define=(need_strcasecmp,need_strdup)
 1030       except when using XVMSUTILS.
 1031   xscreensaver
 1032     ftp://ftp.x.org/contrib/applications
 1033     http://www.jwz.org/xscreensaver
 1034 
 1035 
 1036 Operation: (Blurb taken from Darren Senn's xlock)
 1037 -------------------------------------------------
 1038 
 1039   Under X, run xlock.  The screen will clear, and some pretty animated
 1040   picture (exactly which depends on which module is active) will appear
 1041   on the screen.  If you hit a key, then the screen will clear, and
 1042   (unless you've changed the application defaults file that I packaged
 1043   with this) you'll get a black screen with some graphics in the top
 1044   center.  These graphics consist of a reduced size image of the module
 1045   you were viewing, the name of the user who executed xlock, and
 1046   password prompt field, and some short instructions.
 1047 
 1048   At this point, you can either click on the graphic to return to xlock,
 1049   or you can type a password.  If the password is verifiable as the
 1050   root password, or the password of the user listed above, then xlock
 1051   will terminate.  THIS IS THE ONLY WAY TO STOP XLOCK WITHOUT SHUTTING
 1052   DOWN THE X SERVER.  That's what makes it a lock.
 1053 
 1054 
 1055 Resources: (Also taken from Darren Senn's xlock)
 1056 ------------------------------------------------
 1057 
 1058   There are two sets of resources for XLock.  The first set are (what I
 1059   call) global XLock resources, while the second set consists of
 1060   module-specific resources.
 1061 
 1062   The global resources are:
 1063         XLock.mode: This sets the module.
 1064         XLock.font: This is the font used on the password entry screen.
 1065         XLock.background: The background color for the password entry screen.
 1066         XLock.foreground: The foreground color for the password entry screen.
 1067         XLock.username: The label for the field indicating the user name.
 1068         XLock.password: The label for the password prompt.
 1069         XLock.info: The "short instructions" to print.
 1070         XLock.validate: A message to display while checking the password
 1071         XLock.invalid: A message to display if the password is incorrect
 1072         XLock.nice: How much XLock should nice itself.
 1073         XLock.timeout: How long to wait idle at the password prompt.
 1074         XLock.timeelapsed: Message to see how long lock running (yes or no)
 1075         XLock.mono: Monochrome mode (yes or no)
 1076         XLock.nolock: disable the lock mechanism (yes or no)
 1077         XLock.remote: allow remote locking (meaningless under linux)
 1078         XLock.allowroot: allow the root password to unlock (yes or no)
 1079         XLock.enablesaver: allow the system screensaver to work (yes or no)
 1080         XLock.allowaccess: allow other clients to connect while active
 1081         XLock.echokeys: Echo "?" for each password keypress (yes or no)
 1082         XLock.usefirst: Ignore the first character typed (yes or no)
 1083         XLock.verbose: Verbose mode. (yes or no)
 1084         XLock.inwindow: allow the xlock to run in a window (yes or no)
 1085         XLock.inroot: allow the xlock to run in the root window (yes or no)
 1086         XLock.grabmouse: Grab the keyboard and mouse (yes or no)
 1087 
 1088   XLock has a number of modules which it can display.  (See the man page
 1089   for a complete list).  It turns out that each module is characterized
 1090   by a number of initializations, separated by a number of "draws".
 1091   Each module has the following resources defined:
 1092 
 1093         XLock.<module>.delay: How long to wait between draws (usec)
 1094         XLock.<module>.batchcount: May mean various things (see man page).
 1095         XLock.<module>.cycles: Controls the timeout of screen (see man page).
 1096         XLock.<module>.size: Controls size of objects on screen (see man page).
 1097         XLock.<module>.saturation: Saturation (as in HSV) of colors to use.
 1098 
 1099 
 1100 Acknowledgments:
 1101 ----------------
 1102 
 1103   I did not write the original algorithms in any of the lock screens
 1104   (except wator, bug, life1d, demon, ant, daisy, and voters), although I
 1105   did convert many of the new ones to run with xlock.  I tried to follow
 1106   the original style of Patrick Naughton.  Many of the additions
 1107   were "borrowed" from xscreensaver (Jamie Zawinski <jwz AT jwz.org>).
 1108   Some of the others were "borrowed" from old demos from Sun.  Many more
 1109   are contributions.
 1110 
 1111   I will consider putting new ones in if (1) they are more or less public
 1112   domain (i.e. BSD, sorry no GNU copyrights), (2) they are neat (I am
 1113   biased towards mathematically based programs (especially the Computer
 1114   Recreations of Scientific American)), and (3) I have the time.
 1115 
 1116   Also many thanks to the people that helped me countless times with
 1117   xlock mentioned in "Revisions", especially Jouk Jansen, Tom Schmidt,
 1118   David Hansen, Ed Mackey, Marcelo Vianna, Ron Hitchens, Heath Kehoe,
 1119   Frank Fesevur, & Eric Lassauge.
 1120