Ubuntu GNOME 点击不响应问题排查与修复

问题描述

Ubuntu 24.04 + GNOME Shell 46.0 + X11 环境下,浏览器、PyCharm、Dock 等所有应用的第一次点击经常无响应,需要连续点击多次才能触发操作。

环境信息

项目
系统Ubuntu 24.04
桌面GNOME Shell 46.0
会话X11
鼠标Logitech USB Receiver

排查过程

1. 排除焦点策略问题

初始怀疑 GNOME 焦点设置导致点击被吞:

org.gnome.mutter focus-change-on-pointer-rest = true
org.gnome.desktop.wm.preferences focus-new-windows = 'smart'

修改为 false / 'strict' 后问题仍然存在,已还原。排除焦点策略原因。

2. 排除系统性能问题

  • gnome-shell CPU 占用 0.1%,正常
  • 系统负载 2.4,无 IO wait
  • 无内核输入错误日志

3. 硬件层事件检测(定位根因)

使用 evtest 监听鼠标原始 input 事件:

sudo timeout 30 evtest /dev/input/event4 | grep BTN_LEFT

结果:移动事件正常,但多次点击左键完全没有 BTN_LEFT 事件输出。

这说明鼠标按钮按下时,硬件层就没有发出点击信号。

4. 换鼠标验证

换用另一个鼠标后问题完全消失,确认原鼠标硬件故障。

根因

Logitech 鼠标微动开关老化,导致物理按压后触点间歇性接触不良,click 事件丢失。鼠标移动(光电传感器)不受影响,所以只有点击不响应。

这是罗技鼠标的常见老化问题,通常在使用 1-3 年后出现。

解决方案

方案说明
换鼠标最直接,推荐
更换微动开关需要拆开焊接,适合动手能力强的用户
喷接触清洁剂临时缓解,对着微动开关缝隙喷 WD-40 电子清洁剂

排查命令速查

# 查看鼠标对应的 event 设备
cat /proc/bus/input/devices | grep -A5 "Logitech"
 
# 监听原始按键事件(需要 sudo)
sudo evtest /dev/input/event4
 
# 如果每次物理点击都有 BTN_LEFT 输出 → 软件问题
# 如果物理点击但无 BTN_LEFT 输出 → 硬件问题

教训

点击不响应容易误判为系统/焦点/驱动问题,但用 evtest 直接看硬件层事件可以在 30 秒内区分软件 vs 硬件原因。先做这一步能省很多排查时间。