Клавиатура, которую я пытаюсь создать, имеет много Unicode и выглядит следующим образом:
Не удается выполнить следующий урок:
Примечание : Wayland действительно использует xkb, но многие xTools перестали работать должным образом (например, xdotool)
Примечание : Это неполное руководство. Это наиболее полезно для тех, кто хочет создать новый восьмиуровневый макет и понимать синтаксис.
Примечание: Предлагается быстрое и грязное решение. Он включает электронную таблицу, которая автоматически генерирует необходимый вам код.
cd /usr/share/X11/xkb/ && ls
57
. Однако мы записываем его как
рабочего процесса > символы > compat
Я касаюсь только символов
: См. Ниже решение Quick and Dirty .
/ symbols / us Любой файл в этом каталоге имеет ту же структуру .
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "US/ASCII";
key <TLDE> { [ quoteleft, asciitilde ] };
key <AE01> { [ 1, exclam ] };
modifier_map Shift { Shift_L, Shift_R };
};
partial - Неполное отображение клавиатуры
alphanumeric_keys Раздел отображаемой клавиатуры. Можно использовать несколько
Примечание: Если не указаны * _ ключи
, предполагается полная клавиатура.
"basic" - Имя карты символов
name [Group1] = "US / ASCII"; Дает уникальное имя этой группе клавиатур.
modifier_map Для редактирования клавиш-модификаторов . (ctrl, shift, alt ~)
Shift {Shift_L, Shift_R}; Обычно не требуется. Он сопоставляет оба сдвига с модификатором сдвига, также известным как уровень 2.
клавиша
A = буквенно-цифровой ключевой блок.
KP = Клавиатура
FK = функциональная клавиша
E = строка на клавиатуре.
Пробел = строка
Клавиша Shift = B строка
Caps Lock = C строка
Клавиша табуляции = D строка
01 = Позиция клавиши в строке.
AE01 = 1
AB02 = X
AC05 = G
[ + ] - На языках C; Квадратные скобки обозначают список, по которому элементы разделены на , . Длина списка определяет количество уровней. Например:
key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }
Обычно уровни обозначают следующее нажатие клавиш с:
Короче говоря, если вы хотите сопоставить клавишу с shift + altgr, ваш список должен состоять как минимум из четырех элементов.
Любая из этих строк вызовет критическую ошибку и оставит вас без используемой клавиатуры:
key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
Backspace
должно быть BackSpace
: обратите особое внимание на орфографию. VoidSymbol
. Сделайте резервную копию редактируемого файла:
sudo / bin / cp / usr / share / X11 / xkb / symbols / us / usr / share / X11 / xkb / symbols / usBACKUP
Примерно так:
#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us
Если что-то пойдет не так, с помощью мыши запустите эту строку кода (содержащуюся в сценарии bash, которому вы дали разрешение sudoers. на chmod + x
, чтобы разрешить запуск как исполняемый файл.)
вернуть
(нажав Enter), вставив разрыв строки. !
становится U0021
). Поддерживается Unicode! VoidSymbol
. клавиша {[U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021]};
ключ {[U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B]};
клавиша {[U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D]};
клавиша {[U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022]};
клавиша {[U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A]};
ключ {[U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B]};
ключ {[U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D]};
клавиша {[U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F]};
клавиша {[U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027]};
клавиша {[U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029]};
клавиша {[U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028]};
кнопка {[U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C]};
Изменяет это на всех 8 уровнях:
1234567890- = // Физические ключи
! [] "* {} / ') (\ // Изменены на эти символы
sudo vim / usr / share / X11 / xkb / symbols / us
Интересующие строки:
key.type[group1]="EIGHT_LEVEL"; // Enables 8 levels
modifier_map Control { <LFSH>, <RTSH> }; // Maps ctrl`s to shift keys.
key { [Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R] };
key { [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] };
include "level3(lalt_switch)" // Hold Left Alt for Level 3
include "level5(ralt_switch)" // Hold Right Alt for Level 5
В Ubuntu 14.04 раскладки клавиатуры хранятся в
/ usr / share / X11 / xkb / symbols /
Каждый из файлов в этом каталоге содержит ряд записей следующего типа:
key <AC01> {[a, A, aacute, Aacute]};
Эта запись сопоставляет клавишу на клавиатуре с числом определенных символов с использованием следующих соглашений:
< A C01> Первая буква A
указывает, что мы ищем в блоке буквенно-цифровых клавиш (другие варианты включают KP [для клавиатура]
и FK [для функциональной клавиши]
);
01
указывают положение ключа, считая слева и игнорируя любой специально названный ключ, например TAB или ~ (тильда): AC01
находится в третьей строке вверх, первая клавиша слева (игнорируя Caps Lock , если таковой имеется); на стандартной клавиатуре США это клавиша, отмеченная буквой «а».
В скобках содержится список символов, назначенных каждой клавише. Содержит до четырех записей, разделенных запятыми:
Например:
Как Англосаксонист, I типа á
и Á
гораздо реже, чем I типа æ
и Æ
.
Чтобы добавить англосаксонские символы в свой список, я просто заменяю aacute
и Aacute
именами сущностей или кодовыми точками Unicode для æ
и Æ
(«aelig» или U00E6 и «AElig» или U00C6 , соответственно):
key {[a, A, aelig, AElig]};
или
key {[a, A, U00E6, U00C6]};
Когда я Закончив изменение раскладки клавиатуры, я сохраняю файл с новым именем «oe» в том же каталоге.
evdev.xml
. В Чтобы использовать новую раскладку клавиатуры, нам нужно сообщить X11
, что она существует. В Ubuntu 14.04 X11
отслеживает установленные клавиатуры в файле /usr/share/X11/xkb/rules/evdev.xml
. Затем давайте добавим в него новый макет.
X11 / xkb / rules / evdev.xml
в редакторе Перейдите в конец раздела
(ищите
). Добавьте следующее после последнего тега
,где X
- имя файла с раскладкой клавиатуры в / usr / share / X11 / xkb / symbols
(в моем случае oe
); Y
подходящее короткое имя; и Z
соответствующее длинное имя на одном или нескольких языках и aaa
юридический трехбуквенный (ISO 639-2) код языка (например, eng для английского языка):
X
Y
Z
aaa
<список вариантов />
Вот оно, следуйте полному введению
Другие ссылки по теме:
http://ubuntuforums.org/showthread.php?t=188761&p=1092145#post1092145
http: //www.charvolant. org / ~ doug / xkb / html / index.html