跳转至内容

General purpose mouse

来自 ArchWiki
(重定向自 Console mouse support)

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 个按钮,请将 -2 传递给 GPM_ARGS,第二个按钮将执行粘贴功能。

找到合适的配置后,启动启用 gpm.service

更多信息请参阅 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

找到合适的配置后,启动启用 gpm.service

参见