我正在 Arch Linux、Xfce 4.12 上运行。
我的鼠标滚轮滚动太慢,所以我想增加每次滚动“刻度”的行数。我读到可以通过设置Evdev Scrolling Distance
with 来实现这一点xinput
,但是,我正在使用libinput
并且没有看到任何与滚动距离相关的内容。
我的鼠标上的输出xinput list-props
:
Device Enabled (139): 1
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (275): -0.640000
libinput Accel Speed Default (276): 0.000000
libinput Accel Profiles Available (277): 1, 1
libinput Accel Profile Enabled (278): 1, 0
libinput Accel Profile Enabled Default (279): 1, 0
libinput Natural Scrolling Enabled (280): 0
libinput Natural Scrolling Enabled Default (281): 0
libinput Send Events Modes Available (259): 1, 0
libinput Send Events Mode Enabled (260): 0, 0
libinput Send Events Mode Enabled Default (261): 0, 0
libinput Left Handed Enabled (282): 0
libinput Left Handed Enabled Default (283): 0
libinput Scroll Methods Available (284): 0, 0, 1
libinput Scroll Method Enabled (285): 0, 0, 0
libinput Scroll Method Enabled Default (286): 0, 0, 0
libinput Button Scrolling Button (287): 2
libinput Button Scrolling Button Default (288): 274
libinput Middle Emulation Enabled (289): 0
libinput Middle Emulation Enabled Default (290): 0
Device Node (262): "/dev/input/event1"
Device Product ID (263): 1133, 50487
libinput Drag Lock Buttons (291): <no items>
libinput Horizonal Scroll Enabled (264): 1
如何更改滚动速度?
答案1
库输入没有任何类型的“对于每个滚轮,做n线/度”概念作为一个共同方,该设置目前似乎是特定于设备的,因为某些罗技Evdev Scrolling Distance (278)
具有可能随“旧”Evdev 驱动程序附带的参数。
这将被视为回归对于我看来的用户体验,最初将可配置的鼠标滚动灵敏度纳入通用工具包(libinput)被拒绝,现在它是拉取请求在未来的版本中 - 可能必须在每个桌面环境中实现函数调用。
解决此类问题的可能性有很多,但取决于 Linux 发行版。
幸运的是,具有特定于驱动程序的滚动灵敏度 - 通过搜索带有滚动变量的所有输入进行检查:
x输入列表|切-f2 |切-f2-d'='| \ xargs -d $'\n' -I'{}' sh -c "xinput list-props'{}' | grep -iq scroll && \ (echo Listing dev id '{}'; xinput list-props '{}')"
并通过设置特定变量,其中xinput --set-prop <ID> <SUB-ID> <values>
<ID>
可以是设备名称和<SUB-ID>
可以是设置名称。您可以尝试使用 X11 回滚到 udevadm/evdev 接口,然后尝试 X11 变量MOUSE_WHEEL_CLICK_ANGLE。
从最后一项的参考,可以使用
imwheel
模拟鼠标滚动点击乘法值。# Should use imwheel --kill --buttons "4 5" to restart imwheel, # if the mouse has back/forward buttons, otherwhise imwheel --kill is enough. # imwheel must be set to autostart in your DE tools. #Edit ~/.imwheelrc to include, where '3' is a multiplier ".*" None, Up, Button4, 3 None, Down, Button5, 3 Control_L, Up, Control_L|Button4 Control_L, Down, Control_L|Button5 Shift_L, Up, Shift_L|Button4 Shift_L, Down, Shift_L|Button5
鼠标滚轮灵敏度有特定的应用程序设置,例如Chrome 平滑滚动和火狐平滑轮 参考。
答案2
当前没有用于更改 libinput 设备滚动速度的 api,但是这个博客解释了鼠标滚轮点击如何对应于您可以在 systemd 的 udev 配置文件中更改每个鼠标的移动角度/usr/lib/udev/hwdb.d/70-mouse.hwdb
。阅读MOUSE_WHEEL_CLICK_ANGLE
此文件开头的注释。
要进行本地更改,请创建一个新文件
/etc/udev/hwdb.d/71-mouse-local.hwdb
并添加您的首要规则。例如,如果您有 ImExPS/2 鼠标,则可以将每次单击的默认 15 度加倍到 30 度
# ImExPS/2 Logitech Wheel Mouse
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
MOUSE_DPI=400@250
MOUSE_WHEEL_CLICK_ANGLE=30
重新加载udev数据库
sudo udevadm hwdb --update
sudo udevadm trigger /dev/input/event1
答案3
您可以使用以下方法使滚动的“步长”变小,从而使滚动整体变慢:
xinput --set-prop "YOUR TOUCHPAD" "libinput Scrolling Pixel Distance" YOUR_SPEED
添加Option "ScrollPixelDistance" "YOUR_SPEED"
到触控板的 xorg conf 中以使其永久化。
以下是更多信息的文档:
https://man.archlinux.org/man/libinput.4#SCROLL_PIXEL_DISTANCE