16

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.

  • This question is a duplicate of a question I answered on SuperUser in 2011. I don't have the reputation on Unix&Linux Stack Exchange to flag as a dupe. superuser.com/questions/277427/… – downbeat Dec 23 '16 at 20:46
14

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.

5

I found the way to modify the length of time during which the touchpad is disabled while typing. For anyone else out there looking for it here it is :

Note: a google search yields the answer quickly enough

Just run the program syndaemon -d and add as an option -i wait_time where wait_time is the length of time to wait before re-enabling the touchpad. Other useful parameters to give syndaemon include -K to never disable the touchpad when the keystrokes are of the format modifier+key and -t to only disable clicks and not mouse movements.

So, in my case, I added the following to a script I run on login:

#Get rid of previous syndaemon
killall syndaemon
#More aggressive behavior, allow for mod+key combos, enable mouse movements
syndaemon -i 0.2 -K -t -d

With all these modifications, especially the -t flag, I can live with the touchpad as it is for now!

  • I'm finding I need -t at least (-t Only disable tapping and scrolling, not mouse movements, in response to keyboard activity) or else I've driven crazy. I'm on Fedora 16. How do you make your changes permanent? – Philip Durbin Apr 14 '12 at 1:36
  • @PhilipDurbin I put them in a script that is called upon booting (using gnome-session-properties), but I need to do it for each user. The more traditional way is to put them in an xorg.conf file, but I couldn't find a way to set the syndaemon options in it, only the synclient options. – levesque Sep 14 '12 at 20:47
3

I have a modern laptop with a big Touchpad and half the time, my right palm was sitting on the edge and making false clicks as I type. The synclient PalmDetect=1 method was not working for me (no matter what I set PalmMinWidth and PalmMinZ to). Perhaps it was the fact that my palm was touching the pad from the right and the palm detect may be checking for it from the top. I don't know for sure.

I solved the problem by making a dead-zone on the right edge. This is how you do it:

synclient 

will give you the current settings of the touch pad. of interest are these results here:

LeftEdge                = 1572
RightEdge               = 5370
TopEdge                 = 1376
BottomEdge              = 4480

Obviously, the numbers will vary depending on hardware. Look for the edge you want.In my case it was the right edge. I picked an amount I wanted to shave. You want to shave off the smallest number you can get away with while still blocking fake clicks from your palm. A very easy test, would be to find a clickable picture on the web, hover the mouse over its center and rest your palm where you would be usually typing. To simulate typing, slap (lightly!) the edge of the touch pad with the part of your palm that usually protrudes over it when you type. If you get clicks, you'll know right away. It will be trial and error, keep playing with it till you hit the sweet spot. In my case, shaving off 30 did the trick:

synclient AreaRightEdge=5340

To modify the other edges, change AreaBottomEdge, AreaLeftEdge or AreaTopEdge. Setting these values back to 0 will disable them.

  • The man page mentions that the palm detection feature needs hardware support. I found discussions where people were discussing touchpads which in theory have hardware support for it, but in practice just didn't work. So I tried PalmDetect=1 but was unable to get it to work. I set the parameters so that all inputs should have been treated as accidental palm hits but all inputs still went through. So my touchpad does not support it, or is buggy. In the end, I used the Area...Edge parameters to shave area off of my touchpad. And that worked. – Louis Nov 30 '18 at 19:46

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.