8

My laptop has a Synaptics touchpad with multi-touch support. Kinetic two-finger scrolling works fine on windows, how can I get it to work on ubuntu?

I have already reversed the scrolling direction by editing the /usr/share/xorg.conf.d/50-synaptics.conf, all I need now is to give it some inertia.

I am using the 32 bit version of Ubuntu 12.04 LTS

This link explains a lot about the different parameters, but I can't seem to find the right parameters to set in order to achieve this. Please do not answer unless you have tried this before. Thank you :)

Anthony
  • 103

2 Answers2

4

Kinetic two-finger scrolling is called "conventional coasting" in the Synaptics driver:

Coasting comes in two flavors: conventional (finger off) coasting, and corner (finger on) coasting. Conventional coasting is enabled when coasting is enabled, and CornerCoasting is set to false. [Synaptics manpage]

The two modes are mutually exclusive: kinetic two-finger scrolling does not work with corner coasting enabled. So let's enable conventional coasting. As per the new Ubuntu recommendations in the file, do not edit your 50-synaptics.conf directly but create a directory /etc/X11/xorg.conf.d/ and in it a file like 51-synaptics-tweaks.conf, containing:

Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "CornerCoasting" "0"
        Option "CoastingSpeed" "20"
        Option "CoastingFriction" "50"
EndSection

To see the effect, restart X.

As you noticed, the speed and friction values are hardware dependent. What works on one touchpad might not have a noticable effect on another. Some experimentation might be needed.

For experiments, it is better to use synclient, as it creates an immediate (but non-permanent) effect without having to restart X all the time. The equivalent to the above would be:

synclient CornerCoasting=0 CoastingSpeed=20 CoastingFriction=50
tanius
  • 6,303
  • 1
  • 39
  • 49
3

In Linux kinetic scrolling is called "Coasting", at least in the Synaptics driver.

You can do it by adding following option lines to the file 50-synaptics.conf file, adapting the values as you require:

# Coasting configuration
Option "CornerCoasting" "0"
Option "CoastingSpeed" "20"
Option "CoastingFriction" "50"
tanius
  • 6,303
  • 1
  • 39
  • 49
KK Patel
  • 19,083
  • I copied those three lines and it didn't work? I have edge scrolling disabled, I use two finger scrolling. Does this apply to two-finger scrolling too? (I did a restart to make sure) – Anthony Sep 05 '13 at 10:57
  • Yes and you also need to add in /etc/X11/xorg.conf.d. – KK Patel Sep 05 '13 at 11:09
  • You should have edge scrolling enable. – KK Patel Sep 05 '13 at 11:31
  • When enabling edge scrolling through the GUI I cannot enable both two-finger and edge scrolling. How can I enable it in the configuration file? – Anthony Sep 05 '13 at 11:50
  • Anyhow what is the syntax for boolean values? "on"/"off", "0"/"1" or "true"/"false"? – Anthony Sep 05 '13 at 12:01
  • syntax for boolean values is "0"/"1" – KK Patel Sep 05 '13 at 12:03
  • 1
    i have no /etc/X11/xorg.conf.d folder, also some changes in the synaptics.conf file aren't taking effect anymore, does the section they're in matter? – Anthony Sep 05 '13 at 12:53
  • I finally managed to fix this. I set friction to 10 and speed to 1, and it worked fine. I also disabled edge scrolling and it still works! – Anthony Sep 05 '13 at 13:15