在 X.Org (Linux) 中禁用鼠标加速

在 X.Org (Linux) 中禁用鼠标加速

这是我的 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/101.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,但不限于该范围。

免责声明:如果没有一些额外的技巧,这将无法在重新登录/重启后继续存在......

相关内容