配置鼠标速度(不是指针加速!)


30

有没有办法在KDE4中提高鼠标速度?我不希望任何指针加速,只是我要更改的鼠标速度。

编辑:不幸的是,编辑xorg.conf不是我的选择,因为我希望用户能够自己配置鼠标速度,并且公司政策拒绝用户更改xorg.conf的权限。


2
两者有什么区别?
Web-E

3
@ Web-E加速度是速度随时间变化的速率
Oleh Prypin 2012年

@ Web-E这是两件事。
布鲁诺·佩雷拉

Answers:


35

KDE尚未将其内置到其控制中心中,但是您可以从命令行使用xinput。首先,运行xinput list以找到鼠标的设备号:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]

在我的笔记本电脑上,我想要的设备ID是10(SynPS / 2 Synaptics触摸板)。在您的系统上,您将必须确定哪个设备是正确的。接下来,运行xinput list-props <your device id>以查看该设备的当前设置:

$ xinput list-props 10
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (144):   1
    Device Accel Profile (266):     1
    Device Accel Constant Deceleration (267):       2.500000
    Device Accel Adaptive Deceleration (268):       1.000000
    Device Accel Velocity Scaling (269):    12.500000
  [ many more settings omitted ]

您感兴趣的属性是“设备加速常数减速度(267)”。要降低鼠标速度,必须通过运行增加值xinput set-prop <your device id> <property id> <value>

$ xinput set-prop 10 267 5.0

在本示例中,该值从2.5增加到5.0,并且鼠标以半速移动。


5
您不能将其设置为1.0以下,在我的情况下仍然太慢了。
2013年

2
list-props没问题,但set-prop导致:X失败的请求错误:BadAccess(试图访问私有资源被拒绝)X.Org X Server 1.16.0,运行Unity桌面。对于X.Org X服务器1.9.3.90鼠标的ID是6和属性号233
Incnis MRSI

2
甚至更好:xinput set-prop'SynPS / 2 Synaptics TouchPad''设备加速恒定减速'2.5
Simon Thum

2
重新启动后此设置会保留吗?如果没有,我们能坚持下去吗?
CiprianTomoiagă17年

3
如果“设备加速恒定减速度”甚至不可用,该怎么办?
戴文斯

14

Linux(Xorg)中鼠标设置的术语与Windows世界略有不同。

有三个重要设置:

  • threshold -加速的触发
  • acceleration -达到阈值后的速度
  • resolution - 速度”

这些设置独立于桌面环境。它们是纯X设置。因此,这始终有效。另请参阅的鼠标部分,xset以真正独立的方式更改这些设置。

Unity设置管理器似乎将重命名threshold为灵敏度。但是,当您谈论KDE时,这并不重要。

只有threshold并且acceleration可以由用户更改。的resolution是要作出的设置xorg.conf。但是通常,前两个设置对于大多数用户来说就足够了。

Linuxreviews 对这些值进行了解释

基本上:鼠标以基本速度移动(可使用更改resolution)。如果鼠标在短时间内移动了n个像素(n = threshold),则基本速度将乘以acceleration。例如,如果要完全禁用加速,可以将阈值设置为0。换句话说:如果鼠标0在短时间内移动像素,我将使用base-speed * acceleration。因此,阈值0可使您保持恒定的鼠标速度。

因此,这两个值使您可以非常精细地控制速度。


1
具体涉及的参数是分辨率,无法使用xset进行修改。
路加福音

为了明确起见,阈值= 0给出了X的多项式加速度,这根本不同于恒定速度。使用上面的解决方案。
西蒙·图姆,2016年

@SimonThum真的是这样吗?我还认为加速度应该是线性的(尽管基本速度到最终速度之间的过渡=基本速度*加速度)。我在评论部分已经阅读了很多次。您是否有证据支持您的主张?
daniel451 '18


我不明白为什么现在每个人都期望使用鼠标加速功能,而且分辨率不容易获得。当您要拥有高精度鼠标时,唯一合理的设置是加速关闭,并降低(平稳)速度,因为现代激光鼠标具有疯狂的高DPI,而DPI被系统映射为疯狂的高速。但是我不想要种子,我想要精度-最好是亚像素。
Prokop Hapala

13

增加鼠标灵敏度的步骤:

首先列出所有设备:

$ xinput list                                                               
⎡ Virtual core pointer                          id=2    [master pointer  (3)]                                 
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]                                 
⎜   ↳ PixArt USB Optical Mouse                  id=10   [slave  pointer  (2)]                                 
⎜   ↳ ETPS/2 Elantech Touchpad                  id=15   [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)]                                 
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]                                 
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]                                 
    ↳ USB2.0 UVC 2M WebCam                      id=9    [slave  keyboard (3)]                                 
    ↳ Asus Laptop extra buttons                 id=13   [slave  keyboard (3)]                                 
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=11   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=12   [slave  keyboard (3)]   

在示例中,我们看到鼠标ID为10。接下来列出其属性:

$ xinput list-props 10
Device 'PixArt USB Optical Mouse':
        Device Enabled (140):   1
        Coordinate Transformation Matrix (142): 10.400000, 0.000000, 0.000000, 0.000000, 10.400000, 0.000000, 0.000000, 0.000000, 10.400000
        Device Accel Profile (265):     0
        Device Accel Constant Deceleration (266):       1.000000
        Device Accel Adaptive Deceleration (267):       1.000000
        Device Accel Velocity Scaling (268):    10.000000
        Device Product ID (260):        2362, 9488
        Device Node (261):      "/dev/input/event5"
        Evdev Axis Inversion (269):     0, 0
        Evdev Axes Swap (271):  0
        Axis Labels (272):      "Rel X" (150), "Rel Y" (151), "Rel Vert Wheel" (264)
        Button Labels (273):    "Button Left" (143), "Button Middle" (144), "Button Right" (145), "Button Wheel Up" (146), "Button Wheel Down" (147), "Button Horiz Wheel Left" (148), "Button Horiz Wheel Right" (149)
        Evdev Middle Button Emulation (274):    0
        Evdev Middle Button Timeout (275):      50
        Evdev Third Button Emulation (276):     0
        Evdev Third Button Emulation Timeout (277):     1000
        Evdev Third Button Emulation Button (278):      3
        Evdev Third Button Emulation Threshold (279):   20
        Evdev Wheel Emulation (280):    0
        Evdev Wheel Emulation Axes (281):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (282):    10
        Evdev Wheel Emulation Timeout (283):    200
        Evdev Wheel Emulation Button (284):     4
        Evdev Drag Lock Buttons (285):  0

正是我们想要的是《坐标变换矩阵》。记住它的№142。

通过更改此属性,我们可以提高指针速度。这些值实际上是用于计算指针移动转换矩阵。从链接:

默认情况下,X中每个输入设备的CTM是单位矩阵。举例来说,假设您在屏幕上的点(400,197)触摸了触摸屏:

⎡ 1 0 0 ⎤   ⎡ 400 ⎤   ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦   ⎣  1  ⎦   ⎣  1  ⎦

设备事件的X和Y坐标输入到计算的第二个矩阵中。计算的结果是事件的X和Y坐标映射到屏幕的位置。如图所示,身份矩阵将设备坐标映射到屏幕坐标,而没有任何更改。

因此,我们要对矩阵执行的操作是将根据xy设置的值设置为任何其他特定值,这将改变指针速度。我的电脑上的一个例子:

$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000

是的xinput set-prop <device-id> <property-number> <property-values>。试一下,直到找到合适的。注意:请勿更改矩阵的最后一个值。那是我尝试上班时的错误-在这种情况下,您将看不到任何区别。

至少最近的版本xinput允许按名称指定设备和选项,因此此示例也可以工作:

xinput set-prop 'PixArt USB Optical Mouse' 'Coordinate Transformation Matrix' 1.2 0 0 0 1.2 0 0 0 1

这些更改仅在当前会话中处于活动状态,因此,一旦选择了良好的敏感性,就应通过将其添加到xorg.conf(或创建诸如的文件/etc/X11/xorg.conf.d/40-mouse-sensitivity.conf)来永久地应用它:

Section "InputClass"
    Identifier "PixArt USB Optical Mouse"
    MatchIsPointer "Yes"
    Option "TransformationMatrix" "1.2 0 0 0 1.2 0 0 0 1"
EndSection

如果您不确定是否可行,请将其更改为较大的值,例如 5.0保存文件并重新启动。

致谢:我感谢xorg邮件列表中的Simon Thum,他是提供有关矩阵提示的人。


最好将坐标转换矩阵保留其原始用途,例如在屏幕方向或与触摸屏配合使用时“转换坐标”。更简单的方法是例如调整设备加速常数减速度。
KariKääriäinen2015年

2
@KariKääriäinen和其他人一样感到困惑。所谓的“指针加速”与鼠标灵敏度无关,它只允许将指针移动得越快越好。也就是说,如果将鼠标移动相同的距离但速度不同,则指针将移动到不同的距离。感觉很不舒服,每次都必须放慢速度才能达到目标。但是,从某种意义上来说,更改转换矩阵可以使您模仿鼠标灵敏度的提高。顺便说一句,特别是deceleration 放慢速度。
Hi-Angel

1
有趣,但是此方法有一个缺点:使用此方法时,有些像素无法到达。为了使这一点更加明显,我尝试xinput set-prop 11 138 40, 0, 0, 0, 40, 0, 0, 0, 1并确认了鼠标只能到达相隔40个像素的坐标。实际使用情况可能只会使用2或4,而不是40,但仍然会丢失像素。我选择了另一种方法(将加速功能用作恒定速度增益),因为它没有此缺点。
斯特凡纳·古里科

4
唯一正确的答案。
MichalH's

1
截至2019年,不再有'Device Accel Constant Deceleration'属性,至少在我看来不是。尽管@StéphaneGourichon上面指出的内容是很合理的,但转换矩阵仍然存在,并且可以对其施加预期的效果。嗯,Linux及其奇怪之处……
kellogs,

4

尽管我对这个问题不太清楚,但这是我的建议。

对于KDE

快速搜索显示没有这样的选项可以在阈值以下提高鼠标速度。

一些用户建议更改/etc/X11/xorg.conf文件(mouse InputDevice section)中的鼠标分辨率,例如

Option "Resolution" "400"

但是大多数用户说这没有用。

您可以增加阈值,以便直到达到阈值才开始加速。(设置在中Mouse> Advanced Settings

相关文章可以在这里找到。

为了团结

  • 按下Super键(Windows键)。
  • 搜索mouse
  • 选择 Mouse And Touchpad
  • 现在将灵敏度更改为更高的值。可能这就是您想要的。

    滑鼠设定


2
好的,这正是我想要的设置,但是您的屏幕截图来自Gnome,我的问题与KDE4有关。
安德烈·

抱歉,无法正确检查您的问题。更新。
Web-E

哇谢谢!看来您为此付出了很多努力。不幸的是,不能选择编辑xorg.conf,因为我希望用户能够自行配置“解决方案”设置,并且公司政策确实拒绝用户更改xorg.conf的权限。我会将此限制添加到原始评论中,但是仍然支持您的评论。
安德烈(André)

3
我的天啊。仅通过配置文件(即非交互式)设置“指针分辨率”的功能应视为错误。用户应重新启动XServer多少次才能找到合适的解决方案?五?十?就像悲伤一样可笑……
Hi-Angel 2015年

我刚刚安装了unity-control-center,将鼠标灵敏度设置为高,但没有成功。
Hi-Angel

2

鉴于以上帖子所说的,我找到了解决方法。

事实是鼠标以基本速度的恒定倍数移动,该倍数由“加速”参数设置。

但是,仅当鼠标移动的速度超过“灵敏度”参数指定的“阈值”速度时,才会应用此乘数。

这会产生尴尬的“加速”感觉,在这种情况下,如果您开始快速移动鼠标,则在超过阈值速度时它会开始不受控制地跳动。

因此,您可以将“灵敏度”设置为0,从而将阈值设置为0。这就是您的加速度始终应用于鼠标速度。

然后,鼠标速度只是“加速度”参数的倍数,并且由于它是线性乘法,因此您应该具有与加速度参数成比例的恒定速度。没有加速和跳跃的感觉。

简而言之:将灵敏度设置为0。将参数“加速度”调整为“速度”


该答案是lolmaus面向KDE的答案的通用版本。我只是这样做,尽管我首先尝试使用阈值1像素,因为其他答案提到0为“禁用”。无论如何,我可以通过运行以下命令立即对其进行测试:xset mouse 4 0等等,最终解决了xset mouse 2 0。这是一种骇客(使用加速功能实现无与伦比的速度),但是可以正常工作,尽管我在使用时仍觉得应用了一些阈值。
斯特凡纳·古里科

1

我个人认为精确的指针移动对整体桌面体验更好,因此此设置对我也很重要。我一直想知道为什么OS UXP设计人员不仅将加速设置为默认设置,而且还倾向于从用户界面中删除控件。

您可能会发现,在某些情况下,加速本来可以使您感到更舒适的UXP实际上是不可取的,因为在快速移动鼠标时可能会错过屏幕上正确的UI元素,或者仅需要某些CAD应用程序的精度。具体来说,很难控制滑块和微调UI元素或在某些设计师的UI上移动形状。同样,通过加速,在复制粘贴文本区域时,很难将鼠标光标精确定位在文本编辑器中。有人可能会争辩说,当您需要提高精度时,您只会放慢速度,但是如果您不想降低速度而仍然获得精度,该怎么办?

您可以检查是否有加速度:

(1)。将鼠标指针移到屏幕右侧,注意设备在桌子上的物理位置。

(2)。稍微向左移动鼠标一点,使光标绕屏幕中心移动,然后非常缓慢地将物理设备返回到其原始位置。

(3)。多次重复步骤(1)和(2)。

如果没有加速度,则光标应始终位于屏幕右侧。如果有加速度,指针将越来越向左移动,因此经过3或4次后,指针将刚好碰到屏幕的左侧,因此需要对其进行修复。

没有加速意味着您需要调整 Device Accel Velocity Scaling参数。

通常,它会减慢鼠标的移动速度,因此您需要通过恒定速度调整来弥补这一点。这可以通过减小Device Accel Constant Deceleration参数来完成。

这对我有用:

  1. 查找鼠标设备ID:

$ xinput list ... ⎜ ↳ PixArt USB Optical Mouse id=10 [slave pointer (2)] ...

设备ID = 10

  1. 列出设备的属性

$ xinput list-props 10 ... Device Accel Constant Deceleration (276): 1.000000 ... Device Accel Velocity Scaling (278): 10.000000 ...

  1. 将缩放参数减小到最小,这应使鼠标相对于实际物理运动一对一移动。是否将其设置为0.1、0.001或1e-30都无关紧要,因为它的加速度比默认值10.0低得多。您不能将其设置为零,因为它被视为错误。

$ xinput set-prop 10 278 1e-10

  1. (可选)现在您可能会注意到,尽管精确,但速度通常已降低,因此您可能需要使用该Constant Deceleration参数来恢复舒适的速度。在我的情况下,舒适的设置是0.7,它使指针加速了一半,使鼠标的运动感觉与之前相同,但没有加速:

$ xinput set-prop 10 276 0.7

如果您想要更快,请在此处设置较低的值,例如0.5、0.4等。如果您想要更慢,则将其设置为1.0、1.2甚至1.5


1

上面的答案现在已经过时了。最有效的方法是此Wiki条目的最后一部分:

与libinput

另外,由于libinput-1.1.0-1和xf86-input-libinput-0.15.0-1,您可以使用平坦的加速度曲线。要启用它,请创建以下文件:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf

部分“ InputClass”标识符“我的鼠标”驱动程序“ libinput” MatchIsPointer“是”选项“ AccelProfile”“ flat”选项“ AccelSpeed”“ 0” EndSection

然后重新启动X。

另一个选项是此命令:

$ xinput --set-prop'libinput Accel Profile Enabled'0,1

不需要X重新启动,但不是持久的。尽管可以将其设置为与自动启动一起自动运行。


0

如何在KDE中调整鼠标速度
  • 没有启用鼠标加速
  • 并且仅使用settigns对话框(无控制台,无配置文件)

这是exhuma答案的口语摘要,请不要忘记对其进行投票。

在KDE中,鼠标加速不是对数的。也就是说,它具有两个恒定的鼠标速度:非加速和加速。当您足够快地摇动鼠标时,它会从一种切换到另一种。

第一速度是不可配置的(至少是从GUI)。第二速度是可配置的。

解决方案是:

  1. 将“指针阈值”设置为0。结果,将始终应用第二速度。
  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.