我应该如何在 14.04 中配置 Kinesis Savant Elite/USB 踏板?

我应该如何在 14.04 中配置 Kinesis Savant Elite/USB 踏板?

我将其用作独立 USB 设备。默认情况下,踏板映射到左键/中键/右键单击。理想情况下,我会将它们映射到 Esc、Ctrl 和 Shift。

尽管 xinput 将其列为键盘(也是鼠标),但我不知道如何将其配置为键盘。

$ xinput list | grep pedal
   ↳ Kinesis  Footpedal                         id=10   [slave  pointer  (2)]
   ↳ Kinesis  Footpedal                         id=9    [slave  keyboard (3)]

我尝试将其鼠标按钮映射到未使用的索引(xinput set-button-map 10 10 11 12),然后使用 imwheel 将结果映射到我真正想要的东西,但尽管有文档,imwheel 似乎不支持为除普通鼠标按钮(左/右/中/向上滚动/向下滚动/拇指 1/拇指 2)之外的任何内容制作热键。

答案1

要对 Savant Elite 脚踏开关进行编程,需要在 Windows 32 位计算机上安装编程驱动程序(http://kinesis-ergo.com/wp-content/uploads/2014/01/xkeyswxp.exe)。该驱动程序不兼容任何其他操作系统,也不兼容 64 位 Windows。安装后,可以对其进行编程以执行键盘命令(编程说明位于用户手册中)。编程后,该信息将存储在设备中,然后可以连接到 Linux 计算机,它将完全按照编程运行。

顺便说一句,这是停产的产品,已经过时了。目前Savant Elite2与包括 Linux 在内的所有操作系统完全兼容,并且可以更轻松地进行编程(无需用户使用驱动程序)。

答案2

将设备的鼠标按钮映射到未使用的鼠标按钮,然后使用 xbindkeys 来引用这些按钮。

  1. 用于xinput list查找您的设备的 ID。
  2. 使用xinput set-button-map将按钮重新映射到其他鼠标按钮。例如,如果xinput list指示您的设备 ID 为 15,并且您的设备有四个按钮,请执行xinput set-button-map 15 10 11 12 13。现在您已将设备 15 的鼠标点击设置为 b:10、b:11、b:12 和 b:13。
  3. 更新您的 .xbindkeysrc 以将这些按钮重新映射到您想要的快捷方式。

    #xte 'key Escape'"
     b:10
    
  4. 运行killall -HUP xbindkeys以刷新密钥。

答案3

尝试以下操作,将扫描码重新映射到您选择的键码:

sudo tee "/etc/udev/hwdb.d/10-kinesis-savant.hwdb" > /dev/null <<'EOF'
evdev:input:b0003v05F3p030Ce0100*
  KEYBOARD_KEY_700E0=unknown
  KEYBOARD_KEY_700E2=unknown
  KEYBOARD_KEY_70021=capslock  # left pedal
  KEYBOARD_KEY_70022=leftshift # middle pedal
  KEYBOARD_KEY_70023=leftctrl  # right pedal
EOF

sudo udevadm hwdb --update
sudo udevadm trigger
xmodmap ~/.Xmodmap

默认情况下,踏板将为三个按键组合发送三个扫描码。所有三个踏板都会为前两个按键发送相同的扫描码,为最后一个按键发送一个唯一的扫描码。前两个映射通过将前两个扫描码映射到未知按键来解决此问题。

要检查扫描码,请使用evtest

如果这不起作用,请检查 evdev 匹配b0003v05F3p030Ce0100是否正确。

更多信息请参阅: https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes

相关内容