How to Fix Linux Touchpad Tap-to-Click That Stops Working Until Reboot (Synaptics, ThinkPad)
I was ready to give up on my laptop’s touchpad.
For a long time, tap-to-click on my ThinkPad kept failing me. I’d tap and nothing would happen. Tap again: still nothing. The physical buttons worked fine, and a restart fixed everything, for a while. Then the missed taps crept back, every single time.
I tried everything I could think of. I went through every touchpad setting in GNOME. I took the laptop to technicians, and they couldn’t find the problem. I even had the touchpad replaced. The new one did exactly the same thing.
Finally, I opened a terminal and asked Claude , to troubleshoot it with me through Claude Code. In one session, it found what nobody else had: the hardware was never the problem.
How Claude tracked it down
- It checked the hardware and logs. My touchpad is a Synaptics model that Linux runs over a fast connection called SMBus. The logs showed no errors, but the laptop had been up about 20 hours and had woken from sleep more than 10 times.
- It tried the obvious fix, and it failed. Reloading the touchpad driver reconnected it cleanly, but taps were still missed. So this wasn’t a simple driver glitch.
- It had me run a tap test. I tapped 10 times while a tool recorded every event the touchpad sent. Only one brief touch came through. My taps weren’t being ignored by a setting; they were never reaching the system.
- It switched connections live. Claude moved the touchpad from SMBus to its older PS/2 connection, without a restart. Tapping was instantly smooth.
One kernel boot option, psmouse.synaptics_intertouch=0, made the fix permanent. Here's how to check whether you have the same problem, and how to fix it yourself.
Does this apply to you?
This fix only helps Synaptics touchpads that Linux runs over SMBus (the RMI4 driver). Many ThinkPads use this setup. To check, run:
grep -A5 -i synaptics /proc/bus/input/devicesYou’re affected if the output names a Synaptics touchpad and its Sysfs line contains rmi4. Mine looked like this:
N: Name="Synaptics TM3471-020"
S: Sysfs=/devices/pci0000:00/0000:00:1f.4/i2c-13/13-002c/rmi4-00/input/input19If your touchpad is from Elan, or uses I2C-HID (common on Dell and many newer laptops), this fix doesn’t apply. Those touchpads need different fixes.
Confirm the problem with a tap test
Before changing boot options, check that the touches are actually being lost. libinput debug-events shows every event the touchpad sends, before your desktop settings touch it.
- Find your touchpad’s event device. In the output from the previous step, look for
eventNNon the touchpad'sH: Handlersline. Mine wasevent14. - Run the test, replacing
event14with yours:
sudo libinput debug-events --device /dev/input/event14
- Tap the touchpad 10 times, then press Ctrl+C.
A healthy touchpad prints a POINTER_BUTTON line for each tap. Mine printed only one brief GESTURE_HOLD_BEGIN / GESTURE_HOLD_END pair for all 10 taps, and no pointer movement:
event14 GESTURE_HOLD_BEGIN +0.740s 1
event14 GESTURE_HOLD_END +0.757s 1That means the touches never reached the system. No desktop setting can fix that, so tweaking tap-to-click, palm rejection or “disable while typing” won’t help.
Try PS/2 mode without restarting
Synaptics touchpads can talk to the laptop over two connections: SMBus (“InterTouch”), which Linux prefers, and the older PS/2. You can switch to PS/2 live and test it before changing anything permanent.
Get Minidu Weerasinghe’s stories in your inbox
Join Medium for free to get updates from this writer.
First, find the PS/2 port the touchpad sits on. It’s the entry that points into i8042:
ls -l /sys/bus/serio/drivers/psmouse/ | grep i8042Mine was serio1. Then turn off SMBus mode and reconnect the touchpad on that port:
echo 0 | sudo tee /sys/module/psmouse/parameters/synaptics_intertouch
echo -n serio1 | sudo tee /sys/bus/serio/drivers/psmouse/unbind
echo -n serio1 | sudo tee /sys/bus/serio/drivers/psmouse/bindThe touchpad (and the TrackPoint, if you have one) stops for a few seconds, then comes back. Check that it’s now in PS/2 mode:
grep -i synaptics /proc/bus/input/devicesThe name should now read SynPS/2 Synaptics TouchPad. Try tapping. If the touchpad doesn't come back, restart: this live change doesn't survive a reboot.
Make it permanent
If tapping is smooth in PS/2 mode, add psmouse.synaptics_intertouch=0 to your kernel's boot options. On most distributions the touchpad driver is built into the kernel, so a boot option is the reliable way to keep the setting.
Fedora, RHEL and similar (using grubby):
sudo grubby --update-kernel=ALL --args="psmouse.synaptics_intertouch=0"This applies to every installed kernel, and future kernel updates keep it.
Ubuntu, Debian and similar (using GRUB): open /etc/default/grub, add the option inside the quotes of GRUB_CMDLINE_LINUX_DEFAULT, for example:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.synaptics_intertouch=0"Then run:
sudo update-grubRestart, then confirm the option is active:
cat /proc/cmdlineTo undo it: on Fedora, run sudo grubby --update-kernel=ALL --remove-args="psmouse.synaptics_intertouch=0". On Ubuntu, remove the option from /etc/default/grub and run sudo update-grub. Then restart.
What causes it, and the trade-off
In SMBus mode the touchpad was silently dropping touches, and in PS/2 mode the same hardware worked. So the fault is in the SMBus connection, not the sensor or the desktop settings. I haven’t pinned down why SMBus goes bad. It got worse the longer the laptop ran: mine had been up about 20 hours and had woken from sleep more than 10 times. A full restart power-cycles the touchpad, which is likely why rebooting helped for a while.
What didn’t help:
- Reloading the SMBus driver (
sudo modprobe -r rmi_smbus && sudo modprobe rmi_smbus). It reconnected cleanly but taps were still dropped, so a sleep/wake hook that does this won't fix it either. - Firmware updates.
fwupdmgr get-updatesfound nothing newer for my laptop, and the touchpad's own firmware isn't updatable through fwupd.
The trade-off: PS/2 mode carries less detailed touch data, so tracking can feel slightly less precise. Tap-to-click, two-finger scrolling and gestures still work.
If you’d rather keep SMBus mode, one thing worth trying is the traditional deep sleep mode instead of modern standby (s2idle). Check cat /sys/power/mem_sleep; if deep is listed, add mem_sleep_default=deep to your boot options instead. I haven't confirmed that this fixes the problem.
If this fixed your touchpad, or didn’t, leave a comment with your laptop model. That helps others work out which machines it applies to.








