ubuntu 18.04+需用xinput set-prop设置libinput accel speed属性(-1.0~1.0),设备名须加双引号,开机生效需写带延迟的桌面自启动脚本,xset m已失效因底层改用libinput驱动。

用 xinput 设置精确的指针加速度(适用于 Ubuntu 18.04+)
GUI 设置里的“鼠标速度”滑块调节范围窄、步进粗,实际生效的是 libinput Accel Speed 属性,值域为 -1.0 到 1.0,中间 0.0 是默认值。低于 0.0 反而更慢,高于则更快——但不是线性关系,0.5 已明显偏快,0.8 以上容易失控。
操作前先确认设备名:
xinput --list
找到你的鼠标或触摸板条目,比如 pointer:Logitech USB Receiver 或 pointer:SynPS/2 Synaptics TouchPad。然后执行:
xinput set-prop "pointer:Logitech USB Receiver" "libinput Accel Speed" 0.6
- 必须用双引号包裹设备名,含空格或特殊字符时否则报错
X Error of failed request: BadAtom - 该命令只对当前 X session 生效,重启或重新插拔设备后失效
- 若设备名含括号如
(mouse),需用反斜杠转义:"pointer:Razer Razer DeathAdder \(mouse\)"
让设置开机自动加载(避免每次手动输命令)
不能往 /etc/profile.d/ 里硬塞 xinput 命令——因为 GNOME 启动时设备可能尚未就绪,导致命令静默失败。更可靠的方式是写成桌面自启动脚本,并加延迟和重试逻辑:
新建 ~/.local/bin/set-mouse-speed.sh:
#!/bin/sh sleep 2 xinput set-prop "pointer:Logitech USB Receiver" "libinput Accel Speed" 0.6 2>/dev/null || \ xinput set-prop "pointer:SynPS/2 Synaptics TouchPad" "libinput Accel Speed" 0.4
然后给执行权限并添加到 GNOME 自启动:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
chmod +x ~/.local/bin/set-mouse-speed.sh- 打开
Startup Applications→ Add → Name:mouse-speed, Command:/home/yourname/.local/bin/set-mouse-speed.sh - 不要用
sudo,普通用户权限即可;路径中别用~,得写绝对路径
为什么 xset m 在新 Ubuntu 上不生效?
xset m 是 X Server 旧版加速模型(accel 和 threshold)的控制命令,而 Ubuntu 17.10 起默认启用 libinput 驱动,它完全绕过 X 的这套机制。执行 xset m 2 1 不报错,但对指针行为毫无影响——你看到的只是 X Server 记录了这个参数,底层驱动根本不读它。
验证是否被绕过:
xinput list-props "your-device-name" | grep -i accel
如果输出里有 libinput Accel Speed,说明走的是 libinput 流程;如果只有 Device Accel Profile 和 Device Accel Constant Deceleration,那才是 xset 能管的旧驱动(现在极少见)。
触摸板和外接鼠标要分开调速吗?
要。它们通常是两个独立的 pointer 设备,共享同一套属性名但互不影响。例如笔记本上同时连着蓝牙鼠标和内置触控板,xinput --list 会列出两条 pointer: 条目。你可以分别设不同值:
xinput set-prop "pointer:ELAN Touchpad" "libinput Accel Speed" 0.3<br>xinput set-prop "pointer:Logitech MX Master 3" "libinput Accel Speed" 0.7
常见误区是只调一个,结果发现“鼠标变快了但触摸板还是慢”,或者反过来。另外注意:部分触控板(尤其是某些 ELAN 或 Synaptics 型号)可能不支持 libinput Accel Speed,此时需查 xinput list-props 输出中是否有该属性——没有的话,GUI 滑块就是唯一可控入口。










