我在 Debian Buster 中弄乱了扫描码和键码,我发现了一些奇怪的东西。
使用sudo showkey -s
我发现我的 USB 有线键盘的 PrintScreen/SysRq 键的扫描码是
0xe0 0x2a 0xe0 0x37 0xe0 0xaa 0xe0 0xb7
,
也就是说,0xe0 0x2a 0xe0 0x37
是按下它和0xe0 0xaa 0xe0 0xb7
释放它的代码。
我的第一个问题是:为什么它使用两个扫描码(0xe0 0x2a
和0xe0 0x37
)?这与其他扫描码不冲突吗?使用未使用的扫描码不是更聪明吗?
使用sudo showkey -k
我发现 PrintScreen/SysRq 与内核键码相关联99
,但是当我运行时sudo getkeycodes
,没有 X 键码的条目107
。
的输出sudo getkeycodes
是
Códigos de varredura planos xx (hex) versus códigos de teclas (dec)
0 é um erro; para 1-88 (001-0x58) código de varredura igual a código de tecla
0x58: 88 - - - 185 238 - -
0x60: - - - - - - - -
0x68: - - - 191 - - - -
0x70: - - - - - - - -
0x78: - - - - - - - -
Códigos de varredura escapados e0 xx (hex)
e0 00: - - 212 533 - - - -
e0 08: 238 - - - - - - -
e0 10: - - - - - - - -
e0 18: - - - - - - - -
e0 20: - - - - - - - -
e0 28: - - - - - - - -
e0 30: - - - - - - - -
e0 38: - - - - - 212 - -
e0 40: - - - - - - - -
e0 48: - - - - 227 - - -
e0 50: - - - - - - - -
e0 58: - - - - - - - -
e0 60: 148 184 - - 171 - - -
e0 68: 152 431 - 534 535 536 537 538
e0 70: - - - 139 - 172 1 -
e0 78: - - - - - - - -
我的第二个问题是:如果上述输出中没有条目,PrintScreen/SysRq 从扫描码到键码的映射如何工作?
如有必要,我可以提供任何其他信息。
谢谢大家。
编辑 1:我意识到这种扫描码组合与 press 冲突Shift+ (Ctrl-PrtScn)
,我确认Shift
扫描码是0x2a 0xaa
通过运行sudo showkey -s
,我在本文档中(Ctrl-PrtScn)
找到了代码。
我已经搜索/usr/lib/udev/hwdb.d/60-keyboard.hwdb
过这张地图,但没有找到任何东西。