更好地理解键盘事件 | rugu

主要观点:作者通过创建 Node.js 模块来监听 Linux 系统上的键盘按键,以此理解操作系统和窗口管理器如何处理键盘输入,解决了之前遇到的意外行为问题,并探讨了相关的键盘事件处理方式及更好的方法。
关键信息

  • 许多 VIM 用户将 Escape 键映射到 Caps Lock 键,但某些应用对该映射不响应。
  • 作者寻找能在 Linux 上监听系统级键盘事件的 Node.js 库,最终创建自己的模块使用xinput
  • xinput可列出连接的输入设备,通过xinput test监听特定设备,其提供的 X Key Codes 与 Linux Input Event Codes 有关但递增 8。
  • 可通过xmodmap -pke查看 X Key Codes 和 X KeySyms 的映射,作者以此创建监听键盘事件的模块。
  • 发现 showkey 工具可监听按键,使用其创建类似脚本可能是更好的方法,且通过 Linux 输入事件代码的源代码可创建映射。
    重要细节
  • 作者在 Linux 和 Windows 电脑上都遇到应用对键映射不响应的问题,说明该问题与操作系统无关。
  • 作者创建的 Node.js 模块为Node XInput Events
  • 常规监听系统级键盘事件应使用 X 库与 X 服务器交互,作者因无法在电脑上构建 nodeJS x11 库而未深入研究。
  • 从内核层看只有 keycodes,操作系统通过配置文件赋予其意义,通常在窗口管理层更改设置更方便。
阅读 11
0 条评论