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


11

这是我在Mac OS X中禁用鼠标加速问题的Linux版本。希望这次我能得到答案。

我对鼠标加速感到厌倦,希望获得完全线性的鼠标响应。这可以通过X.Org Wiki页面上有关指针加速的5种左右方法(有些隐含)轻松实现。但是,它们也会禁用速度缩放

我不希望设备和屏幕坐标之间的1:1映射。我想要一个1:N映射,其中N是一个常量。有任何想法吗?

Answers:


15

我发现可行的唯一方法(并且我只在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:取决于设备(如果安装了硬件驱动程序)可用。可能会出现突触。

2:多项式标度多项式:速度为系数,加速度为指数。非常有用,推荐配置文件。

3:平滑的线性标度大多是线性的,但具有平滑的(非线性)起始。

4:加速/非加速之间的简单过渡,但过渡范围平滑。这有一个基本问题,即在两个niveau上加速,在这些niveau上,加速度保持与速度无关。传统上是默认设置。

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(禁用),此功能也可以使用。


如果我想降低高DPI鼠标的灵敏度会怎样?不,抱歉,1:1映射不起作用。下一个值不是1:2,您可以说1:1.2。实际上,我很确定当前的加速代码具有百万种不同的方式来微调速度并实现亚像素分辨率。如果仅存在“无加速”配置文件-相对于“完全禁用加速子程序”。
2011年

@aib检查我的编辑
Majenko 2011年

抱歉,这不是我需要的指针减速。(好吧,也许是,但是在我扩大了鼠标的移动量之后,并且没有购买新的鼠标,谢谢。)
aib 2011年

这应该被接受。我不知道减速可以是浮动的,而不仅仅是整数。谢谢!none配置文件实际上关闭了加速功能(与Windows不同)。
inf3rno

在Debian Stretch中,这些似乎不再起作用:升级后,设备加速恒定减速度属性丢失了,并且我对这只鼠标(xinput --list-props)所拥有的东西似乎不再有任何影响(让我一夜无用的鼠标)。
Jubatian

2

通过X.org的来源来看,玩弄一个自定义的服务器,做我的鼠标有些迷恋的测试,我可以肯定地说,目前的限制时材(7)达到这个threshold值设置为0,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谢谢。甚至适用于睡眠模式。
西蒙·埃格斯特

0

我知道这很古老,但是我认为应该为已经提出的问题添加答案。XSET最有可能为您完成这项工作。我跑的命令是xset m 1 1...

我从xset(1)整理了xset的手册页内容,供您使用鼠标选项:

m选项控制鼠标参数;它可以缩写为“ m”。鼠标的参数是“ acceleration' and阈值”。加速度可以指定为整数或简单分数。鼠标或与机器连接的任何指针将acceleration' times as fast when it travels more than在短时间内达到阈值像素。这样,当鼠标缓慢移动时,可以将其用于精确对齐,但是在需要时,可以将其设置为在手腕上轻拂以在屏幕上移动。m选项的一个或两个参数可以省略,但是如果仅给出一个,则将其解释为加速度。如果未使用任何参数或使用标志“默认”,则将设置系统默认值。

如果将threshold' parameter is provided and 0, the加速度参数用于更自然和连续的公式,则可以精确控制慢速运动,但可以提供较大的范围以实现快速运动,并且可以在两者之间逐步进行过渡。在这种情况下,建议的“加速度”值为3/2到2,但不限于该范围。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.