我一直在使用键盘来重新映射某些键并创建宏等。
我了解键盘(通过 USB,我指的是带有 USB 键盘的台式计算机)提供了一个scancode
依赖于键盘的功能,根据由各种 hwdb 资源组成的规则映射到键描述符或键代码。然后这些键码由操作系统解释。
我发现evtest
直接从键盘给出最好的结果,因为它包含键盘扫描码、键码和键符号,所有这些都在一个整洁的小输出中。为了使其更干净,我通常grep
将输出变得更加整洁:
sudo evtest | grep -B1 "value 1"
然而,xmodmap 和各种应用程序使用的代码是作为输出的代码(以及如果输出) y xev
。我没有很好的grep
for xev
,我只是按键盘事件进行过滤:
xev -event keyboard
这个问题涉及
- 是否存在
MIN_KEYCODE
设置为 以外的键盘8
? - 从链接的问题中,我看到它
MIN_KEYCODE
在第 72 行进行了硬编码https://cgit.freedesktop.org/xorg/driver/xf86-input-evdev/tree/src/evdev.c xev
为什么vs生成的键码存在差异evtest
我确信有人会认为这是因为前 8 个代码被保留,但这应该是无关紧要的,不是吗?键码,无论是否保留,是否不应该作为原始代码输出,而不是转置的值(无论是任意值还是固定值)并可能导致错误?
我真的只是想理解为什么有些程序输出和为什么有些系统需要 8 输出的输入之间的差异,以及如何在我的脑海中认可这种不一致。