在GNU/Linux中修改T9键盘映射

2021-05-24 更新:删除了以前用的键位映射的方法,因为旧方法是改变系统设置,单手键盘与电脑键盘上的键位一同改变。
新方法是只改变指定硬件的键位,也就是只改变T9单手键盘的键位,不会影响到电脑键盘。

T9

在Xubuntu系统中,按 Ctrl+Alt+T 打开终端:

  • 安装 evtest:sudo apt install evtest
  • 继续命令:sudo evtest,会看到所有设备的列表,“HID 0433:0004”就是T9单手键盘,这时输入它的编号。(HID的前面,每次都不同)
  • 继续操作,在列出所有按键信息后,显示Testing ...,这时按T9单手键盘上需要改动的键位,就会列出按键的信息。

    F1F3F4F6,按键信息为:

    Event: time 1621842064.020258, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7003a
    Event: time 1621842064.020258, type 1 (EV_KEY), code 59 (KEY_F1), value 0
    Event: time 1621842064.020258, -------------- SYN_REPORT ------------
    Event: time 1621842073.220187, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7003c
    Event: time 1621842073.220187, type 1 (EV_KEY), code 61 (KEY_F3), value 0
    Event: time 1621842073.220187, -------------- SYN_REPORT ------------
    Event: time 1621842075.236176, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7003d
    Event: time 1621842075.236176, type 1 (EV_KEY), code 62 (KEY_F4), value 0
    Event: time 1621842075.236176, -------------- SYN_REPORT ------------
    Event: time 1621842077.148162, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7003f
    Event: time 1621842077.148162, type 1 (EV_KEY), code 64 (KEY_F6), value 0
    

但这时按T9单手键盘的 音量减VOL-音量加VOL+ 按键时没有反映,因为这些键位在另一个HID中。
Ctrl+C 终止以上操作,再次使用命令sudo evtest,输入“HID 0433:0004 Consumer Control”的编号。(HID的前面,每次都不同)

  • 音量减VOL-音量加VOL+,按键信息为:

    Event: time 1621842580.201548, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00ea
    Event: time 1621842580.201548, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0
    Event: time 1621842580.201548, -------------- SYN_REPORT ------------
    Event: time 1621842583.329525, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00e9
    Event: time 1621842583.329525, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 0
    

Ctrl+C 终止以上操作。

以上就是我们需要的键位信息,(EV_MSC), code 4 (MSC_SCAN), value 7003a 中的7003a是需要使用的键位码号。
样式为:KEYBOARD_KEY_7003a,其他按键替换键位码号即可。


在列出的T9单手键盘的设备列表中可以看到设备的evdev:input信息:

Input device ID: bus 0x3 vendor 0x433 product 0x4 version 0x111
Input device name: "HID 0433:0004"

使用的样式为:b0003v0433p0004e0111-e0*,b0003、v0433、p0004、e0111:
0003是USB键盘通用的数值,04330004就是Input device name中的数值,0111Input device ID中的version值,x不需要填写

  • 在终端中输入:vi 99-mykeyboard.hwdb,按回车键后,复制下方代码,然后在终端中按 MMB/鼠标中键Shift+INS 进行粘贴:
evdev:input:b0003v0433p0004e0111-e0*
 KEYBOARD_KEY_7003a=enter
 KEYBOARD_KEY_7003c=minus
 KEYBOARD_KEY_7003d=kpplus
 KEYBOARD_KEY_7003f=backspace
 KEYBOARD_KEY_c00ea=btn_right
 KEYBOARD_KEY_c00e9=btn_middle

Esc,按 :(Shift+;)、输入 wq 再按 Enter,完成操作。

KEYBOARD_KEY_7003a=enter的意思是将 F1 改为Enter/回车键enter等键位的名字可以在终端中列出的信息中搜到,需要使用小写。

  • 继续命令:sudo cp 99-mykeyboard.hwdb /etc/udev/hwdb.d
    sudo systemd-hwdb update && sudo udevadm control --reload && sudo udevadm trigger

T9

现在T9单手键盘的键鼠位映射已经完成,并实时生效,不需要重启系统,修改也不会影响到电脑键盘~太酷了!

参考/Reference:https://github.com/DIGImend/digimend-kernel-drivers/issues/474

森林OS (SenlinOS) avatar
森林OS (SenlinOS)
Comics Art with GNU/Linux
yuyu
yuyu1
Up