Nov 25, 2007 07:34
Сначала сервер преобразует физические нажатия в keycode -
Далее сервер мапит по запросу клиента keycode в keysym - платформенно независимые и стандартизированные коды коды кнопок со смешными названиями вроде ISO_Next_Group, Cyrillic_shorti или просто Num_Lock.
При этом одному кикоду обычно соответствует несколько keysyms - какие именно именно чаще всего зависит от раскладки клавиатуры.
“Правильный” keysym выбирается в зависимости от состояния модификаторов (num, shift, etc). Этот процесс стандартизирован и описан в спецификации xproto.
И наконец клиент преобразует keysym в строку символа, если такая вообще есть.
Как-то примерно так. Написано в большей степени что-бы не забыть.
x11,
xlib