我买了一个简单的脚踏开关,我一直在尝试将钥匙重新映射到其他东西。目前脚踏开关绑定到键码 56(字母 b)。当我按下脚踏开关时,xev 返回以下内容:
KeyPress event, serial 36, synthetic NO, window 0x1000001,
root 0x81, subw 0x0, time 29926629, (-485,502), root:(713,618),
state 0x10, keycode 56 (keysym 0x62, b), same_screen YES,
XLookupString gives 1 bytes: (62) "b"
XmbLookupString gives 1 bytes: (62) "b"
XFilterEvent returns: False
KeyRelease event, serial 36, synthetic NO, window 0x1000001,
root 0x81, subw 0x0, time 29927029, (-485,502), root:(713,618),
state 0x10, keycode 56 (keysym 0x62, b), same_screen YES,
XLookupString gives 1 bytes: (62) "b"
XFilterEvent returns: False
我不想为我所有的键盘重新映射我的“b”键,所以我一直在努力让 xkbcomp 工作。
我已经尝试手动编辑布局并使用但注意到更改xkbcomp -i 14 ~/Documents/footswitchlayout.xkb $DISPLAY
来激活它。xkbcomp -i 1 $DISPLAY ~/Documents/footswitchlayout.xkb
它仍然键入“b”键。
xinput 返回
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ A4Tech PS/2+USB Mouse id=13 [slave pointer (2)]
⎜ ↳ RDing FootSwitch1F1. id=14 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ Laptop_Integrated_Webcam_2HDM id=11 [slave keyboard (3)]
↳ DELL Dell QuietKey Keyboard id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=15 [slave keyboard (3)]
↳ Dell WMI hotkeys id=17 [slave keyboard (3)]
我究竟做错了什么?谁能指出我正确的方向?
经过很多麻烦和按键重新绑定,xkbcomp 无法使用(即使它可以与任何其他键盘一起使用。可能是因为脚踏开关被视为鼠标)我找到了一个小终端程序,它可以完全解决问题并且易于使用。
该程序
footswitch
由 Radoslav Gerganov 调用。您可以通过运行以下命令来安装它:
安装后,您可以使用 读取脚踏开关按键
sudo footswitch -r
并使用 重新编程sudo footswitch -k <key>
。所有预编程的键都可以在 中找到common.c
。编辑:这种重新映射本质上是对脚踏开关的重新编程,它会影响 PC上的脚踏开关。因此,如果您使用它并且想要在 Windows 中使用不同的键,则每次在 linux 或 mac 中更改脚踏开关键时,您都必须为 Windows 重新映射它。