текстовая консоль GNU/Linux, X11 не задействована, даже не установлена . Клавиатура - американская компоновка, раскладка клавиатуры по умолчанию. Ядро версия 2.20.x или более поздняя.Клавиатурные сканноды?
Приложение, написанное на C, получает ввод клавиатуры в режиме перевода , то есть XLATE
или UNICODE
. Когда нажата клавиша , приложение получает соответствующий ключ . Например, вы нажимаете F1, приложение читает "\033[[A"
.
Прежде чем ядро отправит к приложению ключ, он должен знать, какая клавиша нажата, то есть он должен знать свой scancode . В приведенном выше примере F1 scancode для нажатия клавиши имеет значение 59 или 0x3b.
То есть даже когда клавиатура находится в режиме перевода, scancodes хранятся где-то в памяти. Как может приложение получить к ним доступ без переключения клавиатуры на RAW
или MEDIUMRAW
режим? Фрагмент кода поможет.
Не могли бы вы заменить tinyurl на настоящий URL? Указанный tinyurl не работает. – slashmais 2012-03-07 06:33:44