重新映射脚踏开关的键

重新映射脚踏开关的键

我买了一个简单的脚踏开关,并试图将按键重新映射到其他按键上。目前,脚踏开关已绑定到键码 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 重新映射它。

相关内容