95a46c5577
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
345 lines
16 KiB
Text
345 lines
16 KiB
Text
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).
|
|
- Scrolling by putting the finger at the edge, an dmoving up or down.
|
|
- Recognition of Stick.
|
|
- Multi fingers are recognized to to stop erradic motions, and to change
|
|
which mouse button is reported.
|
|
- Palm detection so the palm does not move the mouse.
|
|
|
|
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 (or
|
|
/usr/local/etc/gpm-syn.conf, or /etc/gpm-syn.conf, according to how you ran
|
|
configure). 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
|
|
tap_gesture_enabled flag are taps gesture 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)
|
|
|
|
prevent_toss_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
|
|
4: Fourth
|
|
5: Up
|
|
6: Down
|
|
7: Toggle pad on/off
|
|
|
|
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)
|
|
|
|
/* wmode parameters */
|
|
wmode_enabled flag This is to enable the wmode of
|
|
Synaptics touchpad which
|
|
supports more configurable
|
|
options and buttons.
|
|
|
|
The default value is 1 (enabled)
|
|
|
|
drag_lock_enabled flag Whether to enable drag lock,
|
|
that is, do not break a drag
|
|
until next tap even when the
|
|
finger is off the pad.
|
|
|
|
The default value is 0 (disable)
|
|
|
|
finger_threshold int The threshold of the pressure
|
|
reading to consider the finger
|
|
is on the pad.
|
|
|
|
The default value is 30
|
|
|
|
tap_lower_limit msec The lower bound of finger
|
|
contact time to be considerred
|
|
a tap.
|
|
|
|
The default value is 5 (0.005 sec)
|
|
|
|
tap_upper_limit msec The upper bound of finger
|
|
contact time to be considerred
|
|
a tap.
|
|
|
|
The default value is 200 (0.2 sec)
|
|
|
|
tap_range int The maximum displacement of
|
|
finger contact to be considered
|
|
a tap.
|
|
|
|
The default value is 100 (0.1 sec)
|
|
|
|
tap_interval msec The time length of button press
|
|
generated when a tap is
|
|
recognized, which is also the
|
|
time within which further
|
|
finger contact will be consider
|
|
a drag (or multiple click, if
|
|
it's also a tap).
|
|
|
|
The default value is 200 (0.2 sec)
|
|
|
|
pads_tap_interval int Equivalent to tap_interval, but the
|
|
pads interval. Used when wmode is
|
|
disabled and multi finger is enabled.
|
|
|
|
The default value is 8.
|
|
|
|
|
|
multiple_tap_delay msec Break length between button
|
|
presses when generating multiple
|
|
click.
|
|
|
|
The default value is 30 (0.03 sec)
|
|
|
|
|
|
palm_detect_enabled flag This enables the palm detection in
|
|
the pad so a palm does no move the
|
|
mouse. Actually this is the width of
|
|
the finger on the pad.
|
|
|
|
The default value is 1 (enabled)
|
|
|
|
palm_detect_level int At what palm detection level should
|
|
the pad be ignored? Value should be
|
|
between 0-11, where 11 is a full palm
|
|
at pad, and 0 is a normal finger
|
|
size.
|
|
|
|
Default value is 12 (meaning disabled).
|
|
|
|
|
|
multi_finger_tap_enable flag This enables the ability to use 2
|
|
and 3 fingers during a tap, to press
|
|
right and middle button
|
|
respectively. The detection is not
|
|
100% perfect. If the pad supports
|
|
finger detection, its values are used.
|
|
|
|
The default value is 1 (enabled)
|
|
|
|
|
|
multi_finger_stop_enabled flag When more than one finger is one the
|
|
pad, an average value (weighted with
|
|
the the pressure) between the
|
|
fingers is reported. This gives
|
|
erradic movements when adding
|
|
or removing fingers, or when just
|
|
accidental touches the pad. This
|
|
option stops the mouse movement for
|
|
a given time, to let the movement settle.
|
|
|
|
The default value is 1 (enabled).
|
|
|
|
|
|
multi_finger_stop_delay Int Number of packets that should be
|
|
ignored when adding or removing an
|
|
additional finger to stop erradic
|
|
movements.
|
|
|
|
The default value is 8.
|
|
|
|
|
|
/* Additional options */
|
|
touch_pad_enabled flag This will stop the interpreting of
|
|
the touchpad (thought not the stick
|
|
if any). As such not that usefull,
|
|
but in a combination with a
|
|
corner toggle on/off, this may
|
|
come useful. A corner tap is
|
|
interpretated if it turns the pad on.
|
|
|
|
The default value is 1 (enabled).
|
|
|
|
stick_enabled flag Some touchpads have an additional
|
|
stick which uses the same port. This
|
|
is an attempt to enable the use
|
|
while using the touchpad.
|
|
|
|
The default value is 1 (enabled).
|
|
|
|
|
|
scrolling_enabled flag This enables the scrolling gesture,
|
|
which emulates the wheel on a wheel
|
|
mouse. Putting the finger on the
|
|
edge and moving it up and down, is
|
|
eqvivalent with rolling the wheel up
|
|
and down.
|
|
|
|
The default value is 1 (enabled).
|
|
|
|
|
|
scrolling_edge int This decides which edge(s) starts
|
|
the scrolling gesture. Legal values
|
|
are (added if more than one edge):
|
|
|
|
1: Left edge
|
|
2: Right edge
|
|
4: Top edge
|
|
5: Bottom edge
|
|
|
|
The default value is 2 (Right edge).
|
|
|
|
|
|
auto_scrolling_enabled flag This enables whether to keep
|
|
scrolling if the finger moves to the
|
|
top or bottom edge.
|
|
|
|
The default value is 1 (enabled).
|