sodcalculator

10 Tech How-To

Fix Touchpad Not Working on Linux: Step-by-Step

Guide 10-37969 · Updated · Step by step

If your touchpad is not working on Linux, the fix usually involves checking driver modules, adjusting settings, or re-enabling the device in software. Start by pressing Fn+F7 or the touchpad toggle key on your laptop, then verify the touchpad is enabled in your desktop environment’s settings. If that doesn’t work, follow the steps below to diagnose and resolve the issue.

Why Touchpads Fail on Linux

Linux supports most touchpads through kernel drivers like libinput (the default for modern distributions) and the older synaptics driver. Failures usually happen because:

  • The touchpad is disabled by a hardware toggle or keyboard shortcut.
  • The correct kernel driver isn’t loaded.
  • Your desktop environment’s settings have the touchpad turned off.
  • A recent kernel update introduced a regression.
  • The touchpad is detected as a mouse or not detected at all.

Most issues are software-related, not hardware failures. The steps below cover the most common fixes, from simple to advanced.

Step 1: Check Hardware and Toggle Keys

Before touching software, rule out a simple hardware disable. Many laptops have a function key (often F7 or F9) that toggles the touchpad. Look for an icon that resembles a touchpad with a line through it. Press Fn plus that key and try moving the cursor.

Also check if an external mouse is plugged in—some systems automatically disable the touchpad when one is connected. Unplug it temporarily to see if the touchpad wakes up.

Step 2: Verify Touchpad Settings in Your Desktop Environment

GNOME, KDE Plasma, and other desktop environments have their own touchpad toggles. Open Settings and look for Mouse & Touchpad (GNOME) or Input Devices > Touchpad (KDE). Ensure the touchpad is set to Enabled, not Disabled or Disabled when external mouse is present.

In GNOME, you can also check the top-right system menu—there may be a quick toggle. If the setting is grayed out, the system isn’t detecting the touchpad at all, which points to a driver issue.

Step 3: Check Kernel Driver Loading

Open a terminal and run:

lsmod | grep -E "i2c_hid|hid_multitouch|psmouse"

If you see psmouse or i2c_hid listed, the driver is loaded. If not, try loading it manually:

sudo modprobe psmouse

For newer laptops with I2C touchpads:

sudo modprobe i2c_hid

After loading, check dmesg for errors:

dmesg | grep -i touch

If the driver loads but the touchpad still doesn’t work, the device may be in a bad state. A reboot often helps.

Step 4: Use libinput to Test and Configure

Most distributions use libinput as the input stack. Check if your touchpad is listed:

libinput list-devices

Look for a section with Touchpad in the name. If it appears, you can test events with:

sudo libinput debug-events

If the touchpad shows up but doesn’t respond, try adjusting the libinput configuration. Create a file in /etc/X11/xorg.conf.d/ (for X11) or use the GNOME/KDE settings to tweak tapping, scrolling, and sensitivity. Sometimes a wrong setting (like palm detection) can make the touchpad unresponsive.

Step 5: Switch to the Synaptics Driver (Legacy)

If libinput fails, you can try the older synaptics driver. Install it with your package manager (e.g., sudo apt install xserver-xorg-input-synaptics on Debian/Ubuntu). Then restart your session. Note that synaptics is deprecated but still works for many older touchpads.

To force the system to use synaptics, create a configuration file:

/etc/X11/xorg.conf.d/70-synaptics.conf

with the content:

Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
EndSection

Step 6: Check for Kernel Updates and Regressions

If the touchpad worked before a recent update, a kernel regression may be the cause. Check your current kernel with uname -r. If you have multiple kernels installed, boot into an older one from the GRUB menu and see if the touchpad works. If it does, you can either stay on the older kernel or report the bug to your distribution’s bug tracker.

You can also try adding kernel boot parameters. For some laptops, adding i8042.nopnp or psmouse.synaptics_intertouch=1 to the GRUB command line fixes detection issues. Edit /etc/default/grub, add the parameter to GRUB_CMDLINE_LINUX_DEFAULT, then run sudo update-grub and reboot.

Frequently Asked Questions

Why is my touchpad not working after a kernel update?

Kernel updates can change how drivers handle hardware. If the touchpad stopped working after an update, boot into the previous kernel from GRUB. If that fixes it, you can either wait for the next update or file a bug report with your distribution. Sometimes adding a kernel parameter as described above is a permanent workaround.

How do I enable tap-to-click on Linux?

In GNOME, go to Settings > Mouse & Touchpad and turn on Tap to Click. In KDE, go to System Settings > Input Devices > Touchpad and enable Tapping. For X11 with libinput, you can create an Xorg config file with Option "Tapping" "true".

My touchpad is detected but the cursor doesn’t move. What else can I try?

Try resetting the touchpad hardware by suspending the laptop (close the lid or use systemctl suspend) and waking it. If that doesn’t work, check if the issue is in the BIOS—some laptops have a touchpad disable option there. Also try booting from a live USB of another distribution to see if it’s a hardware issue.

Is there a way to reset the touchpad driver without rebooting?

Yes, you can reload the kernel module. Run sudo modprobe -r psmouse then sudo modprobe psmouse. For I2C touchpads, use i2c_hid instead. This resets the driver and often brings the touchpad back to life.

Why does my touchpad work in the login screen but not after I log in?

This usually means a user-level setting is disabling it. Check your desktop environment’s touchpad settings after login. It could also be that an application like touchegg or a gesture daemon is interfering. Try logging into a different desktop environment (like XFCE) to see if the issue persists.

Related

General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.

More in this bed

The whole Tech How-To bed →