Hi, Please take a look at the patches below and consider for inclusion. The main goal is to add proper evdev support to GPM, in process the old code has been refactored and split into more manageable chunks. For what it worth most of the patches have been included in gpm shipped with Fedora Core 2 so they should be reasonably tested. The patches are against the latest devel monotone tree. Please consider for inclusion. 01-other-scms.patch - change make process to be more friendly to SCMs other than monotone that keep revision data in subdirectories by explicitely spelling out which directories contain source code. 02-separate-console-handling.patch - move console handling functions to console.c module to reduce clutter in gpm.c. 03-separate-repeater-handling.patch - split repeater-handling code into separate data structures and functions. 04-separate-client-handling.patch - move client handling functions to client.c module to reduce clutter in gpm.c, cleanups. 05-optparser.patch - split option parsing (-o text) into separate file suitable for use outside of mice.c 06-many-mice.patch - get rid of 2 mice limitation. This is necessary for evdev support as at least on my laaptop I have 3 active evdevs (touchpad, track stck and USB mouse). 07-absolute-device-attr.patch - allow same protocol control devices in absolute and relative mode. Before, if a protocold driver supported devices in both relative and absolute mode it would, like Wacom, change absolute attribute right in the Gpm_Type structure. It obviously does not work if you have 2 devices using 2 different methods at the same time. Again, very important for proper evdev support. 08-gpm-cleanup.patch - remove global "state" structure, code cleanups. 09-better-button-multiplex.patch - Correctly multiplex button events from several mice. This allows me use my track stick that does not have buttons as they are all connected to the touchpad. 10-remove-T-option.patch - Kill it, not useful as it stands. 11-synaptics-warning.patch - Suppress harmless warning about unused debug code in synaptics driver. 12-evdev-support.patch - Extended support for event devices - supports relative, absolute devices and touchpads. Uses ioctls to retrieve device capabilities and select best mode. 13-evdev-tap-and-select.patch - Tap-and-select support in evdev driver (for "touchpad" and "synaptics" types). 14-evdev-2.6-update.patch - Update evdev protocol to support kernels >= 2.6.0-test. Do not use Oops in evdev in case of crazy input parameters. Use "get ID" IOCTL to detect Synaptics hardware. 15-evdev-man-update.patch - Add evdev protocol documentation. 16-remove-pts-console.patch - Remove GPM_PTS_CONSOLE and have Gpm_Open simply return -1 if local console (/dev/ttyX or /dev/vc/X) is not accessible and client is not running inside xterm. GPM services are only available locally, TIOCLINUX is not valid on /dev/pts/X and using it will cause GPM (server) to oops. And it does unless one uses devfs. 17-liblow-cleanup.patch - split into smaller functions, fixed some memory leaks in Gpm_Open. 18-console-selection-split.patch - Separate console and selection handling, separate library and server console implementation so server can be changed freely without fear of breaking clients API. -- Dmitry _______________________________________________ gpm mailing list gpm@xxxxxxxxxxxxxx http://lists.linux.it/listinfo/gpm