我买了一个简单的脚踏开关,并试图将按键重新映射到其他按键上。目前,脚踏开关已绑定到键码 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)]
我做错了什么?有人能给我指出正确的方向吗?
答案1
经过很多麻烦和按键重新绑定,无法使用 xkbcomp(即使它可以与其他任何键盘一起使用。可能是因为脚踏开关被视为鼠标)后,我找到了一个小型终端程序,可以完全解决问题并且易于使用。
该程序名为footswitch
作者 Radoslav Gerganov。
您可以通过运行以下命令来安装它:
sudo apt-get install libhidapi-dev
git clone https://github.com/rgerganov/footswitch.git
cd footswitch
make
sudo make install
安装后,您可以使用 读取脚踏开关按键,sudo footswitch -r
并使用 重新编程sudo footswitch -k <key>
。所有预编程按键均可在 中找到common.c
。
编辑:这种重新映射本质上是对脚踏开关的重新编程,它会影响 PC 上的脚踏开关。因此,如果您使用此功能并且想要在 Windows 中使用不同的键,则每次在 Linux 或 Mac 中更改脚踏开关键时,您都必须为 Windows 重新映射它。