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.
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:
- Temporarily reset the touchpad with
xinput. - Install the older Xorg Synaptics driver.
- Reboot.
- 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:
- Identify the current device and driver.
- Apply a temporary reset when needed.
- Change only one persistent thing at a time.
- Reboot and observe for a few days.
- 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 11in 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.
Recommended Gesture Cleanup
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
synapticsXorg driver instead of the default Xorglibinputtouchpad 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` |
Recommended Decision Path
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-synapticsinstalled 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=1if 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