所以我有一台 Acer Nitro 笔记本电脑,我在运行 cinnamon DE 时安装了 debian bookworm。这款笔记本电脑的数字键盘旁有一个特殊的“Nitro Sense”键。当你在 Windows 中按下这个键时,acer 的臃肿会在整个机器上传播,但在 Linux 上它会发送键码 425(KEY_PRESENTATION)。
我想要这个键打开一个终端,所以我尝试进行 xmodmap 配置,但似乎只有 0-255 之间的键码可以在那里工作。我知道这一点是因为/usr/share/X11/xkb/keycodes/evdev
这里定义了:
// Key codes below cannot be used in X
<I433> = 433; // #define KEY_PRESENTATION 425
所以现在我尝试使用 udev 将 KEY_PRESENTATION 重新映射到 4 个 KEY_PROG 键之一,但运气不太好。
我正在创建一个新文件,/etc/udev/hwdb.d/99-acer-nitro-nitrosense-key-remap.hwdb
其中包含以下内容:
evdev:input:b0011v0001p0001eAB41*
KEYBOARD_KEY_f5=prog3
我根据设备的总线类型、产品、供应商和版本的输出构建了输入:
$ ls /sys/class/input/event0/device/id
bustype product vendor version
$ cat /sys/class/input/event0/device/id/*
0011
0001
0001
ab41
然后,我运行这些命令,更新 initramfs,然后重新启动计算机:
systemd-hwdb update
(i have also tried running: udevadm hwdb --update)
udevadm trigger /dev/input/event0
但重新启动机器后,当我运行时,udevadm info /sys/class/input/event0
我看到这一行KEYBOARD_KEY_f5=演示文稿代替KEYBOARD_KEY_f5=prog3
我在用KEYBOARD_KEY_f5因为当我运行 evtest 时,当我按下按键时,我会得到以下输出:
Event: time 1675476830.534080, -------------- SYN_REPORT ------------
Event: time 1675476831.052993, type 4 (EV_MSC), code 4 (MSC_SCAN), value f5
Event: time 1675476831.052993, type 1 (EV_KEY), code 425 (KEY_PRESENTATION), value 1
Event: time 1675476831.052993, -------------- SYN_REPORT ------------
Event: time 1675476831.166335, type 4 (EV_MSC), code 4 (MSC_SCAN), value f5
Event: time 1675476831.166335, type 1 (EV_KEY), code 425 (KEY_PRESENTATION), value 0
Event: time 1675476831.166335, -------------- SYN_REPORT ------------
我不知道下一步该尝试什么。任何帮助将不胜感激。
答案1
您的键盘可能算作 AT 键盘,而不是 USB 键盘(请运行sudo evemu-describe
以确保)。只需编写一条适用于任何 AT 键盘的规则:
evdev:atkbd:*
KEYBOARD_KEY_f5=prog3