I'd like to ask a more general question about devices which, like the Powermate, don't really fit into either the "Keyboard" or "Pointing device" classes:
To what extent *should* X support these devices? Let's examine a ShuttlePro - a jog wheel, a spinner, 15 buttons. It's not really a keyboard, as the buttons don't really have any defined mapping other than "Button 1" ... "Button 15". It's not a pointing device. Applications like Kino recognize it and can use it to do editing control, in which case the jog wheel and the spinner are logically distinct from the mouse's wheel. Kino supports this device by going directly to the underlying /dev/input/event device, and not through X. Now, that works - and perhaps that is how it should be: X concerns itself with pointers and keyboards, and we let other things be handled outside of X. HOWEVER, that approach has several problems: 1) No remote access: I cannot run a program on another machine and have it use the Shuttle unless the Shuttle is supported by X. 2) No arbitration between applications: If Kino and some other program Foo both "understand" the Shuttle and want to use it, and I change input focus from Kino to Foo, how do we route the events correctly? Do the programs close the device when the lose input focus, and re-open it when the regain focus? Do they ignore events when not focused? 3) Less portable code - going to /dev/input/event5 may be fine under Linux, but is it supported under the *BSD kernels? under the Mac's X server? under Solaris/Irix/AIX? You can generalize this to things like joysticks and game pads - as far as I can see, there is little difference between a Shuttle and my PS3 DualShock as far as things like this go. Has there been a design decision where support for devices like this should live? _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg