Logitech G13

来自 ArchWiki

Logitech G13 是罗技游戏系列的 25 键“高级游戏键盘”,旨在在游戏时替代键盘的左半部分。它为主要的 22 个按键使用了橡胶圆顶开关,操纵杆周围的两个按钮使用了类似鼠标的按钮,一个操纵杆(可以按下),四个模式按钮,四个选项按钮,一个菜单按钮和一个背光切换开关。(官方网站[死链接 2024-07-30 ⓘ]

驱动程序有几个选项,但今天似乎只有一个效果良好

  • Wine 下运行官方的 罗技游戏软件。尽管工作正常,但该软件在 WineHQ 上评级为垃圾,因为它实际上无法与 USB 设备通信。(但是,可用的报告非常旧,您可能会有更好的运气)
  • g15daemonAUR,尽管其后端 (libg15) 声称支持 G13,但实际上不支持 G13。
  • linux-g13-driver,如果您编辑 Makefile(参见 问题 #16),它可以编译,并且可能对您有效。
  • g13 g13-gitAUR 是一个用户空间驱动程序,似乎是其中最好的。

安装

安装 g13-gitAUR

这将安装 g13d 守护程序、pbm2lpbm 位图转换器以及一个 systemd 服务,该服务以用户/组 g13 身份运行 g13d。它还将为 udev 设置规则以识别您的 G13 设备,但默认情况下禁用通过连接或拔下设备自动启动和停止服务。

注意
  • 要启用 systemd 服务并在热插拔时自动启动和停止 g13d,您需要取消注释 /usr/lib/udev/rules.d/91-g13.rules 中的底部两行
  • 您还需要取消注释 /usr/lib/udev/rules.d/91-g13.rules 中的 uinput 行,这将为启动时的 /dev/uinput 设置所有者和权限,然后重新启动。

用法

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

原因: 修改 /usr/lib 中的内容既不是永久性的,也不建议这样做。(在 Talk:Logitech G13 中讨论)
注意: 该二进制文件名为 g13d,因为 gnupg 中已经有一个名为 g13 的二进制文件。

按照上述步骤操作后,当您重新启动并启动 g13d(手动或通过 systemd 自动启动)时,您应该会收到一个带有“linux inside”徽标、“G13”和 GNU 徽标的图像。

手动运行会在 stderr 上打印错误,但如果您已启用该服务,则可以查看 g13.service 单元状态

如果您收到错误 /dev/uinput does not grant write permissions,或者如果您绑定的按键未生成任何按键,则运行以下命令应暂时修复它,但在重新启动后会恢复。

# chmod a+rw /dev/uinput
注意: 永久解决方案是取消注释 /usr/lib/udev/rules.d/91-g13.rules 中的相应行,这将为启动时的 /dev/uinput 设置所有者和权限。

配置

注意: 当 g13d 作为 systemd 服务运行时,它使用 /run/g13d/g13-0 而不是默认的 /tmp/g13-0

g13d 配置有两种方式,一种是将命令写入 /run/g13d/g13-0,另一种是最好在启动时读取的配置文件中指定按键绑定和命令。

手动运行 g13d 时,您可以使用 --config 参数指定配置文件,当作为服务运行时,将使用文件 /etc/g13/default.bind

注意: 在大多数情况下,在 /etc/g13/default.bind 中指定默认按键绑定是最简单的选择。但是,请阅读上面关于编辑 /usr/lib/udev/rules.d/91-g13.rules 和取消注释启动和停止 systemd 服务的两行的内容。您可能需要创建 /etc/g13 directory 目录(如果在初始安装期间未创建)。
提示: 可以在此处找到示例 default.bind 文件 [1]

也可以通过手动写入 /run/g13d/g13-0 一次调用一个手动命令

例如,要将显示屏设置为紫色

$ echo "rgb 177 13 201" > /run/g13d/g13-0

g13 还可以一次处理多个命令

$ echo -e "rgb 177 13 201\nbind G4 KEY_W" > /run/g13d/g13-0
提示: g13 可以一次处理多个命令,并将忽略以 # 开头的行。您可以使用它来创建包含命令的文件,并在准备好玩游戏时运行 cat file > /run/g13d/g13-0

命令

rgb

将背光设置为 rgb 颜色,值以十进制表示,范围从 0 到 255。

rgb rrr ggg bbb

例如,要将显示屏设置为绿色

rgb 0 255 0

bind

绑定 G13 按键。默认情况下,所有按键都绑定到 a

bind g13key actual_key

例如,要设置 WASD 移动

bind G4 KEY_W
bind G10 KEY_A
bind G11 KEY_S
bind G12 KEY_D

有关如何配置此项,请参见下文。

mod

设置 M1、M2、M3 和 MR 的背光状态。

mod n

其中 n 是一个位掩码。要找到所需状态,请计算 1 (M1)、2 (M2)、4 (M3) 和 8 (MR) 的总和。

例如,要打开 M1、M3 和 MR,并关闭 M2(1+4+8=13)

mod 13

按键

Keys to map to (should be self explanatory)
KEY_0 KEY_1 KEY_2 KEY_3 KEY_4 KEY_5 KEY_6 KEY_7 KEY_8 KEY_9 KEY_A KEY_APOSTROPHE KEY_B KEY_BACKSLASH KEY_BACKSPACE KEY_C KEY_CAPSLOCK KEY_COMMA KEY_D KEY_DOT KEY_DOWN KEY_E KEY_ENTER KEY_EQUAL KEY_ESC KEY_F KEY_F1 KEY_F10 KEY_F2 KEY_F3 KEY_F4 KEY_F5 KEY_F6 KEY_F7 KEY_F8 KEY_F9 KEY_G KEY_GRAVE KEY_H KEY_I KEY_J KEY_K KEY_KP0 KEY_KP1 KEY_KP2 KEY_KP3 KEY_KP4 KEY_KP5 KEY_KP6 KEY_KP7 KEY_KP8 KEY_KP9 KEY_KPASTERISK KEY_KPDOT KEY_KPMINUS KEY_KPPLUS KEY_L KEY_LEFT KEY_LEFTALT KEY_LEFTBRACE KEY_LEFTCTRL KEY_LEFTSHIFT KEY_M KEY_MINUS KEY_N KEY_NUMLOCK KEY_O KEY_P KEY_Q KEY_R KEY_RIGHT KEY_RIGHTBRACE KEY_RIGHTSHIFT KEY_S KEY_SCROLLLOCK KEY_SEMICOLON KEY_SLASH KEY_SPACE KEY_T KEY_TAB KEY_U KEY_UP KEY_V KEY_W KEY_X KEY_Y KEY_Z
Keys to map
BD DOWN G1 G10 G11 G12 G13 G14 G15 G16 G17 G18 G19 G2 G20 G21 G22 G3 G4 G5 G6 G7 G8 G9 L1 L2 L3 L4 LEFT LIGHT LIGHT_STATE M1 M2 M3 MR TOP STICK_LEFT STICK_RIGHT STICK_UP STICK_DOWN

由于这可能不太容易解释,因此这里有一个图表显示按键在设备上的物理位置

Keypad:
      ______________
     |  160x43 LCD  |
     |              |
      ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
     BD L1 L2 L3 L4 LIGHT_STATE
        M1 M2 M3 MR
G1  G2  G3  G4  G5  G6  G7 
G8  G9  G10 G11 G12 G13 G14
   G15  G16 G17 G18  G19
       G10  G21  G22

Joystick:
 L            STICK_UP
 E  STICK_LEFT  TOP   STICK_RIGHT
 F           STICK_DOWN
 T
               DOWN
提示: 作为一个起点,您可以使用 default.bind,它具有与使用官方软件时的默认配置文件相同的绑定,以及紫色背光。