将鼠标灵敏度降低至标准限制以下。

我在我的Ubuntu笔记本上连接了一个USB鼠标。这个鼠标(不幸的是)非常敏感,所以有时候用鼠标指针点击小图标很困难。这实际上是一个硬件问题,不是bug,也不是Ubuntu/gnome的错。尽管如此,我仍然非常希望通过软件来解决这个问题(通过硬件解决意味着购买一个新的鼠标)。
在Windows中,如果我将灵敏度设置得非常低,那就足够舒适了。在Ubuntu中,即使在“系统>首选项>鼠标”菜单中选择最低的灵敏度和加速度,仍然令人沮丧。我应该如何将它降低到默认最低值以下?
我尝试过xset命令,但似乎xset只处理加速度和阈值,而不是实际的灵敏度。

1我应该把这些代码放在哪里? - user430966
8个回答

我有一只雷蛇DeathAdder鼠标,就像你的情况一样,即使我将鼠标偏好设置中的灵敏度/加速度调到最低,它们仍然太高。为了解决这个问题,我使用了xinput命令。
首先,你需要知道你的鼠标的ProductName和ID:
xinput list
...
 Razer Razer DeathAdder                     id=8    [slave  pointer  (2)]
...

然后,您可以使用以下命令设置适合您需求的恒定减速级别:
xinput set-prop 8 "Device Accel Constant Deceleration" 3
# 8 = DEVICE_ID
# 3 = LEVEL (factor) Higher = Slower.

要使配置持久化(并且使其系统范围内生效),您需要编辑您的xorg.conf文件(/etc/X11/xorg.conf)。
Section "InputClass"
   Identifier      "Razer"                    # Whatever you want.
   MatchProduct    "Razer Razer DeathAdder"   # Product name from xinput list.
   Option          "ConstantDeceleration" "3" # The same value as xinput.
EndSection

一旦你重新启动,你应该会得到与xinput命令相同的结果。
如果有帮助,请告诉我。

太神奇了!几周前我已经放弃了。非常感谢,这真的有帮助。 - Malabarba
+1 我也遇到了Logitech trackall的同样问题,但是这个方法帮了我,谢谢。 - Ernest
6错误:属性 'Device Accel Constant Deceleration' 不存在,您需要指定其类型和格式。 - mlissner
1还能用,甚至适用于Linux Mint 17!谢谢 :) - Richard de Wit
3如果我没有xorg.conf文件,我应该创建它吗? - Ciprian Tomoiagă
@CiprianTomoiaga 是的 - Tyler Biscoe
1@mlissner 尝试使用不同的设备ID,我的设备有3个指针,我需要使用10。 - flcoder
@CiprianTomoiaga 我也没有。请看下面我的新答案(根据JackTravis出色的回答,我给他点了赞)。 - GlenPeterson
对我来说,2.92的Razer DeathAdder感觉刚刚好(与其他发行版上的鼠标相匹配),就个人而言(4K屏幕,不确定是否重要)。 - Jonathan
首先检查属性的名称:xinput list,然后执行xinput watch-props <ID> - Hermann Schwarz
在我的情况下,“减速”不是正确的词,尝试使用“速度”:xinput --list-props 9 | grep -i '(speed|Deceleration)' - deFreitas
对于DeathAdder,您不需要进行任何配置更改。鼠标滚轮后面的两个按钮可以调节鼠标的灵敏度。 - rtaft

Ubuntu 17.04

按照以下说明进行操作,但请注意更改:

xinput set-prop 10 "Device Accel Constant Deceleration" 3

致:

xinput set-prop 10 "libinput Accel Speed" -0.4

谢谢@tambre。不太确定这个设定是否和以前一样理想,但是它很接近。
xset m 3

那个还挺好用的。需要弄清楚如何保存,这样在重新启动时就是默认设置。
Ubuntu 16.04
@JackTravis的回答非常有帮助,但我觉得值得更新一下适用于16.04版本,因为xorg.conf文件已经移动并分成了多个文件。在写这个答案之前,我尝试使用xset命令,并在xinput设置上进行了一段时间的尝试,最后决定采用JackTravis的xinput ConstantDeceleration 3设置,这对我的Logitech M510鼠标和笔记本上的一些旧有线鼠标都是最佳选择。
1. 列出鼠标
$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech M510                             id=10   [slave  pointer  (2)]
⎜   ↳ Synaptics Inc. Composite TouchPad / TrackPoint    id=13   [slave  pointer  (2)]
...

我的鼠标是Logitech M510,id=10,所以我将在这个例子中使用它。你需要用你的鼠标名称替换它。现在,使用xinput set-prop尝试不同的设置,直到你的鼠标移动得恰好符合你的要求。以下代码中的10对应于我的系统上鼠标的id=10。你可能需要更改这个值。
2. 暂时更改你的设置
$ xinput set-prop 10 "Device Accel Constant Deceleration" 3

如果你想知道其他设置如何影响你的设备,请尝试一下。
$ xinput --list-props 10

清除设置之后,我只需要拔下鼠标再重新插上就可以了。
3. 永久保存新的设置
如果你喜欢 ConstantDeceleration 为 3,那么你需要按照新的 Ubuntu 16.04 的方式添加一个 xorg.conf 文件:在 /usr/share/X11/xorg.conf.d/ 中添加一个新文件。你需要将文件名中的 Logitech M510logitech-m510 修改为与你的鼠标相匹配的名称。我认为文件名开头的 60- 是加载这些文件的优先级。下面这个一行命令是我放在 Dropbox 的 machineSetup.sh 文件中的,这样我可以在新安装的机器上快速定制一个和我喜欢的一模一样的设置,只需几分钟即可完成。
sudo sh -c "echo 'Section \"InputClass\"\n\
   Identifier      \"My awesome new mouse\"\n\
   MatchProduct    \"Logitech M510\"\n\
   Option          \"ConstantDeceleration\" \"3\"\n\
EndSection\n' > /usr/share/X11/xorg.conf.d/60-logitech-m510.conf"

或者,如果你想以图形界面的方式进行操作,以 root 身份打开一个编辑器,然后将以下内容粘贴并编辑到 /usr/share/X11/xorg.conf.d/60-<whatever>.conf 文件中。

Section "InputClass"
   Identifier      "My Awesome Blue Mouse"
   MatchProduct    "Logitech M510"
   Option          "ConstantDeceleration" "3"
EndSection

4. 重新启动

就是这样。只需重新启动并验证新的设置是否生效。


1很不幸,当我尝试使用第二步骤中的命令(使用我的设备ID)时,出现了“属性'Device Accel Constant Deceleration'不存在,您需要指定其类型和格式”的错误。 - tambre
@tambre 我猜测你在第二步中没有使用第一步骤中确定的正确数字ID。如果不是这种情况,那么我可能无法提供足够的帮助。 - GlenPeterson
2列出属性后,Device Accel Constant Deceleration 并不存在其中。看起来它正在使用 libinput 作为驱动程序,所以我不得不修改 libinput Accel Speed 的值,其有效范围是从 -1 到 1。 - tambre
1这对我有用,但我的鼠标(一款“雷蛇死亡骑士2013”)在“虚拟核心指针”(两次)和“虚拟核心键盘”(一次)下出现了多次。只有“指针”设备具有“设备加速度恒定减速”,所以在使用“xinput”进行测试时,我必须确保选择其中一个设备。而“xorg.conf.d”文件仍然完美运行。 - Alex
要在系统启动时减慢鼠标速度,您可以让Ubuntu在启动时运行一个bash脚本。首先,创建一个Shell脚本(比如'slow_mouse.sh'),其中包含以下'xinput'命令:#!/bin/bash xinput set-prop 12 "libinput Accel Speed" -0.9999999在终端中将其设置为可执行:$ chmod u+x slow_mouse.sh然后通过运行“启动应用程序首选项”(使用Unity搜索来找到它),将此脚本添加到启动项中。 - Joshua T
我正在展示两个雷蛇死亡骑士精英版鼠标。但是即使在两者上都更改了属性,我注意到没有任何变化。只有xset m 3对我产生了影响。终于感觉掌握了这个东西! - bdetweiler
如果即使在“libinput Accel Speed”允许的最小范围内(-1),鼠标仍然过于敏感,那该怎么办? - Antonello
xinput --list-props <ID> 帮助我找出在 Ubuntu 20 上,使用我的 Razer Death Adder 鼠标时,现在应该是 xinput set-prop 27 "libinput Accel Speed" -0.4 - Christian.D

晚回复,但我觉得这值得发表:
既然我们在谈论游戏鼠标。最好是完全关闭鼠标加速(对FPS玩家等很有用)。通过不使用计算任何鼠标加速来节省一些CPU周期,并且可能会有更准确的读数(取决于鼠标硬件传感器是否具有内置外推功能)。
xinput set-prop <mousedevice_nr> "Device Accel Profile" -1

或者

Section "InputClass"
   Identifier      "Razer"
   MatchProduct    "Razer DeathAdder"         # Product name from xinput list.
   Option          "AccelerationProfile" "-1" # Turn mouse accel off saving CPU cycles
EndSection

来源


我得到了这个错误信息:X 错误,请求失败:BadValue(整数参数超出操作范围) - MasterOfBinary
太好了,这个真棒,谢谢。我在使用我的Kingsis Peripherals Evoluent VerticalMouse 3时遇到了问题。它在鼠标底部有一个DPI设置,即使在最高DPI设置下-甚至是最低灵敏度设置也仍然太高。 - fIwJlxSzApHEZIl

稍微修改一下Glen的答案,这对我的罗技鼠标有效,并将“慢速”从1倍增加到2倍。
将以下内容添加到~/.profile(如评论中所指出)(或者添加到.bashrc,但是需要重新启动终端才能生效)。
MOUSE_SLOWNESS=2
MOUSE_ID=`xinput list | grep Mouse | awk '{print $(NF-3)}' | cut -c4-5`
xinput set-prop $MOUSE_ID "Device Accel Constant Deceleration" $MOUSE_SLOWNESS

1我认为将这些行添加到.profile的末尾比添加到.bashrc更好。.profile仅在交互式登录 shell 中运行,而.bashrc会在每次启动bash shell 时运行。有关更多信息,请参阅此答案 - chus
从技术上讲,.bash_aliases 也可以工作,因为标准的 Ubuntu .bashrc 文件会正确加载它。 - fIwJlxSzApHEZIl

很遗憾,对于我的Ubuntu 18戴尔无线鼠标,没有一个答案足够有效。速度还不够慢。
这个答案对于类似的问题对我有所帮助。
使用xinput list获取设备ID。请参考顶部的答案来正确执行此操作。
接下来执行以下步骤:
xinput --set-prop 13(replace device id) "Coordinate Transformation Matrix" 0.2 0 0 0 0.2 0 0 0 1

调整上面的0.2为任何你想要的分数。越低=越慢。
你可以使用与最佳答案相同的技巧使其永久化。只需将"ConstantDeceleration"替换为"TransformationMatrix",并将"3"替换为"0.2 0 0 0 0.2 0 0 0 1"

还有唯一一个适用于我的雷蛇Basilisk的。对CTM进行了进一步的调整:沿对角线,第一个数字表示水平方向。第二个数字表示垂直方向。第三个数字是归一化因子 - 因此,一个简单的尝试,即降低所有数字,与将它们全部保持为1(或用负1替换它们)相同。 - Jake Stevens-Haas

如果您使用PS2端口,鼠标的移动速度会比相同分辨率下慢很多。
对于您的鼠标,请尝试使用USB转PS2转换器,并将鼠标插入PS2端口。
编辑:
我找到了一个有效的解决方案:xorg.conf
Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Sensitivity" "0.2"
EndSection

敏感度为1是默认值,而0.2则意味着降低了五倍。

那是一个很有创意的想法。我想我家里有一个转换器,所以明天我会试一试。 - Malabarba
我找到了一个可行的xorg.conf解决方案。编辑后的答案。 - iugamarian
1这在笔记本电脑上不起作用。 - Daniel Silva
xorg.conf在哪里? - Green

在尝试其他解决方案之前,先阅读鼠标的使用手册。
Razer品牌的鼠标具有即时灵敏度调节功能。对于在接受的帖子中提到的DeathAdder鼠标,我使用的那款顶部有两个按钮可以控制灵敏度。如果你首先进行了配置更改,可能会因为不知情地触发了鼠标内置的灵敏度功能而导致灵敏度过低。
我曾经遇到过这个问题,将灵敏度调到最低,但仍然太高,但几天前它还正常工作。我按下了增加灵敏度的按钮,不知道它们的作用,以为可以将它们用作游戏的额外按钮,结果鼠标的灵敏度非常高。这种情况以前也发生过,然后又恢复正常,我一直不知道原因,直到现在才明白。

安装gnome-tweaks指南 通过终端/点击“显示应用程序”按钮打开gnome-tweaksenter image description hereGnome Tweaks窗口中进入键盘和鼠标设置。
将加速度配置为平坦enter image description here