我使用的是 Deco Pro 平板电脑附带的 XP Pen Shortcut Remote,它有一个拨号盘和 10 个按键。默认情况下,每个按键(和拨号盘)都映射到一个键盘按键。例如,按下左上角的键会发送 Ctrl+O 按键。
使用时sudo evtest
您可以看到按下一次按钮时的两个不同的键代码:
Event: time 1711486381.107788, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1711486381.107788, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1711486381.107788, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70012
Event: time 1711486381.107788, type 1 (EV_KEY), code 24 (KEY_O), value 1
Event: time 1711486381.107788, -------------- SYN_REPORT ------------
^OEvent: time 1711486381.197735, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1711486381.197735, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1711486381.197735, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70012
Event: time 1711486381.197735, type 1 (EV_KEY), code 24 (KEY_O), value 0
Event: time 1711486381.197735, -------------- SYN_REPORT ------------
所以我不太清楚如何重新映射这个特定按钮(以及其他类似按钮)。因为据我所知,xkb、kmonad 甚至 evdev 重新映射等方法都是基于单次按钮按下发送的唯一键码。
XP-Pen 网站上有一个适用于 Linux 的驱动程序,允许您重新映射这些按钮,但仅当驱动程序运行时,它才允许您将这些配置保存到键盘遥控器本身中。
我想知道是否有可能绕过这个问题,因为我不想求助于他们的专有软件。有没有办法知道哪个按钮被点击并重新映射它?