Добавляем фонетическую русскую раскладку Mac в Ubuntu/PopOS

Yuri Trukhin
Yuri Trukhin
Published in
2 min readApr 17, 2023

--

Процесс создания раскладок для 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 лет.

--

--

Yuri Trukhin on Software, Lead Product at the geekiest company in the world