Ubuntu – Help trying to get two-finger scrolling to work on Asus UL80VT

12.04asusmulti-touchtouchpad

Multi-touch works fine on Windows 7 with: two-fingers scroll vertical and horizontally, two-finger tap for middle click, and three-finger tap for right click.

However with Ubuntu, I've never been able to get multi-touch to "save" and work, I was able to get it to work a few times but after restarting – it would just reset back.

I have the settings for two-finger scrolling on:
Mouse and Touchpad > Touchpad

Two-finger scrolling (selected)
Enable horizontal scrolling (ticked)

The cursor stops moving when I try to scroll with two fingers, but it doesn't actually scroll the page.

When I perform xinput list, I get:

Virtual core pointer id=2 [master pointer (3)]
↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
↳ ETPS/2 Elantech ETF0401 id=13 [slave pointer (2)]

I've tried to install some 'synaptics-dkms' bug-fix (from a few years back) but that didn't work, so I removed that.

I've tried installing 'uTouch' but that didn't seem to do anything so removed it.

Here's what I have installed now:

dpkg –get-selections > installed-software
grep 'touch\|mouse\|track\|synapt' installed-software

libsoundtouch0 — install
libutouch-evemu1 — install
libutouch-frame1 — install
libutouch-geis1 — install
libutouch-grail1 — install
printer-driver-ptouch — install
ptouch-driver — install
xserver-xorg-input-multitouch — install
xserver-xorg-input-mouse — install
xserver-xorg-input-vmmouse — install
libnetfilter-conntrack3 — install
libxatracker1 — install
xserver-xorg-input-synaptics — install

So, I'll start again, what should I do now to get two-finger scrolling to work and ensure it works after restarting?

Also doing:

synclient TapButton1=1 TapButton2=2 TapButton3=3

…works but doesn't save after restarting.
However doing:

synclient VertTwoFingerScroll=1 HorizTwoFingerScroll=1

Does NOT work to fix the two-finger scrolling.

Output of: cat /var/log/Xorg.0.log | grep -i synaptics

[ 4.576] (II) LoadModule: "synaptics"
[ 4.577] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 4.577] (II) Module synaptics: vendor="X.Org Foundation"
[ 4.577] (II) Using input driver 'synaptics' for 'ETPS/2 Elantech ETF0401'
[ 4.577] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 4.584] (–) synaptics: ETPS/2 Elantech ETF0401: x-axis range 0 – 1088
[ 4.584] (–) synaptics: ETPS/2 Elantech ETF0401: y-axis range 0 – 704
[ 4.584] (–) synaptics: ETPS/2 Elantech ETF0401: pressure range 0 – 255
[ 4.584] (–) synaptics: ETPS/2 Elantech ETF0401: finger width range 0 – 16
[ 4.584] (–) synaptics: ETPS/2 Elantech ETF0401: buttons: left right middle double triple scroll-buttons
[ 4.584] (–) synaptics: ETPS/2 Elantech ETF0401: Vendor 0x2 Product 0xe
[ 4.584] (–) synaptics: ETPS/2 Elantech ETF0401: touchpad found
[ 4.588] (**) synaptics: ETPS/2 Elantech ETF0401: (accel) MinSpeed is now constant deceleration 2.5
[ 4.588] (**) synaptics: ETPS/2 Elantech ETF0401: MaxSpeed is now 1.75
[ 4.588] (**) synaptics: ETPS/2 Elantech ETF0401: AccelFactor is now 0.154
[ 4.589] (–) synaptics: ETPS/2 Elantech ETF0401: touchpad found

Tried installing synaptiks but that didn't seem to work either, so removed it.

Temporary Fix (works until I restart)

Doing the following commands:

modprobe -r psmouse
modprobe psmouse proto=imps

Works but now xinput list shows up as:

Virtual core pointer id=2 [master pointer (3)]
↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
↳ ImPS/2 Generic Wheel Mouse id=13 [slave pointer (2)]

Instead of Elantech, and it gets reset when I reboot.

Solution (not ideal for most people)

So, I ended up reinstalling a fresh 12.04 after indirectly playing around with burg and plymouth then removing plymouth which removed 50+ packages (I saw the warnings but was way too tired and assumed I could just 'reinstall' them all after (except that didn't work).

Right now xinput list shows up as:

⎡ Virtual core pointer — id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer — id=4 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad — id=13 [slave pointer (2)]

grep 'touch\|mouse\|track\|synapt' installed-software

libnetfilter-conntrack3 — install
libsoundtouch0 — install
libutouch-evemu1 — install
libutouch-frame1 — install
libutouch-geis1 — install
libutouch-grail1 — install
libxatracker1 — install
mousetweaks — install
printer-driver-ptouch — install
xserver-xorg-input-mouse — install
xserver-xorg-input-synaptics — install
xserver-xorg-input-vmmouse — install

cat /var/log/Xorg.0.log | grep -i synaptics

[ 4.890] (II) LoadModule: "synaptics"
[ 4.891] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 4.892] (II) Module synaptics: vendor="X.Org Foundation"
[ 4.892] (II) Using input driver 'synaptics' for 'ETPS/2 Elantech Touchpad'
[ 4.892] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 4.956] (II) synaptics: ETPS/2 Elantech Touchpad: ignoring touch events for semi-multitouch device
[ 4.956] (–) synaptics: ETPS/2 Elantech Touchpad: x-axis range 0 – 1088
[ 4.956] (–) synaptics: ETPS/2 Elantech Touchpad: y-axis range 0 – 704
[ 4.956] (–) synaptics: ETPS/2 Elantech Touchpad: pressure range 0 – 255
[ 4.956] (–) synaptics: ETPS/2 Elantech Touchpad: finger width range 0 – 15
[ 4.956] (–) synaptics: ETPS/2 Elantech Touchpad: buttons: left right double triple
[ 4.956] (–) synaptics: ETPS/2 Elantech Touchpad: Vendor 0x2 Product 0xe
[ 4.956] (–) synaptics: ETPS/2 Elantech Touchpad: touchpad found
[ 4.980] () synaptics: ETPS/2 Elantech Touchpad: (accel) MinSpeed is now constant deceleration 2.5
[ 4.980] (
) synaptics: ETPS/2 Elantech Touchpad: MaxSpeed is now 1.75
[ 4.980] (**) synaptics: ETPS/2 Elantech Touchpad: AccelFactor is now 0.154
[ 4.980] (–) synaptics: ETPS/2 Elantech Touchpad: touchpad found

So, if all else fails, reinstall Linux :/

Best Answer

To get your synclient settings to stick you can add them to xorg.conf. I did this recently for my macbook pro in 12.10 and it works pretty well.

You can also specify a separate configuration file in /etc/X11/xorg.conf.d/ file to keep things neater. Here's a step by step:

  1. Create /etc/X11/xorg.conf.d (if it doesn't already exist)

    sudo mkdir /etc/X11/xorg.conf.d

  2. Create and edit /etc/X11/xorg.conf.d/10-synaptics.conf

    gksudo gedit /etc/X11/xorg.conf.d/10-synaptics.conf

  3. Make it look like the following:

    #Sample /etc/X11/xorg.conf.d/10-synaptics.conf
    Section "InputClass"
      Identifier "touchpad catchall"
      Driver "synaptics"
      MatchDevicePath "/dev/input/event*"
      MatchIsTouchpad "true"
      Option  "SHMConfig"           "true"
      Option  "TapButton1"          "1"
      Option  "TapButton2"          "2"
      Option  "TapButton3"          "3"
    EndSection
    
  4. Save and logout/login again. If the xserver fails to load and you get forced into low graphics mode then edit the file again and comment everything out, or mv /etc/X11/xorg.conf.d/10-synaptics.conf ~/10-synaptics.conf.backup and reload again to get back to normal.

For posterity, my current setup for my macbook pro 2012 13" is as follows (warning, I like my touchpad rather sensitive). Try any of these options using synclient before putting them into xorg.conf!

Section "InputClass"
      Identifier "touchpad catchall"
      Driver "synaptics"
      MatchIsTouchpad "on"
      MatchDevicePath "/dev/input/event*"
      MatchProduct "bcm5974"
      MatchIsTouchpad "true"
      Option  "SHMConfig"           "true"
      Option  "FastTaps"            "1"
      Option  "MaxDoubleTapTime"    "100"
      Option  "BottomEdge"          "6000"
      Option  "FingerLow"           "60"
      Option  "FingerHigh"          "90"
      Option         "ClickFinger3" "2"
#      Option         "FingerLow"             "30"
#      Option         "FingerHigh"            "80"
      Option         "VertTwoFingerScroll" "1"
      Option         "HorizTwoFingerScroll" "1"
      Option         "VertScrollDelta" "100"
      Option         "HorizScrollDelta" "100"
      Option         "MultiFingerButton" "2"
      #Option         "TapButton1" "1"
      Option         "TapButton2" "3"
      Option         "TapButton3" "2"
      Option         "MinSpeed" "1"
      Option         "MaxSpeed" "2"
      Option         "AccelFactor" "0.01"
#      Option         "AreaBottomEdge" "5000"
EndSection