我在笔记本电脑上使用蓝牙键盘(运行 Fedora 33)。非常烦人的是,为了使用F键,您需要按“Fn”按钮,否则它们将被映射到特殊功能。
我正在尝试跟随这个帖子重新映射它们,但我似乎遗漏了一些东西
如果我运行evtest
,例如按 F4 键(如果我不按 Fn,则该键映射到“复制”)我得到
Input driver version is 1.0.1
Input device ID: bus 0x5 vendor 0x4e8 product 0x7021 version 0x11b
Input device name: "SKBWHBT19 Keyboard"
Supported events:
<long list of events>
Event: time 1615808184.907556, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1615808184.907556, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1615808184.907556, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70006
Event: time 1615808184.907556, type 1 (EV_KEY), code 46 (KEY_C), value 0
Event: time 1615808184.907556, -------------- SYN_REPORT ------------
所以,很明显,F4 正在触发 CTRL+C。我还获得了总线 0005、供应商 04e8 和产品 7021 的代码
我该如何将其重新映射到 F4?
/etc/udev/hwdb.d/bluetooth-keyboard.hwdb
我创建了一个名为以下内容的文件
evdev:input:b0005v04E8p7021
KEYBOARD_KEY_700e0=fn_f4
其次是
systemd-hwdb update
udevadm trigger
但这是行不通的。我不知道如何在其中输入两个扫描码 700e0 和 70006...
我也尝试过类似的东西
KEYBOARD_KEY_70004=b
应该将“a”映射到“b”,但也失败了
编辑:按照@meuh的建议,我在 hwdb 文件第一行的末尾添加了一个 * ,这有效!但是,我只能重新映射单个键,而不能重新映射组合。也就是说,使用扫描码700e0
只能捕获左侧控制,这实际上不起作用,因为现在按 F4 键会触发 F4 + C。此外,按 CTRL 键会触发 C。
有什么方法可以覆盖特定的物理键吗?