TouchpadSupport

Differences between revisions 2 and 6 (spanning 4 versions)
Revision 2 as of 2012-02-23 23:50:27
Size: 1956
Editor: c-67-170-185-42
Comment:
Revision 6 as of 2012-06-14 19:11:17
Size: 2694
Editor: c-67-170-185-42
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
We've made a ton of changes in how X works in Ubuntu starting in 12.04 LTS. One big change was a move of the uTouch stack to the client side of the X server instead of being embedded as huge patches in the server itself. This means uTouch relies on XInput touch events. We've made a ton of changes in how X works in Ubuntu starting in 12.04 LTS. One big change was a move of the gesture stack to the client side of the X server instead of being embedded as huge patches in the server itself. This means the gesture stack relies on XInput touch events.
Line 5: Line 5:
Here are the settings listed by xinput that affect touchpad gestures. You can run 'xinput' to list your devices, and then run 'xinput list-props <device id|device name>' to list the current settings. Here are the settings that affect touchpad gestures. You can use xinput or synclient for querying and setting properties. Synclient is easier to use, but does not function properly if you have multiple trackpads.

To query values using xinput, run:
{{{
$ xinput
(find your trackpad device id or name)
$ xinput list-props <device id|device name>
}}}

To set values using xinput, run:
{{{
xinput set-prop <device id|device name> <property id|property name> <value 1> <value 2> ..."
}}}

To query values using synclient, run:
{{{
$ synclient
}}}

To set values using synclient, run:
{{{
$ synclient <property>=<value>
}}}
Line 9: Line 31:
 * Synaptics Tap Action: the last value must be 0 (disabled)
 * Synaptics Click Action: the last value must be 0 (disabled)
 * Disable three-touch tapping:
  * The last value of the "Synaptics Tap Action" xinput property must be 0
  * The synclient property !TapButton3 must be 0
 * Disable three-touch clicking:
  * The last value of the "Synaptics Click Action" xinput property must be 0
  * The synclient property !ClickFinger3 must be 0
Line 14: Line 40:
 * Synaptics Two-Finger Scrolling: both values must be 0 (disabled)
 * Synaptics Tap Action: the second-to-last value must be 0 (disabled)
 * Synaptics Click Action: the second value must be 0 (disabled)
 * Disable two-finger scrolling:
  * Both values of the "Synaptics Two-Finger Scrolling" property must be 0
  * The synclient properties !VertTwoFingerScroll and !HorizTwoFingerScroll must be 0
 * Disable two-touch tapping:
  * The second to last value of the "Synaptics Tap Action" xinput property must be 0
  * The synclient property !TapButton2 must be 0
 * Disable two-touch clicking:
  * The second value of the "Synaptics Click Action" xinput property must be 0
  * The synclient property !ClickFinger2 must be 0
Line 26: Line 58:
   * Disable or select Edge scrolling
  * If your touchpad only has one physical button and is not a "ClickPad":
   * Use xinput to disable "Synaptics Click Action"

ClickPad devices are touchpads that have buttons integrated into the touch surface. The user must press on the touch surface in order to generate a button press.
   * Disable scrolling or select Edge scrolling
  * Disable two-touch clicking as described above

We've made a ton of changes in how X works in Ubuntu starting in 12.04 LTS. One big change was a move of the gesture stack to the client side of the X server instead of being embedded as huge patches in the server itself. This means the gesture stack relies on XInput touch events.

Unfortunately, X can't send touch events if it is also sending other events caused by the same touches. For example, if you have two finger scrolling enabled for a touchpad, X can't send touch events until you put three touches down.

Here are the settings that affect touchpad gestures. You can use xinput or synclient for querying and setting properties. Synclient is easier to use, but does not function properly if you have multiple trackpads.

To query values using xinput, run:

$ xinput
(find your trackpad device id or name)
$ xinput list-props <device id|device name>

To set values using xinput, run:

xinput set-prop <device id|device name> <property id|property name> <value 1> <value 2> ..."

To query values using synclient, run:

$ synclient

To set values using synclient, run:

$ synclient <property>=<value>

To enable three touch gestures:

  • Disable three-touch tapping:
    • The last value of the "Synaptics Tap Action" xinput property must be 0
    • The synclient property TapButton3 must be 0

  • Disable three-touch clicking:
    • The last value of the "Synaptics Click Action" xinput property must be 0
    • The synclient property ClickFinger3 must be 0

To enable two touch gestures:

  • Disable two-finger scrolling:
    • Both values of the "Synaptics Two-Finger Scrolling" property must be 0
    • The synclient properties VertTwoFingerScroll and HorizTwoFingerScroll must be 0

  • Disable two-touch tapping:
    • The second to last value of the "Synaptics Tap Action" xinput property must be 0
    • The synclient property TapButton2 must be 0

  • Disable two-touch clicking:
    • The second value of the "Synaptics Click Action" xinput property must be 0
    • The synclient property ClickFinger2 must be 0

In Ubuntu, the following can be performed to enable the above:

  • To enable three touch gestures:
    • Nothing needed. Should work out of the box.
  • To enable two touch gestures:
    • Open "System Settings", go to Mouse and Touchpad, go to the Touchpad tab, then:
      • Uncheck "Enable mouse clicks with touchpad"
      • Disable scrolling or select Edge scrolling
    • Disable two-touch clicking as described above

We hope that in the future these traditional touchpad features will also move to the client side of X. Then we will be able to have both gestures and touchpad features side by side.

Multitouch/TouchpadSupport (last edited 2012-06-14 19:11:17 by c-67-170-185-42)