2.3.1.3. Символы и ASCII строки.

    X не останавливается на задании соответствия код клавиши - символ (ы), а идет дальше. Система позволяет программе сопоставить любой комбинации модификаторов и клавиш (например, <Shift+Ctrl+A>) ASCII строку (например, "EXIT"). Для некоторых клавиш соответствующие строки задаются сервером по умолчанию. Так символу XK_A соответствует строка "A".

    Макрос XRebindKeysym( ) берет символ, список модификаторов и сопоставляет им строку.

    Процедура XLookupString( ), наоборот, берет событие о нажатии (отпускании) клавиши и возвращает соответствующие ему символ и строку. Последний ее параметр - указатель на структуру типа XComposeStatus. Дело в том, что некоторые клавиатуры имеют специальную клавишу Compose, которая позволяет печатать символы, которым нет соответствия среди клавиш. Так можно, например, набирать буквы разных алфавитов, такие как: 'й', 'ё' и т.д. Специальная таблица указывает, какой символ должен быть создан, если обычная клавиша нажимается одновременно с Compose. Ссылка на эту информацию и возвращается в структуре XComposeStatus.