Xmodmap: шесть символов на одну клавишу?

2225
Meeकu

Из OpenSUSE вики :

(Пока Mode_switch / ISO_Level3_Shift назначен на код клавиши Alt Gr - если вы назначаете Mode_switch и ISO_Level3_Shift для разных клавиш, вы можете назначить до шести символов одной клавише!).

Скажите, пожалуйста, общие шаги для получения 6 символов на один глаз (k изменено на क)?

3

1 ответ на вопрос

3
Gilles

Вставьте строки, подобные следующим ~/.Xmodmap:

keycode 0x2D = k K U03BA U039A U0915 U05DB U0137 U0136 

Код ключа можно получить, запустив xevи нажав клавишу. Если вы начинаете с известного состояния, например раскладки клавиатуры в США, вы можете использовать клавиатуру, уже назначенную клавише, как в

keycode k = k K U03BA U039A U0915 U05DB U0137 U0136 

В 8 колонн на правой части =знака последовательно соответствуют голому ключу, Shift, AltGr, AltGr+ Shift, и повторите эти четыре с ISO_Level3_Shiftа.

Слова справа от =знака являются ключевыми символами. Вы можете найти действительные имена ключей в /usr/include/X11/keysymdef.h(или везде, где размещен ваш дистрибутив keysymdef.h); ищите строки вида #define XK_foo 0xabcd /* ... */: fooэто имя ключа. Вы также можете использовать U1234, где 1234- номер символа Юникода в шестнадцатеричном формате (для «экзотических» символов, таких как , это часто единственная опция).

Последнее предупреждение: есть два способа настройки клавиатуры под X. Xmodmap - это простой способ. Xkb это другой способ; это более мощный, намного более сложный и менее хорошо документированный. Иногда настройки xkb могут препятствовать работе настроек xmodmap: конфигурация xkb может влиять на то, каким модификаторам соответствуют столбцы xmodmap.