Keyboard

/usr/share/X11/xkb/symbols/ua

// Keyboard layouts for the Ukraine.
// AEN <aen@logic.ru> & Leon Kanter <leon@geon.donetsk.ua>
// last changes 2007/10/03 by Andriy Rysin <arysin@yahoo.com>

// Oleksiy Protas <elfy.ua@gmail.com>:
// - Added Serbian Cyrillics support

// The legacy WinKeys layout extended on the third and fourth level with
// some Unicode symbols (typographic quotes, m-dash, n-dash, ...), some
// often-used Cyrillics from other Slavic languages, and some often-used
// ASCII symbols (slash, brackets, ...).
default partial alphanumeric_keys
xkb_symbols "unicode" {

    include "ua(winkeys)"
    name[Group1]= "Ukrainian";

    key <TLDE> { [      apostrophe,      asciitilde,           U2019,              U0301  ] };  // ' ~ ’  ́
    key <AE01> { [               1,          exclam,           U00BD,        onesuperior  ] };  // 1 ! ½ ¹
    key <AE02> { [               2,        quotedbl,        EuroSign,        twosuperior  ] };  // 2 " € ²
    key <AE03> { [               3,      numbersign,      numerosign,              U00B3  ] };  // 3 # № ³
    key <AE04> { [               4,       semicolon,          dollar,              U00A7  ] };  // 4 ; $ §
    key <AE05> { [               5,         percent,           U20B4,             degree  ] };  // 5 % ₴ °
    key <AE06> { [               6,           colon,           U00F7,              U00BC  ] };  // 6 : ÷ ¼
    key <AE07> { [               7,        question,           U00A3,              U00BE  ] };  // 7 ? £ ¾
    key <AE08> { [               8,        asterisk,           U00D7, enfilledcircbullet  ] };  // 8 * × •
    key <AE09> { [               9,       parenleft,     bracketleft,          braceleft  ] };  // 9 ( [ {
    key <AE10> { [               0,      parenright,    bracketright,         braceright  ] };  // 0 ) ] }
    key <AE11> { [           minus,      underscore,          emdash,             endash  ] };  // - _ — –
    key <AE12> { [           equal,            plus,        notequal,          plusminus  ] };  // = + ≠ ±

    key <AD03> { [      Cyrillic_u,      Cyrillic_U,       Byelorussian_shortu,       Byelorussian_SHORTU  ] };  // у У ў Ў
    key <AD04> { [     Cyrillic_ka,     Cyrillic_KA,                registered                             ] };  // к К ®
    key <AD05> { [     Cyrillic_ie,     Cyrillic_IE,               Cyrillic_io,               Cyrillic_IO  ] };  // е Е ё Ё
    key <AD07> { [    Cyrillic_ghe,    Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN  ] };  // г Г ґ Ґ
    key <AD12> { [    Ukrainian_yi,    Ukrainian_YI,         Cyrillic_hardsign,         Cyrillic_HARDSIGN  ] };  // ї Ї ъ Ъ
    key <AC02> { [     Ukrainian_i,     Ukrainian_I,             Cyrillic_yeru,             Cyrillic_YERU  ] };  // і І ы Ы
    key <AC11> { [    Ukrainian_ie,    Ukrainian_IE,                Cyrillic_e,                Cyrillic_E  ] };  // є Є э Э

    key <BKSL> { [           slash,             bar,       backslash            ] };  // / | \

    key <AB03> { [     Cyrillic_es,     Cyrillic_ES,       copyright            ] };  // с С ©
    key <AB06> { [     Cyrillic_te,     Cyrillic_TE,       trademark            ] };  // т Т ™
    key <AB08> { [     Cyrillic_be,     Cyrillic_BE,   guillemotleft,      less ] };  // б Б « <
    key <AB09> { [     Cyrillic_yu,     Cyrillic_YU,  guillemotright,   greater ] };  // ю Ю » >
    key <AB10> { [          period,           comma,        ellipsis,     slash ] };  // . , … /

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "legacy" {

    name[Group1]= "Ukrainian (legacy)";

    key <TLDE> { [      apostrophe,      asciitilde  ] };
    key <AE01> { [               1,         exclam   ] };
    key <AE02> { [               2,        quotedbl  ] };
    key <AE03> { [               3,      numbersign  ] };
    key <AE04> { [               4,        asterisk  ] };
    key <AE05> { [               5,           colon  ] };
    key <AE06> { [               6,           comma  ] };
    key <AE07> { [               7,          period  ] };
    key <AE08> { [               8,       semicolon  ] };
    key <AE09> { [               9,       parenleft  ] };
    key <AE10> { [               0,      parenright  ] };
    key <AE11> { [           minus,      underscore  ] };
    key <AE12> { [           equal,            plus  ] };

    key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI  ] };
    key <AD02> { [    Cyrillic_tse,    Cyrillic_TSE  ] };
    key <AD03> { [      Cyrillic_u,      Cyrillic_U  ] };
    key <AD04> { [     Cyrillic_ka,     Cyrillic_KA  ] };
    key <AD05> { [     Cyrillic_ie,     Cyrillic_IE  ] };
    key <AD06> { [     Cyrillic_en,     Cyrillic_EN  ] };
    key <AD07> { [    Cyrillic_ghe,    Cyrillic_GHE  ] };
    key <AD08> { [    Cyrillic_sha,    Cyrillic_SHA  ] };
    key <AD09> { [  Cyrillic_shcha,  Cyrillic_SHCHA  ] };
    key <AD10> { [     Cyrillic_ze,     Cyrillic_ZE  ] };
    key <AD11> { [     Cyrillic_ha,     Cyrillic_HA  ] };
    key <AD12> { [    Ukrainian_yi,    Ukrainian_YI  ] };
    key <BKSL> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };

    key <AC01> { [     Cyrillic_ef,     Cyrillic_EF  ] };
    key <AC02> { [     Ukrainian_i,     Ukrainian_I  ] };
    key <AC03> { [     Cyrillic_ve,     Cyrillic_VE  ] };
    key <AC04> { [      Cyrillic_a,     Cyrillic_A   ] };
    key <AC05> { [     Cyrillic_pe,     Cyrillic_PE  ] };
    key <AC06> { [     Cyrillic_er,     Cyrillic_ER  ] };
    key <AC07> { [      Cyrillic_o,     Cyrillic_O   ] };
    key <AC08> { [     Cyrillic_el,     Cyrillic_EL  ] };
    key <AC09> { [     Cyrillic_de,     Cyrillic_DE  ] };
    key <AC10> { [    Cyrillic_zhe,    Cyrillic_ZHE  ] };
    key <AC11> { [    Ukrainian_ie,    Ukrainian_IE  ] };

    key <AB01> { [     Cyrillic_ya,     Cyrillic_YA  ] };
    key <AB02> { [    Cyrillic_che,    Cyrillic_CHE  ] };
    key <AB03> { [     Cyrillic_es,     Cyrillic_ES  ] };
    key <AB04> { [     Cyrillic_em,     Cyrillic_EM  ] };
    key <AB06> { [     Cyrillic_te,     Cyrillic_TE  ] };
    key <AB05> { [      Cyrillic_i,      Cyrillic_I  ] };
    key <AB07> {[Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
    key <AB08> { [     Cyrillic_be,     Cyrillic_BE  ] };
    key <AB09> { [     Cyrillic_yu,     Cyrillic_YU  ] };
    key <AB10> { [           slash,        question  ] };

    key <LSGT> { [           slash,             bar  ] };
};

partial alphanumeric_keys
xkb_symbols "winkeys" {

    include "ua(legacy)"
    name[Group1]= "Ukrainian (Windows)";

    key <AE03> { [               3,      numbersign  ] };
    key <AE04> { [               4,       semicolon  ] };
    key <AE05> { [               5,         percent  ] };
    key <AE06> { [               6,           colon  ] };
    key <AE07> { [               7,        question  ] };
    key <AE08> { [               8,        asterisk  ] };
    key <AB10> { [          period,           comma  ] };
};

partial alphanumeric_keys
xkb_symbols "typewriter" {

    include "ua(legacy)"
    name[Group1]= "Ukrainian (typewriter)";

    key <TLDE> { [      apostrophe,        quotedbl  ] };
    key <AE01> { [          exclam,               1  ] };
    key <AE02> { [      numerosign,               2  ] };
    key <AE03> { [           slash,               3  ] };
    key <AE04> { [       semicolon,               4  ] };
    key <AE05> { [           colon,               5  ] };
    key <AE06> { [           comma,               6  ] };
    key <AE07> { [          period,               7  ] };
    key <AE08> { [      underscore,               8  ] };
    key <AE09> { [        question,               9  ] };
    key <AE10> { [         percent,               0  ] };

    key <AD12> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };

    key <AC02> { [      Cyrillic_i,      Cyrillic_I  ] };

    key <AB05> { [     Ukrainian_i,     Ukrainian_I  ] };
    key <AB10> { [    Ukrainian_yi,    Ukrainian_YI  ] };

    key <BKSL> { [       parenleft,      parenright  ] };
};

partial alphanumeric_keys
xkb_symbols "phonetic" {

  include "ua(legacy)"
  name[Group1]= "Ukrainian (phonetic)";

    key <LatQ> { [ Cyrillic_ya,       Cyrillic_YA        ] };
    key <LatW> { [ Cyrillic_ve,       Cyrillic_VE        ] };
    key <LatE> { [ Cyrillic_ie,       Cyrillic_IE        ] };
    key <LatR> { [ Cyrillic_er,       Cyrillic_ER        ] };
    key <LatT> { [ Cyrillic_te,       Cyrillic_TE        ] };
    key <LatY> { [ Cyrillic_i,        Cyrillic_I         ] };
    key <LatU> { [ Cyrillic_u,        Cyrillic_U         ] };
    key <LatI> { [ Ukrainian_i,       Ukrainian_I        ] };
    key <LatO> { [ Cyrillic_o,        Cyrillic_O         ] };
    key <LatP> { [ Cyrillic_pe,       Cyrillic_PE        ] };
    key <AD11> { [ Cyrillic_sha,      Cyrillic_SHA       ] };
    key <AD12> { [ Cyrillic_shcha,    Cyrillic_SHCHA     ] };

    key <LatA> { [ Cyrillic_a,        Cyrillic_A         ] };
    key <LatS> { [ Cyrillic_es,       Cyrillic_ES        ] };
    key <LatD> { [ Cyrillic_de,       Cyrillic_DE        ] };
    key <LatF> { [ Cyrillic_ef,       Cyrillic_EF        ] };
    key <LatG> { [ Cyrillic_ghe,      Cyrillic_GHE       ] };
    key <LatH> { [ Cyrillic_ha,       Cyrillic_HA        ] };
    key <LatJ> { [ Cyrillic_shorti,   Cyrillic_SHORTI    ] };
    key <LatK> { [ Cyrillic_ka,       Cyrillic_KA        ] };
    key <LatL> { [ Cyrillic_el,       Cyrillic_EL        ] };
    key <AC10> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
    key <AC11> { [ Cyrillic_che,      Cyrillic_CHE       ] };
    key <BKSL> { [ Cyrillic_yu,       Cyrillic_YU        ] };

    key <LatZ> { [ Cyrillic_ze,       Cyrillic_ZE        ] };
    key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
    key <LatC> { [ Cyrillic_tse,      Cyrillic_TSE       ] };
    key <LatV> { [ Cyrillic_zhe,      Cyrillic_ZHE       ] };
    key <LatB> { [ Cyrillic_be,       Cyrillic_BE        ] };
    key <LatN> { [ Cyrillic_en,       Cyrillic_EN        ] };
    key <LatM> { [ Cyrillic_em,       Cyrillic_EM        ] };
    key <AB08> { [ Ukrainian_yi,      Ukrainian_YI       ] };
    key <AB09> { [ Ukrainian_ie,      Ukrainian_IE       ] };
    key <AB10> { [ slash,             question           ] };
};

// Ukrainian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny).
// Andrew Porokhnyak <aop@porokhnyak.org>
partial alphanumeric_keys
xkb_symbols "rstu" {

    include "ua(legacy)"
    name[Group1]= "Ukrainian (standard RSTU)";

    key <TLDE> { [      apostrophe,        question  ] };
    key <AE01> { [          exclam,               1  ] };
    key <AE02> { [        quotedbl,               2  ] };
    key <AE03> { [      numbersign,               3  ] };
    key <AE04> { [       semicolon,               4  ] };
    key <AE05> { [           colon,               5  ] };
    key <AE06> { [           comma,               6  ] };
    key <AE07> { [          period,               7  ] };
    key <AE08> { [        asterisk,               8  ] };
    key <AE09> { [       parenleft,               9  ] };
    key <AE10> { [      parenright,               0  ] };

    key <AD12> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };

    key <AC02> { [      Cyrillic_i,      Cyrillic_I  ] };

    key <AB05> { [     Ukrainian_i,     Ukrainian_I  ] };
    key <AB10> { [    Ukrainian_yi,    Ukrainian_YI  ] };

    key <BKSL> { [           slash,         percent  ] };
};

// Russian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny).
// Andrew Porokhnyak <aop@porokhnyak.org>
partial alphanumeric_keys
xkb_symbols "rstu_ru" {

    include "ru(common)"
    name[Group1]= "Russian (Ukraine, standard RSTU)";

    key <TLDE> { [      apostrophe,        question  ] };
    key <AE01> { [          exclam,               1  ] };
    key <AE02> { [        quotedbl,               2  ] };
    key <AE03> { [      numbersign,               3  ] };
    key <AE04> { [       semicolon,               4  ] };
    key <AE05> { [           colon,               5  ] };
    key <AE06> { [           comma,               6  ] };
    key <AE07> { [          period,               7  ] };
    key <AE08> { [        asterisk,               8  ] };
    key <AE09> { [       parenleft,               9  ] };
    key <AE10> { [      parenright,               0  ] };
    key <BKSL> { [           slash,         percent  ] };

    key.type[group1]="ALPHABETIC";

    key <AB10> { [     Cyrillic_io,     Cyrillic_IO  ] };
};

// Homophonic keyboard layout (by Tomas Marko Miljenović),
// based on the Ukrainian National Transliteration,
// commonly used phonetic layouts for Mac and Win.
partial alphanumeric_keys
xkb_symbols "homophonic" {

  include "ua(legacy)"
  name[Group1]= "Ukrainian (homophonic)";

    key <TLDE> { [        grave,        underscore       ] };
    key <AE01> { [            1,            exclam       ] };
    key <AE02> { [            2,                at       ] };
    key <AE03> { [            3,         semicolon       ] };
    key <AE04> { [            4,             colon       ] };
    key <AE05> { [            5,           percent       ] };
    key <AE06> { [            6,        apostrophe       ] };
    key <AE07> { [            7,          quotedbl       ] };
    key <AE08> { [            8,          asterisk       ] };
    key <AE09> { [            9,         parenleft       ] };
    key <AE10> { [            0,        parenright       ] };
    key <AE11> { [ Ukrainian_ie,      Ukrainian_IE       ] };
    key <AE12> { [ Ukrainian_yi,      Ukrainian_YI       ] };

    key <LatQ> { [ Cyrillic_ya,       Cyrillic_YA        ] };
    key <LatW> { [ Cyrillic_sha,      Cyrillic_SHA       ] };
    key <LatE> { [ Cyrillic_ie,       Cyrillic_IE        ] };
    key <LatR> { [ Cyrillic_er,       Cyrillic_ER        ] };
    key <LatT> { [ Cyrillic_te,       Cyrillic_TE        ] };
    key <LatY> { [ Cyrillic_i,        Cyrillic_I         ] };
    key <LatU> { [ Cyrillic_u,        Cyrillic_U         ] };
    key <LatI> { [ Ukrainian_i,       Ukrainian_I        ] };
    key <LatO> { [ Cyrillic_o,        Cyrillic_O         ] };
    key <LatP> { [ Cyrillic_pe,       Cyrillic_PE        ] };
    key <AD11> { [ Cyrillic_yu,       Cyrillic_YU        ] };
    key <AD12> { [ Cyrillic_shcha,    Cyrillic_SHCHA     ] };

    key <LatA> { [ Cyrillic_a,        Cyrillic_A         ] };
    key <LatS> { [ Cyrillic_es,       Cyrillic_ES        ] };
    key <LatD> { [ Cyrillic_de,       Cyrillic_DE        ] };
    key <LatF> { [ Cyrillic_ef,       Cyrillic_EF        ] };
    key <LatG> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
    key <LatH> { [ Cyrillic_ghe,      Cyrillic_GHE       ] };
    key <LatJ> { [ Cyrillic_shorti,   Cyrillic_SHORTI    ] };
    key <LatK> { [ Cyrillic_ka,       Cyrillic_KA        ] };
    key <LatL> { [ Cyrillic_el,       Cyrillic_EL        ] };
    key <AC10> { [ Cyrillic_che,      Cyrillic_CHE       ] };
    key <AC11> { [ Cyrillic_zhe,      Cyrillic_ZHE       ] };
    key <BKSL> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };

    key <LatZ> { [ Cyrillic_ze,       Cyrillic_ZE        ] };
    key <LatX> { [ Cyrillic_ha,       Cyrillic_HA        ] };
    key <LatC> { [ Cyrillic_tse,      Cyrillic_TSE       ] };
    key <LatV> { [ Cyrillic_ve,       Cyrillic_VE        ] };
    key <LatB> { [ Cyrillic_be,       Cyrillic_BE        ] };
    key <LatN> { [ Cyrillic_en,       Cyrillic_EN        ] };
    key <LatM> { [ Cyrillic_em,       Cyrillic_EM        ] };
    key <AB08> { [ comma,             less               ] };
    key <AB09> { [ period,            greater            ] };
    key <AB10> { [ slash,             question           ] };
};

// EXTRAS:

partial alphanumeric_keys
	xkb_symbols "sun_type6" {
	include "sun_vndr/ua(sun_type6)"
};

Last updated