Looking for a way to improve synaptic/touchpad palm detection

synaptictouchpad

I find that my touchpad's palm detection is pretty awful. I have set it to the minimum sensitivity not ruining my touchpad use (PalmMinWidth=5, PalmMinZ=1), and I still get random bumps whenever I type on my keyboard.

I'd rather use palm detection than disable keyboard while typing because I find that the keyboard is disabled for too long a period (i.e., I'm done typing and I have to wait 2 seconds before using the keyboard again, which is annoying). A possible strategy would be to reduce this delay, although I'm not sure if the touchpad would stay usable (if you know how to do this, post it, better than nothing :).

Whenever I use windows, I find I'm not having so much trouble with the touchpad, so there must be a way to improve palm detection?

Lastly, I'm running Debian testing 64 bits on linux kernel 3.2.0-rc7.

Best Answer

I've had similar problems and found the answer on this blog to be fairly complete and have copied over the relevant details:

Set up palm detection:

Turn on palm detection, in a terminal type:

$ synclient PalmDetect=1

Set the maximum width that should be interpreted as a finger instead of a palm. I choose 4, most how-tos use 10, it's good to do a bit of guess and test here:

$ synclient PalmMinWidth=4

Then, set the minimum height of a palm vs a finger:

$ synclient PalmMinZ=50 

Finally, under Ubuntu, 3 finger middle click is not enabled by default, so if you want to enable it use:

$ synclient TapButton2=3 TapButton3=2

In theory, this should enable 2 finger tap for middle click, and 3 finger tap for right click, but in Ubuntu 13.04 the resulting behavior is exactly the opposite. Therefore, if you prefer 2 finger tap for middle click use:

$ synclient TapButton2=2 TapButton3=3 

To make this permanent once you have found the correct settings, save them into 50-synaptics.conf which is located at /usr/share/X11/xorg.conf.d/50-synaptics.conf in Debian/Ubuntu (Semplice) and at /etc/X11/xorg.conf.d/50-synaptics.conf in Arch Linux based distros, (the first "InputClass" part is for the multi-touch middle click fix, which is already enabled in Arch so you shouldn't need to add it):

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "HorizTwoFingerScroll" "on"
    Option "VertTwoFingerScroll" "on"
EndSection


#synclient PalmDetect=1
Option "PalmDetect" "1"
#synclient PalmMinWidth=4
Option "PalmMinWidth" "4"
#synclient PalmMinZ=50
Option "PalmMinZ" "50"

Temporarily turning the touch-pad off while typing:

Instead of using synclient commands, use syndaemon:

$ syndaemon -K -i 0.5 -R -d 

The arch wiki claims that if you save this command to your ~/.xinitrc file to have it executed automatically at your next log-in. However, when I did this, I was unaware that the command must happen before the launch of the desktop (exec DESKTOP.session command). After playing around with a ton of other config files and learning a ton about the SLiM display manager, I finally realized that the command just needed to be moved further up the file, as commands after the desktop launch won't be run until the desktop is quit.

Related Question