linux - 键盘扫描码?

标签 linux text console

GNU/Linux 文本控制台,X11 不涉及,确实连 安装。键盘是美国布局,键盘映射美国默认。核心 版本 2.20.x 或更高版本。

用 C 编写的应用程序正在获取键盘输入 翻译模式,即 XLATEUNICODE。当一个键是 按下,应用程序收到相应的 键串。例如,您按 F1,应用程序 读取 "\033[[A"

在内核将 key 串发送给应用程序之前,它 必须知道按下了哪个键,即它必须知道它的 扫描码。在上面的 F1 示例中,键的扫描码 pressed 是 59 或 0x3b。

也就是说,即使键盘处于翻译模式, 扫描码保存在内存中的某个地方。怎样才能 应用程序访问它们而无需将键盘切换到 RAWMEDIUMRAW 模式?代码片段会有所帮助。

最佳答案

可能是您在错误的文件描述符上发出 ioctl 命令,检查从 ioctl 和 tcsetattr 返回的错误代码。

您应该打开控制台设备,然后在该设备上发出键盘转换命令。您基本上必须模仿 X 服务器正在做的事情。

这是源代码的链接 codesearch.google.com .

关于linux - 键盘扫描码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/90704/

相关文章:

html - float 图像上的文本

javascript - 如何在 chrome 控制台中递归探索数组

linux - 考虑重复项后保留最新/最近的行

linux - 如何显示变量中存储的日期的前后一天?

linux - amazon linux ami 的启动脚本

c# - VS 如何编译控制台应用程序以显示 "Press any key to continue"?

linux - 搜索和替换文件 (Linux)

linux - 以 root 身份更改/etc/ld.conf.so.d 的替代方案?

html - 垂直居中和居中对齐文本并为 div 添加边距?我迷路了

html - 网站在手机上看起来不一样