General purpose mouse
GPM,是 General Purpose Mouse 的缩写,是一个为 Linux 虚拟控制台提供鼠标支持的守护进程。
安装
安装 gpm 包。关于笔记本电脑的触摸板支持,请参阅 Laptop#Touchpad。
配置
-m 参数用于指定要使用的鼠标。-t 参数用于指定鼠标的类型。要获取 -t 选项的可用类型列表,请运行 gpm 并带上 -t help。
# gpm -m /dev/input/mice -t help
gpm 包需要使用一些参数来启动。这些参数可以 创建 文件 /etc/conf.d/gpm 来记录,或者在直接运行 gpm 时使用。gpm.service 包含 USB 鼠标的参数(ExecStart=/usr/bin/gpm -m /dev/input/mice -t imps2)。
显然,如果存在其他鼠标类型,并且使用了该服务,那么应该以一种 对 systemd 友好的方式 来编辑它。
- 对于 PS/2 鼠标,参数是
-m /dev/psaux -t ps2
- IBM Trackpoints 需要
-m /dev/input/mice -t ps2
-2 传递给 GPM_ARGS,第二个按钮将执行粘贴功能。更多信息请参阅 gpm(8)。
QEMU 或 VirtualBox
QEMU 和 VirtualBox 默认模拟的鼠标在 gpm 和 x 中都存在严重的定位和点击问题。定位会与主机不同步,因此存在一些区域无法在不反复进出窗口的情况下进行悬停。点击会在与光标显示位置不同的位置注册。
QEMU 和 VirtualBox 都通过提供 USB 平板电脑的仿真来解决这个问题,该仿真提供绝对定位。(libvirt 会自动使用此功能。)
然而,gpm 只知道如何在相对定位模式下使用模拟鼠标,因此这些问题仍然存在。尝试通过 -t 使用其他类型会无法正常工作。
gpm-vmAUR 包含一个数年前的 pull request,用于为 VirtualBox(在 QEMU 下也适用)添加 USB 平板电脑支持,并修改 gpm.service 文件以默认使用它。
您可能需要更改使用的事件。(将原始的 -m /dev/input/mice 传递给 gpm 将不起作用。)默认情况下
/etc/gpm-vm.conf
event="/dev/input/event2"
您可以通过安装 evtest 并运行来确定要使用的事件
# evtest
... /dev/input/event2: QEMU QEMU USB Tablet ...
如果您需要为 gpm 提供额外的选项,可以在 /etc/gpm-vm.conf 中设置 additional_args。
参见
- Gentoo:GPM
- consolationAUR 基于 libinput 的替代方案