Добавляем фонетическую русскую раскладку Mac в Ubuntu/PopOS
Процесс создания раскладок для Linux не сложен:
есть файлик /usr/share/X11/xkb/symbols/ru где уже есть куча раскладок (и по истории файлика видно, насколько активно в него контрибьютили разные ребята по любому поводу).
Если бы пришлось делать совсем новую раскладку — нужно было бы написать такую секцию:
default partial alphanumeric_keys
xkb_symbols "winkeys" {
include "ru(common)"
name[Group1]= "Russian";
key <AE03> { [ 3, numerosign ] };
key <AE04> { [ 4, semicolon ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, colon ] };
key <AE07> { [ 7, question ] };
key <AE08> { [ 8, asterisk, U20BD ] };
key <AB10> { [ period, comma ] };
key <BKSL> { [ backslash, slash ] };
};
где говорим, что описываем частичную (partial) группу алфавитно-цифровых клавиш, название Russian, наследуемся от ru(common), чтобы не описывать все буквы , а внутри описываем назначение каждой буквы, например:
Клавиша AE03 (обычно цифра “3”) будет вводить символ “3” в нижнем регистре и символ “№” (numerosign) в верхнем регистре.
Собственно я уже написал половину новой раскладки, но обнаружил, что снизу файлика она таки уже есть:
partial alphanumeric_keys
xkb_symbols "phonetic_mac" {
include "ru(phonetic_winkeys)"
name[Group1]= "Russian (phonetic Macintosh)";
key <LatE> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
key <LatW> { [ Cyrillic_sha, Cyrillic_SHA ] };
key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
key <TLDE> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
key <AD11> { [ Cyrillic_yu, Cyrillic_YU ] };
key <AD12> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
key <AE03> { [ 3, numbersign, numerosign ] };
key <AE04> { [ 4, dollar, U20BD ] }; // ruble
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, caret ] };
key <AE11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, minus, underscore ] };
key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
include "level3(ralt_switch)"
};
Но при этом она недоступна в выборе раскладок клавиатуры в Settings.
Пофиксить это легко:
открываем файлик /usr/share/X11/xkb/rules/evdev.xml , в нем находим секцию:
<layout>
<configItem>
<name>ru</name>
<shortDescription>ru</shortDescription>
<description>Russian</description>
<languageList>
<iso639Id>rus</iso639Id>
</languageList>
</configItem>
<variantList>
...
</variantList>
</layout>
и в <variantList></variantList> вставляем
<variant>
<configItem>
<name>phonetic_mac</name>
<description>Russian (phonetic Macintosh)</description>
</configItem>
</variant>
Итого у нас получилось:
<layout>
<configItem>
<name>ru</name>
<shortDescription>ru</shortDescription>
<description>Russian</description>
<languageList>
<iso639Id>rus</iso639Id>
</languageList>
</configItem>
<variantList>
...
<variant>
<configItem>
<name>phonetic_mac</name>
<description>Russian (phonetic Macintosh)</description>
</configItem>
</variant>
...
</variantList>
</layout>
Сохраняем файлик.
Перезагружаем xkb:
sudo dpkg-reconfigure xkb-data
Затем перезагружаем комп (иначе изменения не будут корректно работать из Settings).
И вуаля: фонетическая раскладка mac для Linux появляется и мы снова можем печатать, как и последние 15 лет.