Hybrid input devices (such as Apple Magic Mouse)

Michael Poole mdpoole at troilus.org
Mon Mar 8 21:04:51 PST 2010

A Linux kernel driver for the Apple Magic Mouse has been accepted for
2.6.34.  I'd like to be able to use its touch surface in applications,
so I thought I'd ping this list and see what the right approach would
be; a grep for ABS_MT_ in the current "master" branches of the modular
tree only found axis names, but no code that uses these values.

The Magic Mouse exposes standard X and Y relative axes for mouse motion,
and a bit for right and left clicks.  When poked appropriately, it also
generates touch records for up to three or -- slowly -- four touches,
each with absolute tracking ID, X, Y, major- and minor-axis-length,
contact orientation and contact size fields.

As I understand it (based on an on-list discussion from January), this
would require 2 + 4*7 = 30 valuators.  Is that right?  Would this be
more appropriate as an extension of the evdev driver (with somehow the
kernel driver indicating that both absolute and relative axes do in fact
exist), or as a separate driver?  If it should be a separate driver, is
there a way to indicate that it's a better match for Magic Mouse devices
than the standard evdev driver is?

Michael Poole

More information about the xorg-devel mailing list