1synaptics(5)                                                      synaptics(5)
2
3
4

NAME

6       synaptics - Synaptics touchpad driver for XOrg/XFree86.
7

INTRODUCTION

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

DESCRIPTION

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

AUTHORS

348       Peter Osterlund <petero2@telia.com> and many others.
349

SEE ALSO

351       synclient(1), syndaemon(1)
352
353
354
355                                    0.14.4                        synaptics(5)
Impressum