mirror of
https://github.com/X11Libre/xf86-input-synaptics.git
synced 2026-03-24 01:34:04 +00:00
More closely follow common style as described on https://man7.org/linux/man-pages/man7/man-pages.7.html Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-input-synaptics/-/merge_requests/24>
1066 lines
34 KiB
Groff
1066 lines
34 KiB
Groff
'\" t
|
|
.\" shorthand for double quote that works everywhere.
|
|
.ds q \N'34'
|
|
.TH SYNAPTICS __drivermansuffix__ 2016-05-19 __vendorversion__
|
|
.SH NAME
|
|
synaptics \- touchpad input driver
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B "Section \*qInputDevice\*q"
|
|
.BI " Identifier \*q" devname \*q
|
|
.B " Driver \*qsynaptics\*q"
|
|
.BI " Option \*qDevice\*q \*q" devpath \*q
|
|
.BI " Option \*qPath\*q \*q" path \*q
|
|
\ \ ...
|
|
.B EndSection
|
|
.fi
|
|
.SH DESCRIPTION
|
|
.B synaptics
|
|
is an
|
|
.B __xservername__
|
|
input driver for touchpads.
|
|
Even though touchpads can be handled by the normal evdev or mouse drivers,
|
|
this driver allows more advanced features of the touchpad to become available.
|
|
Some benefits would be:
|
|
.IP \(bu 4
|
|
Movement with adjustable, non-linear acceleration and speed.
|
|
.IP \(bu 4
|
|
Button events through short touching of the touchpad.
|
|
.IP \(bu 4
|
|
Double-Button events through double short touching of the touchpad.
|
|
.IP \(bu 4
|
|
Dragging through short touching and holding down the finger on the
|
|
touchpad (tap-and-drag gesture).
|
|
.IP \(bu 4
|
|
Middle and right button events on the upper and lower corner of the
|
|
touchpad.
|
|
.IP \(bu 4
|
|
Vertical scrolling (button four and five events) through moving the
|
|
finger on the right side of the touchpad.
|
|
.IP \(bu 4
|
|
The up/down button sends button four/five events.
|
|
.IP \(bu 4
|
|
Horizontal scrolling (button six and seven events) through moving the
|
|
finger on the lower side of the touchpad.
|
|
.IP \(bu 4
|
|
The multi-buttons send button four/five events for vertical scrolling
|
|
and button six/seven events for horizontal scrolling.
|
|
.IP \(bu 4
|
|
Adjustable finger detection.
|
|
.IP \(bu 4
|
|
Multifinger taps: two finger for right button and three finger for
|
|
middle button events.
|
|
.
|
|
(Needs hardware support.
|
|
.
|
|
Not all models implement this feature.)
|
|
.IP \(bu 4
|
|
Pressure-dependent motion speed.
|
|
.LP
|
|
Note that depending on the touchpad firmware, some of these features
|
|
might be available even without using the synaptics driver.
|
|
Note also that some functions are not available on all touchpad models,
|
|
because they need support from the touchpad hardware/firmware.
|
|
(Multifinger taps for example.)
|
|
.PP
|
|
The name "synaptics" is historical and the driver still provides the
|
|
synaptics protocol parsing code.
|
|
Under Linux however, the hardware-specifics are handled by the kernel
|
|
and this driver will work for any touchpad that has a working kernel driver.
|
|
If your device is recognized as \*qPS/2 Mouse\*q or similar,
|
|
the kernel driver does not support your device
|
|
and this driver will only provide limited functionality.
|
|
.SH CONFIGURATION OPTIONS
|
|
Please refer to
|
|
.BR __xconfigfile__ (__filemansuffix__)
|
|
for general configuration details and
|
|
for options that can be used with all input drivers.
|
|
This section only covers configuration details specific to this driver.
|
|
.PP
|
|
The following driver
|
|
.B Options
|
|
are supported:
|
|
.TP 7
|
|
.BI "Option \*qDevice\*q \*q" string \*q
|
|
This option specifies the device file in your \*q/dev\*q directory which will
|
|
be used to access the physical device.
|
|
Normally you should use something like
|
|
\*q/dev/input/eventX\*q, where X is some integer.
|
|
.TP 7
|
|
.BI "Option \*qProtocol\*q \*q" string \*q
|
|
Specifies which kernel driver will be used by this driver.
|
|
This is the list of supported drivers and their default use scenarios.
|
|
.TS
|
|
l l.
|
|
auto-dev automatic, default (recommend)
|
|
event Linux 2.6 kernel events
|
|
psaux raw device access (Linux 2.4)
|
|
psm FreeBSD psm driver
|
|
.TE
|
|
.TP 7
|
|
.BI "Option \*qLeftEdge\*q \*q" integer \*q
|
|
X coordinate for left edge.
|
|
Property: "Synaptics Edges"
|
|
.TP 7
|
|
.BI "Option \*qRightEdge\*q \*q" integer \*q
|
|
X coordinate for right edge.
|
|
Property: "Synaptics Edges"
|
|
.TP 7
|
|
.BI "Option \*qTopEdge\*q \*q" integer \*q
|
|
Y coordinate for top edge.
|
|
Property: "Synaptics Edges"
|
|
.TP 7
|
|
.BI "Option \*qBottomEdge\*q \*q" integer \*q
|
|
Y coordinate for bottom edge.
|
|
Property: "Synaptics Edges"
|
|
.TP 7
|
|
.BI "Option \*qFingerLow\*q \*q" integer \*q
|
|
When finger pressure drops below this value,
|
|
the driver counts it as a release.
|
|
Property: "Synaptics Finger"
|
|
.TP 7
|
|
.BI "Option \*qFingerHigh\*q \*q" integer \*q
|
|
When finger pressure goes above this value, the driver counts it as a touch.
|
|
Property: "Synaptics Finger"
|
|
.TP 7
|
|
.BI "Option \*qMaxTapTime\*q \*q" integer \*q
|
|
Maximum time (in milliseconds) for detecting a tap.
|
|
Property: "Synaptics Tap Durations"
|
|
.TP 7
|
|
.BI "Option \*qMaxTapMove\*q \*q" integer \*q
|
|
Maximum movement of the finger for detecting a tap.
|
|
Property: "Synaptics Tap Move"
|
|
.TP 7
|
|
.BI "Option \*qMaxDoubleTapTime\*q \*q" integer \*q
|
|
Maximum time (in milliseconds) for detecting a double tap.
|
|
Property: "Synaptics Tap Durations"
|
|
.TP 7
|
|
.BI "Option \*qClickTime\*q \*q" integer \*q
|
|
The duration of the mouse click generated by tapping.
|
|
Property: "Synaptics Tap Durations"
|
|
.TP 7
|
|
.BI "Option \*qClickPad\*q \*q" boolean \*q
|
|
Whether the device is a click pad.
|
|
See
|
|
.B ClickPad support
|
|
for more details.
|
|
Property: "Synaptics ClickPad"
|
|
.TP 7
|
|
.BI "Option \*qVertEdgeScroll\*q \*q" boolean \*q
|
|
Enable vertical scrolling when dragging along the right edge.
|
|
Property: "Synaptics Edge Scrolling"
|
|
.TP 7
|
|
.BI "Option \*qHorizEdgeScroll\*q \*q" boolean \*q
|
|
Enable horizontal scrolling when dragging along the bottom edge.
|
|
Property: "Synaptics Edge Scrolling"
|
|
.TP 7
|
|
.BI "Option \*qCornerCoasting\*q \*q" boolean \*q
|
|
Enable edge scrolling to continue while the finger stays in an edge corner.
|
|
Property: "Synaptics Edge Scrolling"
|
|
.TP 7
|
|
.BI "Option \*qVertTwoFingerScroll\*q \*q" boolean \*q
|
|
Enable vertical scrolling when dragging with two fingers anywhere on
|
|
the touchpad.
|
|
Property: "Synaptics Two-Finger Scrolling"
|
|
.TP 7
|
|
.BI "Option \*qHorizTwoFingerScroll\*q \*q" boolean \*q
|
|
Enable horizontal scrolling when dragging with two fingers anywhere on
|
|
the touchpad.
|
|
Property: "Synaptics Two-Finger Scrolling"
|
|
.TP 7
|
|
.BI "Option \*qVertScrollDelta\*q \*q" integer \*q
|
|
Move distance of the finger for a scroll event.
|
|
Property: "Synaptics Scrolling Distance"
|
|
.TP 7
|
|
.BI "Option \*qHorizScrollDelta\*q \*q" integer \*q
|
|
Move distance of the finger for a scroll event.
|
|
Property: "Synaptics Scrolling Distance"
|
|
.TP
|
|
.BI "Option \*qMinSpeed\*q \*q" float \*q
|
|
Minimum speed factor.
|
|
Property: "Synaptics Move Speed"
|
|
.TP
|
|
.BI "Option \*qMaxSpeed\*q \*q" float \*q
|
|
Maximum speed factor.
|
|
Property: "Synaptics Move Speed"
|
|
.TP
|
|
.BI "Option \*qAccelFactor\*q \*q" float \*q
|
|
Acceleration factor for normal pointer movements.
|
|
Property: "Synaptics Move Speed"
|
|
.TP
|
|
.BI "Option \*qPressureMotionMinZ\*q \*q" integer \*q
|
|
Finger pressure at which minimum pressure motion factor is applied.
|
|
Property: "Synaptics Pressure Motion"
|
|
.TP
|
|
.BI "Option \*qPressureMotionMaxZ\*q \*q" integer \*q
|
|
Finger pressure at which maximum pressure motion factor is applied.
|
|
Property: "Synaptics Pressure Motion"
|
|
.TP
|
|
.BI "Option \*qPressureMotionMinFactor\*q \*q" integer \*q
|
|
Lowest setting for pressure motion factor.
|
|
Property: "Synaptics Pressure Motion Factor"
|
|
.TP
|
|
.BI "Option \*qPressureMotionMaxFactor\*q \*q" integer \*q
|
|
Greatest setting for pressure motion factor.
|
|
Property: "Synaptics Pressure Motion Factor"
|
|
.TP
|
|
.BI "Option \*qHorizHysteresis\*q \*q" integer \*q
|
|
The minimum horizontal HW distance required to generate motion events.
|
|
Can be specified as a percentage.
|
|
Increase if noise motion is a problem for you.
|
|
Zero is disabled.
|
|
Default: 0.5 percent of the diagonal or (in case of evdev) the appropriate
|
|
"fuzz" as advertised by the device.
|
|
.TP
|
|
.BI "Option \*qVertHysteresis\*q \*q" integer \*q
|
|
The minimum vertical HW distance required to generate motion events.
|
|
See \fBHorizHysteresis\fR.
|
|
.TP
|
|
.BI "Option \*qUpDownScrolling\*q \*q" boolean \*q
|
|
If on, the up/down buttons generate button 4/5 events.
|
|
.
|
|
If off, the up button generates a double click and the down button
|
|
generates a button 2 event.
|
|
This option is only available for touchpads with physical scroll buttons.
|
|
Property: "Synaptics Button Scrolling"
|
|
.TP
|
|
.BI "Option \*qLeftRightScrolling\*q \*q" boolean \*q
|
|
If on, the left/right buttons generate button 6/7 events.
|
|
.
|
|
If off, the left/right buttons both generate button 2 events.
|
|
This option is only available for touchpads with physical scroll buttons.
|
|
Property: "Synaptics Button Scrolling"
|
|
.TP
|
|
.BI "Option \*qUpDownScrollRepeat\*q \*q" boolean \*q
|
|
If on, and the up/down buttons are used for scrolling
|
|
(\fBUpDownScrolling\fR), these buttons will send auto-repeating 4/5 events,
|
|
with the delay between repeats determined by \fBScrollButtonRepeat\fR.
|
|
This option is only available for touchpads with physical scroll buttons.
|
|
Property: "Synaptics Button Scrolling Repeat"
|
|
.TP
|
|
.BI "Option \*qLeftRightScrollRepeat\*q \*q" boolean \*q
|
|
If on, and the left/right buttons are used for scrolling
|
|
(\fBLeftRightScrolling\fR), these buttons will send auto-repeating 6/7 events,
|
|
with the delay between repeats determined by \fBScrollButtonRepeat\fR.
|
|
This option is only available for touchpads with physical scroll buttons.
|
|
Property: "Synaptics Button Scrolling Repeat"
|
|
.TP
|
|
.BI "Option \*qScrollButtonRepeat\*q \*q" integer \*q
|
|
The number of milliseconds between repeats of button events 4-7 from the
|
|
up/down/left/right scroll buttons.
|
|
This option is only available for touchpads with physical scroll buttons.
|
|
Property: "Synaptics Button Scrolling Time"
|
|
.TP
|
|
.BI "Option \*qEmulateMidButtonTime\*q \*q" integer \*q
|
|
Maximum time (in milliseconds) for middle button emulation.
|
|
Property: "Synaptics Middle Button Timeout"
|
|
.TP
|
|
.BI "Option \*qEmulateTwoFingerMinZ\*q \*q" integer \*q
|
|
For touchpads not capable of detecting multiple fingers but are capable
|
|
of detecting finger pressure and width, this sets the Z pressure threshold.
|
|
When both Z pressure and W width thresholds are crossed,
|
|
a two finger press will be emulated.
|
|
This defaults to a value that disables emulation on touchpads
|
|
with real two-finger detection
|
|
and defaults to a value that enables emulation on remaining touchpads that
|
|
support pressure and width support.
|
|
Property: "Synaptics Two-Finger Pressure"
|
|
.TP
|
|
.BI "Option \*qEmulateTwoFingerMinW\*q \*q" integer \*q
|
|
For touchpads not capable of detecting multiple fingers but are
|
|
capable of detecting finger width and pressure, this sets the
|
|
W width threshold.
|
|
When both W width and Z pressure thresholds are crossed,
|
|
a two finger press will be emulated.
|
|
This feature works best with \fBPalmDetect\fR off.
|
|
Property: "Synaptics Two-Finger Width"
|
|
.TP
|
|
.BI "Option \*qTouchpadOff\*q \*q" integer \*q
|
|
Switch off the touchpad.
|
|
.
|
|
Valid values are:
|
|
.TS
|
|
l l.
|
|
0 Touchpad is enabled
|
|
1 Touchpad is switched off (physical clicks still work)
|
|
2 Only tapping and scrolling is switched off
|
|
.TE
|
|
When the touchpad is switched off, button events caused by a physical
|
|
button press are still interpreted.
|
|
On a ClickPad, this includes software-emulated middle and right buttons
|
|
as defined by the \fBSoftButtonAreas\fP setting.
|
|
.TP
|
|
Property: "Synaptics Off"
|
|
.TP
|
|
.BI "Option \*qLockedDrags\*q \*q" boolean \*q
|
|
If off, a tap-and-drag gesture ends when you release the finger.
|
|
.
|
|
If on, the gesture is active until you tap a second time,
|
|
or until LockedDragTimeout expires.
|
|
Property: "Synaptics Locked Drags"
|
|
.TP
|
|
.BI "Option \*qLockedDragTimeout\*q \*q" integer \*q
|
|
This parameter specifies how long it takes (in milliseconds) for the
|
|
LockedDrags mode to be automatically turned off after the finger is
|
|
released from the touchpad.
|
|
Property: "Synaptics Locked Drags Timeout"
|
|
.TP
|
|
.BI "Option \*qRTCornerButton\*q \*q" integer \*q
|
|
.
|
|
Which mouse button is reported on a right top corner tap.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Tap Action"
|
|
.TP
|
|
.BI "Option \*qRBCornerButton\*q \*q" integer \*q
|
|
Which mouse button is reported on a right bottom corner tap.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Tap Action"
|
|
.TP
|
|
.BI "Option \*qLTCornerButton\*q \*q" integer \*q
|
|
Which mouse button is reported on a left top corner tap.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Tap Action"
|
|
.TP
|
|
.BI "Option \*qLBCornerButton\*q \*q" integer \*q
|
|
Which mouse button is reported on a left bottom corner tap.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Tap Action"
|
|
.TP
|
|
.BI "Option \*qTapButton1\*q \*q" integer \*q
|
|
Which mouse button is reported on a non-corner one-finger tap.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Tap Action"
|
|
.TP
|
|
.BI "Option \*qTapButton2\*q \*q" integer \*q
|
|
Which mouse button is reported on a non-corner two-finger tap.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Tap Action"
|
|
.TP
|
|
.BI "Option \*qTapButton3\*q \*q" integer \*q
|
|
Which mouse button is reported on a non-corner three-finger tap.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Tap Action"
|
|
.TP
|
|
.BI "Option \*qClickFinger1\*q \*q" integer \*q
|
|
Which mouse button is reported when left-clicking with one finger.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Click Action"
|
|
.TP
|
|
.BI "Option \*qClickFinger2\*q \*q" integer \*q
|
|
Which mouse button is reported when left-clicking with two fingers.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Click Action"
|
|
.TP
|
|
.BI "Option \*qClickFinger3\*q \*q" integer \*q
|
|
Which mouse button is reported when left-clicking with three fingers.
|
|
.
|
|
Set to 0 to disable.
|
|
Property: "Synaptics Click Action"
|
|
.TP
|
|
.BI "Option \*qCircularScrolling\*q \*q" boolean \*q
|
|
If on, circular scrolling is used.
|
|
Property: "Synaptics Circular Scrolling"
|
|
.TP
|
|
.BI "Option \*qCircScrollDelta\*q \*q" float \*q
|
|
Move angle (radians) of finger to generate a scroll event.
|
|
Property: "Synaptics Circular Scrolling Distance"
|
|
.TP
|
|
.BI "Option \*qCircScrollTrigger\*q \*q" integer \*q
|
|
Trigger region on the touchpad to start circular scrolling
|
|
.TS
|
|
l l.
|
|
0 All Edges
|
|
1 Top Edge
|
|
2 Top Right Corner
|
|
3 Right Edge
|
|
4 Bottom Right Corner
|
|
5 Bottom Edge
|
|
6 Bottom Left Corner
|
|
7 Left Edge
|
|
8 Top Left Corner
|
|
.TE
|
|
Property: "Synaptics Circular Scrolling Trigger"
|
|
.TP
|
|
.BI "Option \*qCircularPad\*q \*q" boolean \*q
|
|
.
|
|
Instead of being a rectangle, the edge is the ellipse enclosed by the
|
|
Left/Right/Top/BottomEdge parameters.
|
|
.
|
|
For circular touchpads.
|
|
Property: "Synaptics Circular Pad"
|
|
.TP
|
|
.BI "Option \*qPalmDetect\*q \*q" boolean \*q
|
|
If palm detection should be enabled.
|
|
.
|
|
Note that this also requires hardware/firmware support from the touchpad.
|
|
Property: "Synaptics Palm Detection"
|
|
.TP
|
|
.BI "Option \*qPalmMinWidth\*q \*q" integer \*q
|
|
Minimum finger width at which touch is considered a palm.
|
|
Property: "Synaptics Palm Dimensions"
|
|
.TP
|
|
.BI "Option \*qPalmMinZ\*q \*q" integer \*q
|
|
Minimum finger pressure at which touch is considered a palm.
|
|
Property: "Synaptics Palm Dimensions"
|
|
.TP
|
|
.BI "Option \*qCoastingSpeed\*q \*q" float \*q
|
|
Your finger needs to produce this many scrolls per second in order to start
|
|
coasting.
|
|
The default is 20 which should prevent you from starting coasting
|
|
unintentionally.
|
|
.
|
|
0 disables coasting.
|
|
Property: "Synaptics Coasting Speed"
|
|
.TP
|
|
.BI "Option \*qCoastingFriction\*q \*q" float \*q
|
|
Number of scrolls/second² to decrease the coasting speed.
|
|
Default is 50.
|
|
Property: "Synaptics Coasting Speed"
|
|
.TP
|
|
.BI "Option \*qSingleTapTimeout\*q \*q" integer \*q
|
|
Timeout after a tap to recognize it as a single tap.
|
|
Property: "Synaptics Tap Durations"
|
|
.TP
|
|
.BI "Option \*qGrabEventDevice\*q \*q" boolean \*q
|
|
If GrabEventDevice is true, the driver will grab the event device for
|
|
exclusive use when using the linux 2.6 event protocol.
|
|
.
|
|
When using other protocols, this option has no effect.
|
|
.
|
|
Grabbing the event device means that no other user space or kernel
|
|
space program sees the touchpad events.
|
|
.
|
|
This is desirable if the X config file includes /dev/input/mice as an
|
|
input device, but is undesirable if you want to monitor the device
|
|
from user space.
|
|
.
|
|
When changing this parameter with the synclient program, the change
|
|
will not take effect until the synaptics driver is disabled and
|
|
re-enabled.
|
|
.
|
|
This can be achieved by switching to a text console and then switching
|
|
back to X.
|
|
.
|
|
.
|
|
.TP
|
|
.BI "Option \*qTapAndDragGesture\*q \*q" boolean \*q
|
|
Switch on/off the tap-and-drag gesture.
|
|
.
|
|
This gesture is an alternative way of dragging.
|
|
.
|
|
It is performed by tapping (touching and releasing the finger), then
|
|
touching again and moving the finger on the touchpad.
|
|
.
|
|
The gesture is enabled by default and can be disabled by setting the
|
|
TapAndDragGesture option to false.
|
|
Property: "Synaptics Gestures"
|
|
.
|
|
.TP
|
|
.BI "Option \*qVertResolution\*q \*q" integer \*q
|
|
Resolution of X coordinates in units/millimeter.
|
|
The value is used together with \fBHorizResolution\fP to
|
|
compensate unequal vertical and horizontal sensitivity.
|
|
Setting \fBVertResolution\fP and \fBHorizResolution\fP
|
|
equal values means no compensation.
|
|
Default value is read from the touchpad or set to 1 if value could not be read.
|
|
Property: "Synaptics Pad Resolution"
|
|
.
|
|
.TP
|
|
.BI "Option \*qHorizResolution\*q \*q" integer \*q
|
|
Resolution of Y coordinates in units/millimeter.
|
|
The value is used together with \fBVertResolution\fP to
|
|
compensate unequal vertical and horizontal sensitivity.
|
|
Setting \fBVertResolution\fP and \fBHorizResolution\fP
|
|
equal values means no compensation.
|
|
Default value is read from the touchpad or set to 1 if value could not be read.
|
|
Property: "Synaptics Pad Resolution"
|
|
.
|
|
.TP
|
|
.BI "Option \*qAreaLeftEdge\*q \*q" integer \*q
|
|
Ignore movements, scrolling and tapping which start left of this edge.
|
|
.
|
|
The option is disabled by default and can be enabled by setting the
|
|
\fBAreaLeftEdge\fP option to any integer value other than zero.
|
|
If supported by the server (version 1.9 and later),
|
|
the edge may be specified in percent of the total width of the touchpad.
|
|
Property: "Synaptics Area"
|
|
.
|
|
.TP
|
|
.BI "Option \*qAreaRightEdge\*q \*q" integer \*q
|
|
Ignore movements, scrolling and tapping which start right of this edge.
|
|
.
|
|
The option is disabled by default and can be enabled by setting the
|
|
\fBAreaRightEdge\fP option to any integer value other than zero.
|
|
If supported by the server (version 1.9 and later),
|
|
the edge may be specified in percent of the total width of the touchpad.
|
|
Property: "Synaptics Area"
|
|
.
|
|
.TP
|
|
.BI "Option \*qAreaTopEdge\*q \*q" integer \*q
|
|
Ignore movements, scrolling and tapping which start above this edge.
|
|
.
|
|
The option is disabled by default and can be enabled by setting the
|
|
\fBAreaTopEdge\fP option to any integer value other than zero.
|
|
If supported by the server (version 1.9 and later),
|
|
the edge may be specified in percent of the total height of the touchpad.
|
|
Property: "Synaptics Area"
|
|
.
|
|
.TP
|
|
.BI "Option \*qAreaBottomEdge\*q \*q" integer \*q
|
|
Ignore movements, scrolling and tapping which start below this edge.
|
|
.
|
|
The option is disabled by default and can be enabled by setting the
|
|
\fBAreaBottomEdge\fP option to any integer value other than zero.
|
|
If supported by the server (version 1.9 and later),
|
|
the edge may be specified in percent of the total height of the touchpad.
|
|
Property: "Synaptics Area"
|
|
.
|
|
.TP
|
|
.BI "Option \*qSoftButtonAreas\*q \*q" "RBL RBR RBT RBB MBL MBR MBT MBB" \*q
|
|
This option is only available on ClickPad devices.
|
|
Enable soft button click area support on ClickPad devices.
|
|
The first four parameters are the left, right, top, bottom edge
|
|
of the right button, respectively,
|
|
the second four parameters are the left, right, top, bottom edge
|
|
of the middle button, respectively.
|
|
Any of the values may be given as percentage of the touchpad width or height,
|
|
whichever applies.
|
|
If any edge is set to 0 (not 0%), the button is assumed to extend to
|
|
infinity in the given direction.
|
|
Setting all values to 0 (not 0%) disables soft button areas.
|
|
Button areas may not overlap,
|
|
however it is permitted for two buttons to share an edge value.
|
|
Property: "Synaptics Soft Button Areas"
|
|
.
|
|
.TP
|
|
.BI "Option \*qHasSecondarySoftButtons\*q \*q" boolean \*q
|
|
This option is only available on ClickPad devices.
|
|
Enable the secondary software button area support.
|
|
The exact area must be set in option \*qSecondarySoftButtonAreas\*q.
|
|
See
|
|
.B ClickPad support
|
|
for more details.
|
|
.
|
|
.TP
|
|
.BI "Option \*qSecondarySoftButtonAreas\*q \*q" "RBL RBR RBT RBB MBL MBR MBT MBB" \*q
|
|
This option is only available on ClickPad devices and only if
|
|
.B Option \*qHasSecondarySoftButtons\*q
|
|
is enabled.
|
|
Define the secondary soft button click areas on ClickPad devices (usually on
|
|
top of the device).
|
|
For the allowed values for this option, see
|
|
.B Option \*qSoftButtonAreas\*q.
|
|
Primary and secondary soft button areas must not overlap each other.
|
|
If they do, the behavior of the driver is undefined.
|
|
Property: "Synaptics Secondary Soft Button Areas".
|
|
This property is only initialized if
|
|
.B Option \*qHasSecondarySoftButtons\*q
|
|
is enabled and this option is set in the
|
|
.BR __xconfigfile__ (__filemansuffix__).
|
|
.SH CONFIGURATION DETAILS
|
|
.SS Area handling
|
|
The
|
|
.BR LeftEdge ", " RightEdge ", " TopEdge ", and " BottomEdge
|
|
parameters are used to define the edge and corner areas of the touchpad.
|
|
.
|
|
The parameters split the touchpad area in 9 pieces, like this:
|
|
.LP
|
|
.TS
|
|
l|l|lsls
|
|
---
|
|
|c|cw(5P)|c|l
|
|
---
|
|
|c|c|c|l
|
|
|c|c|c|l
|
|
|c|c|c|l
|
|
---
|
|
|c|c|c|l
|
|
---
|
|
|lsl|ll.
|
|
LeftEdge RightEdge
|
|
Physical top edge
|
|
1 2 3
|
|
TopEdge
|
|
|
|
4 5 6
|
|
|
|
BottomEdge
|
|
7 8 9
|
|
Physical bottom edge
|
|
Physical left edge Physical right edge
|
|
.TE
|
|
.LP
|
|
Coordinates to the left of \fBLeftEdge\fP are part of
|
|
the left edge (areas 1, 4, and 7),
|
|
coordinates to the left of \fBLeftEdge\fP and above TopEdge
|
|
(area 1) are part of the upper left corner, etc.
|
|
.PP
|
|
A good way to find appropriate edge parameters is to use
|
|
.BR evtest (1)
|
|
on the device to see the x/y coordinates corresponding to
|
|
different positions on the touchpad.
|
|
.PP
|
|
The perceived physical edges may be adjusted with the
|
|
.BR AreaLeftEdge ", " AreaRightEdge ", " AreaTopEdge ", and " AreaBottomEdge
|
|
options.
|
|
If these values are set to something other than the physical edges,
|
|
input that starts in the space between the area edge and
|
|
the respective physical edge is ignored.
|
|
Note that this reduces the available space on the touchpad to start motions
|
|
in.
|
|
.SS Tapping
|
|
A tap event happens when the finger is touched and released in a time
|
|
interval shorter than \fBMaxTapTime\fP, and the touch and release
|
|
coordinates are less than MaxTapMove units apart.
|
|
.
|
|
A "touch" event happens when the Z value goes above FingerHigh, and an
|
|
"untouch" event happens when the Z value goes below FingerLow.
|
|
.
|
|
.LP
|
|
The \fBMaxDoubleTapTime\fP parameter has the same function as
|
|
the \fBMaxTapTime\fP parameter,
|
|
but for the second, third, etc tap in a tap sequence.
|
|
.
|
|
If you can't perform double clicks fast enough (for example, xmms
|
|
depends on fast double clicks), try reducing this parameter.
|
|
.
|
|
If you can't get word selection to work in xterm (ie button down,
|
|
button up, button down, move mouse), try increasing this parameter.
|
|
.
|
|
.LP
|
|
The \fBClickTime\fP parameter controls the delay between the button down and
|
|
button up X events generated in response to a tap event.
|
|
.
|
|
A too long value can cause undesirable autorepeat in scroll bars and a
|
|
too small value means that visual feedback from the gui application
|
|
you are interacting with is harder to see.
|
|
.
|
|
.SS Acceleration
|
|
The
|
|
.BR MinSpeed ", " MaxSpeed ", and " AccelFactor
|
|
parameters control the pointer motion speed.
|
|
.
|
|
The speed value defines the scaling between touchpad coordinates and
|
|
screen coordinates.
|
|
.
|
|
When moving the finger very slowly, the \fBMinSpeed\fP value is used,
|
|
when moving very fast the \fBMaxSpeed\fP value is used.
|
|
.
|
|
When moving the finger at moderate speed, you get a pointer motion
|
|
speed somewhere between \fBMinSpeed\fP and \fBMaxSpeed\fP.
|
|
.
|
|
If you don't want any acceleration,
|
|
set \fBMinSpeed\fP and \fBMaxSpeed\fP to the same value.
|
|
.
|
|
.LP
|
|
The
|
|
.BR MinSpeed ", " MaxSpeed ", and " AccelFactor
|
|
parameters don't have any effect on scrolling speed.
|
|
.
|
|
Scrolling speed is determined solely from the
|
|
.BR VertScrollDelta " and " HorizScrollDelta
|
|
parameters.
|
|
.
|
|
To invert the direction of vertical or horizontal scrolling,
|
|
set \fBVertScrollDelta\fP or \fBHorizScrollDelta\fP to a negative value.
|
|
.
|
|
.LP
|
|
Acceleration is mostly handled outside the driver,
|
|
thus the driver will
|
|
translate \fBMinSpeed\fP into constant deceleration
|
|
and adapt \fBMaxSpeed\fP at startup time.
|
|
This ensures you can use the other acceleration profiles,
|
|
albeit without pressure motion.
|
|
However the numbers at runtime will likely be different
|
|
from any options you may have set.
|
|
.
|
|
.SS Pressure motion
|
|
When pressure motion is activated, the cursor motion speed depends
|
|
on the pressure exerted on the touchpad (the more pressure exerted on
|
|
the touchpad, the faster the pointer).
|
|
.
|
|
More precisely the speed is first calculated according to
|
|
.BR MinSpeed ", " MaxSpeed ", and " AccelFactor ,
|
|
and then is multiplied by a sensitivity factor.
|
|
.
|
|
.LP
|
|
The sensitivity factor can be adjusted using the \fBPressureMotion\fP
|
|
parameters.
|
|
.
|
|
If the pressure is below \fBPressureMotionMinZ\fP,
|
|
\fBPressureMotionMinFactor\fP is used,
|
|
and if the pressure is greater than \fBPressureMotionMaxZ\fP,
|
|
\fBPressureMotionMaxFactor\fP is used.
|
|
.
|
|
For a pressure value between \fBPressureMotionMinZ\fP and
|
|
\fBPressureMotionMaxZ\fP, the factor is increased linearly.
|
|
.
|
|
.SS Middle button emulation
|
|
Since most synaptics touchpad models don't have a button that
|
|
corresponds to the middle button on a mouse,
|
|
the driver can emulate middle mouse button events.
|
|
.
|
|
If you press both the left and right mouse buttons at almost the same
|
|
time (no more than EmulateMidButtonTime milliseconds apart) the driver
|
|
generates a middle mouse button event.
|
|
.
|
|
.SS Circular scrolling
|
|
Circular scrolling acts like a scrolling wheel on the touchpad.
|
|
.
|
|
Scrolling is engaged when a drag starts in the given \fBCircScrollTrigger\fP
|
|
region, which can be all edges, a particular side, or a particular corner.
|
|
.
|
|
Once scrolling is engaged, moving your finger in clockwise circles
|
|
around the center of the touchpad will generate scroll down events and
|
|
counter clockwise motion will generate scroll up events.
|
|
.
|
|
Lifting your finger will disengage circular scrolling.
|
|
.
|
|
Use tight circles near the center of the pad for fast scrolling and
|
|
large circles for better control.
|
|
.
|
|
When used together with vertical scrolling, hitting the upper or lower
|
|
right corner will seamlessly switch over from vertical to circular
|
|
scrolling.
|
|
.
|
|
.SS Coasting
|
|
Coasting is enabled by setting the \fBCoastingSpeed\fP parameter to a
|
|
non-zero value.
|
|
.
|
|
Coasting comes in two flavors: conventional (finger off) coasting,
|
|
and corner (finger on) coasting.
|
|
.LP
|
|
Conventional coasting is enabled when coasting is enabled,
|
|
and \fBCornerCoasting\fP is set to false.
|
|
.
|
|
When conventional coasting is enabled, horizontal/vertical scrolling
|
|
can continue after the finger is released from the lower/right edge of
|
|
the touchpad.
|
|
.
|
|
The driver computes the scrolling speed corresponding to the finger
|
|
speed immediately before the finger leaves the touchpad.
|
|
.
|
|
If this scrolling speed is larger than the \fBCoastingSpeed\fP parameter
|
|
(measured in scroll events per second), the scrolling will continue
|
|
with the same speed in the same direction until the finger touches the
|
|
touchpad again.
|
|
.
|
|
.LP
|
|
Corner coasting is enabled when coasting is enabled, and
|
|
\fBCornerCoasting\fP is set to true.
|
|
.
|
|
When corner coasting is enabled, edge scrolling can continue as long
|
|
as the finger stays in a corner.
|
|
.
|
|
Coasting begins when the finger enters the corner, and continues until
|
|
the finger leaves the corner.
|
|
.
|
|
\fBCornerCoasting\fP takes precedence over the seamless switch from edge
|
|
scrolling to circular scrolling.
|
|
That is, if \fBCornerCoasting\fP is active, scrolling will stop,
|
|
and circular scrolling will not start,
|
|
when the finger leaves the corner.
|
|
.
|
|
.SS Noise cancellation
|
|
The synaptics has a built-in noise cancellation based on hysteresis.
|
|
This means that incoming coordinates actually shift
|
|
a box of predefined dimensions such that it covers the incoming coordinate,
|
|
and only the boxes own center is used as input.
|
|
Obviously, the smaller the box the better,
|
|
but the likelihood of noise motion coming through also increases.
|
|
.
|
|
.SS ClickPad support
|
|
A click pad device has button(s) integrated into the touchpad surface.
|
|
The user must press downward on the touchpad in order to generated a button
|
|
press.
|
|
ClickPad support is enabled if the option
|
|
.B ClickPad
|
|
is set or the property is set at runtime.
|
|
On some platforms,
|
|
this option will be set automatically if the kernel detects a matching device.
|
|
On Linux,
|
|
the device must have the \fBINPUT_PROP_BUTTONPAD\fP property set.
|
|
.LP
|
|
ClickPads do not support middle mouse button emulation.
|
|
If enabling ClickPad support at runime,
|
|
the user must also set the middle mouse button timeout to 0.
|
|
If auto-detected, middle mouse button emulation is disabled by the driver.
|
|
.LP
|
|
ClickPads provide software emulated buttons through
|
|
.B Option \*qSoftButtonAreas\*q.
|
|
These buttons enable areas on the touchpad to perform as right or middle
|
|
mouse button.
|
|
When the user performs a click within a defined soft button area,
|
|
a right or middle click is performed.
|
|
.LP
|
|
Some laptops, most notably the Lenovo T440, T540 and x240 series,
|
|
provide a pointing stick without physical buttons.
|
|
On those laptops,
|
|
the top of the touchpad acts as software-emulated button area.
|
|
This area can be enabled with
|
|
.B Option \*qHasSecondarySoftButtons\*q
|
|
and configured
|
|
with
|
|
.B Option \*qSecondarySoftButtonAreas\*q.
|
|
On some platforms,
|
|
this option will be set automatically if the kernel detects a matching device.
|
|
On Linux,
|
|
the device must have the \fBINPUT_PROP_TOPBUTTONPAD\fP property set.
|
|
.
|
|
.SH "DEVICE PROPERTIES"
|
|
Synaptics 1.0 and higher support input device properties if the driver is
|
|
running on X server 1.6 or higher.
|
|
The \fBsynclient\fP tool
|
|
shipped with synaptics version 1.1 uses input device properties by default.
|
|
.
|
|
Properties supported:
|
|
.TP 7
|
|
.B Synaptics Edges
|
|
32 bit, 4 values, left, right, top, bottom.
|
|
|
|
.TP 7
|
|
.B Synaptics Finger
|
|
32 bit, 3 values, low, high, press.
|
|
|
|
.TP 7
|
|
.B Synaptics Tap Time
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.B Synaptics Tap Move
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.B Synaptics Tap Durations
|
|
32 bit, 3 values, single touch timeout, max tapping time for double taps,
|
|
duration of a single click.
|
|
|
|
.TP 7
|
|
.B Synaptics ClickPad
|
|
8 bit (Bool).
|
|
|
|
.TP 7
|
|
.B Synaptics Middle Button Timeout
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.B Synaptics Two-Finger Pressure
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.B Synaptics Two-Finger Width
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.B Synaptics Scrolling Distance
|
|
32 bit, 2 values, vert, horiz.
|
|
|
|
.TP 7
|
|
.B Synaptics Edge Scrolling
|
|
8 bit (BOOL), 3 values, vertical, horizontal, corner.
|
|
|
|
.TP 7
|
|
.B Synaptics Two-Finger Scrolling
|
|
8 bit (BOOL), 2 values, vertical, horizontal.
|
|
|
|
.TP 7
|
|
.B Synaptics Move Speed
|
|
FLOAT, 4 values, min, max, accel, <deprecated>
|
|
|
|
.TP 7
|
|
.B Synaptics Button Scrolling
|
|
8 bit (BOOL), 2 values, updown, leftright.
|
|
|
|
.TP 7
|
|
.B Synaptics Button Scrolling Repeat
|
|
8 bit (BOOL), 2 values, updown, leftright.
|
|
|
|
.TP 7
|
|
.B Synaptics Button Scrolling Time
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.B Synaptics Off
|
|
8 bit, valid values (0, 1, 2).
|
|
|
|
.TP 7
|
|
.B Synaptics Locked Drags
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.B Synaptics Locked Drags Timeout
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.B Synaptics Tap Action
|
|
8 bit, up to MAX_TAP values (see synaptics.h), 0 disables an element. order:
|
|
RT, RB, LT, LB, F1, F2, F3.
|
|
|
|
.TP 7
|
|
.B Synaptics Click Action
|
|
8 bit, up to MAX_CLICK values (see synaptics.h), 0 disables an element.
|
|
order: Finger 1, 2, 3.
|
|
|
|
.TP 7
|
|
.B Synaptics Circular Scrolling
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.B Synaptics Circular Scrolling Distance
|
|
FLOAT.
|
|
|
|
.TP 7
|
|
.B Synaptics Circular Scrolling Trigger
|
|
8 bit, valid values 0..8 (inclusive) order: any edge, top, top + right,
|
|
right, right + bottom, bottom, bottom + left, left, left + top.
|
|
|
|
.TP 7
|
|
.B Synaptics Circular Pad
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.B Synaptics Palm Detection
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.B Synaptics Palm Dimensions
|
|
32 bit, 2 values, width, z.
|
|
|
|
.TP 7
|
|
.B Synaptics Coasting Speed
|
|
FLOAT, 2 values, speed, friction.
|
|
|
|
.TP 7
|
|
.B Synaptics Pressure Motion
|
|
32 bit, 2 values, min, max.
|
|
|
|
.TP 7
|
|
.B Synaptics Pressure Motion Factor
|
|
FLOAT, 2 values, min, max.
|
|
|
|
.TP 7
|
|
.B Synaptics Grab Event Device
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.B Synaptics Gestures
|
|
8 bit (BOOL), 1 value, tap-and-drag.
|
|
|
|
.TP 7
|
|
.B Synaptics Area
|
|
The AreaLeftEdge, AreaRightEdge, AreaTopEdge and AreaBottomEdge parameters
|
|
are used to define the edges of the active area of the touchpad.
|
|
All movements, scrolling and tapping which take place outside of this area
|
|
will be ignored.
|
|
This property is disabled by default.
|
|
|
|
32 bit, 4 values, left, right, top, bottom. 0 disables an element.
|
|
|
|
.TP 7
|
|
.B Synaptics Soft Button Areas
|
|
This property is only available on ClickPad devices.
|
|
The Right and middle soft button areas are used to support right and middle
|
|
click actions on a ClickPad device. Providing 0 for all values of a given button
|
|
disables the button area.
|
|
|
|
32 bit, 8 values, RBL, RBR, RBT, RBB, MBL, MBR, MBT, MBB.
|
|
|
|
.TP 7
|
|
.B Synaptics Capabilities
|
|
This read-only property expresses the physical capability of the touchpad,
|
|
most notably whether the touchpad hardware supports multi-finger tapping and
|
|
scrolling.
|
|
|
|
8 bit (BOOL), 7 values (read-only), has left button, has middle button, has
|
|
right button, two-finger detection, three-finger detection, pressure detection,
|
|
and finger/palm width detection.
|
|
|
|
.TP 7
|
|
.B Synaptics Pad Resolution
|
|
32 bit unsigned, 2 values (read-only), vertical, horizontal in units/millimeter.
|
|
|
|
.SH "NOTES"
|
|
Configuration through
|
|
.I InputClass
|
|
sections is recommended in X servers 1.8 and later.
|
|
See
|
|
.BR xorg.conf.d (5)
|
|
for more details.
|
|
An example xorg.conf.d snippet is provided in
|
|
.I ${sourcecode}/conf/70-synaptics.conf
|
|
.LP
|
|
Configuration through hal fdi files is recommended in
|
|
X servers 1.5, 1.6 and 1.7.
|
|
An example hal policy file is provided in
|
|
.I ${sourcecode}/conf/11-x11-synaptics.fdi
|
|
.LP
|
|
If either of
|
|
.BI "Protocol \*q" auto-dev \*q
|
|
(default) or
|
|
.BI "Protocol \*q" event \*q
|
|
is used, the driver initializes defaults based on the capabilities reported by
|
|
the kernel driver.
|
|
Acceleration, edges and resolution are based on the dimensions
|
|
reported by the kernel.
|
|
If the kernel reports multi-finger detection,
|
|
two-finger vertical scrolling is enabled,
|
|
horizontal two-finger scrolling is disabled and
|
|
edge scrolling is disabled.
|
|
If no multi-finger capabilities are reported,
|
|
edge scrolling is enabled for both horizontal and vertical scrolling.
|
|
Tapping is disabled by default for touchpads with one or more physical buttons.
|
|
To enable it you need to map tap actions to buttons. See the "TapButton1",
|
|
"TapButton2" and "TapButton3" options.
|
|
.LP
|
|
Button mapping for physical buttons is handled in the server.
|
|
If the device is switched to left-handed (an in-server mapping of physical
|
|
buttons 1, 2, 3 to the logical buttons 3, 2, 1, respectively), both physical
|
|
and TapButtons are affected.
|
|
To counteract this, the TapButtons need to be set
|
|
up in reverse order (TapButton1=3, TapButton2=1).
|
|
|
|
.SH "REMOVED OPTIONS"
|
|
The following options are no longer part of the driver configuration:
|
|
.TP
|
|
.BI "Option \*qRepeater\*q \*q" string \*q
|
|
.TP
|
|
.BI "Option \*qHistorySize\*q \*q" integer \*q
|
|
.TP
|
|
.BI "Option \*qSpecialScrollAreaRight\*q \*q" boolean \*q
|
|
.TP
|
|
.BI "Option \*qGuestMouseOff\*q \*q" boolean \*q
|
|
.TP
|
|
.BI "Option \*qSHMConfig\*q \*q" boolean \*q
|
|
.TP
|
|
.BI "Option \*qFingerPress\*q \*q" integer \*q
|
|
.TP
|
|
.BI "Option \*qTrackstickSpeed\*q \*q" float \*q
|
|
.TP
|
|
.BI "Option \*qEdgeMotionMinZ\*q \*q" integer \*q
|
|
.TP
|
|
.BI "Option \*qEdgeMotionMaxZ\*q \*q" integer \*q
|
|
.TP
|
|
.BI "Option \*qEdgeMotionMinSpeed\*q \*q" integer \*q
|
|
.TP
|
|
.BI "Option \*qEdgeMotionMaxSpeed\*q \*q" integer \*q
|
|
.TP
|
|
.BI "Option \*qEdgeMotionUseAlways\*q \*q" boolean \*q
|
|
.SH "AUTHORS"
|
|
Peter Osterlund <petero2@telia.com> and many others.
|
|
.SH "SEE ALSO"
|
|
.BR __xservername__ (__appmansuffix__),
|
|
.BR __xconfigfile__ (__filemansuffix__),
|
|
.BR Xserver (__appmansuffix__),
|
|
.BR X (__miscmansuffix__),
|
|
.BR synclient (__appmansuffix__),
|
|
.BR syndaemon (__appmansuffix__)
|