xdev-mainControl extension for X windows.

    Main goal of this package is input device hotplug. Here
is nothing special. Just X server start-up routines adapted
to runtime case. Input device cannot be created without proper
device driver. xmodule prepared for driver module loading.
Correct input driver fit for hotplug without touch to source.
At least mouse, evdev current (FEB-2006) input drivers support
module load/remove and device create/delete.

INSTALL

Please edit in the Rules.make line SERVER_SRC, insert here path to
Your server source. It is _not_ server compile from scratch. All what
You need is X server sources for suitable header files. Some
important variables current X does not export as symbols. These
variables are taken for Xorg binary during compilation.

# make
# make install

For xmodule and xdevice usage X server must load control extension.
Please edit Your xorg.conf file. Part of xorg.conf file:
Section "Module"
    <skip>
    Load "control" # Support of xmodule and xdevice
    <skip>
EndSection

XMODULE

    xmodule application prepared for manipulation with
server modules. Supported options:
# xmodule -l name,option1,value1,option2,value2,...
-l - load the module of X server,
name - module name, current it may contain absolute path 8-(
option1 - option name,
value1 - value of option1

# xmodule -r name
-r - remove the module of X server.
# xmodule --list
receives list of some registered modules.
# xmodule --list-input
receives list of registered input modules and print it to stdout.
# xmodule --list-output
receives list of registered input modules and print it to stdout.

XDEVICE

    xdevice application allow runtime device create/delete
alias "hotplug". If driver module is not loaded in server then
You may need to use xmodule.
# xdevice -c ident-name,driver-name,option1,value1,option2,value2...
-c - create input device,
ident-name - input device identifier,
driver-name - driver name,
option1 - option name,
value1 - value of option1.
Command equals config entry like this:
Section "InputDevice"
    Identifier "ident-name"
    Driver "driver-name"
    Option "option1" "value1"
    Option "option2" "value2"
EndSection

Double Quotes are supported. Backslash must be used to prevent
bash remove double quotes. Inside double quotes metacharacters
'\n' '\b' '\r' '\t' '\f' and octal \0XXX and hexadecimal \0xXX
values are converted and separator ',' is simple comma.

# xdevice -c e4,evdev,Device,\"/dev/input/event4\"

# xdevice -d ident-name
-d - deletes device with identifier "ident-name"

Probably You will create new device under Linux, which uses
driver evdev and device file /dev/input/event4. Commands:

# xmodule -l evdev
# xdevice -c e4,evdev,Device,/dev/input/event4,AlwaysCore,1

Check out input devices
# xsetpointer -l

Delete previously created input device
# xdevice -d e4
# xmodule -r evdev
Module removing is not certainly required.

Aivils Stoss

Your are welcome to create output driver hotplug :o)