Как стать автором
Обновить

Проблема трех раскладок в Linux

Время на прочтение 2 мин
Количество просмотров 15K
Имея одновременно три раскладки (английскую, русскую, украинскую) всегда в них путался, так как отличить их не глядя на индикатор не просто, а при потребности украинской раскладки, добавлять её и убирать каждый раз неудобно. Решается очень просто, расширением русской раскладки четырьмя дополнительными украинскими буквами (є, ї, і, ґ) и апострофом (’). Способ не претендует на уникальность, но здесь никто вроде бы еще не описывал. Для начала в настройках раскладки нужно выбрать клавишу для выбора клавиш третьего уровня:

Конфиги раскладок (в ubuntu, в других дистрибутивах путь может отличаться) лежат в /usr/share/X11/xkb/symbols/, в файлах ru, ua, us,
в них описаны соответствия клавиш символам. Состоит из секций которые друг друга наследуют, секция common базовая, так что при изменении в ней, изменятся и все дочерние. Например описание буквы «э»:

key <AC11> { [ Cyrillic_e, Cyrillic_E ] };

В квадратных скобках первый параметр отвечает за сам символ, второй за символ + shift, третий за клавиша третьего уровня + символ, четвертый за клавиша третьего уровня + shift + символ. В данном случае есть только два параметра отвечающие за «э» и «Э», если написать что-то вроде:

key <AC11> { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE] };

то получим «э», «Э» и с Alt-ом "є" и "Є".

Немного покопавшись в украинской раскладке находим 5 нужных знаков и редактируем русскую раскладку
sudo vim /usr/share/X11/xkb/symbols/ru
а именно в секции:

key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI ] };
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I ] };
key <AC11> { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] };
key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
key <TLDE> { [ Cyrillic_io, Cyrillic_IO, apostrophe ] };

Теперь для использования украинских букв достаточно при нажатом правом Alt-е нажать соответствующую клавишу:
і = Alt + ы
ї = Alt + ъ
` = Alt + ё
є = Alt + э

На всякий случай мой /usr/share/X11/xkb/symbols/ru.

«Данный материал написан для «Первого конкурса русскоязычных статей для ОС Ubuntu 2011 года» (konkurs.ubuntu.ru)».
Теги:
Хабы:
+47
Комментарии 91
Комментарии Комментарии 91

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн