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:
- 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)]
- In the above example, the trackpad has an id of
12
. Using this you can see what library the touchpad is using by runningxinput 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).