А вот тут пишут:
Притом, у меня ощущение, что "символ" здесь - это символ в смысле лиспа, т.к. недавно пришлось что-то копать в X и он там показался больше похож.Коды, передаваемые через поле keycode структуры XKeyEvent, однозначно идентифицируют клавиши. Их конкретные значения зависят от типа машины и клавиатуры. Эти коды можно назвать физическими. Чтобы обеспечить переносимость программ, сервер устанавливает соответствие между физическими кодами клавиш, которые могут меняться от компьютера к компьютеру, и целочисленными константами - логическими кодами (символами). Они имеют предопределенные значения, которые приведены в файле /usr/include/X11/keysymdef.h и начинаются с префикса "XK_". Так, букве "a" соответствует символ XK_a, клавише <Return> (<Enter>) - символ XK_Return и т.д.
Для разных алфавитов X поддерживает разные множества логических кодов. Возможные типы алфавитов перечисляются в файле /usr/include/X11/keysym.h.
Одному коду клавиши может соответствовать несколько символов в зависимости от состояния клавиш-модификаторов. Функция
позволяет по коду keycode получить соответствующий ему символ с номером index. Если index равен 0, то полученный символ соответствует просто нажатой клавише.Код: Выделить всё
KeySym XKeycodeToKeysym (Display* display, KeyCode keycode, int index);