Answers:
当您按下键盘上的某个键时,它会向计算机发送一个数字代码,称为扫描代码。扫描代码告诉计算机按下了哪个键。例如,在典型的美国键盘上,A按键会在您按下时发送扫描代码30(在释放时发送158)。当键盘处于原始模式时,键盘驱动程序会将这些代码直接报告给应用程序(“原始”表示未经处理的直接在键盘上显示)。一些程序使用原始模式并进行自己的键盘处理。在X服务器是最突出的一个。
大多数程序期望在按下A键时,程序读取字符a
(ASCII 97),在按下Shift+时A,程序读取A
(ASCII 65),而当按下Ctrl+时A,程序读取Ctrl+A
字符(ASCII 1)。没有关联字符的键发送转义序列,例如,\e[A
对于Left,其中\e
ESC字符(ASCII 27)。当键盘处于ASCII模式(也称为XLATE模式)(“ translate”的缩写)时,键盘驱动程序执行此转换。XLATE模式允许应用程序进行字符输入,但代价是无法访问“ Ctrl + A”以外的“按下左移键”或Ctrl + Shift + A这样的细微差别。
使用kbd_mode
,您可以在模式之间进行切换,并在不带任何参数的情况下调用它即可显示当前模式。
神奇的SysRq组合键旨在从各种讨厌的情况中恢复。按键组合之一是Alt+SysRq+K
杀死当前虚拟控制台上的所有程序。如果该程序将键盘置于原始模式,则您将无法在登录提示符下键入(该提示符通常会出现,具体取决于您的系统配置)。按下Alt+SysRq+R
可恢复通常的(X外部)ASCII模式,您可以在其中键入字符。