如果某些程序使用 K_RAW 键盘模式退出,而没有将键盘模式恢复到 K_XLATE,那么就很难进行任何操作 - 甚至 Ctrl-Alt-Del 也无法工作。 然而,有时可以避免按下复位按钮。(这也是值得的:如果因为重启而终止了用户的 Hack 游戏,他们可能会生气;您也可能损坏您的文件系统。) 简单的解决方案包括从另一个终端或另一台机器登录并执行 kbd_mode -a
。 以下步骤假设没有 X 正在运行,显示器处于文本模式,您处于 bash 提示符下,您正在使用美式键盘布局,并且您的中断字符是 Ctrl-C。
步骤 1. 启动 X。 如下所示:按住 2 (不要松开),按住 F12 (不要松开),然后立即按下 = 。 这将启动 X。(解释:如果按键产生键码 K,那么松开按键会产生键码 K+128。 可能您的 shell 不喜欢这些高位字符,所以我们通过不松开任何键来避免生成它们。 然而,我们必须快速,否则按键重复会开始。 数字 2 产生 Ctrl-C,它会丢弃之前的垃圾信息,F12 产生 X,而 = 产生回车。) 可能您的屏幕现在会是灰色的,因为没有指定 .xinitrc
。 然而,Ctrl-Alt-Fn 将会工作,您可以切换到另一个虚拟终端 (VT)。 (Ctrl-Alt-Backspace 也有效,但这会退出 X,并将您带回到之前的状态,这不是您想要的。)
步骤 2. 设置以更改键盘模式。(例如,通过 sleep 5; kbd_mode -a
。)
步骤 3. 再次离开 X。 Alt-Fx (通常是 Alt-F7) 将您带回 X,然后 Ctrl-Alt-Backspace 退出 X。 在 5 秒内,您的键盘将再次可用。
如果您想为这种情况做准备,那么将 \215A\301
(3 个符号) 设置为 kbd_mode -a
的别名。 现在只需敲击 = F7 = (3 个符号) 即可使您恢复正常。