Intermediate guide

Touchpad Scrolling and Gestures Troubleshooting

Diagnose and stabilize inconsistent two-finger scrolling and multi-touch gestures on Ubuntu 24.04-based laptops, especially ThinkPads with SynPS/2 Synaptics touchpads on Linux Mint Cinnamon X11.

Intermediate Updated Linux Mint 22.3 Cinnamon (Ubuntu 24.04 Noble base, X11)

Partially Resolved

Hardware context: Lenovo ThinkPad L14 Gen 2 (SynPS/2 Synaptics TouchPad, TPPS/2 Elan TrackPoint, Linux 6.17.0-35-generic when tested)

Overview

This guide documents how to troubleshoot a touchpad that sometimes feels unreliable on Linux Mint Cinnamon: two-finger scrolling becomes laggy or stops responding, and three-finger gestures may feel inconsistent compared with Windows.

The tested case happened on a Lenovo ThinkPad L14 Gen 2 running Linux Mint 22.3 Cinnamon on X11. The touchpad appeared as:

SynPS/2 Synaptics TouchPad

The practical fix that improved the situation was:

  1. Temporarily reset the touchpad with xinput.
  2. Install the older Xorg Synaptics driver.
  3. Reboot.
  4. Keep Touchégg/Cinnamon gestures enabled for Windows-like workspace gestures.

After rebooting with the Synaptics driver active, the issue did not immediately return. Because this may be hardware, kernel, driver, or suspend/resume related, this guide keeps the deeper fixes as escalation steps instead of applying everything at once.


When This Guide Applies

Use this guide if you are on an Ubuntu 24.04-based distro such as Linux Mint, Zorin OS, Ubuntu, Pop!_OS, or similar, and you see one or more of these symptoms:

Symptom Example
Two-finger scrolling becomes unreliable Scrolling a webpage up/down sometimes does nothing or feels jumpy
Gestures stop after sleep Touchpad works after reboot but misbehaves after waking the laptop
Gestures fail randomly mid-session Three-finger workspace gestures or two-finger scrolling suddenly become inconsistent
A reset fixes it temporarily xinput disable + xinput enable makes the touchpad work again

This guide is especially relevant if your touchpad appears as SynPS/2 Synaptics TouchPad and your system uses X11.


Tested System

Component Tested Detail
Laptop Lenovo ThinkPad L14 Gen 2
Primary OS Linux Mint 22.3 Cinnamon
Base Ubuntu 24.04 Noble
Session X11 / Xorg
Kernel when checked 6.17.0-35-generic
Touchpad SynPS/2 Synaptics TouchPad
TrackPoint TPPS/2 Elan TrackPoint
Gesture daemon touchegg
Active touchpad Xorg driver after fix synaptics

This exact setup is ThinkPad-specific, but the diagnostic flow is useful for other Ubuntu-based laptops too.


Important Idea: Do Not Stack Fixes Too Quickly

Touchpad problems can come from several layers:

hardware/firmware → kernel module → Xorg input driver → desktop settings → gesture daemon

If you change all layers at once, it becomes hard to know what fixed the issue or what made it worse. The safer approach is:

  1. Identify the current device and driver.
  2. Apply a temporary reset when needed.
  3. Change only one persistent thing at a time.
  4. Reboot and observe for a few days.
  5. Escalate only if the issue returns.

Step 1 - Check Your Session Type

First check whether you are running X11 or Wayland:

echo $XDG_SESSION_TYPE

Expected on Linux Mint Cinnamon:

x11

Why this matters:

Session Notes
X11 Uses xinput; common on Linux Mint Cinnamon
Wayland xinput may not control devices the same way; gestures are handled differently

Linux Mint Cinnamon currently defaults to X11, so the xinput commands in this guide apply to the tested Mint setup.


Step 2 - Identify the Touchpad

List input devices:

xinput --list

On the tested ThinkPad, the relevant part looked like this:

⎡ Virtual core pointer                     id=2  [master pointer  (3)]
⎜   ↳ SynPS/2 Synaptics TouchPad           id=11 [slave  pointer  (2)]
⎜   ↳ TPPS/2 Elan TrackPoint               id=12 [slave  pointer  (2)]

The ID number can change after reboot or sleep. The device name is more stable, so prefer the name in scripts and shortcuts:

SynPS/2 Synaptics TouchPad

Step 3 - Quick Temporary Reset

If scrolling or gestures stop working, reset the touchpad without rebooting:

xinput disable "SynPS/2 Synaptics TouchPad"
xinput enable "SynPS/2 Synaptics TouchPad"

If this immediately fixes scrolling, the hardware is probably not fully dead. The issue is likely somewhere in the input driver/session stack.

Tip: Avoid hardcoding xinput disable 11 in long-term scripts. Device IDs can change. The name-based command is safer.


Step 4 - Check Which Driver Is Active

List touchpad properties:

xinput list-props "SynPS/2 Synaptics TouchPad"

If you see many properties starting with Synaptics, the old Synaptics Xorg driver is active:

Synaptics Two-Finger Scrolling
Synaptics Scrolling Distance
Synaptics Palm Detection
Synaptics Gestures

If you see properties starting with libinput, the modern libinput driver is active:

libinput Natural Scrolling Enabled
libinput Tapping Enabled
libinput Scroll Methods Available

You can also confirm from the Xorg log:

grep -i -E 'synaptics|libinput|touchpad' /var/log/Xorg.0.log

On the tested system after installing the Synaptics driver, the key line was:

Using input driver 'synaptics' for 'SynPS/2 Synaptics TouchPad'

Step 5 - Check Touchégg Gestures

Linux Mint Cinnamon uses Touchégg for multi-touch gestures on X11.

Check whether the service is running:

systemctl status touchegg --no-pager

Expected:

Active: active (running)

Check recent gesture/input warnings:

journalctl -u touchegg -b --no-pager -l | grep -i -E 'error|touchpad|SynPS'

On the tested system, Touchégg logged:

libinput error: event5 - SynPS/2 Synaptics TouchPad: kernel bug: Touch jump detected and discarded.

This does not automatically mean the touchpad is broken. It means the input stack saw suspicious jumpy coordinates and discarded them. If this appears occasionally but the touchpad works, observe first. If it appears frequently during real symptoms, continue with the later steps.


Step 6 - Configure Mouse, Touchpad, and Gestures in Cinnamon

Before changing drivers or kernel parameters, make sure the desktop settings are sane. Bad gesture mappings can make a healthy touchpad feel unreliable.

Mouse and Touchpad Settings

Open:

Menu → System Settings → Mouse and Touchpad → Touchpad

Recommended baseline:

Setting Recommended Value Notes
Touchpad is Enabled Required for touchpad input
Tap to click On, if you like tap-click Personal preference
Disable touchpad while typing On Prevents accidental palm movement while typing
Click actions Default device behavior Good default for ThinkPad clickpads
Reverse scrolling direction Personal preference Keep it if the direction feels natural to you
Scrolling method Two-finger scrolling Best Windows-like default
Speed Middle or slightly slower Increase only if the pointer feels sluggish

Note: Disable touchpad while typing can make the touchpad feel temporarily blocked immediately after keyboard input. If the touchpad only feels delayed right after typing, test this setting both on and off before assuming the driver is broken.

The Mouse tab can usually stay at defaults:

Setting Recommended Value
Left handed Off, unless needed
Middle-click emulation Off, unless needed
Pointer speed Middle-ish
Acceleration Adaptive

Gesture Settings

Open:

Menu → System Settings → Gestures

Keep gestures enabled:

Settings → Enable gestures → On

A clean Windows-like setup is:

Gesture Suggested Action
3-finger swipe left Switch to adjacent workspace
3-finger swipe right Switch to adjacent workspace
3-finger swipe up Show workspace selector / Expo
3-finger swipe down Show window selector / Scale

The left/right direction is personal. If swiping left feels backwards, swap the left and right workspace actions.

If your goal is reliable scrolling plus workspace gestures, keep the gesture setup simple:

Area Recommendation Why
2-finger swipe Disable, if possible Two fingers should mainly mean scrolling on a touchpad
3-finger swipe Keep for workspace/window navigation This gives the Windows-like multitasking feel
3-finger tap Disable unless you use Play/Pause Prevents accidental media toggles
4-finger left/right Optional: move window to workspace Useful if you intentionally use it
4-finger up/down Disable unless intentionally used Volume actions here are unusual and can trigger accidentally
Pinch gestures Disabled unless you need zoom Keeps the setup simpler

On Linux Mint, some 2-finger swipe entries may be labeled Touchscreen only. If you do not use a touchscreen, they may not affect the touchpad. Still, disabling unused 2-finger swipe actions keeps the configuration easier to reason about.

Gesture Activation Thresholds

Open:

Gestures → Settings

A good starting point is:

Swipe threshold: 40%
Pinch threshold: 40%

Adjust only if needed:

Problem Adjustment
Gestures trigger accidentally Increase swipe threshold to 50-60%
Gestures are hard to trigger Decrease swipe threshold to around 30%
Pinch is unused Leave pinch disabled; threshold does not matter much

For the tested setup, 40% is a reasonable default.


Step 7 - Install the Synaptics Xorg Driver

Note: This is the step that changed the tested system. After installing this package and rebooting, the touchpad used the synaptics Xorg driver instead of the default Xorg libinput touchpad driver.

Install the driver:

sudo apt update
sudo apt install xserver-xorg-input-synaptics

Reboot:

sudo reboot

After reboot, verify:

xinput list-props "SynPS/2 Synaptics TouchPad"

Look for Synaptics properties. You can also verify with:

grep -i "Using input driver 'synaptics'" /var/log/Xorg.0.log

Why This May Help

libinput is the modern default and is usually recommended. However, on some older or PS/2-routed Synaptics/ThinkPad touchpads, the classic Xorg Synaptics driver can feel smoother or more stable.

Tradeoff

The Synaptics driver is older. If three-finger gestures become worse after switching, or if the touchpad feels less modern, you can revert to libinput.

Rollback:

sudo apt remove xserver-xorg-input-synaptics
sudo reboot

Step 8 - Create a Manual Keyboard Shortcut

If the issue returns randomly, a manual shortcut is safer than an automatic sleep script.

Open:

Menu → Keyboard → Shortcuts → Custom Shortcuts

Add a new shortcut:

Field Value
Name Fix Touchpad
Command sh -c 'xinput disable "SynPS/2 Synaptics TouchPad" && xinput enable "SynPS/2 Synaptics TouchPad"'

Bind it to something memorable, for example:

Ctrl + Alt + Z

Now, if scrolling or gestures freeze, press the shortcut instead of opening a terminal.


Step 9 - Avoid This Sleep Script Unless You Know It Works

Some online advice suggests creating a file like:

/lib/systemd/system-sleep/reset-touchpad

with xinput disable and xinput enable commands.

I do not recommend doing that as the first automatic fix.

Reason: systemd sleep hooks run outside your normal graphical session. A plain xinput command may fail there because it may not have the correct DISPLAY and XAUTHORITY environment. That means the script can look correct but not actually reset the touchpad.

Use a keyboard shortcut first. Only build a sleep hook if the problem reliably happens after resume and you are prepared to test the graphical-session environment carefully.


Step 10 - Deeper Kernel-Level Clue: psmouse.synaptics_intertouch

On the tested ThinkPad, the kernel log showed this message:

psmouse serio1: synaptics: Your touchpad (PNP: LEN0416 PNP0f13) says it can support a different bus.
If i2c-hid and hid-rmi are not used, you might want to try setting psmouse.synaptics_intertouch to 1

Check the current setting:

cat /sys/module/psmouse/parameters/synaptics_intertouch

On the tested system it returned:

-1

That means the kernel is using the default/automatic behavior.

Only Try This If the Problem Keeps Returning

If the touchpad continues to freeze after sleep or logs frequent touch-jump errors, try forcing intertouch mode.

Create a config file:

sudo nano /etc/modprobe.d/psmouse.conf

Add:

options psmouse synaptics_intertouch=1

Update initramfs and reboot:

sudo update-initramfs -u
sudo reboot

After reboot, check again:

cat /sys/module/psmouse/parameters/synaptics_intertouch

Rollback

If the touchpad becomes worse, remove the config:

sudo rm /etc/modprobe.d/psmouse.conf
sudo update-initramfs -u
sudo reboot

Warning: Make a Timeshift snapshot before changing kernel module parameters. This is not the first fix to try; it is an escalation step for recurring problems.


Troubleshooting Checklist

Check Command Good Sign
Session type echo $XDG_SESSION_TYPE x11 on Linux Mint Cinnamon
Touchpad name xinput --list SynPS/2 Synaptics TouchPad appears
Temporary reset xinput disable "SynPS/2 Synaptics TouchPad" && xinput enable "SynPS/2 Synaptics TouchPad" Scrolling works again
Active driver xinput list-props "SynPS/2 Synaptics TouchPad" Shows either Synaptics or libinput properties
Xorg driver proof grep -i 'Using input driver' /var/log/Xorg.0.log Shows which driver owns the device
Gesture service systemctl status touchegg --no-pager active (running)
Touchégg errors journalctl -u touchegg -b --no-pager -l Few or no repeated touchpad errors
Kernel clue `journalctl -k -b —no-pager -l grep -i synaptics`

Touchpad glitch happens
        |
        v
Run xinput reset by device name
        |
        v
Works again?
        |
        +-- yes → create optional keyboard shortcut and observe
        |
        +-- no  → reboot and check xinput/journal logs

If problem returns often:
        |
        v
Install xserver-xorg-input-synaptics and reboot
        |
        v
Observe for a few days
        |
        +-- stable → keep this setup
        |
        +-- gestures worse → remove synaptics package and return to libinput
        |
        +-- still broken after sleep → consider psmouse.synaptics_intertouch=1 with Timeshift snapshot

Final Current-State Recommendation

For the tested ThinkPad L14 Gen 2 setup, the current best state is:

  • Keep xserver-xorg-input-synaptics installed if scrolling feels stable after reboot.
  • Keep Touchégg enabled for Cinnamon gestures.
  • Do not add an automatic sleep reset script yet.
  • Use a manual keyboard shortcut if the issue appears randomly.
  • Only try psmouse.synaptics_intertouch=1 if the problem repeatedly returns after sleep or during normal use.

This keeps the system simple while preserving a clear escalation path if the touchpad problem comes back.

Discussion

Continue the conversation about this guide. Loading comments connects to GitHub Discussions through giscus.

Open community discussions on GitHub

Check before you copy

This command needs care. Read its context, confirm the target and location, and keep a recovery path.

Copying does not run a command.