xinput是最可靠通用的禁用方案:先xinput list查含Touchpad/Synaptics等关键词的slave pointer设备ID或名称,再xinput disable 12或xinput disable "SynPS/2 Synaptics TouchPad";注意Wayland下无效,需改用gsettings或GUI设置。

Linux 下禁用触摸板,xinput 是最可靠、最通用的实时方案;modprobe -r psmouse 看似彻底,但多数现代内核已将 psmouse 编译为内置模块,执行会失败——别白试。
怎么用 xinput 精准禁用触摸板(推荐首选)
这是用户态控制,不碰内核、不改驱动,重启后失效但可写脚本固化,兼容 X11 桌面(GNOME/KDE/Xfce 等)。
- 先运行
xinput list,在输出中找含Touchpad、Synaptics、ELAN、I2C HID或PS/2的设备,它通常属于slave pointer类型 - 确认 ID 后,用
xinput disable 12(把12换成你查到的 ID)立即禁用;也可用名字:如xinput disable "SynPS/2 Synaptics TouchPad",更稳定(ID 可能变,设备名相对固定) - 验证是否生效:再跑一次
xinput list,对应设备名后应显示[disconnected]或不再响应触控 - 注意:
xinput对 Wayland 无效;GNOME 40+ 默认用 Wayland,此时需改用gsettings或桌面设置 GUI
为什么 sudo modprobe -r psmouse 经常失败
该命令试图卸载 psmouse 内核模块,但自 Linux 5.4+ 起,多数发行版(Ubuntu 22.04+、Fedora 35+、Manjaro 22.0+)已把该驱动编译进内核(built-in),不是可加载模块(m),lsmod | grep psmouse 返回空即证明这点。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 执行时若报错
Module psmouse is builtin或Operation not permitted,说明此路不通 - 强行写入
/etc/modprobe.d/blacklist.conf加blacklist psmouse也无效,因为内置模块无法被黑名单拦截 - 仅部分老旧硬件或定制内核才支持该方式,别把它当默认解法
如何让禁用效果开机自动生效
不能靠 /etc/rc.local(多数发行版已弃用),也不能依赖用户登录前执行——xinput 需要 X server 已启动且用户会话就绪。
- 最稳妥做法:把
xinput disable "Your Touchpad Name"命令写入桌面自动启动项,例如 GNOME 的~/.config/autostart/disable-touchpad.desktop - 文件内容示例:
[Desktop Entry] Type=Application Name=Disable Touchpad Exec=xinput disable "ELAN Touchpad" Hidden=false NoDisplay=true X-GNOME-Autostart-enabled=true
- 保存后确保有执行权限(虽然 desktop 文件本身不需可执行,但路径和语法必须严格正确)
- 避免用
sleep 2 && xinput ...做延迟——X server 启动时机不稳定,靠 sleep 容易失效
Wayland 桌面下怎么办(GNOME/KDE Plasma 默认)
Wayland 不暴露 xinput 设备控制接口,xinput 命令只能看到虚拟设备,无法禁用物理触摸板。
- GNOME:用
gsettings关闭触控板开关:gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled - KDE Plasma:进「系统设置 → 输入设备 → 触控板」,关闭「启用触控板」,或勾选「插入外接鼠标时禁用触控板」
- 命令行临时禁用(仅限 GNOME):
gdbus call --session --dest org.gnome.SettingsDaemon.InputSources --object-path /org/gnome/SettingsDaemon/InputSources --method org.gnome.SettingsDaemon.InputSources.SetTouchpadEnabled false - 注意:Wayland 下没有全局“禁用硬件”级操作,所有控制都走桌面环境策略层
真正容易被忽略的是桌面环境类型——你以为在用 X11,实际可能是 Wayland;xinput list 输出里如果看不到真实触摸板名,十有八九就是这个原因。先确认 echo $XDG_SESSION_TYPE,再选对应方案。

















