chiark / gitweb /
DEBIAN/.GITIGNORE
[xf86-input-mtrack.git] / README.md
1 xf86-input-mtrack
2 =================
3
4 An Xorg driver for multitouch trackpads. Supports any trackpad whose kernel
5 driver uses the slotted multitouch protocol. For more information on the
6 protocol see the [kernel documentation][1].
7
8 This driver is compatible with Xorg server versions 1.7 to 1.12. It requires
9 the [mtdev][4] library to operate.
10
11 License
12 -------
13
14 * Copyright (C) 2011 Ryan Bourgeois <bluedragonx@gmail.com>
15 * Copyright (C) 2008 Henrik Rydberg <rydberg@euromail.se>
16
17 This software is licensed under the [GPLv2][2] and is a fork of the
18 [xf86-input-multitouch][3] driver by Henrik Rydberg.
19
20 Binaries
21 --------
22
23 * [Gentoo][5]
24 * [Ubuntu][6]
25 * [Arch][7]
26
27 Arch package contributed and maintained by Mike Zackles.
28
29 Building and Installing
30 -----------------------
31 This is a standard autoconf package. So:
32
33     ./configure
34     make && make install
35
36 It is likely that you will need to change system-dependent paths such as the
37 xorg module directory. See `configure --help` for options.
38
39 Configuration
40 -------------
41
42 The following is a minimal working InputClass section for xorg.conf:
43
44     Section "InputClass"
45         MatchIsTouchpad "on"
46         Identifier      "Touchpads"
47         Driver          "mtrack"
48     EndSection
49
50 Configuration options may be defined inside the InputClass section to configure
51 the driver. Available options and their defaults are as follows.
52
53 **TrackpadDisable** -
54 Disables trackpad touch input. A value of 0 will enable the trackpad. A value
55 of 1 will disable tapping and gestures but not movement. A value of 2 will
56 disable all input. A value of 3 will also disable physical buttons. Integer.
57 Default is 0.
58
59 **Sensitivity** - 
60 Adjusts the sensitivity (movement speed) of the touchpad. This is a real number
61 greater than or equal to zero. Default is 1. A value of 0 will disable pointer
62 movement.
63
64 **FingerHigh** - 
65 Defines the pressure at which a finger is detected as a touch. This is a
66 percentage represented as an integer. Default is 5.
67
68 **FingerLow** - 
69 Defines the pressure at which a finger is detected as a release. This is a
70 percentage represented as an integer. Default is 5.
71
72 **IgnoreThumb** - 
73 Whether or not to ignore touches that are determined to be thumbs. Boolean
74 value. Defaults to false.
75
76 **IgnorePalm** - 
77 Whether or not to ignore touches that are determined to be palms. Boolean
78 value. Defaults to false.
79
80 **DisableOnThumb** - 
81 Whether or not to disable the entire trackpad when a thumb is touching. Boolean
82 value. Defaults to false.
83
84 **DisableOnPalm** - 
85 Whether or not to disable the entire trackpad when a palm is touching. Boolean
86 value. Defaults to false.
87
88 **ThumbRatio** - 
89 The width/length ratio of what's considered a thumb. It is expected that a
90 thumb is longer than it is wide. This tells the driver how much longer.
91 Percentage represented by an integer. Defaults to 70.
92
93 **ThumbSize** - 
94 The minimum size of what's considered a thumb. It is expected that a thumb
95 will be larger than other fingers. This is represented as a percentage of the
96 maximum touch value and is dependent on the trackpad hardware. Integer value.
97 Defaults to 25.
98
99 **PalmSize** - 
100 The minimum size of what's considered a palm. Palms are expected to be very
101 large on the trackpad. This is represented as a percentage of the maximum touch
102 value and is dependent on the trackpad hardware. Integer value. Defaults to 40.
103
104 **BottomEdge** -
105 The size of an area at the bottom of the trackpad where new touches are ignored
106 (fingers traveling into this area from above will still be tracked). This is
107 represented as a percentage of the total trackpad height. Defaults to 10.
108
109 **ButtonEnable** - 
110 Whether or not to enable the physical buttons on or near the trackpad. Boolean
111 value. Defaults to true.
112
113 **ButtonIntegrated** - 
114 Whether or not the physical buttons are integrated with the trackpad. If you
115 have a one-piece trackpad like on newer MacBooks, this should be set to true.
116 Button emulation depends on this value being correct. Boolean value. Defaults
117 to true.
118
119 **ButtonMoveEmulate**
120 Whether or not to count the moving finger when emulating button clicks. Useful to disable if you use two hands on trackpad. Boolean value. Defaults to true.
121
122 **ButtonZonesEnable** -
123 Whether or not to enable button zones. If button zones are enabled then the
124 trackpad will be split into one, two, or three vertical zones. Clicking the
125 integrated button in one of these zones will send the button event for
126 ClickFinger1, ClickFinger2, or ClickFinger3. The driver will only add zones for
127 those ClickFinger values that are enabled. So setting ClickFinger1 to 0 and
128 enabling the other two will create two zones, one for ClickFinger2 and one for
129 ClickFinger3. Boolean value. Defaults to false.
130
131 **ButtonTouchExpire** - 
132 How long (in ms) to consider a touching finger as part of button emulation. A
133 value of 0 will not expire touches. Integer value. Defaults to 100.
134
135 **ClickFinger1** - 
136 Which button to emulate when one finger is touching the trackpad during a
137 click. Integer value. A value of 0 disables one-touch emulation. Defaults to 3.
138
139 **ClickFinger2** - 
140 Which button to emulate when two fingers are touching the trackpad during a
141 click. Integer value. A value of 0 disabled one-touch emulation. Defaults to 2.
142
143 **ClickFinger3** - 
144 Which button to emulate when three fingers are touching the trackpad during a
145 click. Integer value. A value of 0 disabled one-touch emulation. Defaults to 0.
146
147 **TapButton1** - 
148 Which button to emulate for one-finger tapping. Integer value. A value of 0
149 disables one-finger tapping. Defaults to 1.
150
151 **TapButton2** - 
152 Which button to emulate for two-finger tapping. Integer value. A value of 0
153 disables two-finger tapping. Defaults to 3.
154
155 **TapButton3** - 
156 Which button to emulate for three-finger tapping. Integer value. A value of 0
157 disables three-finger tapping. Defaults to 2.
158
159 **TapButton4** - 
160 Which button to emulate for four-finger tapping. Integer value. A value of 0
161 disables three-finger tapping. Defaults to 0.
162
163 **ClickTime** - 
164 When tapping, how much time to hold down the emulated button. Integer value
165 representing milliseconds. Defaults to 50.
166
167 **MaxTapTime** - 
168 The amount of time to wait for a tap to release before counting it as a move.
169 Integer value representing milliseconds. Defaults to 120.
170
171 **MaxTapMove** - 
172 How far a touch is allowed to move before counting it is no longer considered a
173 tap. Integer value. Defaults to 400.
174
175 **GestureClickTime** - 
176 When a gesture triggers a click, how much time to hold down the emulated button.
177 Integer value representing milliseconds. Defaults to 10.
178
179 **GestureWaitTime** - 
180 Touches are allowed to transition from one gesture to another. For example, you
181 may go from scrolling to swiping without releasing your fingers from the pad.
182 This value is the amount of time you must be performing the new gesture before
183 it is triggered. This prevents accidental touches from triggering other
184 gestures. Integer value representing milliseconds. Defaults to 100.
185
186 **ScrollDistance** - 
187 For two finger scrolling. How far you must move your fingers before a button
188 click is triggered. Integer value. Defaults to 150.
189
190 **ScrollUpButton** - 
191 For two finger scrolling. The button that is triggered by scrolling up. Integer
192 value. A value of 0 disables scrolling up. Defaults to 4.
193
194 **ScrollDownButton** - 
195 For two finger scrolling. The button that is triggered by scrolling down.
196 Integer value. A value of 0 disables scrolling down. Defaults to 5.
197
198 **ScrollLeftButton** - 
199 For two finger scrolling. The button that is triggered by scrolling left.
200 Integer value. A value of 0 disables scrolling left. Defaults to 6.
201
202 **ScrollRightButton** - 
203 For two finger scrolling. The button that is triggered by scrolling right.
204 Integer value. A value of 0 disables scrolling right. Defaults to 7.
205
206 **SwipeDistance** - 
207 For three finger swiping. How far you must move your fingers before a button
208 click is triggered. Integer value. Defaults to 700.
209
210 **SwipeUpButton** - 
211 For three finger swiping. The button that is triggered by swiping up. Integer
212 value. A value of 0 disables swiping up. Defaults to 8.
213
214 **SwipeDownButton** - 
215 For three finger swiping. The button that is triggered by swiping down. Integer
216 value. A value of 0 disables swiping down. Defaults to 9.
217
218 **SwipeLeftButton** - 
219 For three finger swiping. The button that is triggered by swiping left. Integer
220 value. A value of 0 disables swiping left. Defaults to 10.
221
222 **SwipeRightButton** - 
223 For three finger swiping. The button that is triggered by swiping right. Integer
224 value. A value of 0 disables swiping right. Defaults to 11.
225
226 **Swipe4Distance** - 
227 For four finger swiping. How far you must move your fingers before a button
228 click is triggered. Integer value. Defaults to 700.
229
230 **Swipe4UpButton** - 
231 For four finger swiping. The button that is triggered by swiping up. Integer
232 value. A value of 0 disables swiping up. Defaults to 8.
233
234 **Swipe4DownButton** - 
235 For four finger swiping. The button that is triggered by swiping down. Integer
236 value. A value of 0 disables swiping down. Defaults to 9.
237
238 **Swipe4LeftButton** - 
239 For four finger swiping. The button that is triggered by swiping left. Integer
240 value. A value of 0 disables swiping left. Defaults to 10.
241
242 **Swipe4RightButton** - 
243 For four finger swiping. The button that is triggered by swiping right. Integer
244 value. A value of 0 disables swiping right. Defaults to 11.
245
246 **ScaleDistance** - 
247 For pinch scaling. How far you must move your fingers before a button click is
248 triggered. Integer value. Defaults to 150.
249
250 **ScaleUpButton** - 
251 For pinch scaling. The button that is triggered by scaling up. Integer value. A
252 value of 0 disables scaling up. Defaults to 12.
253
254 **ScaleDownButton** - 
255 For pinch scaling. The button that is triggered by scaling down. Integer value.
256 A value of 0 disables scaling down. Defaults to 13.
257
258 **RotateDistance** - 
259 For two finger rotation. How far you must move your fingers before a button
260 click is triggered. Integer value. Defaults to 150.
261
262 **RotateLeftButton** - 
263 For two finger rotation. The button that is triggered by rotating left. Integer
264 value. A value of 0 disables rotation left. Defaults to 14.
265
266 **RotateRightButton** - 
267 For two finger rotation. The button that is triggered by rotating right. Integer
268 value. A value of 0 disables rotation right. Defaults to 15.
269
270 **TapDragEnable** - 
271 Whether or not to enable tap-to-drag functionality. Boolean value. Defaults to
272 true.
273
274 **TapDragTime** - 
275 The tap-to-drag timeout. This is how long the driver will wait after a single
276 tap for a movement event before sending the click. Integer value representing
277 milliseconds. Defaults to 350.
278
279 **TapDragWait**
280 How long after detecting movement to trigger a button down event. During this
281 time pointer movement will be disabled. Increase this value if you find you're
282 draggin when you don't wish it. Integer value representing milliseconds.
283 Defaults to 40.
284
285 **TapDragDist**
286 How far the finger is allowed to move during drag wait time. If the finger
287 moves farther than this distance during the wait time then dragging will be
288 canceled and pointer movement will resume. Integer value. Defaults to 200.
289
290 **AxisXInvert**
291 Whether or not to invert the X axis. Boolean value. Defaults to false.
292
293 **AxisYInvert**
294 Whether or not to invert the Y axis. Boolean value. Defaults to false.
295
296 [1]: http://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt     "Kernel Multitouch Protocol"
297 [2]: http://www.gnu.org/licenses/gpl-2.0.html                                   "GNU General Public License, version 2"
298 [3]: http://bitmath.org/code/multitouch/                                        "xf86-input-multitouch website"
299 [4]: http://bitmath.org/code/mtdev/                                             "mtdev library website"
300 [5]: http://www.dev.fatalmachine.org/xf86-input-mtrack/gentoo                   "Gentoo Ebuilds"
301 [6]: http://www.dev.fatalmachine.org/xf86-input-mtrack/ubuntu                   "Ubuntu Packages"
302 [7]: http://aur.archlinux.org/packages.php?ID=48505                             "Arch Package"
303