Когда вы нажимаете клавишу на клавиатуре, она отправляет цифровой код на компьютер, который называется кодом сканирования. Код сканирования сообщает компьютеру, какая клавиша была нажата; например, на типичной клавиатуре США Aклавиша посылает код сканирования 30 при нажатии (и 158 при отпускании). Драйвер клавиатуры сообщает эти коды непосредственно приложениям, когда клавиатура находится в режиме raw («raw» означает необработанный, прямо вне клавиатуры). Несколько программ используют режим raw и выполняют свою собственную обработку клавиатуры; сервер X является наиболее известным один.
Большинство программ ожидают, что когда вы нажимаете Aклавишу, программа читает символ a
(ASCII 97), а когда вы нажимаете Shift+, Aпрограмма читает A
(ASCII 65), а когда вы нажимаете Ctrl+, Aпрограмма читает Ctrl+A
символ (ASCII 1). Ключи, которые не имеют связанных символов, отправляют escape-последовательности, например, \e[A
для 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, в котором вы можете печатать символы.