2010-11-09 1 views
1

Я использую Xlib для проекта, и я пытаюсь получить отношение KeySym к нажатой клавише.X11 KeySyms: режим переключения, группы KeySym и XK_ISO_Level3_Shift

У меня есть KeyCode относительно нажатой клавиши, клавиатурных модификаторов и клавишных индикаторов. Я имею в виду this page, чтобы понять, как получить правильный ключ, но он должен быть устаревшим или что-то еще, потому что мой X не ведет себя так, как говорит эта страница.

У меня есть несколько вопросов:

  1. Что такого РЕЖИМ? Как я могу узнать, какой ключ мой MODE SWITCH и как я могу его установить? (через Xlib-функции или с помощью команды, это одно и то же).

  2. Эта страница говорит, что первые 4 KeySyms, связанные с KeyCode (найдены с помощью XGetKeyboardMapping или показаны командой xmodmap -pk), делятся на две группы. Переключатель MODE переключает между группами, а внутри группы выбирается первый или второй KeySym в соответствии с модификаторами (т. Е. Клавишей сдвига) или индикаторами (т. Е. Блокировкой крышки). Но на моем X я вижу, что если сдвиг нажат, я переключаюсь на третий KeySym, а не на второй.

  3. На многих европейских раскладок ключ AltGr связан с XS_ISO_Level3_Shift, символ клавиши, который не принадлежит ни к одной клавиатуре модификатора (т.е. shift, lock, control, mod1, mod2, mod3, mod4 и mod5). Когда этот XS_ISO_Level3_Shift нажат, выбирается пятый KeySym, связанный с KeyCode. Зачем? Где я могу найти информацию об этом XS_ISO_Level3_Shift и о других ключах, которые на самом деле используются, но не документированы в руководствах Xlib?

+0

Затем есть расширения XKeyboard. Я далеко не уверен, что все, что возможно с ними, можно описать в терминах более простых возможностей xlib.Возможно, поэтому вас путают, если ваша реализация использует их ('xdpyinfo | grep XKEYBOARD', чтобы знать, если это так). Каждый раз, когда я смотрел на это, я начал смущаться, а затем понял. Но я никогда не достигал состояния, когда я вспомнил основную логику этого беспорядка. – AProgrammer

+0

Есть ли у вашей системы 'xev'? Это часто быстрый и простой способ решения проблем. –

ответ

2

Похоже, что страница, которую вы читаете, предшествует Xkb - я бы предположил, что содержание, по крайней мере, составляет 10-15 лет.

См: http://www.xfree86.org/current/XKBproto.pdf

"Xmodmap -pm" покажет вам клавиши, такие как переключатель режимов.

С Xkb, по-моему, поведение в основном все настраивается. Начните искать/usr/share/X11/xkb/например. Я не очень много знаю об этом, но, надеюсь, глядя на Xkb вместо старых документов, вы укажете в правильном направлении.

1

Руководство Tronche является неполным. Я нашел больше информации о функциях клавиатуры в:
1. xlib.pdf
2. xlib html manual at static.cray-cyber.org. Этот документ скрыт и немного сломан. Ссылки вводятся строчными буквами, но фактические документы хранятся в верхнем регистре. После исправления URL-адресов в браузере это можно прочитать.

PDF завершен, я думаю. Я не знаю, закончен ли [2], но, например, глава 16.2 (извините, я не могу дать ссылку, потому что мой лимит связи превышен) намного длиннее, чем в документе Tronche.

Я новичок в понимании xlib, вот что мне удалось сделать сегодня.

+0

, входящий в раздел 16.2: ссылка [ссылка] (http://static.cray-cyber.org/Documentation/NEC_SX_R10_1/G1AE02E/CHAP16.HTML#16.2.%20Latin-1%20Keyboard%20Event%20Functions) – Jarekczek

Смежные вопросы