22

I know there are other questions about this issue, but I can't find the right tweak in order to fix it.

The touchpad still detects my palms while typing stuff. It's REALLY annoying, especially because it spoils my productivity on my brand new Dell XPS Gold Edition. It's a fresh Ubuntu 14.04 install and I don't want to mess around trying scripts and stuff that would finally break the touchpad recognition.

I tried to use syndaemon as it looks like it's the best workaround for this bug:

syndaemon -i 0.5 -d

When I try it on the terminal, it seems to work as long as I don't log out from my session.

But if I put the command on my start-up programs utility, and I reboot, the cursor always freezes after a minute or two. So I must uncheck the command using my keyboard and I'm back to this very annoying palm detection stuff. Any solution?

Some info about my system:

greguti@greguti-XPS13-9333:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SYNAPTICS Synaptics Large Touch Screen    id=9    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=13   [slave  keyboard (3)]
greguti@greguti-XPS13-9333:~$ xinput list-props "SynPS/2 Synaptics TouchPad" | grep -i finger
    Synaptics Finger (288): 25, 30, 0
    Synaptics Two-Finger Pressure (294):    282
    Synaptics Two-Finger Width (295):   7
    Synaptics Two-Finger Scrolling (298):   1, 1
  • This webpage may help: xps13-9333.appspot.com/#touchpad – greguti May 7 '14 at 23:56
  • related: askubuntu.com/questions/299868/… – michael Sep 29 '15 at 8:00
  • 2
    Possible duplicate of How do I make my synclient settings stick? - Ubuntu 13.04 – kos Feb 12 '16 at 10:50
  • @kos I don't think this is a duplicate. This question is about preventing the jumping cursor issue and the answers below address that, it is not about how to make synclient settings stick, although that may be 1 possible solution to the problem. Also note the OP said he tried putting the command in startup applications so it is doubtful if the answers in the proposed question would solve the problem anyway. – Seth Feb 14 '16 at 17:36
  • @Seth This is a bug that has been fixed in later versions of Synaptics (see OP's answer), that's why I thought it was a good idea to close for the "right" way of changing Synaptics' settings. However OP isn't actually mentioning how synclient should be used... So yeah, my bad, closing as a duplicate would be confusing. Removing my close vote. – kos Feb 14 '16 at 17:59
16

I couldn't follow this answer with My XPS 13, and Ubuntu 14.04.

But found a quick solution to disable touchpad while typing:

sudo apt-get install gpointing-device-settings

then run

gpointing-device-settings

Check: Enable Palm Detection and move range:Narrow to about 10% from beginning.

  • this doesn't work, I'm afraid. As soon as I do this, I get an error: An X error occurred. The error was BadAtom (invalid Atom parameter). An X error occurred. The error was BadAtom (invalid Atom parameter). and the touchpad works equally bad. In fact, I have to correect this editing several times because of this – user260881 Nov 12 '15 at 23:25
  • 1
    This package name has no installation candidate anymore in 16.04 – CPBL Nov 27 '16 at 20:24
8

Answering my own question as I guess I finally found the solution.

Seems like the culprid is the Synaptics driver itself. Wathever frontend or command you use it won't work as long as the driver is not patched.

Thanks to the wonderful webpage http://xps13-9333.appspot.com/#touchpad and some e-mails with the owner, I finally managed to fix this awfull bug!

So here is the process in a nut shell, refer to the webpage above for the details.

The thing to do it to get rid of the Synaptics driver, then download the sources of the upstream driver, patch it for a proper palm detection, and then create the file with the right settings for the touchpad. The following steps work well on my Dell XPS "Gold Edition" (xps-9333) with Ubuntu 14.04.

1. THINGS TO CHECK FIRST

I had a trouble during the process because of the lack of a libevdev-dev package in my system (I guess it's not installed with Ubuntu 14.04 ?). So first, try installing this package :

sudo apt-get install libevdev-dev

If it's not yet present on your system, it should install 3 packages: libevdev-dev, libevdev2{a}, and libjs-jquery{a}

Another thing to to is to install the GIT package, in order to allow the download of the source code of the upstream Synaptics driver from the GIT servers.

sudo apt-get install git

Once these packages are on your system, you can follow these commands.

2. GET RID OF THE ACTUAL SYNAPTICS DRIVER AND INSTALL THE UPSTREAM ONE

Enter the following commands in the Terminal (press enter and check the outputs after each command):

sudo aptitude purge xserver-xorg-input-synaptics

sudo aptitude build-dep xserver-xorg-input-synaptics

The next command uses GIT. If it's the first time you use it, it will ask you for a mail address and a nickname in order to complete the process (that is, download the source code for the driver). You can do that in the terminal, it's a pretty simple process. The output of the command tells you what to type, you just have to follow the instructions. I never used GIT before myself and I could handle this step very easily.

sudo git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-synaptics

Now you enter inside the folder where the source code has been downloaded:

cd xf86-input-synaptics

Now you download the patch for the new driver, this patch will fix the driver by enabling palm detection and the width of the finger on the touchpad.

wget -q -O - http://xps13-9333.appspot.com/root/0001-Don-t-use-finger-width-for-the-palm-detection.patch | git am

Now, build the new driver from the patched source code (type Enter after each line, each command will produce quite a lot of output):

./autogen.sh --prefix=/usr
make
sudo make install

Your new Synaptics driver, with the patch that allows for palm detection, is now installed on your system, but you still need to specify the settings that allow it.

3. CREATE AND EDIT 20-SYNAPTICS-CONF FILE

And now for the last part, create a file with the settings for the touchpad, that file will be read each time you boot your system.

First, you create the right folder :

mkdir -p /etc/X11/xorg.conf.d/

Then you download the file provided by the owner of the previously mentionned webpage, and you copy it in the new folder you just created:

sudo wget -q -O /etc/X11/xorg.conf.d/20-synaptics.conf http://xps13-9333.appspot.com/root/etc/X11/xorg.conf.d/20-synaptics.conf

Finally, you can use synclient in order to specify the optimal value of the parameter PalmMinZ (type a number instead of "VALUE", I suggest 100, which works great for me).

synclient PalmMinZ=VALUE

By the end of this process, you should have the new file 20-synaptics.conf inside /etc/X11/xorg.conf.d and the file should look like that:

My 20-synaptics.conf file

4. DON'T FORGET TO REBOOT :)

  • After following this advice, my laptop touchscreen is no longer recognized... – vicatcu Nov 8 '14 at 19:10
  • ... and got it back by installing the synaptics touchpad driver from the software center – vicatcu Nov 8 '14 at 19:25
  • This fixed the jumpy touchpad on my Toshiba Chromebook 2 which is running Ubuntu 14.04 via a crouton chroot. The git patch no longer seems to work, but simply installing the latest synaptics driver from source fixed my issue. – Josh Aug 18 '17 at 20:45
6

None of the answers here were working for a fresh install of Ubuntu 14.04.3 on an XPS12, at least not until I blacklisted the psmouse module. The following instructions are essentially quoted from this set of instructions for an XPS13 machine:

Check if your touchpad is only using the I2C bus, and not ps2 mode. Start up a terminal and enter

 xinput 

The virtual core pointer should have only two items:

 Virtual core XTEST pointer
 DLL0665:01 06CB:76AD UNKNOWN 

If it lists a third item with PS2 touchpad in the name, you should blacklist the psmouse module by adding these lines to /etc/modprobe.d/blacklist.conf:

# remove SynPS/2 Synaptics Touchpad because we want the mouse to work over IC2b
blacklist psmouse

Then call

sudo update-initramfs -u

After rebooting, the option Disable touchpad while typing in System Settings/Mouse & Touchpad did its job as expected.

  • 4
    After performing your steps the convenient "Disable touchpad while typing" option still didn't appear for me, but at least I could finally get syndaemon working as posted in other answers. That is, your answer was really helpful and was a necessary step for me. Thanks a lot! This is on a Dell Inspiron 5559 and Ubuntu 16.10. – egmont Nov 9 '16 at 20:40
  • 3
    I followed these instructions and it works in Ubuntu 16.10. Like @egmont said, there is no option to disable touchpad, however I am no longer having a problem with my touchpad while I'm typing afterward. – ekangas Feb 27 '17 at 10:24
  • 1
    I can confirm that it works for Ubuntu 16.04.2 running kernel version 4.10. The GUI doesn't appear but now syndaemon works as intended. Thanks a lot! – andrebrait Aug 1 '17 at 14:04
2

If you add syndaemon to your Startup Applications, you need to also uncheck "Disable while typing" in the Mouse & Touchpad settings. If you don't do that, the two mechanisms interfere and cause the touchpad to completely stop working as you describe. This works for me on stock 14.04 (Lenovo T410 laptop) without upgrading the driver.

0

The upgrade mentioned by greguti has now been incorporated into the general kernel upgrade for Linux to 3.1.6+: see http://xps13-9333.appspot.com/#touchpad.

The general instructions to upgrade the kernel for Ubuntu may be found here at http://ubuntuhandbook.org/index.php/2014/08/install-upgrade-linux-kernel-3-16/. For a generic 64-bit system, I've copied them below:

cd /tmp/
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-headers-3.16.0-031600-generic_3.16.0-031600.201408031935_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-headers-3.16.0-031600_3.16.0-031600.201408031935_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-image-3.16.0-031600-generic_3.16.0-031600.201408031935_amd64.deb
sudo dpkg -i linux-headers-3.16.0-*.deb linux-image-3.16.0-*.deb

And then reboot.

After my computer rebooted, I followed greguit's advice and changed the PalmMinZ parameter. I used 100 too.

synclient PalmMinZ=VALUE

I also re-enabled the trackpad setting to disable while typing, using the GUI.

I've spent only 10-15 minutes using the computer after doing this, but so far the whole experience is much better.

  • I there, I tried upgrading to the 3.16 kernel, the cursor just disapeared! I had to go back to the "old" 3.13 kernel... Today I applied the upgrade from 14.04 LTS to 14.10 Utopic Unicorn, it resulted in the same bug: the cursor just isn't here anymore, I have to do everything with the keyboard, it's a real pain in the *ss. Couldn't find a solution yet... VERY, VERY annoying. – greguti Oct 24 '14 at 10:10
  • I don't know why your computer behaved so differently than mine, but my first (only!) thought is that the first thing I did after taking it out of the box was to upgrade the Ubuntu OS to 14.04 and apply this kernel upgrade. So perhaps there is something that has changed on your machine since it was fresh that is causing a conflict...? – Andy Wickert Nov 15 '14 at 12:53
  • I had a similar experience to greguti, but it was caused by me forgetting to install linux-kernel-extras. – Jeff Ober Mar 24 '15 at 13:25
  • doesn't work also, neither of both solutions. I've compiled the suggested driver, installed it, no success. I've definitely opted for disable the touchpad, is really annoying and a pity that a one thousand dollar laptop has this blindingly obvious fault. – user260881 Nov 13 '15 at 19:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.