This README describes the support for the Synaptics ToucPads.

In addition to translating finger motion into mouse motion and supporting
the buttons, this support currently has several features:
   - a "tap" on the TouchPad causes a left mouse click
   - a "tap" followed quickly by a finger motion causes a
     left button drag type action.
   - a "tap" in one of the corners causes an action
     the default configuration is upper right causes middle mouse click
     and lower right causes right mouse click
   - more pressure on the touch pad speeds the motion of the cursor
   - a "tap" with a motion component (default > 2mm) initiates a
     toss and catch sequence.  This is terminated by a finger touch
     on the pad (the toss also ends after 1 sec since that is the 
     idle timeout period for the touchpad).
   - if the finger moves close to an edge then the mouse motion will
     be continued in that direction so that you don't need to pick up
     your finger and start moving again.  This continued motion is
     pressure sensitive (more pressure is faster motion).

These features can be enabled/disabled and many of them have time and 
speed parameters which can be adjusted to the taste of the user.
These parameters can be provided in the "/usr/etc/gpm-syn.conf" file.  Each
line in this file has the following syntax:
     [param-name] <value>

Where param-name is one of the following

  param-name                     value     description
  ======================         =====     ===========
  /* feature enable configuration values all default to 1 (TRUE) */
  /* flags are true if the first char of the value is in the string "YyTt1" */
  /* flags are false if the first char of the value is in the string "NnFf0" */
  edge_motion_enabled            flag      is edge motion enabled
  edge_motion_speed_enabled      flag      does pressure control
                                           speed of edge motion
  corner_taps_enabled            flag      are corner taps enabled
  taps_enabled                   flag      are taps enabled
  pressure_speed_enabled         flag      does pressure control
                                           speed in non edges
  tossing_enabled                flag      is toss/catch enabled
  does_toss_use_static_speed     flag      is toss/catch speed
                                           based on toss dist

  /* pressure induced speed related configuration constants */
  low_pressure                   0-255     the lowest pressure which triggers
                                           speed processing.  If this is less 
                                           than speed_up_pressure then the
                                           motion is slowed down.  When the 
                                           pad pressure is between these 
                                           values.

                                           The default value is 60

                                           pressure is described by
                                           Synaptics as follows:
                                             0  : no finger contact
                                             10 : hovering NEAR pad surface
                                             30 : very light finger contact
                                             80 : normal finger contact
                                             110: very heavy finger contact
                                             200: finger lying flat on surface
                                             255: whole palm on pad surface

  speed_up_pressure              0-255     the lowest pressure at which speed
                                           is increased.  If the pad pressure
                                           is less than this value then the
                                           motion will bs slowed down.  If
                                           greater, then the motion will be
                                           sped up.

                                           The default value is 60

  pressure_factor                float     the multiplicative factor applied
                                           to the pressure difference to
                                           be applied to the speed.  This
                                           is used as follows:
                                           1 + pf * (press - speed_up)
                                           The difference in pressure between
                                           the measured pressure and the speed
                                           up pressure is multiplied by this
                                           value which is then applied to the
                                           nominal mouse speed.

                                           The default value is 0.05

  standard_speed_factor          float     the standard speed factor used to
                                           scale touchpad deltas into mouse
                                           deltas.  The touchpads have 
                                           resolutions in the 1000 points/inch
                                           range (much more detail than a 
                                           mouse).

                                           The default value is 0.08

  /* toss/catch related constants */
  min_toss_time                  msec      This number specifies the minimum
                                           finger contact time which is to
                                           be considered a toss 
                                           (in milliseconds).

                                           The default value is 100 (0.1 sec)

  max_toss_time                  msec      This number specifies the maximum
                                           finger contact time which is to
                                           be considered a toss 
                                           (in milliseconds).

                                           The default value is 300 (0.3 sec)

  toss_cleanup_time              msec      This number specifies the minimum
                                           finger release time after a toss
                                           is terminated before reacting to 
                                           taps (in milliseconds).  This 
                                           prevents the "catch" tap from 
                                           causing a mouse button tap.

                                           The default value is 300 (0.3 sec)

  min_toss_dist                  mm        This number specifies the minimum
                                           finger move distance which is to
                                           be considered a toss 
                                           (in millieters).

                                           The default value is 2

  static_toss_speed              int       If does_toss_use_static_speed is
                                           1 (TRUE) then this specifies the 
                                           speed to be used.
 
                                           The default value is 70

  toss_speed_factor              float     This is a multiplier against the
                                           toss distance in touchpad units
                                           used to scale the distance to a
                                           speed.

                                           The default value is 0.5

  /* edge motion related configuration constants */
  edge_speed                     int       This is the nominal speed for 
                                           use when in the edge regions.

                                           The defalt value is 20

  /* corner tap actions */
  upper_left_action              int       This is the mouse button which 
                                           will be activated on a tap in
                                           the upper left corner of the 
                                           touchpad.
 
                                             0: None
                                             1: Left
                                             2: Middle
                                             3: Right

                                           The default value is 0 (none)

  upper_right_action             int       This is the mouse button which 
                                           will be activated on a tap in
                                           the upper right corner of the 
                                           touchpad.

                                           The default value is 2 (middle)

  lower_left_action              int       This is the mouse button which 
                                           will be activated on a tap in
                                           the lower left corner of the 
                                           touchpad.

                                           The default value is 0 (none)

  lower_right_action             int       This is the mouse button which 
                                           will be activated on a tap in
                                           the lower right corner of the 
                                           touchpad.

                                           The default value is 3 (right)

