xrus - X localized keyboard switch and autolock
xrus [OPTIONS] [keyboard_map_file]
xrus is a X client that watches keyboard and mouse events and serves as
localized keyboard switch and autolock.
To switch the keyboard, it swaps 1,2 and 3,4 columns of the
keyboard map. If the map has more columns, xrus swaps the halves. Thus for
xrus to operate properly, keyboard map has to have four or more
columns. If it does not, xrus terminates with error message. If
keyboard_map_file is specified, xrus calls xmodmap to load the
file as keyboard map. If the specified keymap file does not exist,
xrus tries to find the keymap in $prefix/share/xruskb/ and
then tries to append .xmm to keymap name, also looking in that
directory.
By default, xrus switches the keyboard mode when left and
right shifts are pressed simultaneously; it is possible to tune the key
combinations either in resources or in the properties sheet.
When a time period passed without keyboard and mouse events,
xrus starts a locker, "xlock -remote" by default.
To tune various parameters, to lock screen or terminate
xrus, press third mouse button on the icon and select appropriate
action from popup menu.
- {-|+}bell
- Turn on/off the bell when switching. You can also set this in properties
or resources (*bell)
- {-|+}icon
- Show/not show the icon with keyboard mode indication. Also in resources
(*icon)
- -led led_no
- Use keyboard led led_no to indicate keyboard mode. Resource
*led
- +led
- Don't use led for indication
- {-|+}autolock
- Allow/disable autolock function
- -locker locker cmd
- Specify locker command
- -timeout sec
- Set autolock timeout
- -nofork
- Don't fork to background. This is default for -wmaker option too.
- -wmaker
- Display state in Window Maker appicon.
- -wmicon
- Display state in window manager's icon for xrus. In this case you won't be
able to click on xrus' icon to switch or call menu, because window
managers usually trap clicks to their icons.
- -perwindow
- Remember keyboard state for each top level window and switch keyboard on
focus change.
- -keylog
- Log all key presses to specified file.
Here are described only Xrus' own resources, to change resources of widgets used
look into their documentation and xrus.doc. Some useful resources can
be seen in Xrus.ad too.
- *autolock
- (type boolean; default false; option -autolock) Specifies whether to use
the autolock feature. This option can be changed in properties sheet.
- *locker
- (type string; default "xlock -remote"; option -locker
<command>) Specifies the locker to launch to lock screen. This
option can be changed in properties sheet.
- *timeout
- (type int; default 30; option -timeout <value>) Specifies the amount
of minutes without keyboard and mouse activity before starting locker.
This option can be changed in properties sheet.
- *useBell
- (type boolean; default false; option -bell,+bell) Specifies whether to
beep when switching keyboard mode. This option can be changed in
properties sheet.
- *xmodmap
- (type string; option <filename>) Specifies a file name to load with
xmodmap at startup.
- *switchKeys
- (type string; default Shift_L+Shift_R) Specifies key combination on which
Xrus switches keyboard mode. This option can be changed in properties
sheet.
- *toLatKeys
- (type string) Specifies key combination on which Xrus sets latin (primary)
keyboard mode. This option can be changed in properties sheet.
- *toRusKeys
- (type string) Specifies key combination on which Xrus sets russian
(secondary) keyboard mode. This option can be changed in properties
sheet.
- *switchForOneKeys
- (type string) Specifies key combination on which Xrus changes input mode
for one following key.
- *led
- (type int; option -led <num>) Specifies led number to light in
secondary keyboard mode. 0 means none.
- *altMaps
- (type string) Defines a list of file names with alternative keyboard maps.
If you want to use it, define also resources *altmapX.labelString, where X
- the number of file in *altMaps starting with 0. If you have compiled
Xrus with Xaw, use resources *altmapX.label instead. The strings will be
shown in menu then.
- *icon
- (type boolean; default true; option -icon,+icon) Specifies whether to show
the icon.
- *adjustModeButtons
- (type boolean; default true) Specifies whether the icon size is the same
in both states (true) or can differ (false).
- *alwaysOnTop
- (type boolean; default false) Specifies whether the icon should float
above other windows.
- *alwaysMapped
- (type boolean; default true) Specifies whether to map the icon back when
it is unmapped. This option works only with certain window managers (mwm,
dtwm, ovwm, probably some other).
- *capsLockEmu
- (type boolean; default false) Emulate capslock key. Useful when Xlib is
not localized properly.
- *capsLockLed
- (type int) Specifies which led to light when emulated capslock is pressed.
0 means none.
- *recheckTime
- (type int; default 1500) Sets time interval in milliseconds between window
mapping and rechecking of event mask of the main application. This is
useful when some application first asks for an event and then withdraws
its request, expecting event propagation to work. This situation is quite
rare, and X does not provide an event on change of event mask.
- *wMaker
- (type bool; default false) Same as -wmaker option.
- *wmIcon
- (type bool; default false) Same as -wmicon option.
- *noFork
- (type bool; default false) Same as -nofork option.
- *xmodmapProgram
- (type string; default BINDIR/xrusmodmap) Use specified program for
keyboard map loading.
- *title0 and *title1
- (type string; default Xrus:LAT and Xrus:RUS) Set icon name for window
manager in primary and secondary mode accordingly.
- *perWindow
- (type bool; default false) Same as -perwindow option.
- *titlePerWindow0 and *titlePerWindow1
- (type string; default (LAT) and (RUS)) Append these strings to window
title in per-window mode.
- *keyLog
- (type string; no default) Same as -keylog option.
- SIGTERM
- switch to primary keyboard mode and terminate.
- SIGUSR1
- switch to primary keyboard mode.
- SIGUSR2
- switch to secondary keyboard mode.
xrus was written by Alexander V. Lukyanov <lav@yars.free.net>.