ru en

Единая русско-украинская раскладка в Ubuntu

Posted on Sat 20 December 2014 in work

Так получилось, что моим основным языком ввода является английский, вторым по частоте использования русский. Тем не менее, иногда мне надо вводить текст на немецком, франзузском и украинском языках. Для западноевропейских языков в Ubuntu есть удобная раскладка "English (international with AltGr dead keys)". Пользоваться ей как основной довольно удобно, поскольку все акценты/умляуты доступны через AltGr, плюс к ним несколько других символов. Для кириллических языков ситуация несколько более сложная. Я не смог найти подходящую раскладку в Ubuntu "из коробки".

Как оказалось, раскладка-то есть, но ее надо специально руками включить:

  • открыть файл /usr/share/X11/xkb/rules/evdev.extras.xml, найти вариант раскладки с именем ruu

    <variant>
      <configItem>
        <name>ruu</name>
        <shortDescription>ru</shortDescription>
        <description>Russian (with Ukrainian-Belorussian layout)</description>
        <languageList><iso639Id>rus</iso639Id>
                      <iso639Id>ukr</iso639Id>
                      <iso639Id>bel</iso639Id></languageList>
      </configItem>
    </variant>
    
  • скопировать всю часть между тэгами <variant> как показано выше

  • открыть файл /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>
        <variant>
          <configItem>
            <name>phonetic</name>
            <description>Russian (phonetic)</description>
    
  • вставить ранее скопированный вариант раскладки ruu рядом с другими доступными вариантами

    <layout>
      <configItem>
        <name>ru</name>
    
        <shortDescription>ru</shortDescription>
        <description>Russian</description>
        <languageList>
          <iso639Id>rus</iso639Id>
        </languageList>
      </configItem>
      <variantList>
        <variant>
          <configItem>
            <name>ruu</name>
            <shortDescription>ru</shortDescription>
            <description>Russian (with Ukrainian-Belorussian layout)</description>
            <languageList><iso639Id>rus</iso639Id>
                          <iso639Id>ukr</iso639Id>
                          <iso639Id>bel</iso639Id></languageList>
          </configItem>
        </variant>
        <variant>
          <configItem>
            <name>phonetic</name>
            <description>Russian (phonetic)</description>
    
  • перезапустить X server

Теперь в списке доступных раскладок появляется "Russian (with Ukrainian-Belorussian layout)". В основном это стандартная русская раскладка (главное отличие - расплолжение буквы ё), но все специфично украинские и белорусские буквы доступны через AltGr, и кроме них несколько других плюшек вроде валютного значка украинской гривны (₴) или всяких математических знаков (например ±). Чтобы увидеть все доступные символы, проверьте "Keyboard Layout Chart" для этой раскладки.