如何通过 xinput 增加鼠标滚轮的加速度?

如何通过 xinput 增加鼠标滚轮的加速度?

我有一个微软无线USB鼠标它的滚轮在 Linux 上似乎完全没有任何加速度。在 Windows 和 OSX 上,我滚动得越快,页面滚动得越快,反之亦然。

我设法使用 xinput 更改鼠标灵敏度设置如下本指南,效果很好。但是当我按照相同的步骤更改鼠标滚轮设置时,似乎没有任何变化。

$ xinput --list-props这是我的设备上的输出:

Device 'Microsoft Microsoft® 2.4GHz Transceiver v8.0':
    Device Enabled (133):   1
    Coordinate Transformation Matrix (135): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (259): 0
    Device Accel Constant Deceleration (260):   1.000000
    Device Accel Adaptive Deceleration (261):   1.500000
    Device Accel Velocity Scaling (262):    0.125000
    Device Product ID (250):    1118, 1970
    Device Node (251):  "/dev/input/event2"
    Evdev Axis Inversion (263): 0, 0
    Evdev Axes Swap (265):  0
    Axis Labels (266):  "Rel X" (143), "Rel Y" (144), "Rel Horiz Wheel" (256), "Rel Dial" (257), "Rel Vert Wheel" (258)
    Button Labels (267):    "Button Left" (136), "Button Middle" (137), "Button Right" (138), "Button Wheel Up" (139), "Button Wheel Down" (140), "Button Horiz Wheel Left" (141), "Button Horiz Wheel Right" (142), "Button Side" (254), "Button Extra" (255), "Button Unknown" (253), "Button Unknown" (253), "Button Unknown" (253), "Button Unknown" (253)
    Evdev Middle Button Emulation (268):    0
    Evdev Middle Button Timeout (269):  50
    Evdev Third Button Emulation (270): 0
    Evdev Third Button Emulation Timeout (271): 1000
    Evdev Third Button Emulation Button (272):  3
    Evdev Third Button Emulation Threshold (273):   20a
    Evdev Wheel Emulation (274):    0
    Evdev Wheel Emulation Axes (275):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (276):    10
    Evdev Wheel Emulation Timeout (277):    200
    Evdev Wheel Emulation Button (278): 4
    Evdev Drag Lock Buttons (279):  0

我已将属性 274 修改为 278,但没有发生任何更改。

我的发行版是Debian Linux,桌面环境是Xfce,计算机是Lenovo Thinkpad X201,尽管这个问题似乎只针对这个鼠标而不是任何这些东西。我是否通过 xinput 方法遗漏了某些内容,或者我应该完全尝试其他方法?

编辑:我应该指定我正在尝试增加鼠标滚轮的速度,最好通过加速,因为目前滚动速度非常慢。

答案1

鼠标滚轮实际上会为您移动滚轮的每个“凹口”生成按钮事件。没有好的方法可以在驱动程序级别上加速(您必须生成时间间隔与真实事件不同的假事件),事实上我从未听说过驱动程序evdev这样做。

一切车轮仿真顾名思义,属性是仿真,即不是真正的物理滚轮。正如evdev手册页所说:

滚轮仿真意味着在按下特定真实按钮的同时移动鼠标时模拟按钮按下/释放事件。

惯性参数旨在控制仿真何时启动,因此鼠标的轻微移动不会意外启动仿真。而且并不是所有的参数都有效,反正只要main车轮仿真属性为零,并且禁用模拟。

另一方面,很容易加速滚动应用:如果较长时间内有滚轮事件,只需增加页面滚动量即可。

因此,如果您想要像 Windows 或 OSX 上那样的行为,则需要更改应用程序。

答案2

我还想增加鼠标滚轮加速度,而不仅仅是绝对速度。这是 MacOSX 中的一项功能,但 Xorg(还有 Wayland)尚未内置。

我在用户空间实现了这样的功能这里(鼠标滚轮加速用户空间)。这会增加滚动速度,或者加快滚动速度。您只需使用您喜欢的选项在后台运行它即可。该代码是非常简单的 Python 代码,并且应该很容易修改。

答案3

https://github.com/albertz/mouse-scroll-wheel-acceleration-userspace- “鼠标滚轮加速,在用户空间实现”。

答案4

我还尝试了xinput set-prop 13 276 40(好吧,我的惯性是278!),认为增加惯性会使其更加“滑行”,但它不起作用。就我而言,我认为我的鼠标可能已经磨损了,因为使用 xkbevd 查看事件表明发生的事件没有我预期的那么多。

现在鼠标售价 8 美元……是时候订购一些了。

相关内容