Deadzones takes up to MAXAXES 32 bit numbers. If only one value is supplied, it is applied to all axes the same. If multiple values are
supplied, they are applied to the axis they stand for, all other values are untouched.
Since xorg-server-1.5 you can pass arbitrary options using the x11_options namespace. No additional
hacks are neccessary to make hal hotplug the joystick driver.
With the disable-mouse and disable-keys button mapping the event generation can be toggled.
These two options will start X with the event generation already disabled, so it can be
enabled later with the appropriate button mapping. Default: Event generation is enabled.
From all available backends they are tried in the order: evdev, linux joystick, bsd
usbhid. This needed to separate the backends which were usually used to replace each
other.
The configure script now checks for availability of several backends like Linux's
joystick, Linux's evdev, BSD's usbhid. This way several backends can be compiled in and
used with the same binary module.
Backend selection code still missing!
So far the autorepeat settings of xorg were used, thus sharing the settings with all other keyboard. This is still the default but the
rate and delay can be changed per device, not conflicting with the settings of other keyboards.
To look up Keysyms from Strings the method XStringToKeysym comes in handy, which would
require linking against libX11. By integrating the method in the module, this can be
avoided until similar functionallity get's included in xorg-server.
keyhigh values in xorg.conf from scancodes to keysyms!
New xorg-server 1.4 fixes a lot of keyboard things. This makes it necessary to
provide an own mapping rather than using the mapping of the current keyboard. A
keymap is built dynamically from the options provided. The options now need to
provide a keysym for each button instead of the scancodes of another keyboard
attached keyboard.
The options --enable-debug and --disable-debug control if additional debugging messages shall be included in the binary, that can made
visible with the "DebugLevel" option in the xorg.conf. Default: Enabled.
If axis is set to relative and keylow and keyhigh are assigned, autorepeat for these keys is emulated with a speed relative to the
value of the axis (keydown and keyup are generated frequently). A factor for this autorepeat speed can be assigned by
"axis=<factor>key".
If mode is "accelerated", the axis behaves like a button: only one keydown and one keyup, X does autorepeat for the key.
Button mapping without amplify value like "axis=x" used uninitialized value for amplify,
making an amplify value mandatory. With no amplify value, 1.0 is assumed.
Instead of using one global subpixel variable for all axes and buttons, the axis/button
struct for each axis/button holds it's own subpixel variable. This is neccessary to
implement mapping of relative axes to keys, which needs to save own "subpixel" values.
Large parts of the code were written with 2-space-indents only.
Upgraded to 4-space indents to improve readability. Sorry for touching almost
every line. :-S