这是我的 Linux 版本在 Mac OS X 中禁用鼠标加速问题。希望这次我能得到答案。
我厌倦了鼠标加速,想要完全线性的鼠标响应。这可以通过以下 5 种方法(有些是隐含的)轻松实现X.Org wiki 页面关于指针加速。 然而,它们还禁用速度缩放。
我不希望设备和屏幕坐标之间有 1:1 的映射。我想要 1:N 的映射,其中 N 是持续的。 有任何想法吗?
答案1
我发现唯一有效的方法(我只在 Ubuntu 上尝试过)是用xinput
命令。
首先,您必须确定要更改的鼠标的设备编号:
# xinput list
â¡ Virtual core pointer id=2 [master pointer (3)]
â â³ Virtual core XTEST pointer id=4 [slave pointer (2)]
â â³ Microsoft Microsoft 5-Button Mouse with IntelliEye(TM) id=10 [slave pointer (2)]
⣠Virtual core keyboard id=3 [master keyboard (2)]
â³ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
â³ Power Button id=6 [slave keyboard (3)]
â³ Power Button id=7 [slave keyboard (3)]
â³ CHICONY USB Keyboard id=8 [slave keyboard (3)]
â³ CHICONY USB Keyboard id=9 [slave keyboard (3)]
â³ IR-receiver inside an USB DVB receiver id=11 [slave keyboard (3)]
现在,在这个例子中,我将使用我的 Microsoft 鼠标进行游戏。 id=10
现在让我们看看这个设备可以处理哪些属性:
# xinput list-props 10
Device 'Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)':
... cruft cut ...
Device Accel Profile (259): 3
... cruft cut ...
该值是驾驶员处理加速度的方式:
-1:无没有速度相关的指针加速或减速。如果也不使用恒定减速,则运动处理将被抑制,从而节省一些周期。
0:经典(默认)与旧行为类似,但更可预测。根据阈值 =/!= 0 在“多项式”和“简单”之间进行选择。
1:设备相关如果硬件驱动程序安装了它,则可用。可能适用于 synaptics。
2:多项式尺度多项式:速度为系数,加速度为指数。非常实用,推荐的配置文件。
3:平滑线性尺度大部分是线性的,但有一个平滑的(非线性)开始。
4:简单在加速/非加速之间过渡,但过渡范围平滑。这存在在两个平台上加速的基本问题,在这些平台上加速度与速度无关。然而传统上这是默认设置。
5:电源通过幂函数加速。速度是这里的指数。遵守阈值。很容易变得难以控制,因此正确调整速度估计很重要。
6:线性与速度和加速度成线性关系。简单又干净。
7:有限平稳上升至加速度,在阈值处达到最大值,然后变为平坦(受到限制)。
因此从中我们可以看出,如果我们将此属性设置为 -1,它将完全禁用加速。
$ xinput set-prop 10 259 -1
现在我们没有加速,但这是我们想要的吗?鼠标现在有点慢了。遗憾的是就是这样。禁用加速后,鼠标和显示器之间的关系为 1:1。将鼠标向左移动一个点鼠标指针向左移动一个像素。如果有办法将输入移动倍增(比如乘以 2),那么鼠标将无法访问每个轴上的每个其他像素。这将使鼠标的准确定位变得非常困难。一些 GUI 鼠标控制面板中的“灵敏度”设置实际上与您预期的相反 - 最灵敏的是 1:1 的比例 - 加速度使它看起来要快得多。
因此,您希望移动速度更快,但不希望加速。唯一能做到这一点的方法就是硬件。基本上,您需要购买更灵敏的鼠标。寻找具有更高 DPI(每英寸点数 - 是的,就像打印机一样)的鼠标。我发现我的旧 Microsoft IntelliEye 在禁用加速的情况下足够灵敏,可以使用。
或者你的鼠标太灵敏了?即使禁用加速功能,它的速度也太快了,你不喜欢?好吧,这就是
Device Accel Constant Deceleration (260): 1.0000
设置进入。这是一个恒定的减速(或减敏)比率。默认情况下,它是 1:1,但会取大于该值的任何数字(偶数分数)。要使鼠标速度稍微减慢:
$ xinput set-prop 10 260 1.2
或者对于真正精细的工作来说,速度会大幅下降:
$ xinput set-prop 10 260 10
或者恢复正常:
$ xinput set-prop 10 260 1
即使加速度配置文件设置为 -1(禁用),这仍然有效。
答案2
通过查看 X.org 的源代码、使用自定义服务器以及用鼠标进行一些强迫性测试,我可以肯定地说,当前的有限的threshold
当该值设置为 0时,配置文件 (7) 可实现此目的。该acceleration
值随后变为速度缩放器(标量?)。
所以:
xinput set-prop <device> "Device Accel Profile" 7
xset m <velocity> 0
第二部分也可以使用桌面环境的鼠标设置面板进行设置。请记住,它需要采用x/y
非整数值的形式,例如16/10
1.6。
还有一些其他设置(减速等)需要调整,但这解决了问题中最糟糕的部分。一些配置文件应该编辑以保持永久不变,但同样重要的是这是可能的。
编辑:为了永久保留,您可以将其添加到您的xorg.xconf
:
Section "InputClass"
Identifier "Mouse with No Acceleration"
MatchIsPointer "yes"
MatchProduct "Mouse"
Option "AccelerationProfile" "7"
EndSection
从此以后,您可以使用桌面环境的鼠标设置,正如我所提到的。但是,如果您想要一个完整的xorg.conf
解决方案:
Section "InputClass"
Identifier "Mouse With No Acceleration"
MatchIsPointer "yes"
MatchProduct "Mouse"
Option "AccelerationProfile" "7" # "limited" profile
Option "AccelerationNumerator" "2" # these adjust the sensitivity
Option "AccelerationDenominator" "1" # these adjust the sensitivity
Option "AccelerationThreshold" "0" # this disables acceleration
# in the "limited" profile
EndSection
答案3
我知道这已经很老了,但我认为值得为已经提出的问题添加答案。西门子很可能会帮你完成这项工作。我运行的命令是xset m 1 1
...
我在这里整理了 xset 的手册页内容xset(1)为您提供鼠标选项:
老鼠
m 选项控制鼠标参数;它可以缩写为“m”。鼠标的参数是“
acceleration' and
阈值”。加速度可以指定为整数,也可以指定为简单分数。鼠标或机器所连接的任何指针将acceleration' times as fast when it travels more than
在短时间内移动“阈值”像素。这样,鼠标可以在缓慢移动时用于精确对准,但可以在需要时将其设置为在手腕轻弹时穿过屏幕。可以省略 m 选项的一个或两个参数,但如果只给出一个参数,它将被解释为加速度。如果没有参数或使用标志“default”,则将设置系统默认值。如果
threshold' parameter is provided and 0, the
加速度参数将用于更自然和连续公式的指数,则对慢动作提供精确控制,但对快速动作提供大范围控制,并为中间动作提供渐进过渡。在这种情况下,建议的“加速度”值为 3/2 到 2,但不限于该范围。
免责声明:如果没有一些额外的技巧,这将无法在重新登录/重启后继续存在......