Dell XPS 13 9350 - Trackpad tap works but trackpad click does not

After installing Ubuntu 18.10, my trackpad is doing this interesting thing where I can lightly tap the track pad and it's registered as a single mouse click (and it works with double tap).

The trackpad also has a press down until a physical click occurs. This is intermittent with working or not and this also means that right click is not working as that works with a press and click on the right bottom area of the trackpad.

Does anyone know if this is a software issue?

Also worth noting that two finger scrolling is working.

UPDATE 1: So after a couple of updates to my 18.10 install the touchpad stopped working with the tapping, so the trackpad will only scroll and move around but I can't click at all.

Researching online, a number of people have had issues with the battery swelling and causing issues with the trackpad. I've checked and my battery is showing no signs of swelling and for good measure I removed the battery to see if that would change anything and it doesnt.

Final test was to see if clicking in the BIOS settings worked and it does, so I'm fairly convinced that this is an issue on Ubuntu. I just don't know what to change to get it working.

Update 2: More digging more guessing. The following is the output of xinput:

╰─$ xinput --list      
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:15                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:15              id=7    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ xwayland-keyboard:15                      id=8    [slave  keyboard (3)]

This is the list of input devices that it can see and I'm now wondering if Wayland is the cause of my issues. But switching to xorg on the GDM means my trackpad and my mouse no longer work, so it seems like I caught between a rock and a hard place at the moment.

Update 3: Installing sudo apt-get install xserver-xorg-input-all means my mouse is back up and running on xorg but the trackpad is still not, but the xinput list has changed

╰─$ xinput --list                              
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Performance MX                   id=10   [slave  pointer  (2)]
⎜   ↳ DLL0704:01 06CB:76AE 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)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate           id=11   [slave  keyboard (3)]
    ↳ Intel HID events                          id=13   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]

Looking at the mousepad specifically:

╰─$ xinput list-props 12                       
Device 'DLL0704:01 06CB:76AE Touchpad':
    Device Enabled (147):   1
    Coordinate Transformation Matrix (149): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (280): 1
    Device Accel Constant Deceleration (281):   2.500000
    Device Accel Adaptive Deceleration (282):   1.000000
    Device Accel Velocity Scaling (283):    12.500000
    Synaptics Edges (302):  48, 1168, 36, 644
    Synaptics Finger (303): 25, 30, 0
    Synaptics Tap Time (304):   0
    Synaptics Tap Move (305):   61
    Synaptics Tap Durations (306):  180, 180, 100
    Synaptics ClickPad (307):   1
    Synaptics Middle Button Timeout (308):  0
    Synaptics Two-Finger Pressure (309):    282
    Synaptics Two-Finger Width (310):   7
    Synaptics Scrolling Distance (311): 27, 27
    Synaptics Edge Scrolling (312): 0, 0, 0
    Synaptics Two-Finger Scrolling (313):   1, 1
    Synaptics Move Speed (314): 1.000000, 1.750000, 0.143575, 0.000000
    Synaptics Off (315):    0
    Synaptics Locked Drags (316):   0
    Synaptics Locked Drags Timeout (317):   5000
    Synaptics Tap Action (318): 0, 0, 0, 0, 1, 3, 2
    Synaptics Click Action (319):   1, 3, 2
    Synaptics Circular Scrolling (320): 0
    Synaptics Circular Scrolling Distance (321):    0.100000
    Synaptics Circular Scrolling Trigger (322): 0
    Synaptics Circular Pad (323):   0
    Synaptics Palm Detection (324): 0
    Synaptics Palm Dimensions (325):    10, 200
    Synaptics Coasting Speed (326): 20.000000, 50.000000
    Synaptics Pressure Motion (327):    30, 160
    Synaptics Pressure Motion Factor (328): 1.000000, 1.000000
    Synaptics Resolution Detect (329):  1
    Synaptics Grab Event Device (330):  0
    Synaptics Gestures (331):   1
    Synaptics Capabilities (332):   1, 0, 0, 1, 1, 0, 0
    Synaptics Pad Resolution (333): 12, 12
    Synaptics Area (334):   0, 0, 0, 0
    Synaptics Soft Button Areas (335):  0, 0, 0, 0, 0, 0, 0, 0
    Synaptics Noise Cancellation (336): 6, 6
    Device Product ID (273):    1739, 30382
    Device Node (272):  "/dev/input/event5"

Update 5: This is the output after switching to libinput

╰─$ xinput list-props 12 
Device 'DLL0704:01 06CB:76AE Touchpad':
    Device Enabled (147):   1
    Coordinate Transformation Matrix (149): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Tapping Enabled (302): 0
    libinput Tapping Enabled Default (303): 0
    libinput Tapping Drag Enabled (304):    1
    libinput Tapping Drag Enabled Default (305):    1
    libinput Tapping Drag Lock Enabled (306):   0
    libinput Tapping Drag Lock Enabled Default (307):   0
    libinput Tapping Button Mapping Enabled (308):  1, 0
    libinput Tapping Button Mapping Default (309):  1, 0
    libinput Natural Scrolling Enabled (284):   0
    libinput Natural Scrolling Enabled Default (285):   0
    libinput Disable While Typing Enabled (310):    0
    libinput Disable While Typing Enabled Default (311):    1
    libinput Scroll Methods Available (286):    1, 1, 0
    libinput Scroll Method Enabled (287):   1, 0, 0
    libinput Scroll Method Enabled Default (288):   1, 0, 0
    libinput Click Methods Available (312): 1, 1
    libinput Click Method Enabled (313):    1, 0
    libinput Click Method Enabled Default (314):    1, 0
    libinput Middle Emulation Enabled (291):    0
    libinput Middle Emulation Enabled Default (292):    0
    libinput Accel Speed (293): 0.000000
    libinput Accel Speed Default (294): 0.000000
    libinput Left Handed Enabled (298): 0
    libinput Left Handed Enabled Default (299): 0
    libinput Send Events Modes Available (269): 1, 1
    libinput Send Events Mode Enabled (270):    0, 0
    libinput Send Events Mode Enabled Default (271):    0, 0
    Device Node (272):  "/dev/input/event5"
    Device Product ID (273):    1739, 30382
    libinput Drag Lock Buttons (300):   <no items>
    libinput Horizontal Scroll Enabled (301):   1

Thanks, Matt


On Xorg, you have the synaptics driver active, while nowadays, you will be better off with libinput. To this aim, remove the package xserver-org-input-synaptics and make sure xserver-org-input-libinput is installed. You will notice that this also will increase your touchpad configuration options in "Settings - Mouse & Touchpad". When running Wayland, you likely are using libinput already.


This is an extended version of @vanadium's answer. Some of these steps may or may not be needed but it's what ended up working for me but with a lot of trial and error.

1. Boot into xorg and NOT wayland

When you log in, look for a cog or option to change your window manager to Xorg.

2. Check which library the Touchpad using

To check you are using libinput for your trackpad by doing the following:

  1. Run xinput --list to get a list of devices and find your trackpad.
$ xinput --list                              
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Performance MX                   id=10   [slave  pointer  (2)]
⎜   ↳ DLL0704:01 06CB:76AE 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)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate           id=11   [slave  keyboard (3)]
    ↳ Intel HID events                          id=13   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=14   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]

  1. In the above example, the trackpad has an id of 12. Using this you can see what library the touchpad is using by running xinput list-props <touchpad ID>
$ xinput list-props 12 
Device 'DLL0704:01 06CB:76AE Touchpad':
    Device Enabled (147):   1
    Coordinate Transformation Matrix (149): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Tapping Enabled (302): 0
    libinput Tapping Enabled Default (303): 0
    libinput Tapping Drag Enabled (304):    1
    libinput Tapping Drag Enabled Default (305):    1
    libinput Tapping Drag Lock Enabled (306):   0
    libinput Tapping Drag Lock Enabled Default (307):   0
    libinput Tapping Button Mapping Enabled (308):  1, 0
    libinput Tapping Button Mapping Default (309):  1, 0
    libinput Natural Scrolling Enabled (284):   0
    libinput Natural Scrolling Enabled Default (285):   0
    libinput Disable While Typing Enabled (310):    0
    libinput Disable While Typing Enabled Default (311):    1
    libinput Scroll Methods Available (286):    1, 1, 0
    libinput Scroll Method Enabled (287):   1, 0, 0
    libinput Scroll Method Enabled Default (288):   1, 0, 0
    libinput Click Methods Available (312): 1, 1
    libinput Click Method Enabled (313):    1, 0
    libinput Click Method Enabled Default (314):    1, 0
    libinput Middle Emulation Enabled (291):    0
    libinput Middle Emulation Enabled Default (292):    0
    libinput Accel Speed (293): 0.000000
    libinput Accel Speed Default (294): 0.000000
    libinput Left Handed Enabled (298): 0
    libinput Left Handed Enabled Default (299): 0
    libinput Send Events Modes Available (269): 1, 1
    libinput Send Events Mode Enabled (270):    0, 0
    libinput Send Events Mode Enabled Default (271):    0, 0
    Device Node (272):  "/dev/input/event5"
    Device Product ID (273):    1739, 30382
    libinput Drag Lock Buttons (300):   <no items>
    libinput Horizontal Scroll Enabled (301):   1

If most of the lines are starting with libinput then you can skip to the "I'm using libinput" section, otherwise, checkout the "Install libinput" section

3. Install libinput

Install xserver-xorg-input-libinput with this command:

sudo apt-get install xserver-org-input-libinput

You will also likely need to remove whatever library you were using before, in my case the touchpad was using synaptics and I had to run:

sudo apt-get remove xserver-xorg-input-synaptics.

4. I'm using libinput

With libinput installed, go to Settings > Devices > Mouse and Trackpad and enable "Tap to Click" (Why this wasn't enabled in the first place is beyond me).