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