• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bitmaps/H16-Oct-2020-11,80111,644

docs/H03-May-2022-7,7766,692

etc/H03-May-2022-14,11912,484

modes/H30-Aug-2021-217,570185,322

pixmaps/H03-May-2022-

png/H03-May-2022-

sounds/H03-May-2022-

win32/H03-May-2022-4,6463,201

xglock/H03-May-2022-6,3455,594

xlock/H30-Aug-2021-31,46524,671

xmlock/H30-Aug-2021-1,4271,019

xscreensaver/H26-Jul-2021-31,56124,894

ImakefileH A D08-Feb-20101.8 KiB6748

Makefile.inH A D03-Apr-20203.2 KiB166103

Makefile.win32H A D09-Jun-20191.8 KiB6741

READMEH A D29-Aug-202147.4 KiB1,111970

ax_pthread.m4H A D28-May-201720.3 KiB486422

config.cygportH A D05-Dec-2019984 4638

config.guessH A D16-Nov-202047.9 KiB1,6871,476

config.h.inH A D04-Apr-202010.2 KiB420301

config.subH A D16-Nov-202033.4 KiB1,8541,677

configureH A D04-Jun-2020404.1 KiB14,05111,519

configure.acH A D04-Jun-2020162.7 KiB5,2124,896

configure.tclH A D28-Oct-200712.1 KiB428329

gettext.tclH A D02-Apr-20203.3 KiB15761

iconfig.hH A D02-Apr-202016.3 KiB574469

install-shH A D14-Nov-202015 KiB542352

language.ja.tclH A D28-Oct-20073.2 KiB8153

language.tcl.tmplH A D28-Oct-20073 KiB8162

make.comH A D05-Apr-202042.6 KiB677676

mkinstalldirsH A D23-Aug-20203.4 KiB163111

mmov.comH A D28-Oct-2007536 1211

mmov.optH A D28-Oct-200750 43

mmov_vms.optH A D28-Oct-200736.1 KiB824823

tclIndexH A D28-Oct-20071.8 KiB3028

xlockmore.specH A D29-Aug-20217 KiB191129

README

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