keysym из X11 = ?

Переводим термины и придумываем новые, в т.ч. для ЯОС
Ответить
БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

keysym из X11 = ?

Сообщение БудДен » 17.07.21 12:01

Как перевести keysym? Тут пишут про "символ клавиши"

А вот тут пишут:
Коды, передаваемые через поле keycode структуры XKeyEvent, однозначно идентифицируют клавиши. Их конкретные значения зависят от типа машины и клавиатуры. Эти коды можно назвать физическими. Чтобы обеспечить переносимость программ, сервер устанавливает соответствие между физическими кодами клавиш, которые могут меняться от компьютера к компьютеру, и целочисленными константами - логическими кодами (символами). Они имеют предопределенные значения, которые приведены в файле /usr/include/X11/keysymdef.h и начинаются с префикса "XK_". Так, букве "a" соответствует символ XK_a, клавише <Return> (<Enter>) - символ XK_Return и т.д.

Для разных алфавитов X поддерживает разные множества логических кодов. Возможные типы алфавитов перечисляются в файле /usr/include/X11/keysym.h.

Одному коду клавиши может соответствовать несколько символов в зависимости от состояния клавиш-модификаторов. Функция

Код: Выделить всё

KeySym XKeycodeToKeysym (Display* display, KeyCode keycode,
    int index);
позволяет по коду keycode получить соответствующий ему символ с номером index. Если index равен 0, то полученный символ соответствует просто нажатой клавише.
Притом, у меня ощущение, что "символ" здесь - это символ в смысле лиспа, т.к. недавно пришлось что-то копать в X и он там показался больше похож.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: keysym из X11 = ?

Сообщение БудДен » 17.07.21 12:05

Будет пока "логический код клавиши"

Ответить