synaptics

SYNAPTICS(4)                Kernel Interfaces Manual                SYNAPTICS(4)



NAME
       synaptics - touchpad input driver

SYNOPSIS
       Section "InputDevice"
         Identifier "devname"
         Driver "synaptics"
         Option "Device"   "devpath"
         Option "Path"     "path"
         ...
       EndSection

DESCRIPTION
       synaptics is an Xorg 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:

       •   Movement with adjustable, non-linear acceleration and speed.

       •   Button events through short touching of the touchpad.

       •   Double-Button events through double short touching of the touchpad.

       •   Dragging through short touching and holding down the finger on the
           touchpad (tap-and-drag gesture).

       •   Middle and right button events on the upper and lower corner of the
           touchpad.

       •   Vertical scrolling (button four and five events) through moving the
           finger on the right side of the touchpad.

       •   The up/down button sends button four/five events.

       •   Horizontal scrolling (button six and seven events) through moving the
           finger on the lower side of the touchpad.

       •   The multi-buttons send button four/five events for vertical scrolling
           and button six/seven events for horizontal scrolling.

       •   Adjustable finger detection.

       •   Multifinger taps: two finger for right button and three finger for
           middle button events.  (Needs hardware support.  Not all models
           implement this feature.)

       •   Pressure-dependent motion speed.

       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.)

       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 "PS/2 Mouse" or similar, the kernel driver does not support your
       device and this driver will only provide limited functionality.


CONFIGURATION OPTIONS
       Please refer to xorg.conf(5) 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.

       The following driver Options are supported:

       Option "Device" "string"
              This option specifies the device file in your "/dev" directory
              which will be used to access the physical device. Normally you
              should use something like "/dev/input/eventX", where X is some
              integer.

       Option "Protocol" "string"
              Specifies which kernel driver will be used by this driver. This is
              the list of supported drivers and their default use scenarios.

              auto-dev   automatic, default (recommend)
              event      Linux 2.6 kernel events
              psaux      raw device access (Linux 2.4)
              psm        FreeBSD psm driver

       Option "LeftEdge" "integer"
              X coordinate for left edge. Property: "Synaptics Edges"

       Option "RightEdge" "integer"
              X coordinate for right edge. Property: "Synaptics Edges"

       Option "TopEdge" "integer"
              Y coordinate for top edge. Property: "Synaptics Edges"

       Option "BottomEdge" "integer"
              Y coordinate for bottom edge. Property: "Synaptics Edges"

       Option "FingerLow" "integer"
              When finger pressure drops below this value, the driver counts it
              as a release. Property: "Synaptics Finger"

       Option "FingerHigh" "integer"
              When finger pressure goes above this value, the driver counts it
              as a touch. Property: "Synaptics Finger"

       Option "MaxTapTime" "integer"
              Maximum time (in milliseconds) for detecting a tap. Property:
              "Synaptics Tap Durations"

       Option "MaxTapMove" "integer"
              Maximum movement of the finger for detecting a tap. Property:
              "Synaptics Tap Move"

       Option "MaxDoubleTapTime" "integer"
              Maximum time (in milliseconds) for detecting a double tap.
              Property: "Synaptics Tap Durations"

       Option "ClickTime" "integer"
              The duration of the mouse click generated by tapping. Property:
              "Synaptics Tap Durations"

       Option "ClickPad" "boolean"
              Whether the device is a click pad. See ClickPad support for more
              details. Property: "Synaptics ClickPad"

       Option "VertEdgeScroll" "boolean"
              Enable vertical scrolling when dragging along the right edge.
              Property: "Synaptics Edge Scrolling"

       Option "HorizEdgeScroll" "boolean"
              Enable horizontal scrolling when dragging along the bottom edge.
              Property: "Synaptics Edge Scrolling"

       Option "CornerCoasting" "boolean"
              Enable edge scrolling to continue while the finger stays in an
              edge corner.  Property: "Synaptics Edge Scrolling"

       Option "VertTwoFingerScroll" "boolean"
              Enable vertical scrolling when dragging with two fingers anywhere
              on the touchpad. Property: "Synaptics Two-Finger Scrolling"

       Option "HorizTwoFingerScroll" "boolean"
              Enable horizontal scrolling when dragging with two fingers
              anywhere on the touchpad. Property: "Synaptics Two-Finger
              Scrolling"

       Option "VertScrollDelta" "integer"
              Move distance of the finger for a scroll event. Property:
              "Synaptics Scrolling Distance"

       Option "HorizScrollDelta" "integer"
              Move distance of the finger for a scroll event. Property:
              "Synaptics Scrolling Distance"

       Option "MinSpeed" "float"
              Minimum speed factor. Property: "Synaptics Move Speed"

       Option "MaxSpeed" "float"
              Maximum speed factor. Property: "Synaptics Move Speed"

       Option "AccelFactor" "float"
              Acceleration factor for normal pointer movements. Property:
              "Synaptics Move Speed"

       Option "PressureMotionMinZ" "integer"
              Finger pressure at which minimum pressure motion factor is
              applied. Property: "Synaptics Pressure Motion"

       Option "PressureMotionMaxZ" "integer"
              Finger pressure at which maximum pressure motion factor is
              applied.  Property: "Synaptics Pressure Motion"

       Option "PressureMotionMinFactor" "integer"
              Lowest setting for pressure motion factor. Property: "Synaptics
              Pressure Motion Factor"

       Option "PressureMotionMaxFactor" "integer"
              Greatest setting for pressure motion factor. Property: "Synaptics
              Pressure Motion Factor"

       Option "HorizHysteresis" "integer"
              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.

       Option "VertHysteresis" "integer"
              The minimum vertical HW distance required to generate motion
              events. See HorizHysteresis.

       Option "UpDownScrolling" "boolean"
              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"

       Option "LeftRightScrolling" "boolean"
              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"

       Option "UpDownScrollRepeat" "boolean"
              If on, and the up/down buttons are used for scrolling
              (UpDownScrolling), these buttons will send auto-repeating 4/5
              events, with the delay between repeats determined by
              ScrollButtonRepeat.  This option is only available for touchpads
              with physical scroll buttons.  Property: "Synaptics Button
              Scrolling Repeat"

       Option "LeftRightScrollRepeat" "boolean"
              If on, and the left/right buttons are used for scrolling
              (LeftRightScrolling), these buttons will send auto-repeating 6/7
              events, with the delay between repeats determined by
              ScrollButtonRepeat.  This option is only available for touchpads
              with physical scroll buttons.  Property: "Synaptics Button
              Scrolling Repeat"

       Option "ScrollButtonRepeat" "integer"
              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"

       Option "EmulateMidButtonTime" "integer"
              Maximum time (in milliseconds) for middle button emulation.
              Property: "Synaptics Middle Button Timeout"

       Option "EmulateTwoFingerMinZ" "integer"
              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"

       Option "EmulateTwoFingerMinW" "integer"
              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 (PalmDetect) off. Property: "Synaptics Two-Finger Width"

       Option "TouchpadOff" "integer"
              Switch off the touchpad.  Valid values are:

              0   Touchpad is enabled
              1   Touchpad is switched off (physical clicks still work)
              2   Only tapping and scrolling is switched off
              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.

       Property: "Synaptics Off"

       Option "LockedDrags" "boolean"
              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"

       Option "LockedDragTimeout" "integer"
              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"

       Option "RTCornerButton" "integer"
              Which mouse button is reported on a right top corner tap.  Set to
              0 to disable. Property: "Synaptics Tap Action"

       Option "RBCornerButton" "integer"
              Which mouse button is reported on a right bottom corner tap.  Set
              to 0 to disable. Property: "Synaptics Tap Action"

       Option "LTCornerButton" "integer"
              Which mouse button is reported on a left top corner tap.  Set to 0
              to disable. Property: "Synaptics Tap Action"

       Option "LBCornerButton" "integer"
              Which mouse button is reported on a left bottom corner tap.  Set
              to 0 to disable. Property: "Synaptics Tap Action"

       Option "TapButton1" "integer"
              Which mouse button is reported on a non-corner one-finger tap.
              Set to 0 to disable. Property: "Synaptics Tap Action"

       Option "TapButton2" "integer"
              Which mouse button is reported on a non-corner two-finger tap.
              Set to 0 to disable. Property: "Synaptics Tap Action"

       Option "TapButton3" "integer"
              Which mouse button is reported on a non-corner three-finger tap.
              Set to 0 to disable. Property: "Synaptics Tap Action"

       Option "ClickFinger1" "integer"
              Which mouse button is reported when left-clicking with one finger.
              Set to 0 to disable. Property: "Synaptics Click Action"

       Option "ClickFinger2" "integer"
              Which mouse button is reported when left-clicking with two
              fingers.  Set to 0 to disable. Property: "Synaptics Click Action"

       Option "ClickFinger3" "integer"
              Which mouse button is reported when left-clicking with three
              fingers.  Set to 0 to disable. Property: "Synaptics Click Action"

       Option "CircularScrolling" "boolean"
              If on, circular scrolling is used. Property: "Synaptics Circular
              Scrolling"

       Option "CircScrollDelta" "float"
              Move angle (radians) of finger to generate a scroll event.
              Property: "Synaptics Circular Scrolling Distance"

       Option "CircScrollTrigger" "integer"
              Trigger region on the touchpad to start circular scrolling

              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
              Property: "Synaptics Circular Scrolling Trigger"

       Option "CircularPad" "boolean"
              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"

       Option "PalmDetect" "boolean"
              If palm detection should be enabled.  Note that this also requires
              hardware/firmware support from the touchpad. Property: "Synaptics
              Palm Detection"

       Option "PalmMinWidth" "integer"
              Minimum finger width at which touch is considered a palm.
              Property: "Synaptics Palm Dimensions"

       Option "PalmMinZ" "integer"
              Minimum finger pressure at which touch is considered a palm.
              Property: "Synaptics Palm Dimensions"

       Option "CoastingSpeed" "float"
              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"

       Option "CoastingFriction" "float"
              Number of scrolls/second² to decrease the coasting speed.  Default
              is 50.  Property: "Synaptics Coasting Speed"

       Option "SingleTapTimeout" "integer"
              Timeout after a tap to recognize it as a single tap. Property:
              "Synaptics Tap Durations"

       Option "GrabEventDevice" "boolean"
              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.

       Option "TapAndDragGesture" "boolean"
              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"

       Option "VertResolution" "integer"
              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"

       Option "HorizResolution" "integer"
              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"

       Option "AreaLeftEdge" "integer"
              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"

       Option "AreaRightEdge" "integer"
              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"

       Option "AreaTopEdge" "integer"
              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"

       Option "AreaBottomEdge" "integer"
              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"

       Option "SoftButtonAreas" "RBL RBR RBT RBB MBL MBR MBT MBB"
              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"

       Option "HasSecondarySoftButtons" "boolean"
              This option is only available on ClickPad devices.  Enable the
              secondary software button area support. The exact area must be set
              in option "SecondarySoftButtonAreas".  See ClickPad support for
              more details.

       Option "SecondarySoftButtonAreas" "RBL RBR RBT RBB MBL MBR MBT MBB"
              This option is only available on ClickPad devices and only if
              Option "HasSecondarySoftButtons" 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 Option
              "SoftButtonAreas".  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 Option
              "HasSecondarySoftButtons" is enabled and this option is set in the
              xorg.conf(5).


CONFIGURATION DETAILS
   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:
             │             │
             │ 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

       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.

       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.

       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.

   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.

       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.

       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.

   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.

       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.

       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.


   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.

       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.

   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.

   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.


   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.

       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.

       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.


   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.


   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 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.

       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.

       ClickPads provide software emulated buttons through Option
       "SoftButtonAreas".  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.

       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 Option "HasSecondarySoftButtons" and configured with Option
       "SecondarySoftButtonAreas".  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.


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:

       Synaptics Edges
              32 bit, 4 values, left, right, top, bottom.


       Synaptics Finger
              32 bit, 3 values, low, high, press.


       Synaptics Tap Time
              32 bit.


       Synaptics Tap Move
              32 bit.


       Synaptics Tap Durations
              32 bit, 3 values, single touch timeout, max tapping time for
              double taps, duration of a single click.


       Synaptics ClickPad
              8 bit (Bool).


       Synaptics Middle Button Timeout
              32 bit.


       Synaptics Two-Finger Pressure
              32 bit.


       Synaptics Two-Finger Width
              32 bit.


       Synaptics Scrolling Distance
              32 bit, 2 values, vert, horiz.


       Synaptics Edge Scrolling
              8 bit (BOOL), 3 values, vertical, horizontal, corner.


       Synaptics Two-Finger Scrolling
              8 bit (BOOL), 2 values, vertical, horizontal.


       Synaptics Move Speed
              FLOAT, 4 values, min, max, accel, <deprecated>


       Synaptics Button Scrolling
              8 bit (BOOL), 2 values, updown, leftright.


       Synaptics Button Scrolling Repeat
              8 bit (BOOL), 2 values, updown, leftright.


       Synaptics Button Scrolling Time
              32 bit.


       Synaptics Off
              8 bit, valid values (0, 1, 2).


       Synaptics Locked Drags
              8 bit (BOOL).


       Synaptics Locked Drags Timeout
              32 bit.


       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.


       Synaptics Click Action
              8 bit, up to MAX_CLICK values (see synaptics.h), 0 disables an
              element.  order: Finger 1, 2, 3.


       Synaptics Circular Scrolling
              8 bit (BOOL).


       Synaptics Circular Scrolling Distance
              FLOAT.


       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.


       Synaptics Circular Pad
              8 bit (BOOL).


       Synaptics Palm Detection
              8 bit (BOOL).


       Synaptics Palm Dimensions
              32 bit, 2 values, width, z.


       Synaptics Coasting Speed
              FLOAT, 2 values, speed, friction.


       Synaptics Pressure Motion
              32 bit, 2 values, min, max.


       Synaptics Pressure Motion Factor
              FLOAT, 2 values, min, max.


       Synaptics Grab Event Device
              8 bit (BOOL).


       Synaptics Gestures
              8 bit (BOOL), 1 value, tap-and-drag.


       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.


       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.


       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.


       Synaptics Pad Resolution
              32 bit unsigned, 2 values (read-only), vertical, horizontal in
              units/millimeter.


NOTES
       Configuration through 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 ${sourcecode}/conf/70-synaptics.conf

       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
       ${sourcecode}/conf/11-x11-synaptics.fdi

       If either of Protocol "auto-dev" (default) or Protocol "event" 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.

       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).


REMOVED OPTIONS
       The following options are no longer part of the driver configuration:

       Option "Repeater" "string"

       Option "HistorySize" "integer"

       Option "SpecialScrollAreaRight" "boolean"

       Option "GuestMouseOff" "boolean"

       Option "SHMConfig" "boolean"

       Option "FingerPress" "integer"

       Option "TrackstickSpeed" "float"

       Option "EdgeMotionMinZ" "integer"

       Option "EdgeMotionMaxZ" "integer"

       Option "EdgeMotionMinSpeed" "integer"

       Option "EdgeMotionMaxSpeed" "integer"

       Option "EdgeMotionUseAlways" "boolean"



       AUTHORS

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

SEE ALSO
       Xorg(1), xorg.conf(5), Xserver(1), X(7), synclient(1), syndaemon(1)



X Version 11               xf86-input-synaptics 1.9.1               SYNAPTICS(4)