鼠标加速度

来自 Arch Linux 中文维基

禁用鼠标加速度[编辑 | 编辑源代码]

使用 XorgArch Linuxlibinput 设置为默认驱动,位于

"/usr/share/X11/xorg.conf.d/40-libinput.conf"

为了激活我们的指针设备的flat(平坦)配置文件,我们需要将 flat 设置为 1,并将 adaptive(自适应)和 custom(自定义)配置文件选项设置为 0

找出您的设备 ID。

# xinput

第一个数字表示默认的加速度配置文件,第二个数字表示平坦配置文件(无加速度),第三个数字表示自定义配置文件。要激活平坦配置文件:

# xinput set-prop "deviceid" "libinput Accel Profile Enabled" 0 1 0

确认更改:

# xinput list-props "deviceid"

通过在 /usr/share/X11/xorg.conf.d/40-libinput.conf 中的指针部分添加选项来使其持久化。

/usr/share/X11/xorg.conf.d/40-libinput.conf
 Section "InputClass"
  Identifier "libinput pointer catchall"
  MatchIsPointer "on"
  MatchDevicePath "/dev/input/event*"
  Driver "libinput"
  Option "AccelProfile" "flat"
 EndSection

配置鼠标加速度[编辑 | 编辑源代码]

本文或本章节的事实准确性存在争议。

原因: 配置取决于输入驱动,在 Xorg 中可以使用 libinput。每个子部分应明确指出假定的驱动。(在 Talk:鼠标加速度 中讨论)


设置鼠标加速度取决于您使用的窗口协议:Xorg 或 Wayland。

  • Xorg 上,有几种设置鼠标加速度的方法:
  • 如果您使用的是 Wayland,则事件通过 libinput 控制。这是合成器的工作,以暴露 libinput 带来的设置。目前还没有一种标准的方式来跨合成器更改设置。[1]
  • GNOME 自行管理鼠标加速度。可以通过安装 dconf-editor 并编辑 org/gnome/desktop/peripherals/mouse/acceleration-profile 的值,在 adaptive(自适应)和 flat(平坦)配置文件之间进行选择。或者,也可以使用 gnome-tweaks 来编辑 org/gnome/desktop/peripherals/mouse/acceleration-profile

使用 libinput 配置鼠标加速度[编辑 | 编辑源代码]

当使用自适应指针加速度配置文件时,libinput 根据 DPI 和参数 Acceleration Speed [2] 来计算鼠标加速度。libinput 依赖于 xf86-input-evdev [3] 报告的分辨率。使用 xset m 设置的反馈设置实际上被忽略了。当使用平坦指针加速度配置文件时,加速度因子是恒定的,不论指针的速度如何。这提供了设备和屏幕上指针之间的 1:1 移动比例。

更改加速度[编辑 | 编辑源代码]

使用 xinput list 查找您的设备 ID,并使用以下命令设置加速度。请注意,加速度必须在 [-1,1] 的范围内。查看这个图表以了解不同加速度值的影响。

$ xinput --set-prop <device id> 'libinput Accel Speed' <acceleration factor>

使用以下命令确认您的更改:

$ xinput --list-props <device id>

持久化配置[编辑 | 编辑源代码]

libinput 本身不存储配置选项,由调用者管理这些配置。在 Wayland 下,桌面环境会恢复配置。在 Xorg 下,xf86-input-libinput 读取 Xorg 配置文件并应用选项 [4]。为了在 Xorg 下使更改持久化,可以创建如下的配置文件:

/etc/X11/xorg.conf.d/99-libinput-custom-config.conf
Section "InputClass"
  Identifier "<用于标识此片段的名称>"
  MatchDriver "libinput"
  MatchProduct "<设备名称的子字符串>"
  Option "AccelSpeed" "<例如 0.3>"
EndSection

更多选项请参见 libinput(4)

设置鼠标加速度[编辑 | 编辑源代码]

在 Xorg 配置中[编辑 | 编辑源代码]

详见 xorg.conf(5)

示例:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf
Section "InputClass"
	Identifier "我的鼠标"
	MatchIsPointer "yes"
# 分别设置为 1 1 0 以禁用加速度。
	Option "AccelerationNumerator" "2"
	Option "AccelerationDenominator" "1"
	Option "AccelerationThreshold" "4"
EndSection
/etc/X11/xorg.conf.d/50-mouse-deceleration.conf
Section "InputClass"
	Identifier "我的鼠标"
	MatchIsPointer "yes"
# 一些曲线减速
#	Option "AdaptiveDeceleration" "2"
# 线性减速(鼠标速度降低)
	Option "ConstantDeceleration" "2"
EndSection

您也可以通过在类部分中使用MatchProductMatchVendor 等匹配项来为特定硬件分配设置。运行 lsusb 来找出要匹配的产品名称和供应商:

$ lsusb -v | grep -e idProduct -e idVendor

如果您无法识别您的设备,尝试运行 xinput list。一些使用罗技优联接收器的设备共享相同的 USB 连接,因此鼠标在使用 lsusb 时可能不出现。

使用 xinput[编辑 | 编辑源代码]

首先,获取已连接设备的列表(忽略任何虚拟指针):

$ xinput list

记下设备 ID。如果 ID 容易变化,也可以在命令中使用设备全名。

使用以下命令获取可修改的属性及其当前值的列表:

$ xinput list-props 9

其中 9 是您要使用的设备的 ID。或者

$ xinput list-props "鼠标名称"

其中 鼠标名称 是由 xinput list 提供的鼠标名称。

例如,将 Constant Deceleration 属性更改为 2:

$ xinput list-props 9
Device '鼠标名称':
       Device Enabled (121):   1
       Device Accel Profile (240):     0
       Device Accel Constant Deceleration (241):       1.000000
       Device Accel Adaptive Deceleration (243):       1.000000
       Device Accel Velocity Scaling (244):    10.000000
$ xinput --set-prop "鼠标名称" "Device Accel Constant Deceleration" 2

要使其永久生效,编辑 Xorg 配置文件(见上文)或将命令添加到 xprofile。后者不会影响在显示管理器中的速度。

配置示例[编辑 | 编辑源代码]

您可能需要使用不止一种方法来实现您想要的鼠标设置。以下是我为一个通用光学鼠标配置的步骤: 首先,将默认移动速度减慢 3 倍,使其更精确。

$ xinput --set-prop 9 'Device Accel Constant Deceleration' 3 &

然后,启用加速度,并在移动超过 6 个单位后使其速度提高 3 倍。

$ xset mouse 3 6 &

如果您对结果满意,将上述命令存储在 ~/.xinitrc 中。