Provided by: xserver-xorg-input-synaptics_0.99.3-2ubuntu4_i386 bug

NAME

       synaptics - 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 the touchpads from Synaptics
       Incorporated. Even tough these touchpads (by default,  operating  in  a
       compatibility  mode  emulating  a standard mouse) 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.

       ·   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 middle button and three finger for
           right 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.)

CONFIGURATION DETAILS

       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.  If you have  the
       SHMConfig  parameter  enabled,  these parameters can also be changed at
       runtime with the synclient(1) program.

       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 configuration. This enables the
              driver to be configured at runtime. Note that this is considered
              a security risk since any user can access the configuration.

       Option "LeftEdge" "integer"
              X coordinate for left edge.

       Option "RightEdge" "integer"
              X   coordinate   for   right   edge.  If  this  option  is  set,
              SpecialScrollAreaRight is ignored.

       Option "TopEdge" "integer"
              Y coordinate for top edge.

       Option "BottomEdge" "integer"
              Y coordinate for bottom edge.

       Option "SpecialScrollAreaRight" "boolean"
              Some touchpads have a scroll region on the right  edge.  Disable
              this  option  if  you  have  one but don’t want use it as scroll
              wheel region.

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

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

       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.

       Option "MaxTapTime" "integer"
              Maximum time (in milliseconds) for detecting a tap.

       Option "BMaxTapMove" "integer"
              Maximum movement of the finger for detecting a tap.

       Option "MaxDoubleTapTime" "integer"
              Maximum time (in milliseconds) for detecting a double tap.

       Option "ClickTime" "integer"
              The duration of the mouse click generated by tapping.

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

       Option "VertEdgeScroll" "boolean"
              Enable vertical scrolling when dragging along the right edge.

       Option "HorizEdgeScroll" "boolean"
              Enable horizontal scrolling when dragging along the bottom edge.

       Option "CornerCoasting" "boolean"
              Enable edge scrolling to continue while the finger stays  in  an
              edge corner.

       Option "VertTwoFingerScroll" "boolean"
              Enable   vertical  scrolling  when  dragging  with  two  fingers
              anywhere on the touchpad.

       Option "HorizTwoFingerScroll" "boolean"
              Enable horizontal  scrolling  when  dragging  with  two  fingers
              anywhere on the touchpad.

       Option "VertScrollDelta" "integer"
              Move distance of the finger for a scroll event.

       Option "HorizScrollDelta" "integer"
              Move distance of the finger for a scroll event.

       Option "EdgeMotionMinZ" "integer"
              Finger pressure at which minimum edge motion speed is set.

       Option "EdgeMotionMaxZ" "integer"
              Finger pressure at which maximum edge motion speed is set.

       Option "EdgeMotionMinSpeed" "integer"
              Slowest setting for edge motion speed.

       Option "EdgeMotionMaxSpeed" "integer"
              Fastest setting for edge motion speed.

       Option "EdgeMotionUseAlways" "boolean"
              If  on,  edge motion is also used for normal movements.  If off,
              egde motion is used only when dragging.

       Option "MinSpeed" "float"
              Minimum speed factor.

       Option "MaxSpeed (" "float")
              Maximum speed factor.

       Option "AccelFactor (" "float")
              Acceleration factor for normal pointer movements.

       Option "TrackstickSpeed (" "float")
              Speed scale when in trackstick emulation mode.

       Option "PressureMotionMinZ" "integer"
              Finger pressure at  which  minimum  pressure  motion  factor  is
              applied.

       Option "PressureMotionMaxZ" "integer"
              Finger  pressure  at  which  maximum  pressure  motion factor is
              applied.

       Option "PressureMotionMinFactor" "integer"
              Lowest setting for pressure motion factor.

       Option "PressureMotionMaxFactor" "integer"
              Greatest setting for pressure motion factor.

       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.

       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.

       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.

       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.

       Option "ScrollButtonRepeat" "integer"
              The  number of milliseconds between repeats of button events 4-7
              from the up/down/left/right scroll buttons.

       Option "EmulateMidButtonTime" "integer"
              Maximum time (in milliseconds) for middle button emulation.

       Option "EmulateTwoFingerMinZ" "integer"
              For touchpads not capable of detecting multiple fingers  (Alps),
              this  sets  the  Z  pressure  threshold  to emulate a two finger
              press.

       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

       Option "GuestMouseOff" "boolean"
              Switch on/off guest mouse (often a stick).

       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.

       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.

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

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

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

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

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

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

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

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

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

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

       Option "CircularScrolling" "boolean"
              If on, circular scrolling is used.

       Option "CircScrollDelta (" "float")
              Move angle (radians) of finger to generate a scroll event.

       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

       Option "CircularPad" "boolean"
              Instead of being a rectangle, the edge is the  ellipse  enclosed
              by   the  Left/Right/Top/BottomEdge  parameters.   For  circular
              touchpads.

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

       Option "PalmMinWidth" "integer"
              Minimum finger width at which touch is considered a palm.

       Option "PalmMinZ" "integer"
              Minimum finger pressure at which touch is considered a palm.

       Option "CoastingSpeed (" "float")
              Coasting threshold scrolling speed.  0 disables coasting.

       Option "SingleTapTimeout" "integer"
              Timeout after a tap to recognize it as a single tap.

       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.

       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.

       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.

       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.

       When hitting an egde, 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.

       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.

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

       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.

NOTES

       There     is     an      example      hal      policy      file      in
       ${sourcecode}/fdi/11-x11-synaptics.fdi  which  will  enable  the driver
       based on the information if the hardware is  available.  Feel  free  to
       copy  it to /etc/hal/fdi/policy and customize it to your needs. You can
       pass custom options to the driver using  x11_options  properties.  Note
       that this requires xorg-server-1.5 or higher.

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

REMOVED OPTIONS

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

       Option "Repeater" "string"

       Option "HistorySize" "integer"

AUTHORS

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

SEE ALSO

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