1synaptics(5) synaptics(5)
2
3
4
6 synaptics - Synaptics touchpad driver for XOrg/XFree86.
7
9 This is a driver for the Synaptics TouchPad for XOrg/XFree86 4.x. A
10 Synaptics touchpad by default operates in compatibility mode by emulat‐
11 ing a standard mouse. However, by using a dedicated driver, more
12 advanced features of the touchpad becomes available, such as:
13
14 · Movement with adjustable, non-linear acceleration and speed.
15
16 · Button events through short touching of the touchpad.
17
18 · Double-Button events through double short touching of the touchpad.
19
20 · Dragging through short touching and holding down the finger on the
21 touchpad.
22
23 · Middle and right button events on the upper and lower corner of the
24 touchpad.
25
26 · Vertical scrolling (button four and five events) through moving the
27 finger on the right side of the touchpad.
28
29 · The up/down button sends button four/five events.
30
31 · Horizontal scrolling (button six and seven events) through moving
32 the finger on the lower side of the touchpad.
33
34 · The multi-buttons send button four/five events, and six/seven
35 events for horizontal scrolling.
36
37 · Adjustable finger detection.
38
39 · Multifinger taps: two finger for middle button and three finger for
40 right button events. (Needs hardware support. Not all models
41 implement this feature.)
42
43 · Run-time configuration using shared memory. This means you can
44 change parameter settings without restarting the X server.
45
46 Note that depending on the touchpad firmware, some of these features
47 might be available even without using the synaptics driver. Note also
48 that some functions are not available on all touchpad models, because
49 they need support from the touchpad hardware/firmware. (Multifinger
50 taps for example.)
51
53 The driver behavior can be configured with parameters. These parame‐
54 ters are options in the InputDevice section in the XOrg/XFree86 config
55 file. See the INSTALL file for a working example. If you have the
56 SHMConfig parameter enabled, these parameters can also be changed at
57 runtime with the synclient(1) program. The following parameters are
58 available:
59
60 Device (String)
61 Synaptics device.
62
63 Protocol (String)
64
65 auto-dev automatic, default
66
67 psaux raw
68 event linux 2.6 kernel events
69 psm FreeBSD psm driver
70
71 SHMConfig (Bool)
72 Switch on/off shared memory for configuration.
73
74 LeftEdge (Integer)
75 X coordinate for left edge.
76
77 RightEdge (Integer)
78 X coordinate for right edge.
79
80 TopEdge (Integer)
81 Y coordinate for top edge.
82
83 BottomEdge (Integer)
84 Y coordinate for bottom edge.
85
86 FingerLow (Integer)
87 When finger pressure drops below this value, the driver counts
88 it as a release.
89
90 FingerHigh (Integer)
91 When finger pressure goes above this value, the driver counts it
92 as a touch.
93
94 MaxTapTime (Integer)
95 Maximum time (in milliseconds) for detecting a tap.
96
97 MaxTapMove (Integer)
98 Maximum movement of the finger for detecting a tap.
99
100 MaxDoubleTapTime (Integer)
101 Maximum time (in milliseconds) for detecting a double tap.
102
103 ClickTime (Integer)
104 The duration of the mouse click generated by tapping.
105
106 FastTaps (Bool)
107 Makes the driver react faster to a single tap, but also makes
108 double clicks caused by double tapping slower.
109
110 VertScrollDelta (Integer)
111 Move distance of the finger for a scroll event.
112
113 HorizScrollDelta (Integer)
114 Move distance of the finger for a scroll event.
115
116 EdgeMotionMinZ (Integer)
117 Finger pressure at which minimum edge motion speed is set.
118
119 EdgeMotionMaxZ (Integer)
120 Finger pressure at which maximum edge motion speed is set.
121
122 EdgeMotionMinSpeed (Integer)
123 Slowest setting for edge motion speed.
124
125 EdgeMotionMaxSpeed (Integer)
126 Fastest setting for edge motion speed.
127
128 EdgeMotionUseAlways (Bool)
129 If on, edge motion is also used for normal movements. If off,
130 egde motion is used only when dragging.
131
132 Repeater (String)
133 Repeater device.
134
135 MinSpeed (Float)
136 Minimum speed factor.
137
138 MaxSpeed (Float)
139 Maximum speed factor.
140
141 AccelFactor (Float)
142 Acceleration factor.
143
144 UpDownScrolling (Bool)
145 If on, the up/down buttons generate button 4/5 events. If off,
146 the up button generates a double click and the down button gen‐
147 erates a button 2 event.
148
149 LeftRightScrolling (Bool)
150 If on, the left/right buttons generate button 6/7 events. If
151 off, the left/right buttons both generate button 2 events.
152
153 UpDownRepeat (Bool)
154 If on, and the up/down buttons are used for scrolling (UpDown‐
155 Scrolling), these buttons will send auto-repeating 4/5 events,
156 with the delay between repeats determined by ScrollButtonRepeat.
157
158 LeftRightRepeat (Bool)
159 If on, and the left/right buttons are used for scrolling (Left‐
160 RightScrolling), these buttons will send auto-repeating 6/7
161 events, with the delay between repeats determined by ScrollBut‐
162 tonRepeat.
163
164 ScrollButtonRepeat (Integer)
165 The number of milliseconds between repeats of button events 4-7
166 from the up/down/left/right scroll buttons.
167
168 EmulateMidButtonTime (Integer)
169 Maximum time (in milliseconds) for middle button emulation.
170
171 TouchpadOff (Integer)
172 Switch off the touchpad. Valid values are:
173
174 0 Touchpad is enabled
175 1 Touchpad is switched off
176 2 Only tapping and scrolling is switched off
177
178 GuestMouseOff (Bool)
179 Switch on/off guest mouse (often a stick).
180
181 LockedDrags (Bool)
182 If off, a tap and drag gesture ends when you release the finger.
183 If on, the gesture is active until you tap a second time.
184
185 RTCornerButton (Integer)
186 Which mouse button is reported on a right top corner tap. Set
187 to 0 to disable.
188
189 RBCornerButton (Integer)
190 Which mouse button is reported on a right bottom corner tap.
191 Set to 0 to disable.
192
193 LTCornerButton (Integer)
194 Which mouse button is reported on a left top corner tap. Set to
195 0 to disable.
196
197 LBCornerButton (Integer)
198 Which mouse button is reported on a left bottom corner tap. Set
199 to 0 to disable.
200
201 TapButton1 (Integer)
202 Which mouse button is reported on a non-corner one-finger tap.
203 Set to 0 to disable.
204
205 TapButton2 (Integer)
206 Which mouse button is reported on a non-corner two-finger tap.
207 Set to 0 to disable.
208
209 TapButton3 (Integer)
210 Which mouse button is reported on a non-corner three-finger tap.
211 Set to 0 to disable.
212
213 CircularScrolling (Bool)
214 If on, circular scrolling is used.
215
216 CircScrollDelta (Float)
217 Move angle (radians) of finger to generate a scroll event.
218
219 CircScrollTrigger (Integer)
220 Trigger region on the touchpad to start circular scrolling
221
222 0 All Edges
223 1 Top Edge
224 2 Top Right Corner
225 3 Right Edge
226 4 Bottom Right Corner
227 5 Bottom Edge
228 6 Bottom Left Corner
229 7 Left Edge
230 8 Top Left Corner
231
232 CircularPad (Bool)
233 Instead of being a rectangle, the edge is the ellipse enclosed
234 by the Left/Right/Top/BottomEdge parameters. For circular
235 touchpads.
236
237 PalmDetect (Bool)
238 If palm detection should be enabled. Note that this also
239 requires hardware/firmware support from the touchpad.
240
241 PalmMinWidth (Integer)
242 Minimum finger width at which touch is considered a palm.
243
244 PalmMinZ (Integer)
245 Minimum finger pressure at which touch is considered a palm.
246
247 CoastingSpeed (Float)
248 Coasting threshold scrolling speed. 0 disables coasting.
249
250 The LeftEdge, RightEdge, TopEdge and BottomEdge parameters are used to
251 define the edge and corner areas of the touchpad. The parameters split
252 the touchpad area in 9 pieces, like this:
253 │ │
254 │ LeftEdge │ RightEdge
255 ┌─────└─────────────└───┐ Physical top edge
256 │ 1 │ 2 │ 3 │
257 └─────└─────────────└───┘ TopEdge
258 │ │ │ │
259 │ 4 │ 5 │ 6 │
260 │ │ │ │
261 └─────└─────────────└───┘ BottomEdge
262 │ 7 │ 8 │ 9 │
263 └─────└─────────────└───┘ Physical bottom edge
264 │Physical left edge │ Physical right edge
265
266 Coordinates to the left of LeftEdge are part of the left edge (areas 1,
267 4 and 7), coordinates to the left of LeftEdge and above TopEdge (area
268 1) are part of the upper left corner, etc. A good way to find appro‐
269 priate edge parameters is to enable the SHMConfig option and run "syn‐
270 client -m 1" to see the x/y coordinates corresponding to different
271 positions on the touchpad.
272
273 A tap event happens when the finger is touched and released in a time
274 interval shorter than MaxTapTime, and the touch and release coordinates
275 are less than MaxTapMove units apart. A "touch" event happens when the
276 Z value goes above FingerHigh, and an "untouch" event happens when the
277 Z value goes below FingerLow.
278
279 The MaxDoubleTapTime parameter has the same function as the MaxTapTime
280 parameter, but for the second, third, etc tap in a tap sequence. If
281 you can't perform double clicks fast enough (for example, xmms depends
282 on fast double clicks), try reducing this parameter. If you can't get
283 word selection to work in xterm (ie button down, button up, button
284 down, move mouse), try increasing this parameter.
285
286 The ClickTime parameter controls the delay between the button down and
287 button up X events generated in response to a tap event. A too long
288 value can cause undesirable autorepeat in scroll bars and a too small
289 value means that visual feedback from the gui application you are
290 interacting with is harder to see.
291
292 The MinSpeed, MaxSpeed and AccelFactor parameters control the pointer
293 motion speed. The speed value defines the scaling between touchpad
294 coordinates and screen coordinates. When moving the finger very
295 slowly, the MinSpeed value is used, when moving very fast the MaxSpeed
296 value is used. When moving the finger at moderate speed, you get a
297 pointer motion speed somewhere between MinSpeed and MaxSpeed. If you
298 don't want any acceleration, set MinSpeed and MaxSpeed to the same
299 value.
300
301 The MinSpeed, MaxSpeed and AccelFactor parameters don't have any effect
302 on scrolling speed. Scrolling speed is determined solely from the
303 VertScrollDelta and HorizScrollDelta parameters. To disable vertical
304 or horizontal scrolling, set VertScrollDelta or HorizScrollDelta to
305 zero.
306
307 When hitting an egde, movement can be automatically continued. If
308 EdgeMotionUseAlways is false, edge motion is only used when dragging.
309 With EdgeMotionUseAlways set to true, it is also used for normal cursor
310 movements.
311
312 Edge motion speed is calculated by taking into account the amount of
313 pressure applied to the touchpad. The sensitivity can be adjusted
314 using the EdgeMotion parameters. If the pressure is below EdgeMotion‐
315 MinZ, EdgeMotionMinSpeed is used, and if the pressure is greater than
316 EdgeMotionMaxZ, EdgeMotionMaxSpeed is used. For a pressure value
317 between EdgeMotionMinZ and EdgeMotionMaxZ, the speed is increased lin‐
318 early.
319
320 Since most synaptics touchpad models don't have a button that corre‐
321 sponds to the middle button on a mouse, the driver can emulate middle
322 mouse button events. If you press both the left and right mouse but‐
323 tons at almost the same time (no more than EmulateMidButtonTime mil‐
324 liseconds apart) the driver generates a middle mouse button event.
325
326 Circular scrolling acts like a scrolling wheel on the trackpad.
327 Scrolling is engaged when a drag starts in the given CircScrollTrigger
328 region, which can be all edges, a particular side, or a particular cor‐
329 ner. Once scrolling is engaged, moving your finger in clockwise cir‐
330 cles around the trackpad will generate scroll down events and counter
331 clockwise scroll up events. Lifting your finger will disengage circu‐
332 lar scrolling. Use tight circles near the center of the pad for fast
333 scrolling and large circles for better control. When used together
334 with vertical scrolling, hitting the upper or lower right corner will
335 seamlessly switch over from vertical to circular scrolling.
336
337 Coasting is enabled by setting the CoastingSpeed parameter to a non-
338 zero value. When coasting is enabled, horizontal/vertical scrolling
339 can continue after the finger is released from the lower/right edge of
340 the touchpad. The driver computes the scrolling speed corresponding to
341 the finger speed immediately before the finger leaves the touchpad. If
342 this scrolling speed is larger than the CoastingSpeed parameter (mea‐
343 sured in scroll events per second), the scrolling will continue with
344 the same speed in the same direction until the finger touches the
345 touchpad again.
346
348 Peter Osterlund <petero2@telia.com> and many others.
349
351 synclient(1), syndaemon(1)
352
353
354
355 0.14.4 synaptics(5)