Как подружить три раскладки клавы

626

Хотите повысить своё качество жизни? Сейчас активно настраиваю Ubuntu 10.10 на новом рабочем компе. Сильно напрягает глупая и длинная иконка раскладки клавиатуры в трее. А еще хотелось бы получить всегда готовую третью, украинскую раскладку под рукой, но как-бы на отдельной клаве или раскладке. Вот на Хабре надыбал решение. Еще не пробовал, но весьма любопытно.

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

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

key { [ Cyrillic_e, Cyrillic_E ] };

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

key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE] };

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

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

key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI ] };
key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I ] };
key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] };
key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
key { [ Cyrillic_io, Cyrillic_IO, apostrophe ] };

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

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

Кстати, если желаете тематическое художественное чтиво, то Хакеры. Sanych может подойти. Тем более, что скачать можно электронную версию книги.