什么是原始键盘模式?

什么是原始键盘模式?

在里面魔法系统alt+sysrq+r按键组合,根据维基百科,有一种组合可以执行以下操作:

将键盘从原始模式(X11 和 svgalib 等程序使用的模式)切换到 XLATE 模式

什么是原始模式?什么是 XLATE 模式?

切换到 XLATE 模式后是否可以切换回原始模式?

如何判断我的键盘处于哪种模式?

答案1

当您按下键盘上的某个键时,它会向计算机发送一个数字代码,称为扫描代码。扫描码告诉计算机按下了哪个键;例如,在典型的美式键盘上,A按下该键时会发送扫描码 30(松开该键时会发送扫描码 158)。当键盘处于原始模式时,键盘驱动程序将这些代码直接报告给应用程序(“原始”意味着未经处理、直接脱离键盘)。一些程序使用原始模式并进行自己的键盘处理;这X服务器是最突出的一个。

大多数程序期望当您按下该A键时,程序读取字符a(ASCII 97),当您按下Shift+时A,程序读取A(ASCII 65),当您按下Ctrl+时A,程序读取Ctrl+A字符 (ASCII 1)。没有关联字符的键会发送转义序列,例如\e[Afor Left,其中\e是 ESC 字符 (ASCII 27)。当键盘处于 ASCII 模式(也称为 XLATE 模式(“translate”的缩写))时,键盘驱动程序会执行此转换。 XLATE 模式允许应用程序进行字符输入,但代价是无法访问“按下左 Shift 键”或 Ctrl+Shift+A 等与 Ctrl+A 不同的细微差别。

kbd_mode允许您在模式之间切换,并在您不带任何参数调用它时显示当前模式。

神奇的 SysRq 组合键旨在从各种糟糕的情况中恢复。组合键之一是Alt+SysRq+K杀死当前虚拟控制台上的所有程序;如果该程序将键盘置于原始模式,那么您将无法在登录提示符处键入(该提示符经常出现,具体取决于您的系统配置)。按Alt+SysRq+R可恢复通常(X 之外)的 ASCII 模式,您可以在其中键入字符。

答案2

您可以定义键盘发送的代码类型。这是通过键盘模式完成的。您可以使用 更改键盘模式kbd_mode

这些是联机帮助页中的选项:

   -s: scancode mode (RAW),
   -k: keycode mode (MEDIUMRAW),
   -a: ASCII mode (XLATE),
   -u: UTF-8 mode (UNICODE).

如果开发人员能够简单地获取按下的按键的扫描码,那么他会更容易捕获诸如按下左 Shift 键之类的按键事件。

相关内容