How to fix palm detection in Ubuntu 17.04

I have had this problem since Ubuntu 16.04. The palm detection simply does not work.
I tried running commands mentioned in this article but to no effect.

Output of xinput:

    ⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ DLLC6B2:00 06CB:75BF Touchpad             id=11   [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)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=14   [slave  keyboard (3)]
    ↳ DELL Wireless hotkeys                     id=15   [slave  keyboard (3)] 

Output of `xinput list-props 11:

    Device 'DLLC6B2:00 06CB:75BF Touchpad':
    Device Enabled (140):   1
    Coordinate Transformation Matrix (142): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (267): 1
    Device Accel Constant Deceleration (268):   2.500000
    Device Accel Adaptive Deceleration (269):   1.000000
    Device Accel Velocity Scaling (270):    12.500000
    Synaptics Edges (271):  49, 1180, 50, 879
    Synaptics Finger (272): 25, 30, 0
    Synaptics Tap Time (273):   180
    Synaptics Tap Move (274):   67
    Synaptics Tap Durations (275):  180, 180, 100
    Synaptics ClickPad (276):   1
    Synaptics Middle Button Timeout (277):  0
    Synaptics Two-Finger Pressure (278):    282
    Synaptics Two-Finger Width (279):   7
    Synaptics Scrolling Distance (280): -30, -30
    Synaptics Edge Scrolling (281): 0, 0, 0
    Synaptics Two-Finger Scrolling (282):   1, 1
    Synaptics Move Speed (283): 1.000000, 1.750000, 0.129870, 0.000000
    Synaptics Off (284):    0
    Synaptics Locked Drags (285):   0
    Synaptics Locked Drags Timeout (286):   5000
    Synaptics Tap Action (287): 2, 3, 0, 0, 1, 3, 0
    Synaptics Click Action (288):   1, 3, 0
    Synaptics Circular Scrolling (289): 0
    Synaptics Circular Scrolling Distance (290):    0.100000
    Synaptics Circular Scrolling Trigger (291): 0
    Synaptics Circular Pad (292):   0
    Synaptics Palm Detection (293): 1
    Synaptics Palm Dimensions (294):    5, 5
    Synaptics Coasting Speed (295): 20.000000, 50.000000
    Synaptics Pressure Motion (296):    30, 160
    Synaptics Pressure Motion Factor (297): 1.000000, 1.000000
    Synaptics Resolution Detect (298):  1
    Synaptics Grab Event Device (299):  0
    Synaptics Gestures (300):   1
    Synaptics Capabilities (301):   1, 0, 0, 1, 1, 0, 0
    Synaptics Pad Resolution (302): 12, 12
    Synaptics Area (303):   0, 0, 0, 0
    Synaptics Soft Button Areas (304):  614, 0, 761, 0, 0, 0, 0, 0
    Synaptics Noise Cancellation (305): 7, 7
    Device Product ID (264):    1739, 30143
    Device Node (263):  "/dev/input/event10"

Contents of /usr/share/X11/xorg.conf.d/40-libinput.conf:

# Match on all types of devices but tablet devices and joysticks
Section "InputClass"
    Identifier "libinput pointer catchall"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection


Section "InputClass"
    Identifier "libinput keyboard catchall"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection

Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection

Section "InputClass"
    Identifier "libinput touchscreen catchall"
    MatchIsTouchscreen "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection

Section "InputClass"
    Identifier "libinput tablet catchall"
    MatchIsTablet "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection

Answer

Synaptics user space driver is not very good in palm detection.

In Ubuntu 17.04 libinput is the default user space driver. It is not istalled for some reason.

Run in a terminal

sudo apt install xserver-xorg-input-libinput

to install it. Then reboot.

Tapping may be disabled by default. Edit /usr/share/X11/xorg.conf.d/40-libinput.conf to look this way:

# Match on all types of devices but tablet devices and joysticks
Section "InputClass"
    Identifier "libinput pointer catchall"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection


Section "InputClass"
    Identifier "libinput keyboard catchall"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection

Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "Tapping" "True"
    Option "NaturalScrolling" "True"
EndSection

Section "InputClass"
    Identifier "libinput touchscreen catchall"
    MatchIsTouchscreen "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection

Section "InputClass"
    Identifier "libinput tablet catchall"
    MatchIsTablet "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
EndSection

to enable tapping and natural scrolling.

Attribution
Source : Link , Question Author : Yashbhatt , Answer Author : Pilot6

Leave a Comment