c896ccf8ec
ok matthieu@, tested claudio@
989 lines
34 KiB
Groff
989 lines
34 KiB
Groff
.\" shorthand for double quote that works everywhere.
|
|
.ds q \N'34'
|
|
.TH SYNAPTICS __drivermansuffix__ __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 __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 __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 SoftButtonAreas 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
|
|
reenabled.
|
|
.
|
|
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 HorizResolution to compensate unequal vertical and
|
|
horizontal sensitivity. Setting VertResolution and HorizResolution
|
|
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 VertResolution to compensate unequal vertical and
|
|
horizontal sensitivity. Setting VertResolution and HorizResolution
|
|
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
|
|
AreaLeftEdge 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
|
|
AreaRightEdge 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
|
|
AreaTopEdge 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
|
|
AreaBottomEdge 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 __xconfigfile__(__filemansuffix__).
|
|
.
|
|
|
|
.SH CONFIGURATION DETAILS
|
|
.SS Area handling
|
|
The 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 LeftEdge are part of the left edge (areas
|
|
1, 4 and 7), coordinates to the left of LeftEdge 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 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 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 MaxTapTime, 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 MaxDoubleTapTime parameter has the same function as the MaxTapTime
|
|
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 ClickTime 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.
|
|
.
|
|
For this parameter to have any effect, "FastTaps" has to be disabled.
|
|
.SS Acceleration
|
|
The 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 MinSpeed value is used, when
|
|
moving very fast the MaxSpeed value is used.
|
|
.
|
|
When moving the finger at moderate speed, you get a pointer motion
|
|
speed somewhere between MinSpeed and MaxSpeed.
|
|
.
|
|
If you don't want any acceleration, set MinSpeed and MaxSpeed to the
|
|
same value.
|
|
.
|
|
.LP
|
|
The MinSpeed, MaxSpeed and AccelFactor parameters don't have any
|
|
effect on scrolling speed.
|
|
.
|
|
Scrolling speed is determined solely from the VertScrollDelta and
|
|
HorizScrollDelta parameters.
|
|
.
|
|
To invert the direction of vertical or horizontal scrolling, set
|
|
VertScrollDelta or HorizScrollDelta to a negative value.
|
|
.
|
|
.LP
|
|
Acceleration is mostly handled outside the driver, thus the driver will
|
|
translate MinSpeed into constant deceleration and adapt MaxSpeed at
|
|
startup time. This ensures you can user 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 MinSpeed,
|
|
MaxSpeed and AccelFactor, and then is multiplied by a sensitivity
|
|
factor.
|
|
.
|
|
.LP
|
|
The sensitivity factor can be adjusted using the PressureMotion
|
|
parameters.
|
|
.
|
|
If the pressure is below PressureMotionMinZ, PressureMotionMinFactor
|
|
is used, and if the pressure is greater than PressureMotionMaxZ,
|
|
PressureMotionMaxFactor is used.
|
|
.
|
|
For a pressure value between PressureMotionMinZ and
|
|
PressureMotionMaxZ, 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 CircScrollTrigger
|
|
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 CoastingSpeed 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 CornerCoasting 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 CoastingSpeed 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
|
|
CornerCoasting 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.
|
|
.
|
|
CornerCoasting takes precedence over the seamless switch from edge
|
|
scrolling to circular scrolling. That is, if CornerCoasting 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 likelyhood 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 INPUT_PROP_BUTTONPAD 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 INPUT_PROP_TOPBUTTONPAD 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 synclient tool
|
|
shipped with synaptics version 1.1 uses input device properties by default.
|
|
.
|
|
Properties supported:
|
|
.TP 7
|
|
.BI "Synaptics Edges"
|
|
32 bit, 4 values, left, right, top, bottom.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Finger"
|
|
32 bit, 3 values, low, high, press.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Tap Time"
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Tap Move"
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Tap Durations"
|
|
32 bit, 3 values, single touch timeout, max tapping time for double taps,
|
|
duration of a single click.
|
|
|
|
.TP 7
|
|
.BI "Synaptics ClickPad"
|
|
8 bit (Bool).
|
|
|
|
.TP 7
|
|
.BI "Synaptics Middle Button Timeout"
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Two-Finger Pressure"
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Two-Finger Width"
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Scrolling Distance"
|
|
32 bit, 2 values, vert, horiz.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Edge Scrolling"
|
|
8 bit (BOOL), 3 values, vertical, horizontal, corner.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Two-Finger Scrolling"
|
|
8 bit (BOOL), 2 values, vertical, horizontal.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Move Speed"
|
|
FLOAT, 4 values, min, max, accel, <deprecated>
|
|
|
|
.TP 7
|
|
.BI "Synaptics Button Scrolling"
|
|
8 bit (BOOL), 2 values, updown, leftright.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Button Scrolling Repeat"
|
|
8 bit (BOOL), 2 values, updown, leftright.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Button Scrolling Time"
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Off"
|
|
8 bit, valid values (0, 1, 2).
|
|
|
|
.TP 7
|
|
.BI "Synaptics Locked Drags"
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.BI "Synaptics Locked Drags Timeout"
|
|
32 bit.
|
|
|
|
.TP 7
|
|
.BI "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
|
|
.BI "Synaptics Click Action"
|
|
8 bit, up to MAX_CLICK values (see synaptics.h), 0 disables an element.
|
|
order: Finger 1, 2, 3.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Circular Scrolling"
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.BI "Synaptics Circular Scrolling Distance"
|
|
FLOAT.
|
|
|
|
.TP 7
|
|
.BI "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
|
|
.BI "Synaptics Circular Pad"
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.BI "Synaptics Palm Detection"
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.BI "Synaptics Palm Dimensions"
|
|
32 bit, 2 values, width, z.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Coasting Speed"
|
|
FLOAT, 2 values, speed, friction.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Pressure Motion"
|
|
32 bit, 2 values, min, max.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Pressure Motion Factor"
|
|
FLOAT, 2 values, min, max.
|
|
|
|
.TP 7
|
|
.BI "Synaptics Grab Event Device"
|
|
8 bit (BOOL).
|
|
|
|
.TP 7
|
|
.BI "Synaptics Gestures"
|
|
8 bit (BOOL), 1 value, tap-and-drag.
|
|
|
|
.TP 7
|
|
.BI "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
|
|
.BI "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
|
|
.BI "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
|
|
.BI "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 xorg.conf.d(5) for
|
|
more details. An example xorg.conf.d snippet is provided in
|
|
.I ${sourcecode}/conf/50-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 \*qFastTaps\*q \*q" boolean \*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
|
|
.TP
|
|
|
|
.SH "AUTHORS"
|
|
.LP
|
|
Peter Osterlund <petero2@telia.com> and many others.
|
|
.SH "SEE ALSO"
|
|
.LP
|
|
__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__), synclient(__appmansuffix__), syndaemon(__appmansuffix__)
|