1088 lines
46 KiB
Plaintext
1088 lines
46 KiB
Plaintext
xlockmore-5.22: the maintained version of xlock
|
|
see docs/Revisions for more version stuff
|
|
see docs/TODO for stuff to do :)
|
|
Help is always appreciated too ;) .
|
|
|
|
Primary site: ftp://ftp.tux.org/pub/people/david-bagley/xlockmore
|
|
Secondary site: ftp://ftp.x.org/contrib/applications
|
|
Web page: http://www.tux.org/~bagleyd/xlockmore.html
|
|
Maintainer: David A. Bagley <bagleyd@tux.org>
|
|
|
|
Mailman lists: http://www.tux.org/mailman/listinfo
|
|
If you are interested in contributing to XLock development and/or maintenance
|
|
or just want to be notified when the latest stable version comes out.
|
|
|
|
choices brief description
|
|
------- -----------------
|
|
xlock-announce Xlock beta and production announcements
|
|
xlock-develop Xlock alpha ("daily") release announcements
|
|
xlock-discuss Xlock/Xlockmore development discussion
|
|
|
|
Please send all bug reports to bagleyd@tux.org .
|
|
Alpha versions may be available through web page or primary ftp site.
|
|
Adapted from Patrick J. Naughton's original xlock, with lots of help
|
|
from others.
|
|
|
|
|
|
How to build?
|
|
-------------
|
|
An ANSI C compiler is required for build.
|
|
motif (and editres) are used to build xmlock and are not used in xlock.
|
|
|
|
Check below to see if your machine is one mentioned that causes
|
|
problems, otherwise it should be easy. Just to be safe after installing
|
|
test it with something like: `/usr/local/bin/xlock -debug -verbose`
|
|
|
|
If you installed this before you may want to back up your XLock.ad file
|
|
if you made changes, since `make install` will overwrite this.
|
|
|
|
There are 3 ways to build:
|
|
|
|
configure:
|
|
`configure --help` to see options.
|
|
|
|
configure ; make ; make install
|
|
|
|
For Linux and others you may want something like:
|
|
configure --prefix=/usr/X11R6 ; make ; make install
|
|
that way it will install it in /usr/X11R6 not /usr/local
|
|
For Suns you may want:
|
|
configure --prefix=/usr/openwin ; make ; make install
|
|
|
|
imake:
|
|
Sometimes this is not setup correctly by the distributor ... i.e. not
|
|
my fault. You may want to do these quick edits to the iconfig.h so you
|
|
have more capabilities:
|
|
|
|
Do you have XPM? If so, uncomment "#define XpmLibrary".
|
|
Do you have OpenGL or Mesa? If so, uncomment "#define GLLibrary".
|
|
Do you have CDE? If so, uncomment "#define DtSaverLibrary".
|
|
Do you have RPLAY? If so, uncomment "#define RplayLibrary".
|
|
Do you have NAS? If so, uncomment "#define NasLibrary".
|
|
Do you have Motif? If so, uncomment "#define XmLibrary".
|
|
|
|
Examine iconfig.h for other optional capabilities.
|
|
|
|
xmkmf ; make Makefiles ; make depend ; make ; make install
|
|
or
|
|
xmkmf -a ; make ; make install
|
|
|
|
make.com:
|
|
See VMS below.
|
|
|
|
|
|
Note to binary redistributors:
|
|
-----------------------------
|
|
Probably should not distribute with any library requirements
|
|
(except possibly XPM, unless you statically link them in
|
|
and with USE_BOMB since it might not run right if you do not know
|
|
if your users will use xdm or not. For example:
|
|
configure --without-xpm --without-opengl --without-mesa
|
|
--without-dtsaver --without-rplay --without-nas --disable-bomb; make
|
|
You may want to distribute it with the xlock/XLock.ad file with "XLock."
|
|
instances replaced with "*". On Sun's, I need it to override the system
|
|
XLock.ad file.
|
|
Please let me know if there are other concerns.
|
|
|
|
|
|
Likely Problems
|
|
---------------
|
|
Make sure you use the new XLock.ad resource file (or at least remove the
|
|
old one) otherwise several modes will not be set up nicely. This is
|
|
usually put as a file in $HOME/XLock and/or
|
|
$WHEREVER_X11_IS_LOADED/lib/X11/app-defaults/XLock .
|
|
|
|
"Key: " this usually means you should get your administrator to setuid
|
|
xlock to root or at least setgid xlock to shadow. If you do not have
|
|
a friendly administrator it is asking for a key (password) that it will
|
|
save encrypted your $HOME/.xlockrc file.
|
|
|
|
Debugging options I use frequently:
|
|
xlock -debug -verbose -erasemode no_fade -duration 2 -sequential
|
|
|
|
AIX (IBM RS6000)
|
|
AIX's "make":
|
|
AIX's "make" can not handle "+=" so if you use the iconfig.h, you
|
|
have to group all your DEFINES into one long line and use "="
|
|
instead. GNU's "make" solves this problem.
|
|
AIX 3.1 and less:
|
|
it SHOULD compile automatically with -DLESS_THAN_AIX3_2 using the
|
|
iconfig.h, since the passwd struct is not available.
|
|
AIX 3.2 and greater:
|
|
one must have setuid xlock to root if you want to use it
|
|
without being root.
|
|
su - root
|
|
chown root xlock
|
|
chmod u+s xlock
|
|
chmod og+rx xlock
|
|
AFS users:
|
|
See iconfig.h, grep on "AFS".
|
|
Some machines have an alternate password shadowing method, if someone
|
|
figures it out mail me the patch.
|
|
AIX with DCE you will need "-ls" among the XLOCKLIBS.
|
|
|
|
Alpha-OSF/1 (Digital Equipment Corp)
|
|
|
|
Enhanced security:
|
|
Compile with -DOSF1_ENH_SEC see iconfig.h
|
|
chown auth.auth xlock
|
|
chmod 2755 xlock
|
|
Unfortunately the following is reportedly broken since xlockmore-2.10
|
|
and needs a patch, I heard it produces the following at runtime.
|
|
Unaligned access pid=1767 <xlock> va=140489e24 pc=3ff807d9978 ra=3ff807d9880
|
|
type=ldq
|
|
Segmentation fault (core dumped)
|
|
|
|
Apollo (HP)
|
|
Shift-Control-Break is caught. See HP.
|
|
|
|
CDE (DT) Common Desktop Environment.
|
|
Go to the CDE DT CONFIG SECTION of the
|
|
iconfig.h and uncomment (should be autodetected if you use configure)
|
|
XCOMM #define DtSaverLibrary
|
|
Here's what it does:
|
|
The DT screensaver is part of the dtwm window manager and what it does
|
|
is create a full-screen-sized window for each screen of your display.
|
|
This is different from other screen savers which use virtual roots.
|
|
|
|
What the DTSAVER option does is basically call a DT routine that
|
|
returns the id's of the windows it creates for the screensaver. Then
|
|
xlockmore will use these windows to display its stuff.
|
|
|
|
DT has a program where you can select your screensaver modes (or
|
|
screen saver programs), ala xmlock, and set your screensaver settings.
|
|
It also creates a small window where if you select a particular mode
|
|
it will run the screen saver and display it on that small window.
|
|
|
|
Here's how to set it up on your home directory.
|
|
cp etc/dtprofile $HOME/.dtprofile
|
|
This uses a ksh syntax. If your shell is csh or other change it
|
|
accordingly.
|
|
cp etc/dtscreen.dt $HOME/.dt/types
|
|
The actions points to /usr/remote so you may want to change this.
|
|
After this you need to completely logout from your CDE session and log
|
|
back in so it will read the .dtprofile. (If you just modify the actions
|
|
in dtscreen.dt you don't need to log out; you can simply restart your
|
|
dtwm.)
|
|
Here's how to set it up on your system.
|
|
edit /usr/dt/bin/Xsession DTSCREENSAVERLIST to contain the
|
|
DTSCREENSAVERLIST stuff in etc/dtprofile
|
|
cp etc/dtscreen.dt /usr/dt/appconfig/types/C/dtscreen.dt
|
|
|
|
The disadvantage to the above is some features of xlock are absent,
|
|
in particular, the logout lab feature. This version of xlock does not
|
|
hava a drop in replacement for the Screen Style Manager. Here is a
|
|
work around on Solaris in 3 patches:
|
|
1. Take out Screen option.
|
|
2. Put in /usr/local/bin/xlock as the default locker.
|
|
3. Turn off the default DT locking mechanism.
|
|
*** /usr/dt/app-defaults/C/Dtstyle.orig Fri Apr 12 11:53:00 1996
|
|
--- /usr/dt/app-defaults/C/Dtstyle Thu Jul 24 09:47:34 1997
|
|
***************
|
|
*** 24,30 ****
|
|
!# Do not translate the following
|
|
!###
|
|
!# componentList specifies the buttons that appear in the Style Manager.
|
|
! Dtstyle*componentList: Color Font Backdrop Keyboard Mouse Beep Screen Dtwm Startup
|
|
|
|
!# The Style Manager may be oriented vertically by commenting out this line
|
|
Dtstyle*mainRC.orientation: HORIZONTAL
|
|
--- 24,31 ----
|
|
!# Do not translate the following
|
|
!###
|
|
!# componentList specifies the buttons that appear in the Style Manager.
|
|
! !#Dtstyle*componentList: Color Font Backdrop Keyboard Mouse Beep Screen Dtwm Startup
|
|
! Dtstyle*componentList: Color Font Backdrop Keyboard Mouse Beep Dtwm Startup
|
|
|
|
!# The Style Manager may be oriented vertically by commenting out this line
|
|
Dtstyle*mainRC.orientation: HORIZONTAL
|
|
*** /usr/dt/appconfig/types/C/dt.dt.orig Fri Apr 12 11:53:28 1996
|
|
--- /usr/dt/appconfig/types/C/dt.dt Thu Jul 24 11:32:21 1997
|
|
***************
|
|
*** 226,235 ****
|
|
ACTION LockDisplay
|
|
{
|
|
LABEL LockDisplay
|
|
! TYPE TT_MSG
|
|
! TT_CLASS TT_REQUEST
|
|
! TT_SCOPE TT_SESSION
|
|
! TT_OPERATION Display_Lock
|
|
DESCRIPTION The LockDisplay action locks the workstation. \
|
|
You must know the user's or root password to \
|
|
unlock the workstation.
|
|
--- 226,239 ----
|
|
ACTION LockDisplay
|
|
{
|
|
LABEL LockDisplay
|
|
! # TYPE TT_MSG
|
|
! # TT_CLASS TT_REQUEST
|
|
! # TT_SCOPE TT_SESSION
|
|
! # TT_OPERATION Display_Lock
|
|
! TYPE COMMAND
|
|
! ARG_COUNT 0
|
|
! WINDOW_TYPE NO_STDIO
|
|
! EXEC_STRING /usr/local/bin/xlock
|
|
DESCRIPTION The LockDisplay action locks the workstation. \
|
|
You must know the user's or root password to \
|
|
unlock the workstation.
|
|
*** /usr/dt/config/C/sys.resources.orig Fri Apr 12 11:53:15 1996
|
|
--- /usr/dt/config/C/sys.resources Thu Jul 24 11:33:57 1997
|
|
***************
|
|
*** 82,88 ****
|
|
|
|
|
|
dtsession*saverTimeout: 10
|
|
! dtsession*lockTimeout: 30
|
|
dtsession*cycleTimeout: 3
|
|
dtsession*saverList: StartDtscreenBlank
|
|
|
|
--- 82,89 ----
|
|
|
|
|
|
dtsession*saverTimeout: 10
|
|
! !#dtsession*lockTimeout: 30
|
|
! dtsession*lockTimeout: 0
|
|
dtsession*cycleTimeout: 3
|
|
dtsession*saverList: StartDtscreenBlank
|
|
|
|
|
|
Using xlock from the dtwm front panel
|
|
(from Sun Infodoc ID 13527 available from http://sunsolve.sun.com)
|
|
--------------------------------------------------------------------
|
|
First the easy way (This is to overwrite the default CDE action)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
1. Run dtcreate
|
|
2. Create an action called LockDisplay
|
|
3. Set the "Command when action is opened" field to:
|
|
/usr/openwin/bin/xlock
|
|
4. Set the "Window Type" field to No Output.
|
|
5. Save the file ==> this creates a LockDisplay.dt in ~/.dt/types
|
|
6. Reload the action.
|
|
|
|
This will help you to bring up xlock when you are using lock in the
|
|
front panel.
|
|
|
|
|
|
|
|
|
|
Second way (another way to use action)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
1. Create a new action for your desktop. We'll call it Xlock.
|
|
2. Tell the desktop about the new action and then test it.
|
|
3. Modify the front panel so that it will call your new
|
|
action, Xlock, instead of the old action, LockDisplay.
|
|
|
|
1. CREATING A NEW ACTION:
|
|
|
|
- cd to ~/.dt/types and create a file called Xlock.dt.
|
|
- Add the following action definition to this file.
|
|
|
|
ACTION Xlock
|
|
{
|
|
LABEL Xlock
|
|
ARG_COUNT 0
|
|
TYPE COMMAND
|
|
WINDOW_TYPE NO_STDIO
|
|
EXEC_STRING /usr/openwin/bin/xlock
|
|
DESCRIPTION xlock
|
|
}
|
|
|
|
- This action definition defines an action called "Xlock".
|
|
When the action is called, it will execute xlock by
|
|
calling /usr/openwin/bin/xlock.
|
|
|
|
2. TELLING THE DESKTOP ABOUT THE NEW ACTION AND TESTING IT:
|
|
|
|
- Now that we have defined the new Xlock action, we need to
|
|
first tell the desktop about it and then test it.
|
|
- To tell the desktop about the new action bring up
|
|
the "Application Manager". You can do this by selecting
|
|
it from the front panel.
|
|
- From the Application Manager, select "Desktop_Tools"
|
|
- Now, select "Reload Actions".
|
|
|
|
- At this point, the desktop knows about the new Xlock action.
|
|
To test it, type "dtaction Xlock". Xlock should start up.
|
|
|
|
|
|
3. ADDING THE NEW ACTION TO THE FRONT PANEL:
|
|
|
|
- copy the dtwm front panel configuration file, dtwm.fp, from
|
|
/opt/CDE/appconfig/types/C directory to your personal dt
|
|
directory "~/.dt/types" directory.
|
|
- cd to ~/.dt/types
|
|
- From here, edit the dtwm.fp
|
|
- Search for Lock. You should see something like:
|
|
|
|
CONTROL Lock
|
|
{
|
|
TYPE icon
|
|
CONTAINER_NAME Switch
|
|
CONTAINER_TYPE SWITCH
|
|
POSITION_HINTS 1
|
|
ICON Fplock
|
|
LABEL Lock
|
|
PUSH_ACTION LockDisplay
|
|
HELP_TOPIC FPOnItemLock
|
|
HELP_VOLUME FPanel
|
|
}
|
|
|
|
- When you press the lock icon on the front panel, it calls
|
|
the action LockDisplay. The above paragraph is the definition
|
|
for that front panel lock icon.
|
|
|
|
- To get the front panel lock icon to call the action we
|
|
just defined, Xlock, instead of the LockDisplay action, all
|
|
you need do is change the PUSH_ACTION line from
|
|
"LockDisplay" to "Xlock".
|
|
|
|
CONTROL Lock
|
|
{
|
|
TYPE icon
|
|
CONTAINER_NAME Switch
|
|
CONTAINER_TYPE SWITCH
|
|
POSITION_HINTS 1
|
|
ICON Fplock
|
|
LABEL Lock
|
|
PUSH_ACTION Xlock
|
|
HELP_TOPIC FPOnItemLock
|
|
HELP_VOLUME FPanel
|
|
}
|
|
|
|
- Note: You might change the Label field to Xlock and you
|
|
might remove the HELP_TOPIC and HELP_VOLUME fields, but this
|
|
modification is not necessary.
|
|
|
|
- Now tell the window manger to reread the configuration
|
|
files. You do this by selecting "Restart Workspace Manager..."
|
|
from your workspace menu.
|
|
|
|
- Press the lock icon on the front panel...xlock should be
|
|
called. If not, make sure your DTDATABASESEARCHPATH
|
|
environment variable contains $HOME/.dt/types.
|
|
--------------------------------------------------------------------
|
|
|
|
Cygwin32:
|
|
Build like this:
|
|
CFLAGS="-O2 -m486 -Wall" CXXFLAGS="-O2 -m486 -Wall"\
|
|
./configure --prefix=/usr/X11R6 --disable-allow-root --disable-bomb\
|
|
--enable-unstable --enable-orig-xpm-patch --enable-xlockrc\
|
|
--enable-def-play="cat > /dev/dsp < "
|
|
Not done: text3d (sound is better with wav files)
|
|
|
|
DCE authentication (tested only on HP's)
|
|
See iconfig.h (xmkmf) or modes/Makefile.in (configure).
|
|
|
|
Digital Unix
|
|
Reported that 3.2D (8bpp) password screen color map gets messed up
|
|
sometimes when in random mode as it switches from one mode to another.
|
|
|
|
ESIX
|
|
Similar to Solaris2.x. You will need a -DSVR4 to compile.
|
|
chmod 440 /etc/shadow
|
|
if you get libX11.so.xxx not found
|
|
link with the static versions of the X libraries
|
|
chmod 2755 xlock
|
|
|
|
FreeBSD
|
|
One may have to setuid xlock to root (are there any objections?).
|
|
Also see "XFree86" if applicable.
|
|
|
|
HP
|
|
Shift-Control-Break is caught. This uses a library Xhp11 that may
|
|
not exist on some systems. Comment out
|
|
XHPDisableReset(dsp);
|
|
and
|
|
XHPEnableReset(dsp);
|
|
in "xlock.c" if you do not have this library.
|
|
May have to setuid xlock to root.
|
|
The optimizer may break in xlock/ .
|
|
HP's "make":
|
|
HP's "make" can not handle "+=" so if you use the iconfig.h, you
|
|
have to group all your DEFINES into one long line and use "="
|
|
instead. GNU's "make" solves this problem.
|
|
HP-UX with Secured Passwords:
|
|
Compile with -DHPUX_SECURE_PASSWD and setuid xlock to root.
|
|
HP-UX with Passwd Etc:
|
|
Compile with -DHP_PASSWDETC .
|
|
Link with -lrgy -lnck -lndbm .
|
|
This is insecure so make sure you know this by having you go to the
|
|
code to enable it.
|
|
Calls to XSetScreenSaver when using CDE (i.e. not called with -dtsaver)
|
|
are not supported. This can cause a disruption in the rpc ttdbserver
|
|
system resulting in the CDE lock and exit buttons to fail, 5 to 50%
|
|
of the time. I am told this will not be fixed by HP, only documented.
|
|
The only supported method of doing this stuff is via dtstyle.
|
|
configure --without-editres if configure gets tripped up
|
|
I found on my system -g -O trips up on life.c and shape.c ... so just
|
|
have one or the other.
|
|
|
|
IRIX (SGI)
|
|
OpenGL works but may be a little flaky.
|
|
Add this to the Makefile.
|
|
-DglGenTextures=glGenTexturesEXT\
|
|
-DglDeleteTextures=glDeleteTexturesEXT\
|
|
-DglBindTexture=glBindTextureEXT
|
|
xmlock wont work because there is a /usr/bin/X11/xlock too,
|
|
so either rename that one or dont use xmlock.
|
|
|
|
KERBEROS
|
|
See iconfig.h (xmkmf) or configure --help .
|
|
|
|
Linux (Intel 80386, 80486, & Pentium)
|
|
Red Hat and PAM ... may not work ... #define BAD_PAM in config.h after
|
|
you do a configure and before a make. Then make sure xlock is setuid
|
|
root.
|
|
If you are using elf _or_ shadow passwords:
|
|
xlock should compile with -DHAVE_SHADOW
|
|
this is already forced if you have elf so do not worry, it should
|
|
work even if you do not have shadow passwording.
|
|
If you are _not_ using elf and are using shadow passwords:
|
|
(this old version of shadowing has a _MAJOR_ known security flaw)
|
|
link with -lshadow -lgdbm
|
|
Next if using shadow passwords:
|
|
chown root.root xlock (or root.shadow if it exists)
|
|
chmod 4755 xlock
|
|
(chmod 2755 xlock may be better if shadow has group read for root group)
|
|
Also check that the following was done:
|
|
Your /usr/X11R6/lib/X11/config/linux.cf should have
|
|
#define HasShadowPasswd YES
|
|
This would let the iconfig.h work automatically for compile/link.
|
|
chown root.root /etc/shadow (or root.shadow if it exists)
|
|
chmod 400 /etc/shadow
|
|
(chmod 440 /etc/shadow may be better).
|
|
If you want to install shadow passwords on a system that doesn't
|
|
already have them (be careful, it can be tricky), see
|
|
http://sunsite.unc.edu/linux/HOWTO/Shadow-Password-HOWTO.html
|
|
|
|
Also see "XFree86" if applicable.
|
|
|
|
Linux (Alpha)
|
|
Change the order of XLIB and XPMLIB in the iconfig.h so the XPMLIB
|
|
comes first. Intel stuff above probably applies as well.
|
|
|
|
Mesa and OpenGL
|
|
I assume the Mesa 3-D Graphics Library for the Imakefile. See below
|
|
on availability. Follow its instructions and then go to Mesa
|
|
section of the iconfig.h and uncomment
|
|
XCOMM #define GLLibrary
|
|
Mesa and sometimes OpenGL are autodetected if you use configure.
|
|
xlock using the Mesa Libraries (<= 2.6) setuid root has a known
|
|
method for users to obtain root privledges!
|
|
Mesa leak (<=3.4.1) you may want to fix a leak for glXUseXFont()
|
|
*** src/X/xfonts.c.orig Fri Feb 9 09:42:36 2001
|
|
--- src/X/xfonts.c Thu May 3 09:24:21 2001
|
|
***************
|
|
*** 260,266 ****
|
|
bm = (GLubyte *) MALLOC((max_bm_width * max_bm_height) * sizeof
|
|
(GLubyte));
|
|
if (!bm) {
|
|
! XFreeFontInfo( NULL, fs, 0 );
|
|
gl_error(NULL, GL_OUT_OF_MEMORY,
|
|
"Couldn't allocate bitmap in glXUseXFont()");
|
|
return;
|
|
--- 260,266 ----
|
|
bm = (GLubyte *) MALLOC((max_bm_width * max_bm_height) * sizeof
|
|
(GLubyte));
|
|
if (!bm) {
|
|
! XFreeFontInfo( NULL, fs, 1 );
|
|
gl_error(NULL, GL_OUT_OF_MEMORY,
|
|
"Couldn't allocate bitmap in glXUseXFont()");
|
|
return;
|
|
***************
|
|
*** 375,381 ****
|
|
}
|
|
|
|
FREE(bm);
|
|
! XFreeFontInfo( NULL, fs, 0 );
|
|
XFreeGC (dpy, gc);
|
|
|
|
/* Restore saved packing modes. */
|
|
--- 375,381 ----
|
|
}
|
|
|
|
FREE(bm);
|
|
! XFreeFontInfo( NULL, fs, 1 );
|
|
XFreeGC (dpy, gc);
|
|
|
|
/* Restore saved packing modes. */
|
|
|
|
|
|
PAM
|
|
http://www.kernel.org/pub/linux/libs/pam/
|
|
Rplay
|
|
Audio package. See below on availability. Follow its instructions and
|
|
then go to iconfig.h and uncomment (should be autodetected if you use
|
|
configure)
|
|
XCOMM #define RplayLibrary
|
|
See config directory for example. (Note: The example files are
|
|
concerned with getting it working ... not security).
|
|
|
|
Solaris2 and greater (Sun SPARC)
|
|
You could use Mesa or OpenGL. I found a developers version of OpenGL at
|
|
http://www.sun.com/software/graphics/OpenGL/index.html
|
|
Solaris2.6 may not work with rplay. configure --without-rplay
|
|
If you get something like:
|
|
xlock.c:1584: `sigset_t' undeclared (first use this function)
|
|
try removing -I/usr/include from the Makefiles or get rid of -Xc
|
|
in the xlock/Makefile. If someone figures out a way around this
|
|
in the code let me know.
|
|
To get xlock working with Sun's GL libraries and includes
|
|
If you get "macro `glNormal3f' used with just one arg" ... you need
|
|
-DSUN_OGL_NO_VERTEX_MACROS
|
|
If using Imakefile, see iconfig.h .
|
|
After a make, use on a display that supports GLX `xdpyinfo | grep GLX`
|
|
Imake will compile with the -DHAVE_SHADOW switch.
|
|
With GNU's gcc, get rid of the "-ansi" during compilation, also
|
|
one may want to get rid of the -xF references in
|
|
/usr/openwin/lib/config/sun.cf and Imake.tmpl if you get a
|
|
cc: language F not recognized
|
|
Solaris2.x NIS+ or not using NIS (/etc/passwd):
|
|
If you use netgroup make sure there is a return at the end of file.
|
|
If your using g++-2.95 or later and have old X11 includes you may have
|
|
to change "g++" to "g++ -fpermissive" in the Makefiles.
|
|
Sometimes a path to stdc++ library or something is not set right by
|
|
configure. The symptom is that xlock runs fine as root but gives a
|
|
"No such file or directory" error for a library when run by a user.
|
|
Edit with the modes/Makefile adding to XLOCKLDFLAGS the path to the
|
|
directory of the library and rebuild.
|
|
|
|
SunOS4.1.x (Sun Sparc & 680x0)
|
|
bubble may crash the xnews server if patch 100444-76 OpenWindows V3.0
|
|
Server patch is installed. To test this
|
|
`strings /usr/openwin/bin/xnews | grep Patch`
|
|
It would then show Patch #3000-124 if 10044-76 is installed.
|
|
Put in a link from /usr/include/X11 to your ${OPENWINHOME}/include/X11
|
|
to use the xmkmf or use the configure file provided.
|
|
gcc -Wall gives a lot of silly warnings, its safe to disregard them.
|
|
If your using g++-2.95 or later and have old X11 includes you may have
|
|
to change "g++" to "g++ -fpermissive" in the Makefiles.
|
|
|
|
Ultrix (DEC)
|
|
I heard that the logout button just kills xlock.
|
|
USE_XLOCKRC feature unimplemented, but may not be hard to do.
|
|
xlock must be either setuid root or setgid authread to validate the
|
|
password on an Ultrix system.
|
|
|
|
VMS (DEC)
|
|
You may want to set a few things like vroot, bomb, and sound (see audio
|
|
below) at the top of the file.
|
|
All you should need to do to build the executable is:
|
|
$ @make
|
|
To run xlock a symbol needs to be defined, for example:
|
|
XLOCK:==$H268SYSEXE:XLOCK
|
|
where H268SYSEXE is a logical name pointing to the directory where
|
|
XLOCK.EXE resides. The '$' after == means this is a foreign command
|
|
and VMS makes the command line available to the program.
|
|
If the link bombs out I recommend trying it again like the following:
|
|
$ @make clean
|
|
$ @make
|
|
-allowroot only works if you have SYSPRV enabled which is a bit limiting.
|
|
Unless one uses the privileged install by a system manager. To do
|
|
this, the following command needs to be executed at system startup
|
|
(i.e. included in systartup_vms.com):
|
|
INSTALL ADD {dev}:[{dir}]XLOCK.EXE/PRIV=(SYSPRV)
|
|
where {dev}:[{dir}] is the full path of the executable.
|
|
The XLock file normally in /usr/lib/X11/app-defaults needs to be in the
|
|
directory DECW$SYSTEM_DEFAULTS on VMS systems and be called
|
|
'DECW$XLOCK.DAT'.
|
|
USE_XLOCKRC, USE_AUTO_LOGOUT, USE_BUTTON_LOGOUT, & USE_MULTIPLE_ROOT
|
|
features are not implemented.
|
|
To use audio:
|
|
Set "sound" to be 1 in the make.com file. Only available on the Alpha.
|
|
To get it work on a VAX some editing of the make.com is needed
|
|
(scan for USE_VMSPLAY)
|
|
The default sound files are hard coded to be in the current directory
|
|
see line 128 or so of the resource.c file but can be overruled from
|
|
the command line or the resourcefile decw$xlock.dat.
|
|
Sounds did not work for me on the VAX.
|
|
It should work OK on an AXP. (Due to a bug in the SO driver on some
|
|
models running VMS7.0, sounds are only available on the headset).
|
|
To use new event loop:
|
|
For VMS7.0 and higher : new event loop is used by default.
|
|
You do not need to install extra software.
|
|
For VMS6.2 or lower :
|
|
You need some UNIX utilities installed (XVMSUTILS). See where to get
|
|
it below.
|
|
Look at the make.com and xvmsutil stuff.
|
|
Latest on VMS sound
|
|
first it tests if the SO: device is present
|
|
Then if it could be compiled in (license problems) MMOV (Multimedia
|
|
services for OpenVMS) is used. Probably you'll need the Developer
|
|
license to get it compiled.
|
|
limitations :
|
|
-currently the SYSNAM privilige is needed to play sounds
|
|
(limitation of MMOV)
|
|
-some compilation warnings/informationals in the routines which
|
|
are taken from the users system disk. (problem in MMOV)
|
|
-One warning due to multiple defined symbols in the libraries
|
|
issued by Compaq should be ignored.
|
|
-Presently A developer license for MMOV is needed. Probably by
|
|
slightly modifying DEF_PLAY the Run-time license could also
|
|
be usable.
|
|
|
|
X11
|
|
If your using g++-2.95 or later and have old X11 includes you may have
|
|
to change "g++" to "g++ -fpermissive" in the Makefiles.
|
|
|
|
XFree86
|
|
Add the following to ~/.Xdefaults
|
|
XLock.startCmd: xmodmap -e 'keycode 37=' -e 'keycode 109='
|
|
XLock.endCmd: xmodmap -e 'keycode 37=Control_L' -e 'keycode 109=Control_R'
|
|
which unmaps both Control keys when xlock is started, and restores the
|
|
mapping when it ends. Restart your session so .Xdefaults is read...
|
|
Works perfectly.
|
|
Other less perfect methods...
|
|
Control-Alt-Backspace will defeat locking mechanism and return your
|
|
console back unless you put "DontZap" in your XF86Config file.
|
|
(In X11R5, that would be a "dontzap" in your Xconfig file).
|
|
Control-Alt-F1 (among others) will defeat locking mechanism with
|
|
virtual terminals. This is not too good, right? If you are using
|
|
Linux, try vlock on tsx-11.mit.edu in /pub/linux/sources/usr.bin .
|
|
The current XFree86 (as far as I know) does not have a server
|
|
extension for catching or disabling VT switching.
|
|
Here is a work around, put this line in /etc/profile:
|
|
alias x='(startx >/dev/null &);clear;logout'
|
|
then use 'x' instead of 'startx' (with no other active VT's).
|
|
Try configuring with --enable-vtlock . This is experimental and requires
|
|
xlock being setuid to root so there are security concerns with it.
|
|
See man pages for its runtime options.
|
|
|
|
XPM
|
|
Full color pixmap package. See below on availability. Follow its
|
|
instructions and then go to iconfig.h and uncomment (should be
|
|
autodetected if you use configure)
|
|
XCOMM #define XpmLibrary
|
|
|
|
X-Terminal
|
|
(My heart bleeds for you.)
|
|
To get xlock to run, run with -remote option or set XLock.remote on
|
|
in XLock.ad . You might have to use -allowaccess as well.
|
|
|
|
tvtwm
|
|
One used to get following error when running xlock (+nolock) with
|
|
tvtwm.
|
|
X Error of failed request: BadWindow (invalid Window parameter)
|
|
What happens is that RootWindow(dsp, screen) fails when tvtwm is
|
|
running. There is a kludge fix, but multiscreens will not work
|
|
right with tvtwm and xlock. (grep on TVTWM in xlock.c).
|
|
Another option, don't compile with -DUSE_VROOT . If you debug it
|
|
mail ME -OR- both the author of tvtwm and ME the patch.
|
|
StickyAbove problems:
|
|
Windows in a tvtwm that have "StickyAbove" set to true are still
|
|
visible when xlock (+inroot) is running. If this bothers you,
|
|
don't compile with -DUSE_VROOT . Is it possible to have xlock
|
|
set "StickyAbove" to true as well?
|
|
|
|
fvwm
|
|
-install does not install colormaps. fvwm will not allow an
|
|
application to install its own colormap. You could always edit the
|
|
source if you have it, (fvwm-1.24r)colormaps.c, where it says
|
|
if(ReInstall)
|
|
{
|
|
XInstallColormap(dpy,last_cmap);
|
|
}
|
|
make sure this does not happen.
|
|
(fvwm does this because its following the X11 docs which say that
|
|
window managers should not allow an application to install colormaps).
|
|
|
|
swirl (and tube) mode
|
|
Use with -install to see colormap change.
|
|
See "fvwm" if applicable.
|
|
"swirl" cycles its colors, except black and white.
|
|
This is easily seen when on a color monitor one enters:
|
|
./xlock -mode swirl -inwindow -install
|
|
now move the mouse in the window.
|
|
If you find this annoying compile swirl.c with -DFORCEFIXEDCOLORS.
|
|
I hear it LOCKS UP on i386BsdArchitecture and tvtwm.
|
|
With twm (and fvwm see above) the colormap does not change.
|
|
|
|
transparent mode
|
|
Try this fudge:
|
|
xlock -mode blank -geometry 1x1 -enablesaver
|
|
|
|
SafeWord
|
|
Edit config.h.in ... uncomment SAFEWORD line near bottom.
|
|
In modes/Makefile.in make sure SAFEWORD is linked in, comment out
|
|
similar link that does not contain safeword libraries.
|
|
Put the cust*.h files in the main xlock directory.
|
|
Use `configure; make`.
|
|
Get back to me if it works or does not work.
|
|
|
|
Dynamic Linking
|
|
Dynamic Linking using elf on the Linux and Sun. This is kind of fragile
|
|
and will break other systems. GL modes using Mesa on a PseudoColor
|
|
display seem to run short of colors.
|
|
Linux:
|
|
Not all distributions of Linux have "dlfcn.h" which is needed.
|
|
Using configure --enable-modules (MODULE_PATH set in modes/Makefile(.in)
|
|
and xlock/Makefile(.in)) then build as normal. This is not recomended
|
|
since random mode seems to act very strangely.
|
|
Uncomment at least "#define Modules" in iconfig.h, run "xmkmf -a"
|
|
and run make install as normal.
|
|
Sun:
|
|
Need Gnu's make
|
|
Can use gcc (recommended) or cc
|
|
cc and CC problem with C++ modes (solitare and text3d)
|
|
xlock: LoadModule: modes/solitare.xlk: ld.so.1: xlock/xlock: fatal:
|
|
relocation error: file modes/solitare.xlk: symbol __0OnwUi:
|
|
referenced symbol not found unrecognized mode "solitare").
|
|
configure will not work.
|
|
Uncomment at least "#define Modules" in iconfig.h.
|
|
If you have more than one C++ compiler set CXX in iconfig.h
|
|
(seems to default to g++ for me)
|
|
xmkmf -a # Ignore errors on Sun (should not get errors on Linux)
|
|
Edit generated Makefiles like this:
|
|
for i in Makefile xlock/Makefile modes/Makefile modes/glx/Makefile ; do
|
|
# both cc (& CC) and gcc (& g++)
|
|
sed -e "s#/usr/ccs/bin/make#/usr/local/bin/make#g" $i > $i.tmp ; mv $i.tmp $i
|
|
sed -e "s# -z text -M mapfile##g" $i > $i.tmp ; mv $i.tmp $i
|
|
sed -e "s# -Xc -xF -xcg92##g" $i > $i.tmp ; mv $i.tmp $i
|
|
#following seds for gcc and g++ only
|
|
sed -e "s#= cc\$#= gcc#g" $i > $i.tmp ; mv $i.tmp $i
|
|
sed -e "s#= cc #= gcc #g" $i > $i.tmp ; mv $i.tmp $i
|
|
sed -e "s# -Kpic##g" $i > $i.tmp ; mv $i.tmp $i
|
|
done
|
|
For g++ and Sun edit modes/Makefile and modes/glx/Makefile for
|
|
-isystem change (use grep on isystem to find it).
|
|
Also, if you have more than one C++ compiler set CXX in Makefile.
|
|
make install
|
|
|
|
Personal Use
|
|
------------
|
|
You may want to compile with USE_XLOCKRC . xlock will then prompt
|
|
you the first time you use it for a password. It is then encrypted
|
|
and stored in your $HOME/.xlockrc file. This is also good for
|
|
users who have an unrecognized shadow password environment. See
|
|
iconfig.h file (xmkmf) or `configure --help` for an example.
|
|
Please note that it may be rude to use xlock in a lab environment.
|
|
|
|
Lab Environment
|
|
---------------
|
|
The auto logout feature, when enabled, will log out a user after
|
|
30 minutes (by default). The timeout can be changed or disabled
|
|
with a command-line option (or x resource -- this is allowed because
|
|
the logout button can always be used; see below). The time
|
|
remaining before auto-logout is displayed on the password entry
|
|
screen.
|
|
|
|
The logout button, when enabled, is a button that appears on the
|
|
password entry screen after 5 minutes (configurable at
|
|
compile-time) that, when clicked, logs out the user. The rationale
|
|
for this thing is that in a lab environment, we wanted a way for
|
|
users to be able to reliably lock their display for short periods
|
|
of time, but still be allowed to have the display locked for longer
|
|
than that if the lab isn't busy. If the lab IS busy, and there is
|
|
a need for workstations, the logout button can be used to logout
|
|
someone who's been gone for more than 5 minutes.
|
|
|
|
Of course, the auto-logout and the logout button are
|
|
enabled/disabled by compile-time defines. All these are OFF by
|
|
default. One can also force use these features with a local policy
|
|
of exemptions (e.g. username or group). See the iconfig.h file or
|
|
`configure --help` for an example. Edit your /etc/xlock.staff
|
|
file to reflect your policy. If using xdm, you may just want to use
|
|
-DCLOSEDOWN_LOGOUT (or -DSESSION_LOGOUT <- old way) in conjunction
|
|
with -DUSE_AUTO_LOGOUT or -DUSE_BUTTON_LOGOUT. That way all
|
|
backgrounded processes owned by a user do not have to be killed.
|
|
|
|
Don't PANIC, the auto-logout and the logout button will not run if
|
|
you are root. Otherwise, it will kill all of root's processes, not
|
|
a good idea. As long as you do not lock the screen (using -nolock,
|
|
-inwindow, or -inroot) the policy of xlock users does not go into
|
|
effect. If configured with --use-button-logout=-1, the user can decide
|
|
if he/she wants the logout button enabled (not enabled if
|
|
XLock.buttonLogout=0).
|
|
|
|
Also there are -DUSE_MULTIPLE_ROOT and -DUSE_MULTIPLE_USER options
|
|
where users with the same uid can unlock the screen. -DXLOCK_GROUP
|
|
option for all users in the xlock group can unlock.
|
|
|
|
blank mode only
|
|
Change xlock/XLock.ad from
|
|
XLock.mode: random
|
|
!XLock.mode: blank
|
|
to
|
|
!XLock.mode: random
|
|
XLock.mode: blank
|
|
|
|
Do a configure with these options, since they would useless now...
|
|
configure --without-opengl --without-mesa --without-xpm
|
|
Edit the generated config.h, add "#define BLANK_ONLY", then to a make.
|
|
|
|
xlock still does not work: :-(
|
|
-------------------------------
|
|
If all that does not work you may need to adjust xlock.h, passwd.c
|
|
xlock.c, and resource.c since these files are highly implementation
|
|
dependent. If you have to make this kind of change to get it working,
|
|
let me know.
|
|
|
|
You can try compiling with -g and running it with -debug and your
|
|
favorite debugger, so xlock will run in a more friendly way (i.e. it
|
|
does not lock the screen). There are also may be compile time switches
|
|
that could be turned on with -DDEBUG depending on what is not working
|
|
correctly.
|
|
|
|
Here is a simple recipe:
|
|
Make sure the 12th line in the iconfig.h is a comment
|
|
(This is because the debug library for xpm is not usually installed)
|
|
XCOMM #define XpmLibrary
|
|
xmkmf <or configure --without-xpm>
|
|
edit Makefile on the line with CC = gcc or or CC = cc change to
|
|
CC = gcc -g -DDEBUG
|
|
make depend <but not if using configure>
|
|
make
|
|
gdb xlock (xdb or dbx xlock may work too.)
|
|
run -debug <other xlock options you want here>
|
|
where
|
|
print <relevant variables>
|
|
(you may have to use "up" to take you to xlockmore code)>
|
|
Mail me the results.
|
|
|
|
If xlock crashes for you when in random mode... try this and mail
|
|
me the results. (If it runs for a long time partial result will do
|
|
(gut the middle part)).
|
|
xlock -mode random -modelist all +install -debug -verbose
|
|
-modelist all: all modes except blank
|
|
-debug: so it does not lock the screen.
|
|
-verbose: for maximum verbosity.
|
|
+install: so it does not keep changing the colormap
|
|
|
|
|
|
Other things to try: (if you got it working :-) )
|
|
-------------------------------------------------
|
|
|
|
Check out etc directory for menus and other goodies.
|
|
|
|
If you like to check out what xlock looks like on multiscreens and you
|
|
do not have them... but do have Linux and Xnest ... try:
|
|
Xnest -scrns 3 :1 &
|
|
xterm -display :1.0
|
|
And run xlock from the created xterm. (For some reason I have to do
|
|
it as root).
|
|
If you are using Mesa, it must be compiled without SHM extension do
|
|
to a bug in Xnest (even in XFree3.3 == X11R6.3) or you will get
|
|
"BadDrawable (invalid Pixmap or Window parameter)".
|
|
|
|
You may want to change the 1st line of XLock.ad "random" to "blank",
|
|
"life", or whatever your favorite is and copy it to
|
|
/usr/lib/X11/app-defaults or $HOME (or wherever your application
|
|
defaults files are) and rename to XLock .
|
|
|
|
You may want some of the modes never to come up in random. This is
|
|
already hard coded for the blank mode. See xlock man page on "modelist".
|
|
In mode.c you can hard code others by just putting the stuff that you do
|
|
not like in the LockProcs to the end of the static array and in
|
|
random.c increase NUMSPECIAL by the number of new screens that you do
|
|
not want displayed.
|
|
|
|
You may want to move xlock into /usr/bin/X11 (or wherever your X
|
|
binaries are). You may also want to move xlock.man to
|
|
/usr/man/man1/xlock.1 .
|
|
|
|
If you want to remove some unwanted modes just edit "mode.h" and
|
|
"mode.c" grep the for the unwanted modes. You might want to edit
|
|
the man page and your favorite make file as well.
|
|
|
|
I am very interested in cellular automata. I am always looking to
|
|
improve ant, life, life3d, and life1d. If anyone knows any new
|
|
collections (I have lifep.zip (May 94) and xlife 3.0) let me know. If
|
|
you would like further information let me know. There are several
|
|
run-time options to check out, see docs/cell_automata.
|
|
|
|
Still like xscreensaver better? (Obscenities omitted ;) ) Try
|
|
setting your apps-defaults file for xscreensaver like:
|
|
*programs: xlock -nolock +grabmouse -mode random
|
|
|
|
If you want to hack a new mode check out docs/HACKERS.GUIDE. Then
|
|
when working, just mail it to me, grep on "Maintainer" for the
|
|
address.
|
|
|
|
|
|
Other related stuff (all not maintained by me):
|
|
--------------------------------------------------------------------
|
|
NAME
|
|
LOCATION (last seen at)
|
|
DESCRIPTION
|
|
=============
|
|
audio/VMS
|
|
http://axp616.gsi.de:8080/www/vms/mzsw.html
|
|
fortune
|
|
ftp://igor.girton.cam.ac.uk/pub/funny/cookie.tgz
|
|
ftp://ftp.uu.net/systems/unix/BSD/games/fortune
|
|
ftp://ftp.sterling.com/usenet/alt.sources/index (grep for cookie)
|
|
Please note that my format is slightly different. The number at the
|
|
top of the file should match `grep -c "^%%$" fortune.dat`
|
|
freetype and gltt for text3d
|
|
http://freetype.sourceforge.net/ is the official site for freetype
|
|
(need 1.3.1)
|
|
http://gltt.sourceforge.net/ is the official site for gltt (2.5)
|
|
To get this to compile with CC on Sun (mainly for xlock maintainer's
|
|
reference in case he ever has to do it again; if this is built using
|
|
g++ then xlock must be built using g++ if you want text3d to work).
|
|
configure --with-ttf-includes=/usr/openwin/include/freetype --with-ttf-libraries=/usr/openwin/lib
|
|
change g++ reference in generated Makefile to CC
|
|
change .la references to .a in Makefile to produce a libgltt.a
|
|
remove -Wall to get rid of warnings in Makefile
|
|
change compiler_o_lo="no" for libtool
|
|
remove -fPIC to get rid of warnings in libtool
|
|
gltt-2.5 may cause xlock to coredump if symbol.ttf or wingding.ttf
|
|
if xlock tries to use them. The following patch will take care of
|
|
this:
|
|
*** gltt-2.5/FTFace.C Sat Mar 13 11:51:49 1999
|
|
--- gltt-2.5-DAB/FTFace.C Wed Aug 8 14:06:03 2001
|
|
***************
|
|
*** 112,117 ****
|
|
--- 112,119 ----
|
|
|
|
if( i == n )
|
|
{
|
|
+ return GLTT_FALSE;
|
|
+ #if 0
|
|
TT_Face_Properties properties;
|
|
TT_Get_Face_Properties( *face, &properties );
|
|
int num_glyphs= properties.num_Glyphs;
|
|
***************
|
|
*** 125,130 ****
|
|
--- 127,133 ----
|
|
|
|
indices[ascii_code]= glyph_index;
|
|
}
|
|
+ #endif
|
|
}
|
|
else
|
|
{
|
|
|
|
freetype2 and FTGL for text3d2
|
|
http://www.freetype.org/ need 2.x
|
|
http://homepages.paradise.net.nz/henryj/code/#FTGL
|
|
=> there's a bug in FTGL that is "known" in text3d2
|
|
imagemagick
|
|
http://www.imagemagick.org/
|
|
imake
|
|
ftp://hpux.csc.liv.ac.uk/hpux/X11/Core/imake-5.06/imake-5.06-ss-9.03.tar.gz
|
|
I had to worry about FIXUP_CPP_WHITESPACE.
|
|
Lesstif
|
|
ftp://ftp.hungry.com/pub/hungry/lesstif/lesstif-current.tar.gz
|
|
Lesstif Library (just like Motif)
|
|
Man2HTML
|
|
ftp://sunsite.unc.edu/pub/Linux/system/Manual-pagers/vh-man2html-1.4.tar.gz
|
|
Mesa (similar to OpenGL)
|
|
ftp://iris.ssec.wisc.edu/pub/Mesa
|
|
Mesa 3-D Graphics Library (like OpenGL) Mesa-3.0 or greater required.
|
|
Mesa-2.2 and below has some memory leaks and 2.6 and below has some
|
|
security concerns.
|
|
NAS (audio package)
|
|
ftp://ftp.x.org/contrib/audio/nas
|
|
OpenGL (for Sun)
|
|
http://www.sun.com/software/graphics/OpenGL/
|
|
rplay (audio package)
|
|
ftp://ftp.x.org/contrib/audio/rplay
|
|
UNIX/VMS
|
|
Unix-like routines XVMSUTILS can be found at
|
|
http://axp616.gsi.de:8080/www/vms/mzsw.html
|
|
xautolock (runs xlock after a idle time)
|
|
ftp://ftp.x.org/contrib/applications
|
|
ftp://sunsite.unc.edu/pub/Linux/X11/screensavers
|
|
(I use openwin and I put this in my $HOME/.openwin-init)
|
|
toolwait /usr/local/bin/xautolock -time 5 -locker "xlock -lockdelay 30"
|
|
XPM
|
|
ftp://ftp.x.org/contrib/libraries
|
|
color pixmaps
|
|
XPM/VMS
|
|
use the one above or xlock may bomb out,
|
|
compile with cc/standard=vaxc/define=(need_strcasecmp,need_strdup)
|
|
except when using XVMSUTILS.
|
|
xscreensaver
|
|
ftp://ftp.x.org/contrib/applications
|
|
http://www.jwz.org/xscreensaver
|
|
|
|
|
|
Operation: (Blurb taken from Darren Senn's xlock)
|
|
-------------------------------------------------
|
|
|
|
Under X, run xlock. The screen will clear, and some pretty animated
|
|
picture (exactly which depends on which module is active) will appear
|
|
on the screen. If you hit a key, then the screen will clear, and
|
|
(unless you've changed the application defaults file that I packaged
|
|
with this) you'll get a black screen with some graphics in the top
|
|
center. These graphics consist of a reduced size image of the module
|
|
you were viewing, the name of the user who executed xlock, and
|
|
password prompt field, and some short instructions.
|
|
|
|
At this point, you can either click on the graphic to return to xlock,
|
|
or you can type a password. If the password is verifiable as the
|
|
root password, or the password of the user listed above, then xlock
|
|
will terminate. THIS IS THE ONLY WAY TO STOP XLOCK WITHOUT SHUTTING
|
|
DOWN THE X SERVER. That's what makes it a lock.
|
|
|
|
|
|
Resources: (Also taken from Darren Senn's xlock)
|
|
------------------------------------------------
|
|
|
|
There are two sets of resources for XLock. The first set are (what I
|
|
call) global XLock resources, while the second set consists of
|
|
module-specific resources.
|
|
|
|
The global resources are:
|
|
XLock.mode: This sets the module.
|
|
XLock.font: This is the font used on the password entry screen.
|
|
XLock.background: The background color for the password entry screen.
|
|
XLock.foreground: The foreground color for the password entry screen.
|
|
XLock.username: The label for the field indicating the user name.
|
|
XLock.password: The label for the password prompt.
|
|
XLock.info: The "short instructions" to print.
|
|
XLock.validate: A message to display while checking the password
|
|
XLock.invalid: A message to display if the password is incorrect
|
|
XLock.nice: How much XLock should nice itself.
|
|
XLock.timeout: How long to wait idle at the password prompt.
|
|
XLock.timeelapsed: Message to see how long lock running (yes or no)
|
|
XLock.mono: Monochrome mode (yes or no)
|
|
XLock.nolock: disable the lock mechanism (yes or no)
|
|
XLock.remote: allow remote locking (meaningless under linux)
|
|
XLock.allowroot: allow the root password to unlock (yes or no)
|
|
XLock.enablesaver: allow the system screensaver to work (yes or no)
|
|
XLock.allowaccess: allow other clients to connect while active
|
|
XLock.echokeys: Echo "?" for each password keypress (yes or no)
|
|
XLock.usefirst: Ignore the first character typed (yes or no)
|
|
XLock.verbose: Verbose mode. (yes or no)
|
|
XLock.inwindow: allow the xlock to run in a window (yes or no)
|
|
XLock.inroot: allow the xlock to run in the root window (yes or no)
|
|
XLock.grabmouse: Grab the keyboard and mouse (yes or no)
|
|
|
|
XLock has a number of modules which it can display. (See the man page
|
|
for a complete list). It turns out that each module is characterized
|
|
by a number of initializations, separated by a number of "draws".
|
|
Each module has the following resources defined:
|
|
|
|
XLock.<module>.delay: How long to wait between draws (usec)
|
|
XLock.<module>.batchcount: May mean various things (see man page).
|
|
XLock.<module>.cycles: Controls the timeout of screen (see man page).
|
|
XLock.<module>.size: Controls size of objects on screen (see man page).
|
|
XLock.<module>.saturation: Saturation (as in HSV) of colors to use.
|
|
|
|
|
|
Acknowledgments:
|
|
----------------
|
|
|
|
I did not write the original algorithms in any of the lock screens
|
|
(except wator, bug, life1d, demon, ant, daisy, and voters), although I
|
|
did convert many of the new ones to run with xlock. I tried to follow
|
|
the original style of Patrick Naughton. Updates are made at
|
|
ftp.x.org in directory /contrib/applications. Many of the additions
|
|
were "borrowed" from xscreensaver (Jamie Zawinski <jwz@jwz.org>).
|
|
Some of the others were "borrowed" from old demos from Sun. Many more
|
|
are contributions.
|
|
|
|
I will consider putting new ones in if (1) they are more or less public
|
|
domain (i.e. BSD, sorry no GNU copyrights), (2) they are neat (I am
|
|
biased towards mathematically based programs (especially the Computer
|
|
Recreations of Scientific American)), and (3) I have the time.
|
|
|
|
Also many thanks to the people that helped me countless times with
|
|
xlock mentioned in "Revisions", especially Jouk Jansen, Tom Schmidt,
|
|
David Hansen, Ed Mackey, Marcelo Vianna, Ron Hitchens, and Heath Kehoe.
|
|
|