1.. include:: <isonum.txt>
2
3----------------------------------
4Apple Touchpad Driver (appletouch)
5----------------------------------
6
7:Copyright: |copy| 2005 Stelian Pop <stelian@popies.net>
8
9appletouch is a Linux kernel driver for the USB touchpad found on post
10February 2005 and October 2005 Apple Aluminium Powerbooks.
11
12This driver is derived from Johannes Berg's appletrackpad driver [#f1]_,
13but it has been improved in some areas:
14
15	* appletouch is a full kernel driver, no userspace program is necessary
16	* appletouch can be interfaced with the synaptics X11 driver, in order
17	  to have touchpad acceleration, scrolling, etc.
18
19Credits go to Johannes Berg for reverse-engineering the touchpad protocol,
20Frank Arnold for further improvements, and Alex Harper for some additional
21information about the inner workings of the touchpad sensors. Michael
22Hanselmann added support for the October 2005 models.
23
24Usage
25-----
26
27In order to use the touchpad in the basic mode, compile the driver and load
28the module. A new input device will be detected and you will be able to read
29the mouse data from /dev/input/mice (using gpm, or X11).
30
31In X11, you can configure the touchpad to use the synaptics X11 driver, which
32will give additional functionalities, like acceleration, scrolling, 2 finger
33tap for middle button mouse emulation, 3 finger tap for right button mouse
34emulation, etc. In order to do this, make sure you're using a recent version of
35the synaptics driver (tested with 0.14.2, available from [#f2]_), and configure
36a new input device in your X11 configuration file (take a look below for an
37example). For additional configuration, see the synaptics driver documentation::
38
39	Section "InputDevice"
40		Identifier      "Synaptics Touchpad"
41		Driver          "synaptics"
42		Option          "SendCoreEvents"        "true"
43		Option          "Device"                "/dev/input/mice"
44		Option          "Protocol"              "auto-dev"
45		Option		"LeftEdge"		"0"
46		Option		"RightEdge"		"850"
47		Option		"TopEdge"		"0"
48		Option		"BottomEdge"		"645"
49		Option		"MinSpeed"		"0.4"
50		Option		"MaxSpeed"		"1"
51		Option		"AccelFactor"		"0.02"
52		Option		"FingerLow"		"0"
53		Option		"FingerHigh"		"30"
54		Option		"MaxTapMove"		"20"
55		Option		"MaxTapTime"		"100"
56		Option		"HorizScrollDelta"	"0"
57		Option		"VertScrollDelta"	"30"
58		Option		"SHMConfig"		"on"
59	EndSection
60
61	Section "ServerLayout"
62		...
63		InputDevice	"Mouse"
64		InputDevice	"Synaptics Touchpad"
65	...
66	EndSection
67
68Fuzz problems
69-------------
70
71The touchpad sensors are very sensitive to heat, and will generate a lot of
72noise when the temperature changes. This is especially true when you power-on
73the laptop for the first time.
74
75The appletouch driver tries to handle this noise and auto adapt itself, but it
76is not perfect. If finger movements are not recognized anymore, try reloading
77the driver.
78
79You can activate debugging using the 'debug' module parameter. A value of 0
80deactivates any debugging, 1 activates tracing of invalid samples, 2 activates
81full tracing (each sample is being traced)::
82
83	modprobe appletouch debug=1
84
85or::
86
87	echo "1" > /sys/module/appletouch/parameters/debug
88
89
90.. Links:
91
92.. [#f1] http://johannes.sipsolutions.net/PowerBook/touchpad/
93
94.. [#f2] `<http://web.archive.org/web/*/http://web.telia.com/~u89404340/touchpad/index.html>`_
95