0,0
рейтинг
22 сентября 2008 в 03:28

Администрирование → Опять о раскладке Бирмана, да и переключении раскладок вообще в грядущей 8.10

Disclaimer


Всё нижеописанное относится к Ubuntu 8.10 (interpid), хотя скорее всего затронет и будущие стабильные версии.

Обратите внимимание, что некоторые описанные ниже шаги могут привести к непредсказуемым :) последствиям.

Предистория


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

У меня, как дома, так и на работе это решение приводило к следующим проблемам:
  1. После перезагрузки раскладка не переключалась. Эту проблему каждый раз приходилось решать вызывая апплет конфигурации и изменение какого-нибудь параметра в «Дополнительных параметрах».
  2. После некоторых обновлений раскладка ломалась совсем. Приходилось переустанавливать нужные файлы
  3. После обновления на 8.10 метод перестал работать окончательно.


Кто виноват, и что делать?


Шаг 1

Начну с того, что с некоторого времени вариант winkeys стал «вариантом по умолчанию» и в файле
/etc/X11/xkb в раскладке ru не упоминается. Не смотря на это повторим 3-ий шаг из упомянутой статьи: добавим вариант winkeys_typo:

      <layout>
      <configItem>
        <name>ru</name>
        <shortDescription>Rus</shortDescription>
        <description>Russia</description>
      </configItem>
      <variantList>
        <variant>
          <configItem>
            <name>winkeys_typo</name>
            <description>Winkeys + Typography</description>
          </configItem>
        </variant>
        <variant>


Шаг 2

И вот тут нас ждёт сюрприз: теперь файл /etc/X11/xkb/symbols/ru не является наиболее подходящим местом для добавления варианта winkeys_typo. Откроем файл /usr/share/X11/xkb/symbols/ru и добавим в него уже привычный код:
partial alphanumeric_keys
xkb_symbols "winkeys_typo" {
include "ru(winkeys)"

name[Group1]= "Russia — Typography";

key.type[group1]="FOUR_LEVEL";

key <TLDE> { [ Cyrillic_io, Cyrillic_YO, acute, approxeq ] };
key <AE01> { [ 1, exclam, onesuperior, onesuperior ] };
key <AE02> { [ 2, quotedbl, twosuperior, twosuperior ] };
key <AE03> { [ 3, numerosign, threesuperior, threesuperior ] };
key <AE04> { [ 4, semicolon, section, section ] };
key <AE05> { [ 5, percent, 0x01002030, 0x01002030 ] };
key <AE11> { [ minus, underscore, emdash, hyphen ] };
key <AE12> { [ equal, plus, notequal, plusminus ] };
key <AD01> { [Cyrillic_shorti, Cyrillic_SHORTI, q, onequarter ] };
key <AD03> { [ Cyrillic_u, Cyrillic_U, EuroSign, oneeighth ] };
key <AD04> { [ Cyrillic_ka, Cyrillic_KA, registered, R ] };
key <AD05> { [ Cyrillic_ie, Cyrillic_IE, trademark, onethird ] };
key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA, masculine, O ] };
key <AC01> { [ Cyrillic_ef, Cyrillic_EF, approxeq, A ] };
key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, section, S ] };
key <AC03> { [ Cyrillic_ve, Cyrillic_VE, degree, D ] };
key <AC04> { [ Cyrillic_a, Cyrillic_A, sterling, F ] };
key <AC06> { [ Cyrillic_er, Cyrillic_ER, h, onehalf ] };
key <AC07> { [ Cyrillic_o, Cyrillic_O, doublelowquotemark, J ] };
key <AC08> { [ Cyrillic_el, Cyrillic_EL, leftdoublequotemark, leftsinglequotemark ] };
key <AC09> { [ Cyrillic_de, Cyrillic_DE, rightdoublequotemark, rightsinglequotemark ] };
key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, leftsinglequotemark, seconds ] };
key <AC11> { [ Cyrillic_e, Cyrillic_E, rightsinglequotemark, minutes ] };
key <AB02> { [ Cyrillic_che, Cyrillic_CHE, multiply, 0x010022C5 ] };
key <AB03> { [ Cyrillic_es, Cyrillic_ES, copyright, copyright ] };
key <AB08> { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] };
key <AB09> { [ Cyrillic_yu, Cyrillic_YU, guillemotright, rightdoublequotemark ] };
key <AB10> { [ period, comma, ellipsis, comma ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };

include "level3(ralt_switch)"
};

Шаг 3

Раскладка появилась в списке и всё заработало? Чтож, вам повезло… а мне вот повезло не очень: раскладки в списке не оказалось.
В поисках решения, я наткнулся на вот такое обсуждение.
Попробовав разные варианты я остановился на следующем:

Шаг 3.1

Редактируем файл /etc/default/console-setup:

XKBMODEL="logimel"
XKBLAYOUT="us,ru"
XKBVARIANT=",winkeys_typo"


Обратите внимание на XKBMODEL=«logimel» — это модель вашей клавиатуры, у меня не работали некоторые дополнительные клавиши, пока я не остановился на этой. Кстати, возможно, понять какая у вас, вам поможет файл /usr/share/X11/xkb/rules/base.lst

Шаг 3.2

sudo dpkg-reconfigure console-setup :)
Тут можно просто понажимать enter, но в случае, если он не нажмётся — нажмите сначала tab :)
В результате получите кучу сообщений вида «WARNING: Undefined kernel key code for xxx» — не обращайте внимания. В конце должно быть сообщение «[ OK ] update-initramfs: Generating /boot/initrd.img-2.6.27-3-generic»

Шаг 4

А теперь решим старую проблему неработоспособности переключения при перезагрузке — для этого очистим файл конфигурации клавиатуры гнома: sudo gedit ~/.gconf/desktop/gnome/peripherals/keyboard/kbd/%gconf.xml -> ctrl+a -> ctrl+s :)

Шаг 5

Да, как это не ужасно звучит — перезагрузимся и всё должно работать. Если нет… проверяем всё ещё раз.

Заключение и предложение



Минусами данного метода, как и предыдущего, являются проблемы с совместимостью с будущими версиями ubuntu, однако лучше потратить час-другой на решение этих проблем и получить прекрасно работающую типографскую раскладку, чем наблюдать то, что сделал Хабр с кавычками тут.

С другой стороны, почему бы не включить данный вариант в базовую поставку? Это я обращаюсь к разработчикам, которым не составит труда внести изменения в дистрибутив.
Чиченин Александр @sovnarkom
карма
0,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (12)

  • +2
    Тьфу, зараза! Только вчера эту типографскую раскладку настроил как надо (плюс допилил немного под себя). А в Интрепиде, выходит, придется всё заново ковырять. Блин!
    • 0
      Ковырять придётся не только это… например дрова на видео. Но в целом, мне нравится как развивается дистрибутив. Раньше при любой более менее сильной и продолжительной нагрузке на видеокарту, особенно с драйвером ati, система либо зависала насмерть, либо падали X. Сейчас с драйвером radeon можно даже в Alien Arena побегать.

      Кстати, «допилы под себя» настоятельно рекомендую сохранить в надёжное место, мало ли что произойдёт при обновлении.
  • 0
    Печально, что мне придеться снова доставать напильник… может, не апгрейдиться ((
    • 0
      пока, наверное, не стоит.
  • 0
    Раскладка Бирмана удобна, но некоторые неудобства доставляет даже в Windows. Хотя пользы от нее все равно больше :)
  • +2
    а не проще ли вам написать разработчикам проекта xkb и пропросить включись свою раскладку? с украинской так и сделали, теперь никакие обновления не страшны ;)
  • +1
    Линукс действительно позволяет провернуть и напелить что угодно, но почему порой всё это через такие дебри :(
    • 0
      это ещё не дебри :)
  • 0
    Ну вот, сегодня после обновления 8.04 снова все полетело.

    Такое ощущение, что XKB разрабатывают демократы и республиканцы. Ну ничего, скоро все утрясется… :-)
  • +1
    Не работает чего-то :(
    Сделал все пунктам, но в $ sudo dpkg-reconfigure console-setup нет выбора раскладки Russian -> Russia — Typography.
    Добавил в В /usr/share/X11/xkb/rules/base.lst
    winkeys_typo ru: Russia — Typography
    опыта общения с убунту мало, но сделал предположение, что из обновленного файла /usr/share/X11/xkb/rules/base.xml не считывается новый вариант
    winkeys_typo
    Winkeys + Typography
    • 0
      Благодаря автору топика все-таки разобрались. Точнее сделали, а разобраться тут можно с трудом. По инструкции приведенной в топике удалил ~/.gconf/desktop/gnome/peripherals/keyboard/kbd/%gconf.xml и перезагрузился. ПРимечательно что с первого раза не получилось. Зато получилось со второго! Спасибо автору! — большое лично спасибо за продолжение моей «типографской жизни» и под Убунтой ;)
  • НЛО прилетело и опубликовало эту надпись здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.