Что такое режим сырой клавиатуры?

27

В волшебных комбинациях клавиш sysrq есть комбинация, alt+sysrq+rкоторая, согласно википедии, делает следующее:

Переключите клавиатуру из режима raw, режима, используемого программами, такими как X11 и svgalib, в режим XLATE

Что такое сырой режим? а что такое XLATE режим?

Могу ли я вернуться в режим raw после перехода в режим XLATE?

Как узнать, в каком режиме находится моя клавиатура?

lesmana
источник

Ответы:

23

Когда вы нажимаете клавишу на клавиатуре, она отправляет цифровой код на компьютер, который называется кодом сканирования. Код сканирования сообщает компьютеру, какая клавиша была нажата; например, на типичной клавиатуре США 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, в котором вы можете печатать символы.

Жиль "ТАК - перестань быть злым"
источник
9

Вы можете определить, какой тип кода отправляет ваша клавиатура. Это делается через режим клавиатуры. Вы можете изменить режим клавиатуры с помощью kbd_mode.

Это варианты из справочной страницы:

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

Разработчику намного легче отлавливать события клавиш, например нажатие левой клавиши, если он может просто получить коды сканирования нажатых клавиш.

echox
источник