WebGL не работает с Firefox, графикой Intel HD, ArchLinux и Thinkpad T540p

См. Как ввод с клавиатуры и текст вывод работы? для обзора темы.

Более подробно, в Linux ядро ​​получает скан-коды от оборудования и преобразует их в коды клавиш. (Эта терминология не является полностью стандартной; вы можете встретить «сканирующий код» или «код клавиши», используемый для обоих.) Как это преобразование работает, зависит от драйвера клавиатуры. Для клавиатур PS / 2 вы можете настроить его с помощью setkeycodes . Для USB-клавиатур вы можете настроить его через udev . См. Также вики Arch . Все пользовательские устройства ввода, включая клавиатуры и мыши, доступны через устройства событий / dev / input / event * .

В консоли Linux коды клавиш отображаются в escape-последовательности в соответствии с таблицей клавиш консоли. Поскольку консоль является текстовым терминалом, приложения видят байты с печатаемыми символами, представляющими себя, и функциональными клавишами, закодированными с помощью управляющих символов или управляющих последовательностей. Вы можете изменить отображение с помощью loadkeys .Отображение использует два уровня косвенного обращения: от комбинации ключевого кода + модификатора (с тремя модификаторами: shift , control , alt ) до keysym и от keysym к строке ( символ или escape-последовательность). Набор символов ключей является фиксированным, поэтому, если вы хотите определить собственные комбинации, вам нужно будет использовать существующие символы ключей, которые иначе не используются, такие как F13 , F14 ,…

Если вы хотите посмотреть исходный код, реализующий эти переводы, посмотрите драйверы клавиатуры и общий код ввода , а также udev и libudev .

X11 (графический интерфейс) имеет свой собственный способ сопоставления кодов клавиш с тем, что получают приложения. Приложения X11 видят символы ключей и модификаторы, поэтому функциональные клавиши не нуждаются в дополнительном кодировании. Фактически существует два способа определения раскладок клавиш в X: классический метод xmodmap и новый механизм XKB, который более мощный, но более сложный.

3
21.01.2016, 09:56
0 ответов

Теги

Похожие вопросы