Як створити власну розкладку клавіатури під Linux?

Як створити власну розкладку клавіатури під Linux?

Останнім часом стало модно писати українською латинкою. Бувають випадки коли пристрій чи програма не підтримують кирилиці і доречніше вживати латинські літери, або не хочеться лишній раз перемикатися з латиниці на кирилиці, а натомість тримати лише одну розкладку.

За основу для нашої клавіатури візьмемо стандартну англійську розкладку (QWERTY) і додамо до неї літери ğ, ž, č та š, які відповідають кириличним ґ, ж, ч та ш. Літери набиратимуться через праву клавішу Alt.

Як створити власну розкладку клавіатури під Linux?

У GNU/Linux усі файли з розкладками знаходяться в каталозі /usr/share/X11/xkb/symbols/. Хоча в різних дистрибутивах розташування файлів може відрізнятися. В мене стоїть Debian 10 зі стільницею Xfce 4.12.

Отже, переходимо у згаданий вище каталог і додаємо вкінці файлу ua наступний код:

partial alphanumeric_keys
xkb_symbols "latynka" {
    include "us(basic)"
    name[Group1]="Ukrainian (latynka)";

    key <AC02> { [ s, S, scaron, Scaron ] };
    key <AC05> { [ g, G, gbreve, Gbreve ] };
    key <AB01> { [ z, Z, zcaron, Zcaron ] };
    key <AB03> { [ c, C, ccaron, Ccaron ] };

    include "level3(ralt_switch)"
};

Параметр partial означає, що блок коду описує не всю клавіатуру. Параметр alphanumeric_keys вказує, яку саме частину клавіатури описує код. Інструкція xkb_symbols "latynka" задає назву для даного варіанту розкладки.

Команда include "us(basic)" імпортує літери з англійської розкладки клавіатури (в кінці крапка з комою не ставиться). Команда name[Group1]="Ukrainian (latynka)"; задає повну назву для групи символів.

Далі описуємо літери, які треба додати чи замінити. Інструкція складається з ключового слова key; ідентифікатора, що позначає розташування клавіші на клавіатурі; та переліку символів, які будуть пов'язані з клавішею.

key <AC02> { [ s, S, scaron, Scaron ] };

Є чотири рівні натискання по клавіші: звичайне натискання; натискання з клавішею Shift; натискання з клавішею ПравAlt; натискання з клавішами ПравAlt та Shift одночасно.

2-й рівень - | S Š | - 4-й рівень
1-й рівень - | s š | - 3-й рівень

Ідентифікатори фізичного розташування клавіш на клавіатурі:

  • <TLDE> позначає клавішу наголос/тильда;
  • <BKSL> позначає клавішу зворотній слеш;
  • <AB01>, <AB02>, .. позначають клавіші Z, X, ..;
  • <AC01>, <AC02>, .. позначають клавіші A, S, ..;
  • <AD01>, <AD02>, .. позначають клавіші Q, W, ..;
  • <AE01>, <AE02>, .. позначають клавіші 1, 2, ...

Замість символів можна вказувати номери Юнікоду (наприклад, U0041 відповідає літері A) або їхні унікальні назви. Назви я підглядав у розкладках сусідніх мов (в польській (pl) і хорватській (hr)). Можна подивитися у Вікіпедії, але не факт, що вони будуть працювати.

У кінці додано інструкцію include "level3(ralt_switch)", яка дозволяє набирати символи 3-го і 4-го рівня через відповідну клавішу. В даному випадку це ПравийAlt.

Після опису розкладки треба додати метадані. Відкриваємо файл /usr/share/X11/xkb/rules/evdev.xml і шукаємо там фрагмент коду, що описує варіанти українських розкладок:

    <layout>
      <configItem>
        <name>ua</name>
        <shortDescription>uk</shortDescription>
        <description>Ukrainian</description>
        <languageList>
          <iso639Id>ukr</iso639Id>
        </languageList>
      </configItem>
      <variantList>
        <variant>
          <configItem>
            <name>phonetic</name>
            <description>Ukrainian (phonetic)</description>
          </configItem>
        </variant>
        ...
      </variantList>
    </layout>

і додаємо інформацію про свій варіант:

        ...
        <variant>
          <configItem>
            <name>latynka</name>
            <description>Ukrainian (latynka)</description>
          </configItem>
        </variant>

Щоб користуватися новою розкладкою треба додати її через меню Налаштування/Клавіатура, або відредагувати файл /etc/default/keyboard. В мене він виглядає так:

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="ua,ua"
XKBVARIANT="latynka,"
XKBOPTIONS="grp:caps_toggle,grp_led:scroll"

BACKSPACE="guess"

Після змін слід перезавантажити систему.

У графічному режимі повинно працювати добре, але в консолі можуть не набиратися діакритичні знаки. Це виправляється командою:

dpkg-reconfigure console-setup

і в другому вікні обрати шостий варіант зверху:

# Кирилиця - Слов'янські мови (а також боснійська та сербська латиниця)

Ось і все. Нова розкладка без проблем працює в емаксі, вімі та інших редакторах. Цікавтеся українською латинкою і вигадуйте свої розкладки!

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Читайте також: laravel install, v node, xfce4

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація