Back to main page Send me a mail

Apple Touchpad Driver (appletouch)

What is appletouch ?

appletouch is a Linux kernel driver for the USB touchpad found on post February 2005 Apple Alu Powerbooks.

The driver was integrated in the official Linux kernel starting with the 2.6.14 kernel, and the latest version is always found in the latest kernel tree. The version below is provided only for reference.

This driver is derived from Johannes Berg's appletrackpad driver [1], but it has been improved in some areas:

Credits go to Johannes Berg for reverse-engineering the touchpad protocol, Frank Arnold for further improvements, and Alex Harper for some additional information about the inner workings of the touchpad sensors.


In order to use the touchpad in the basic mode, compile the driver and load the module. A new input device will be detected and you will be able to read the mouse data from /dev/input/mice (using gpm, or X11).

In X11, you can configure the touchpad to use the synaptics driver, which will give additional functionalities, like acceleration, scrolling, 2 finger tap for middle button mouse emulation, 3 finger tap for right button mouse emulation, etc. In order to do this, make sure you're using a recent version of the synaptics driver (tested with 0.14.2, available from here [2] ), and configure a new input device in your X11 configuration file (take a look below for an example). For additional configuration, see the synaptics driver documentation.

        Section "InputDevice"
                Identifier      "Synaptics Touchpad"
                Driver          "synaptics"
                Option          "SendCoreEvents"        "true"
                Option          "Device"                "/dev/input/mice"
                Option          "Protocol"              "auto-dev"
                Option          "LeftEdge"              "0"
                Option          "RightEdge"             "850"
                Option          "TopEdge"               "0"
                Option          "BottomEdge"            "645"
                Option          "MinSpeed"              "0.4"
                Option          "MaxSpeed"              "1"
                Option          "AccelFactor"           "0.02"
                Option          "FingerLow"             "55"
                Option          "FingerHigh"            "60"
                Option          "MaxTapMove"            "20"
                Option          "MaxTapTime"            "100"
                Option          "HorizScrollDelta"      "0"
                Option          "VertScrollDelta"       "30"
                Option          "SHMConfig"             "on"

        Section "ServerLayout"
                InputDevice     "Mouse"
                InputDevice     "Synaptics Touchpad"

Fuzz problems:

The touchpad sensors are very sensitive to heat, and will generate a lot of noise when the temperature changes. This is especially true when you power-on the laptop for the first time.

The appletouch driver tries to handle this noise and auto adapt itself, but it is not perfect. If finger movements are not recognized anymore, try reloading the driver.

You can activate debugging using the 'debug' module parameter. A value of 0 deactivates any debugging, 1 activates tracing of invalid samples, 2 activates full tracing (each sample is being traced):



Filename Size Md5sum
appletouch-0.08.tar.bz2 6107 bytes 00f71175057cebbd579bd6593fbe7724
appletouch-0.07.tar.bz2 6208 bytes e17e43c6a8cb5a160e1a4358dc96708f
appletouch-0.06.tar.bz2 6934 bytes 199bfe7fbe822e5a196169082a7a0f69
atp-0.05.tar.bz2 7168 bytes df97dab08d6021961ee5a01004723b1d
atp-0.04.tar.bz2 7384 bytes cb7cba303ccbc274d1feca631b415271
atp-0.03.tar.bz2 7168 bytes ed1f33feb0ed74547c95990c38bca2e2

Stelian Pop
Last modified: dim fév 26 20:50:54 CET 2006 Valid HTML 4.01!