Provided by: xserver-xorg-input-synaptics_1.5.99.902-0ubuntu5_amd64 bug

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.

       ·   Run-time configuration using shared  memory.  This  means  you  can  change  parameter
           settings without restarting the X server.

       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 "SHMConfig" "boolean"
              Switch  on/off  shared  memory for run-time debugging. This option does not have an
              effect on run-time configuration anymore and is  only  useful  for  hardware  event
              debugging.

       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 "FingerPress" "integer"
              When  finger  pressure  goes  above  this  value,  the driver counts it as a press.
              Currently a press is equivalent to putting the  touchpad  in  trackstick  emulation
              mode. 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. 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. This property may be set automatically  if  a  click  pad
              device is detected at initialization time. Property: "Synaptics ClickPad"

       Option "FastTaps" "boolean"
              Makes  the driver react faster to a single tap, but also makes double clicks caused
              by double tapping slower. Property: "Synaptics Tap FastTap"

       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 "EdgeMotionMinZ" "integer"
              Finger  pressure  at  which  minimum edge motion speed is set. Property: "Synaptics
              Edge Motion Pressure"

       Option "EdgeMotionMaxZ" "integer"
              Finger pressure at which maximum edge motion speed  is  set.  Property:  "Synaptics
              Edge Motion Pressure"

       Option "EdgeMotionMinSpeed" "integer"
              Slowest setting for edge motion speed. Property: "Synaptics Edge Motion Speed"

       Option "EdgeMotionMaxSpeed" "integer"
              Fastest setting for edge motion speed. Property: "Synaptics Edge Motion Speed"

       Option "EdgeMotionUseAlways" "boolean"
              If  on, edge motion is also used for normal movements.  If off, edge motion is used
              only when dragging. Property: "Synaptics Edge Motion Always"

       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 "TrackstickSpeed" "float"
              Speed scale when in trackstick emulation mode. 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
              2   Only tapping and scrolling is switched off
              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
              ®esolutionDetect" "" boolean " Allow or prevent the synaptics driver from reporting
              the size of the touchpad to  the  X  server.   The  X  server  normally  uses  this
              information  to  scale  movements so that touchpad movement corresponds visually to
              mouse cursor movements on the screen.   However,  in  some  rare  cases  where  the
              touchpad  height/width  ratio  is  significantly  different from the laptop, it can
              cause the mouse cursor to skip pixels in the X  or  Y  axis.   This  option  allows
              disabling  this scaling behavior, which can provide smoother mouse movement in such
              cases.  Property: "Synaptics Resolution Detect"

       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 take place 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 take place 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 take  place  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 take  place  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 define the area of the right
              button, and the second four parameters define the area of the  middle  button.  The
              areas are defined by the left, right, top, and bottom edges as sequential values of
              the property. If any edge is set to 0, the button is assumed to extend to  infinity
              in  the  given  direction.   Any  of  the  values may be given as percentage of the
              touchpad width or height, whichever applies.  When the user performs a click within
              the  defined soft button areas, the right or middle click action is performed.  The
              use of soft button areas is disabled by setting all the values for the area  to  0.
              Property: "Synaptics Soft Button Areas"

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 enable the SHMConfig option and run
       "synclient -m 1" 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 in the space between the area edge and the respective physical
       edge is ignored. Note that this reduces the available space on the touchpad.

   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.   For  this  parameter  to  have  any  effect,
       "FastTaps" has to be disabled.

   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  disable  vertical  or  horizontal  scrolling,  set  VertScrollDelta   or
       HorizScrollDelta to zero.

       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.   By  default,
       PressureMotionMinZ and PressureMotionMaxZ are equal to EdgeMotionMinZ and  EdgeMotionMaxZ.
       For  a  pressure  value  between  PressureMotionMinZ and PressureMotionMaxZ, the factor is
       increased linearly.

   Edge motion
       When hitting an edge, movement can be automatically continued.  If EdgeMotionUseAlways  is
       false,  edge  motion is only used when dragging.  With EdgeMotionUseAlways set to true, it
       is also used for normal cursor movements.

       Edge motion speed is calculated by taking into account the amount of pressure  applied  to
       the  touchpad.   The  sensitivity can be adjusted using the EdgeMotion parameters.  If the
       pressure is below EdgeMotionMinZ, EdgeMotionMinSpeed is  used,  and  if  the  pressure  is
       greater  than  EdgeMotionMaxZ,  EdgeMotionMaxSpeed  is used.  For a pressure value between
       EdgeMotionMinZ and EdgeMotionMaxZ, the speed 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.

   Trackstick mode
       Trackstick  emulation  mode is entered when pressing the finger hard on the touchpad.  The
       FingerPress parameter controls the minimum required finger pressure.  If the finger hasn't
       moved  more  than MaxTapMove after MaxTapTime has elapsed, trackstick mode is entered.  In
       this mode, moving the finger slightly in any direction gives a speed vector that moves the
       pointer.   The  TrackstickSpeed  parameter  controls  the  ratio between pointer speed and
       finger movement distance.  Trackstick mode is exited when the finger pressure drops  below
       FingerLow  or  when  the  finger  is  moved  further than MaxTapMove away from the initial
       position.

DEVICE PROPERTIES

       Synaptics 1.0 and higher support input device properties if the driver  is  running  on  X
       server 1.6 or higher. On these driver versions, Option "SHMConfig" is not needed to enable
       run-time configuration. 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 Tap FastTap
              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, trackstick.

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

       Synaptics Edge Motion Speed
              32 bit, 2 values, min, max.

       Synaptics Edge Motion Always
              8 bit (BOOL).

       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 Resolution Detect
              8 bit (BOOL).

       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/50-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"

AUTHORS

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

SEE ALSO

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