unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-5.0)
Page:
Section:
Apropos / Subsearch:
optional field

synaptics(5)                                                      synaptics(5)



NAME
       synaptics - Synaptics touchpad driver for XOrg/XFree86.

INTRODUCTION
       This  is  a  driver for the Synaptics TouchPad for XOrg/XFree86 4.x.  A
       Synaptics touchpad by default operates in compatibility mode by emulat-
       ing  a  standard  mouse.   However,  by  using a dedicated driver, more
       advanced features of the touchpad becomes available, such as:

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

       o   Button events through short touching of the touchpad.

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

       o   Dragging through short touching and holding down the finger on  the
           touchpad.

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

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

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

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

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

       o   Adjustable finger detection.

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

       o   Pressure dependent motion speed.

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

DESCRIPTION
       The driver behavior can be configured with parameters.   These  parame-
       ters  are options in the InputDevice section in the XOrg/XFree86 config
       file.  See the INSTALL file for  a  working  example  for  a  synaptics
       touchpad.   See  the README.alps file for a working example for an ALPS
       touchpad.  If you have the SHMConfig parameter enabled,  these  parame-
       ters can also be changed at runtime with the synclient(1) program.  The
       following parameters are available:

       Device (String)
              Synaptics device.

       Protocol (String)

              l l.  auto-dev  automatic, default psaux     raw event     linux
              2.6 kernel events psm  FreeBSD psm driver

       SHMConfig (Bool)
              Switch on/off shared memory for configuration.

       LeftEdge (Integer)
              X coordinate for left edge.

       RightEdge (Integer)
              X coordinate for right edge.

       TopEdge (Integer)
              Y coordinate for top edge.

       BottomEdge (Integer)
              Y coordinate for bottom edge.

       FingerLow (Integer)
              When  finger  pressure drops below this value, the driver counts
              it as a release.

       FingerHigh (Integer)
              When finger pressure goes above this value, the driver counts it
              as a touch.

       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.

       MaxTapTime (Integer)
              Maximum time (in milliseconds) for detecting a tap.

       MaxTapMove (Integer)
              Maximum movement of the finger for detecting a tap.

       MaxDoubleTapTime (Integer)
              Maximum time (in milliseconds) for detecting a double tap.

       ClickTime (Integer)
              The duration of the mouse click generated by tapping.

       FastTaps (Bool)
              Makes  the  driver  react faster to a single tap, but also makes
              double clicks caused by double tapping slower.

       VertEdgeScroll (Bool)
              Enable vertical scrolling when dragging along the right edge.

       HorizEdgeScroll (Bool)
              Enable horizontal scrolling when dragging along the bottom edge.

       CornerCoasting (Bool)
              Enable edge scrolling to continue while the finger stays  in  an
              edge corner.

       VertTwoFingerScroll (Bool)
              Enable  vertical  scrolling  when dragging with two fingers any-
              where on the touchpad.

       HorizTwoFingerScroll (Bool)
              Enable horizontal scrolling when dragging with two fingers  any-
              where on the touchpad.

       VertScrollDelta (Integer)
              Move distance of the finger for a scroll event.

       HorizScrollDelta (Integer)
              Move distance of the finger for a scroll event.

       EdgeMotionMinZ (Integer)
              Finger pressure at which minimum edge motion speed is set.

       EdgeMotionMaxZ (Integer)
              Finger pressure at which maximum edge motion speed is set.

       EdgeMotionMinSpeed (Integer)
              Slowest setting for edge motion speed.

       EdgeMotionMaxSpeed (Integer)
              Fastest setting for edge motion speed.

       EdgeMotionUseAlways (Bool)
              If  on,  edge motion is also used for normal movements.  If off,
              egde motion is used only when dragging.

       Repeater (String)
              Repeater device.

       MinSpeed (Float)
              Minimum speed factor.

       MaxSpeed (Float)
              Maximum speed factor.

       AccelFactor (Float)
              Acceleration factor for normal pointer movements.

       TrackstickSpeed (Float)
              Speed scale when in trackstick emulation mode.

       PressureMotionMinZ (Integer)
              Finger pressure at  which  minimum  pressure  motion  factor  is
              applied.

       PressureMotionMaxZ (Integer)
              Finger  pressure  at  which  maximum  pressure  motion factor is
              applied.

       PressureMotionMinFactor (Integer)
              Lowest setting for pressure motion factor.

       PressureMotionMaxFactor (Integer)
              Greatest setting for pressure motion factor.

       UpDownScrolling (Bool)
              If on, the up/down buttons generate button 4/5 events.  If  off,
              the  up button generates a double click and the down button gen-
              erates a button 2 event.

       LeftRightScrolling (Bool)
              If on, the left/right buttons generate button  6/7  events.   If
              off, the left/right buttons both generate button 2 events.

       UpDownScrollRepeat (Bool)
              If  on,  and the up/down buttons are used for scrolling (UpDown-
              Scrolling), these buttons will send auto-repeating  4/5  events,
              with the delay between repeats determined by ScrollButtonRepeat.

       LeftRightScrollRepeat (Bool)
              If  on, and the left/right buttons are used for scrolling (Left-
              RightScrolling), these  buttons  will  send  auto-repeating  6/7
              events,  with the delay between repeats determined by ScrollBut-
              tonRepeat.

       ScrollButtonRepeat (Integer)
              The number of milliseconds between repeats of button events  4-7
              from the up/down/left/right scroll buttons.

       EmulateMidButtonTime (Integer)
              Maximum time (in milliseconds) for middle button emulation.

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

       TouchpadOff (Integer)
              Switch off the touchpad.  Valid values are:

              l  l.   0    Touchpad  is  enabled 1    Touchpad is switched off
              2    Only tapping and scrolling is switched off

       GuestMouseOff (Bool)
              Switch on/off guest mouse (often a stick).

       LockedDrags (Bool)
              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.

       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.

       RTCornerButton (Integer)
              Which mouse button is reported on a right top corner  tap.   Set
              to 0 to disable.

       RBCornerButton (Integer)
              Which  mouse  button  is  reported on a right bottom corner tap.
              Set to 0 to disable.

       LTCornerButton (Integer)
              Which mouse button is reported on a left top corner tap.  Set to
              0 to disable.

       LBCornerButton (Integer)
              Which mouse button is reported on a left bottom corner tap.  Set
              to 0 to disable.

       TapButton1 (Integer)
              Which mouse button is reported on a non-corner  one-finger  tap.
              Set to 0 to disable.

       TapButton2 (Integer)
              Which  mouse  button is reported on a non-corner two-finger tap.
              Set to 0 to disable.

       TapButton3 (Integer)
              Which mouse button is reported on a non-corner three-finger tap.
              Set to 0 to disable.

       CircularScrolling (Bool)
              If on, circular scrolling is used.

       CircScrollDelta (Float)
              Move angle (radians) of finger to generate a scroll event.

       CircScrollTrigger (Integer)
              Trigger region on the touchpad to start circular scrolling

              l  l.   0    All  Edges  1    Top  Edge  2    Top  Right  Corner
              3    Right  Edge  4    Bottom  Right  Corner  5    Bottom   Edge
              6    Bottom Left Corner 7    Left Edge 8    Top Left Corner

       CircularPad (Bool)
              Instead  of  being a rectangle, the edge is the ellipse enclosed
              by  the  Left/Right/Top/BottomEdge  parameters.   For   circular
              touchpads.

       PalmDetect (Bool)
              If  palm  detection  should  be  enabled.   Note  that this also
              requires hardware/firmware support from the touchpad.

       PalmMinWidth (Integer)
              Minimum finger width at which touch is considered a palm.

       PalmMinZ (Integer)
              Minimum finger pressure at which touch is considered a palm.

       CoastingSpeed (Float)
              Coasting threshold scrolling speed.  0 disables coasting.

       SingleTapTimeout (Integer)
              Timeout after a tap to recognize it as a single tap.

       GrabEventDevice (Bool)
              If GrabEventDevice is true,  the  driver  will  grab  the  event
              device  for  exclusive use when using the linux 2.6 event proto-
              col.  When using other protocols, this  option  has  no  effect.
              Grabbing the event device means that no other user space or ker-
              nel 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 syn-
              client program, the change will not take effect until the synap-
              tics  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:

       l|l|lsls --- |c|cw(5P)|c|l --- |c|c|c|l |c|c|c|l |c|c|c|l ---  |c|c|c|l
       --- |lsl|ll.       LeftEdge  RightEdge                Physical top edge
       1    2    3                TopEdge

       4    5    6

                      BottomEdge  7    8    9                 Physical  bottom
       edge Physical left edge       Physical right edge

       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 appro-
       priate edge parameters is to enable the SHMConfig option and run  "syn-
       client  -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  EdgeMotion-
       MinZ,  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 lin-
       early.

       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  pres-
       sure  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 lin-
       early.

       Since  most  synaptics  touchpad models don't have a button that corre-
       sponds to the middle button on a mouse, the driver can  emulate  middle
       mouse  button  events.  If you press both the left and right mouse but-
       tons at almost the same time (no more  than  EmulateMidButtonTime  mil-
       liseconds 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 cor-
       ner.  Once scrolling is engaged, moving your finger in  clockwise  cir-
       cles 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 cir-
       cular 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 Corner-
       Coasting is set to false.  When conventional coasting is enabled, hori-
       zontal/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, mov-
       ing 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 fin-
       ger is moved further than MaxTapMove away from the initial position.

AUTHORS
       Peter Osterlund <petero2ATtelia.com> and many others.

SEE ALSO
       synclient(1), syndaemon(1)



                                    0.14.6                        synaptics(5)