xautolock.1x - Man Page

fire up programs in case of user inactivity under X

Version

This man page applies to xautolock version 2.2.

Synopsis

xautolock

[-help] [-version]  [-time mins] [-locker locker] [-killtime killmins] [-killer killer] [-notify margin] [-notifier notifier] [-bell percent] [-corners xxxx] [-cornerdelay secs] [-cornerredelay altsecs] [-cornersize pixels] [-secure] [-resetsaver] [-nocloseout] [-nocloseerr] [-noclose] [-disable] [-enable] [-toggle] [-exit] [-locknow] [-unlocknow] [-nowlocker locker] [-restart] [-detectsleep]

Description

Xautolock monitors the user activity on an X Window display. If none is detected within mins minutes, a program is started as specified by the -locker option. Xautolock will typically be used to lock the screen (hence its primary name) but it really doesn't care what program you make it start. For this reason, xautolock does not interfere with the default X screen saver, unless the -resetsaver option is used.  This implies that it is the job of the locker or the user to take  the appropriate actions if the default screen saver is to be disabled.  The only real assumption made by xautolock is that a new countdown starts as soon as the locker exits.

In the presence of the -notify option, a warning signal will be  issued margin seconds before starting the locker. Warning  signals come in two kinds:

You can tell xautolock to take special actions when you move the mouse into one of the corners of the display and leave it there, by using the -corners, -cornerdelay, -cornerredelay and -cornersize options. This works as follows:

The xxxx argument to the -corners option must consist of exactly 4 characters from the following set: '0', '+', '-'. Each one of these specifies what xautolock should do when the mouse enters a small square area located in each of the corners of the screen. The corners are considered in the following order: top left, top right, bottom left, bottom right.  A '0' indicates that xautolock should ignore the corner. A '+' indicates that xautolock should start the locker after secs or altsecs seconds (see below for the difference between both), unless the mouse is moved or keyboard input is received. A '-' indicates that xautolock should not start the locker at all. The pixels argument specifies the size in pixels of the corner areas.

Most users of the -corners option want the locker to activate within a very short time interval after they move the mouse into a '+' corner. This can be achieved by specifying a small value for the -cornerdelay option. However, if the mouse is subsequently left where it is, xautolock will almost immediately start a new locker right after the user quits the current one. To prevent this from happening, the -cornerredelay option can be used to specify the time-out interval to be used if and only if the mouse is sitting in a `+' corner and has not been moved since the  previous locker exited.

A running xautolock process can be disabled (unless if the -secure option has been specified), in which case it will not attempt to start the locker. To disable an already running xautolock process, use the -disable option. To re-enable it, use -enable. To toggle it between both states, use -toggle. Using this method is preferable  to using sending it SIGSTOP and SIGCONT signals, because while disabled  xautolock will still be emptying its event queue.

A running xautolock process can also be told to exit (unless if the  -secure option has been specified). To do this, use the -exit option.

The -killtime and -killer options allow, amongst other things, to implement an additional automatic logout, on top of the automatic screen locking. In the presence of one or both of these options, a secondary timeout will be triggered killmins after starting the locker (unless user activity is detected in the mean time).  Upon expiration of this secondary timer, the killer program is run. Note that, despite the name of the options, xautolock really doesn't care what the killer does in reality. If it doesn't (indirectly) cause xautolock to get killed, and assuming that no user activity is detected, the secondary trigger will periodically expire every killmins minutes for as long as the locker runs.

In combination with -killtime and -killer, the -secure option allows system administrators to enforce xautolock as a part of their security procedures, and to prevent people from locking shared displays for an excessive amount of time. One way to achieve this is to start xautolock (using -secure and optionally -killtime and -killer) from within XDM's Xsession file in such a way that the session automatically ends if xautolock itself is killed.

By default xautolock closes stdout and stderr. This prevents the locker from writing error messages to these files in case you manually lock your display.  The -nocloseout, -nocloseerr and -noclose options cause xautolock to not close stdout and/or stderr. On some platforms users of xnlock will need to use -nocloseout, in order to make xnlock's witty sayings show up. These options can also be used for debugging cases in which locker invocation is not successful.

Xautolock is capable of managing multi-headed displays.

Options

-help

Print a help message and exit.

-version

Print the version number and exit.

-time

Specifies the primary timeout interval. The default is 10 minutes, the minimum is 1 minute, and the maximum is 1 hour.

-locker

Specifies the locker to be used. The default is xlock. Notice that if locker contains multiple words, it must be specified between quotes. In order to use your PATH to locate the program, xautolock feeds the locker command to /bin/sh, so it should be understandable for whatever shell your /bin/sh is. Because this typically is a Bourne shell, ~ expansion most likely will not work.

-killtime

Specifies the secondary timeout in minutes after starting the locker. This timer is only active as long as the locker is running, and is  reset each time user activity is detected. If it expires before the  locker exits, the killer command is run. The default is 20 minutes, the minimum is 10 minutes, and the maximum is 2 hours. This option is only useful in conjunction with -killer.

-killer

Specifies the killer to be used. The default is none. Notice that  if killer contains multiple words, it must be specified between quotes.  In order to use your PATH to locate the program, xautolock feeds  the killr command to /bin/sh, so it should be understandable  for whatever shell your /bin/sh is. Because this typically is a Bourne  shell, ~ expansion most likely will not work.

-notify

Warn the user margin seconds before locking. The default is to not warn the user. If used in conjunction with -cornerdelay or  -cornerredelay, the notification margin iused is the minimum of margin, secs and/or altsecs.

-notifier

Specifies the notifier to be used. The default is none. This option is only useful in conjunction with -notify. Notice that  if notifier contains multiple words, it must be specified between quotes.  In order to use your PATH to locate the program, xautolock feeds  the notifier command to /bin/sh, so it should be understandable  for whatever shell your /bin/sh is. Because this typically is a Bourne  shell, ~ expansion most likely will not work.

-bell

Specifies the loudness of the notification signal in the absence of the -notifier option. The default is 40 percent. This option is only  useful in conjunction with -notify.

-corners

Define special actions to be taken when the mouse enters one of the corners of the display. The default is 0000, which means that no special action is taken.

-cornerdelay

Specifies the number of seconds to wait before reacting to the mouse entering a '+' corner. The default is 5 seconds.

-cornerredelay

Specifies the number of seconds to wait before reacting again if the current locker exits while the mouse is sitting in a '+' corner. The default is for altsecs to equal secs.

-cornersize

Specifies the size in pixels of the corner areas. The default is 10 pixels.

-resetsaver

Causes xautolock to reset the X screen saver after successfully starting  the locker. This is typically used in case the locker is not really intended to lock the screen, but to replace the default X screen saver. Note that the default screen saver is not disabled, only reset. Also note that using -resetsaver will inferfere with the DPMS monitors, as the power down time out will also be also reset. The default is not to reset the screen saver.

See the xset man page for more information about managing the  X screen saver.

-detectsleep

Instructs xautolock to detect that computer has been put to sleep.  This is done by detecting that time has jumped by more than 3 seconds.  When this occurs, the lock timer is reset and locker program is not launched even if primary timeout has been reached. This option is  typically used to avoid locker program to be launched when awaking a  laptop computer.

-secure

Instructs xautolock to run in secure mode. In this mode, xautolock becomes imune to the effects of -enable, -disable,  -toggle, and -exit. The default is to honour these  actions.

-nocloseout

Don't close stdout.

-nocloseerr

Don't close stderr.

-noclose

Close neither stdout nor stderr.

-disable

Disables an already running xautolock process (if there is one, and it does not have -secure switched on). In any case, the current invocation of xautolock exits.

-enable

Enables an already running xautolock process (if there is one, and it does not have -secure switched on). In any case, the current invocation of xautolock exits.

-toggle

Toggles an already running xautolock process (if there is one, and it does not have -secure switched on) between its disabled and enabled modes of operation. In any case, the current invocation of xautolock exits.

-exit

Causes an already running xautolock process (if there is one, and it does not have -secure switched on) to exit. In any case, the current invocation of xautolock also exits.

-locknow

Causes an already running xautolock process (if there is one, if it does not have -secure switched on, and is not currently disabled) to lock the display immediately. In any case, the current invocation of xautolock exits.

-unlocknow

Causes an already running xautolock process (if there is one, if it does not have -secure switched on, and is not currently disabled) to unlock the display immediately (if it's locked) by sending the locker a SIGTERM signal. In any case, the current invocation of xautolock exits.

-nowlocker

Specifies the locker to be used if the lock is initiated with  -locknow option. The default is to use the locker program given with -locker option, which defaults to xlock.

-restart

Causes an already running xautolock process (if there is one and  it does not have -secure switched on) to restart. In any case, the current invocation of xautolock exits.

Resources

time

Specifies the primary timeout. Numerical.

locker

Specifies the locker. No quotes are needed, even if the  locker command contains multiple words.

killtime

Specifies the secondary timeout. Numerical.

killer

Specifies the killer. No quotes are needed, even if the killer command contains multiple words.

notify

Specifies the notification margin. Numerical.

notifier

Specifies the notifier. No quotes are needed, even if the  notifier command contains multiple words.

bell

Specifies the notification loudness. Numerical.

corners

Specifies the corner behaviour, as explained above.

cornersize

Specifies the size of the corner areas. Numerical.

cornerdelay

Specifies the delay of a '+' corner. Numerical.

cornerredelay

Specifies the alternative delay of a '+' corner. Numerical.

resetsaver

Reset the default X screen saver. Boolean.

nocloseout

Don't close stdout. Boolean.

nocloseerr

Don't close stderr. Boolean.

noclose

Close neither stdout nor stderr. Boolean.

Resources can be specified in your ~/.Xresources or ~/.Xdefaults file (whichever your system uses) and merged via the xrdb(1) command. They can be specified either for class Xautolock, or for whatever name  your xautolock program has been given. This can be useful in case xautolock is to be used for other purposes than simply locking the screen. For example: if you have two copies of xautolock, one called "xmonitor", and one called  "xlogout", then both will honour the following:

Xautolock.corners: ++++

In addition, "xmonitor" will honour:

xmonitor.cornersize: 10

while "xlogout" will honour:

xlogout.cornersize: 5

Each command line option takes precedence over the corresponding (default) resource specification.

Known Bugs

The -disable, -enable, -toggle, -exit, -locknow, -unlocknow, and -restart options depend  on access to the X server to do their work. This implies that they will be suspended in case some other application has grabbed the server  all for itself.

If, when creating a window, an application waits for more than 30 seconds  before selecting KeyPress events on non-leaf windows, xautolock may interfere with the event propagation mechanism. This effect is theoretical and has never been observed in real life. It can only occur in case xautolock has been compiled without support for both the Xidle and the MIT ScreenSaver extensions, or in case the X server does  not support these extensions.

xautolock does not always properly handle the secure keyboard mode of  terminal emulators like xterm, since that mode will prevent xautolock  from noticing the keyboard events occurring on the terminal. Therefore, xautolock sometimes thinks that there is no keyboard activity while in  reality there is. This can only occur in case xautolock has been  compiled without support for both the Xidle and the MIT ScreenSaver extensions, or in case the X server does not support these extensions.

xautolock does not check whether notifier and/or locker are available.

The xautolock resources have dummy resource classes.

See Also

X(1), xset(1), xlock(1), xnlock(1), xscreensaver(1).

Authors

Xautolock was conceived, written, and performed by:

Michel Eyckmans (MCE)
Stefan De Troch

Please send queries for help, feature suggestions, bug reports, etc. to mce@scarlet.be.

Special Thanks to

Kris Croes            

Referenced By

xlock(1), xwrits(1).

December 28, 2007