Для каждого определения кода ключа вы можете иметь до восьми символов ключа. Они организованы попарно в четыре группы. Существует семейство клавиатурных символов ISO_Next_Group
, ISO_Prev_Group
, ISO_First_Group
и ISO_Last_Group
, которые при нажатии циклически повторяют вывод клавиатуры, нажимая клавишу среди групп клавиатуры. Эти ключи - то, как вы достигаете нескольких раскладок.
В качестве примера, если предположить, что ISO_Next_Group
привязан к коду ключа и назначен модификатору, то для этого определения:
keycode 53 = x X Greek_xi Greek_XI multiply U2297 U24E7 U24CD
нажатие на клавиатуре с надписью «X» набирает «x». После нажатия клавиши ISO_Next_Group
я получаю «ξ». При повторном нажатии я получаю «×». Нажав еще раз, «ⓧ». Наконец, нажатие на него в четвертый раз приводит все в норму.
Потратив несколько дней (потому что Xkb¹ имеет ужасную документацию; наконец-то нашел справочник здесь ), вы можете создать файл определения символа со следующими записями:
key <SPCE> {
// Level I II III IV
[ space, space, U2395, U2592 ], // Group 1
[ U2423, emspace, U2420, hairspace ] // Group 2
};
key <RALT> {
[ Mode_switch, Mode_switch ]
};
key <RCTL> {
[ ISO_Level3_Shift, ISO_Level3_Shift ]
};
Скобки заключают в одну группу. Обычно первая группа активна. Группу можно временно увеличить на единицу с помощью ISO_Group_Shift , a.k.a. Mode_switch . Внутри группы испускаемые символы определяются в возрастающих уровнях. Уровень I с голым нажатием клавиши. Shift добавляет единицу к текущему уровню. ISO_Level3_Shift устанавливает уровень III.
Приведенный выше пример отображает семь символов на пробел и различные клавиши Shift, такие как:
пробел ⟩⟩ U + 0020 ПРОБЕЛ
Shift + пробел ⟨⟩ U + 0020 ПРОБЕЛ
R. Alt + пробел ⟨␣⟩ U + 2423 ОТКРЫТАЯ КОРОБКА
R. Alt + Shift + пробел ⟩⟩ U + 2003 EM SPACE
R. Ctl + пробел ⟨⎕⟩ U + 2395 APL ФУНКЦИОНАЛЬНЫЙ СИМВОЛ QUAD
R. Ctl + Shift + пробел ⟨▒⟩ U + 2592 СРЕДНЯЯ ТЕНЬ
R. Alt + R. Ctl. + Пробел ⟨␠⟩ U + 2420 СИМВОЛ ДЛЯ ПРОСТРАНСТВА
R. Alt + R. Ctl. + Shift + пробел ⟩⟩ U + 200A ПРОСТРАНСТВО ВОЛОС
Также есть ключ ISO_Level5_Shift для уровня V. Таким образом, вы можете иметь как минимум шесть символов для одной группы. С помощью клавиши переключения режимов это означает, что вы можете настроить клавиатуру так, чтобы она набирала примерно 1200 различных символов, но при этом удерживание такого количества модификаторов, вероятно, приведет к отключению нескольких клавиш.
P.S. Имена всех названных символов хранятся в /usr/include/X11/keysymdef.h
.
¹ Оказывается, что
xmodmap (1) содержит ошибки и устарел.