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

   Option "SHMConfig" "boolean"

   Option "FingerPress" "integer"

   Option "TrackstickSpeed" "float"

   Option "FastTaps" "boolean"

   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)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.