Pull to refresh

И снова о раскладке Бирмана

Configuring Linux *

Преамбула

Некоторое время назад я быстро и как-то незаметно «подсел» на эту раскладку и заимел привычку везде использовать тире, кавычки-ёлочки, многоточия и прочие символы, при повседневном использовании в большинстве случаев заменяемыми суррогатами. Переехав в Ubuntu, с огорчением убедился, что Compose-key для полного счастья все-таки не хватает. Перейдя по ссылке «некая версия для Линукса» с сайта Бирмана, я с огорчением обнаружил, что предложенное Сергеем Столяровым решение мне не нравится. Не нравится как минимум тем, что смешивать саму раскладку и способ переключения мне показалось весьма… странным. В полном соответствии с принципом «Критикуешь — предлагай» я несколько модернизировал решение Сергея.

Задача

Добиться поддержки «типографической» функциональности средствами, максимально приближенными к штатным.

Решение


…оказалось достаточно простым, можно даже сказать тривильным.

Шаг 1

Выбираем основу. Как и практически любому «беглецу» из оффтопика мне оказалось удобнее всего использовать winkeys.

Шаг 2

Придумываем название и идентификатор. «Winkeys + Typography» и «winkeys_typo» кажутся вполне подходящими.

Шаг 3

Добавляем информацию о новой (правда, еще несуществующей) раскладке в общий список (/etc/X11/xkb/base.xml) в элемент, ответственный за русский язык (//layoutList/layout[configItem/name='ru']/variantList — в Ubuntu 8.04 это окрестности строки 2826) в виде нового варианта:
                  ru
        Rus
        Russia
      
                                    winkeys_typo
            Winkeys + Typography
          
        
        

Шан 4

Создаем в наиболее подходящем месте (/etc/X11/xkb/symbols/ru) новую раскладку, бессовестно использовав результаты работы Сергея, полностью либо частично (я реализовывал частичный вариант — для достижения функциональности раскладки Бирмана, но можно пойти дальше):
partial alphanumeric_keys
xkb_symbols "winkeys_typo" {
include "ru(winkeys)"

name[Group1]= "Russia — Typography";

key.type[group1]="FOUR_LEVEL";

key { [ Cyrillic_io, Cyrillic_YO, acute, approxeq ] };
key { [ 1, exclam, onesuperior, onesuperior ] };
key { [ 2, quotedbl, twosuperior, twosuperior ] };
key { [ 3, numerosign, threesuperior, threesuperior ] };
key { [ 4, semicolon, section, section ] };
key { [ 5, percent, 0x01002030, 0x01002030 ] };
key { [ minus, underscore, emdash, hyphen ] };
key { [ equal, plus, notequal, plusminus ] };
key { [Cyrillic_shorti, Cyrillic_SHORTI, q, onequarter ] };
key { [ Cyrillic_u, Cyrillic_U, EuroSign, oneeighth ] };
key { [ Cyrillic_ka, Cyrillic_KA, registered, R ] };
key { [ Cyrillic_ie, Cyrillic_IE, trademark, onethird ] };
key { [ Cyrillic_shcha, Cyrillic_SHCHA, masculine, O ] };
key { [ Cyrillic_ef, Cyrillic_EF, approxeq, A ] };
key { [ Cyrillic_yeru, Cyrillic_YERU, section, S ] };
key { [ Cyrillic_ve, Cyrillic_VE, degree, D ] };
key { [ Cyrillic_a, Cyrillic_A, sterling, F ] };
key { [ Cyrillic_er, Cyrillic_ER, h, onehalf ] };
key { [ Cyrillic_o, Cyrillic_O, doublelowquotemark, J ] };
key { [ Cyrillic_el, Cyrillic_EL, leftdoublequotemark, leftsinglequotemark ] };
key { [ Cyrillic_de, Cyrillic_DE, rightdoublequotemark, rightsinglequotemark ] };
key { [ Cyrillic_zhe, Cyrillic_ZHE, leftsinglequotemark, seconds ] };
key { [ Cyrillic_e, Cyrillic_E, rightsinglequotemark, minutes ] };
key { [ Cyrillic_che, Cyrillic_CHE, multiply, 0x010022C5 ] };
key { [ Cyrillic_es, Cyrillic_ES, copyright, copyright ] };
key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] };
key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, rightdoublequotemark ] };
key { [ period, comma, ellipsis, comma ] };
key { [ space, space, nobreakspace, nobreakspace ] };

include "level3(ralt_switch)"
};

Шаг 5

Активизируем раскладку (Система/Параметры/Клавиатура/Раскладки):
Добавление типографической раскладки

Шаг 6

Пользуемся :-)

PS: Сий рецепт был испытан мною в Ubuntu 8.04, но может оказаться вполне рабочим в разнообразных других дистрибуциях (разумеется, пятый шаг будет актуален лишь для дистрибуций на базе gnome)
PPS: Особо ленивые или занятые могут взять уже отредактированные файлы от Ubuntu 8.04: /etc/X11/xkb/base.xml и /etc/X11/xkb/symbols/ru.

Update:

Стоит также отметить, что раскладка Бирмана — не единственная, и, говорят, не самая лучшая. За подробностями отсылаю к Heath’у и его обзору.
Tags:
Hubs:
Total votes 29: ↑27 and ↓2 +25
Views 3.9K
Comments Comments 33