这是我在Mac OS X中禁用鼠标加速问题的Linux版本。希望这次我能得到答案。
我对鼠标加速感到厌倦,希望获得完全线性的鼠标响应。这可以通过X.Org Wiki页面上有关指针加速的5种左右方法(有些隐含)轻松实现。但是,它们也会禁用速度缩放。
我不希望设备和屏幕坐标之间的1:1映射。我想要一个1:N映射,其中N是一个常量。有任何想法吗?
这是我在Mac OS X中禁用鼠标加速问题的Linux版本。希望这次我能得到答案。
我对鼠标加速感到厌倦,希望获得完全线性的鼠标响应。这可以通过X.Org Wiki页面上有关指针加速的5种左右方法(有些隐含)轻松实现。但是,它们也会禁用速度缩放。
我不希望设备和屏幕坐标之间的1:1映射。我想要一个1:N映射,其中N是一个常量。有任何想法吗?
Answers:
我发现可行的唯一方法(并且我只在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(禁用),此功能也可以使用。
通过X.org的来源来看,玩弄一个自定义的服务器,做我的鼠标有些迷恋的测试,我可以肯定地说,目前的限制时材(7)达到这个threshold
值设置为0,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
我知道这很古老,但是我认为应该为已经提出的问题添加答案。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,但不限于该范围。
免责声明:如果没有一些额外的技巧,这将无法在重新登录/重新启动后生存下来...