我将其用作独立 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 来引用这些按钮。
- 用于
xinput list
查找您的设备的 ID。 - 使用
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。 更新您的 .xbindkeysrc 以将这些按钮重新映射到您想要的快捷方式。
#xte 'key Escape'" b:10
运行
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