Home | History | Annotate | Line # | Download | only in symbols
      1 // Keyboard layouts for Russia.
      2 // AEN <aen (a] logic.ru>
      3 // 2001/12/23 by Leon Kanter <leon (a] blackcatlinux.com>
      4 // 2005/12/09 Valery Inozemtsev <shrek (a] altlinux.ru>
      5 // 2018/07/15 @a13 (a.k.a. @dbvvmpg) and Stepanenko Andrey <ftvkyo2011 (a] yandex.ru>
      6 
      7 // Windows layout
      8 default partial alphanumeric_keys
      9 xkb_symbols "winkeys" {
     10 
     11     include "ru(common)"
     12     name[Group1]= "Russian";
     13 
     14     key <AE03> { [           3,  numerosign  ] };
     15     key <AE04> { [           4,   semicolon  ] };
     16     key <AE05> { [           5,     percent  ] };
     17     key <AE06> { [           6,       colon  ] };
     18     key <AE07> { [           7,    question  ] };
     19     key <AE08> { [           8,    asterisk, U20BD  ] };
     20 
     21     key <AB10> { [      period,       comma  ] };
     22     key <BKSL> { [   backslash,       slash  ] };
     23 };
     24 
     25 hidden partial alphanumeric_keys
     26 xkb_symbols "common" {
     27 
     28     key <AE01> { [           1,      exclam  ] };
     29     key <AE02> { [           2,    quotedbl  ] };
     30     key <AE03> { [           3,  numbersign  ] };
     31     key <AE04> { [           4,    asterisk  ] };
     32     key <AE05> { [           5,       colon  ] };
     33     key <AE06> { [           6,       comma  ] };
     34     key <AE07> { [           7,      period  ] };
     35     key <AE08> { [           8,   semicolon  ] };
     36     key <AE09> { [           9,   parenleft  ] };
     37     key <AE10> { [           0,  parenright  ] };
     38     key <AE11> { [       minus,  underscore  ] };
     39     key <AE12> { [       equal,        plus  ] };
     40     key <BKSL> { [   backslash,         bar  ] };
     41 
     42     key <AB10> { [       slash,    question  ] };
     43     key <LSGT> { [       slash,         bar  ] };
     44 
     45     key <TLDE> { [       Cyrillic_io,       Cyrillic_IO  ] };
     46     key <AD01> { [   Cyrillic_shorti,   Cyrillic_SHORTI  ] };
     47     key <AD02> { [      Cyrillic_tse,      Cyrillic_TSE  ] };
     48     key <AD03> { [        Cyrillic_u,        Cyrillic_U  ] };
     49     key <AD04> { [       Cyrillic_ka,       Cyrillic_KA  ] };
     50     key <AD05> { [       Cyrillic_ie,       Cyrillic_IE  ] };
     51     key <AD06> { [       Cyrillic_en,       Cyrillic_EN  ] };
     52     key <AD07> { [      Cyrillic_ghe,      Cyrillic_GHE  ] };
     53     key <AD08> { [      Cyrillic_sha,      Cyrillic_SHA  ] };
     54     key <AD09> { [    Cyrillic_shcha,    Cyrillic_SHCHA  ] };
     55     key <AD10> { [       Cyrillic_ze,       Cyrillic_ZE  ] };
     56     key <AD11> { [       Cyrillic_ha,       Cyrillic_HA  ] };
     57     key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN  ] };
     58 
     59     key <AC01> { [       Cyrillic_ef,       Cyrillic_EF  ] };
     60     key <AC02> { [     Cyrillic_yeru,     Cyrillic_YERU  ] };
     61     key <AC03> { [       Cyrillic_ve,       Cyrillic_VE  ] };
     62     key <AC04> { [        Cyrillic_a,        Cyrillic_A  ] };
     63     key <AC05> { [       Cyrillic_pe,       Cyrillic_PE  ] };
     64     key <AC06> { [       Cyrillic_er,       Cyrillic_ER  ] };
     65     key <AC07> { [        Cyrillic_o,        Cyrillic_O  ] };
     66     key <AC08> { [       Cyrillic_el,       Cyrillic_EL  ] };
     67     key <AC09> { [       Cyrillic_de,       Cyrillic_DE  ] };
     68     key <AC10> { [      Cyrillic_zhe,      Cyrillic_ZHE  ] };
     69     key <AC11> { [        Cyrillic_e,        Cyrillic_E  ] };
     70 
     71     key <AB01> { [       Cyrillic_ya,       Cyrillic_YA  ] };
     72     key <AB02> { [      Cyrillic_che,      Cyrillic_CHE  ] };
     73     key <AB03> { [       Cyrillic_es,       Cyrillic_ES  ] };
     74     key <AB04> { [       Cyrillic_em,       Cyrillic_EM  ] };
     75     key <AB05> { [        Cyrillic_i,        Cyrillic_I  ] };
     76     key <AB06> { [       Cyrillic_te,       Cyrillic_TE  ] };
     77     key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
     78     key <AB08> { [       Cyrillic_be,       Cyrillic_BE  ] };
     79     key <AB09> { [       Cyrillic_yu,       Cyrillic_YU  ] };
     80 
     81     include "kpdl(comma)"
     82 };
     83 
     84 partial alphanumeric_keys
     85 xkb_symbols "legacy" {
     86 
     87     include "ru(common)"
     88     name[Group1]= "Russian (legacy)";
     89 };
     90 
     91 partial alphanumeric_keys
     92 xkb_symbols "olpc" {
     93 
     94     include "ru(common)"
     95 
     96     key <TLDE> { [  0x01000451,   0x01000401,       grave  ] };  // , 
     97     key <AE03> { [           3,   numbersign,  0x01002116  ] };  // 
     98     key <AE04> { [           4,       dollar,   semicolon  ] };
     99     key <AE06> { [           6,  asciicircum,       colon  ] };
    100     key <AE07> { [           7,    ampersand               ] };
    101     key <AE09> { [           9,    parenleft,       acute  ] };
    102     key <AC12> { [   backslash,          bar,       slash  ] };
    103 
    104     include "group(olpc)"
    105 };
    106 
    107 partial alphanumeric_keys
    108 xkb_symbols "typewriter" {
    109 
    110     include "ru(common)"
    111     name[Group1]= "Russian (typewriter)";
    112 
    113     key <TLDE> { [         bar,        plus  ] };
    114     key <AE01> { [  numerosign,           1  ] };
    115     key <AE02> { [       minus,           2  ] };
    116     key <AE03> { [       slash,           3  ] };
    117     key <AE04> { [    quotedbl,           4  ] };
    118     key <AE05> { [       colon,           5  ] };
    119     key <AE06> { [       comma,           6  ] };
    120     key <AE07> { [      period,           7  ] };
    121     key <AE08> { [  underscore,           8  ] };
    122     key <AE09> { [    question,           9  ] };
    123     key <AE10> { [     percent,           0  ] };
    124     key <AE11> { [      exclam,       equal  ] };
    125     key <AE12> { [   semicolon,   backslash  ] };
    126 
    127     key <BKSL> { [  parenright,   parenleft  ] };
    128 
    129     key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN  ] };
    130     key <AB10> { [       Cyrillic_io,       Cyrillic_IO  ] };
    131 };
    132 
    133 partial alphanumeric_keys
    134 xkb_symbols "typewriter-legacy" {
    135 
    136     include "ru(common)"
    137     name[Group1]= "Russian (typewriter, legacy)";
    138 
    139     key <TLDE> { [  apostrophe,    quotedbl  ] };
    140     key <AE01> { [      exclam,           1  ] };
    141     key <AE02> { [  numerosign,           2  ] };
    142     key <AE03> { [       slash,           3  ] };
    143     key <AE04> { [   semicolon,           4  ] };
    144     key <AE05> { [       colon,           5  ] };
    145     key <AE06> { [       comma,           6  ] };
    146     key <AE07> { [      period,           7  ] };
    147     key <AE08> { [  underscore,           8  ] };
    148     key <AE09> { [    question,           9  ] };
    149     key <AE10> { [     percent,           0  ] };
    150 
    151     key <BKSL> { [   parenleft,  parenright  ] };
    152 
    153     key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN  ] };
    154     key <AB10> { [       Cyrillic_io,       Cyrillic_IO  ] };
    155 };
    156 
    157 partial alphanumeric_keys
    158 xkb_symbols "gost-6431-75-48" {
    159 
    160     include "ru(typewriter)"
    161     name[Group1]= "Russian (GOST 6431-75)";
    162 
    163     key <TLDE> { [    section,  asciitilde  ] };
    164     key <AE01> { [  parenleft,           1  ] };
    165     key <AE02> { [ parenright,           2  ] };
    166     key <AE03> { [      minus,           3  ] };
    167     key <AE04> { [      slash,           4  ] };
    168     key <AE05> { [   quotedbl,           5  ] };
    169     key <AE06> { [      colon,           6  ] };
    170     key <AE07> { [      comma,           7  ] };
    171     key <AE08> { [     period,           8  ] };
    172     key <AE09> { [ underscore,           9  ] };
    173     key <AE10> { [   question,           0  ] };
    174     key <AE11> { [    percent,        plus  ] };
    175     key <AE12> { [    exclam,        equal  ] };
    176 
    177     key <BKSL> { [   semicolon,  numerosign ] };
    178 
    179     key <LSGT> { [ emdash, endash ] };
    180 };
    181 
    182 partial alphanumeric_keys
    183 xkb_symbols "gost-14289-88" {
    184 
    185     include "ru(typewriter)"
    186     name[Group1]= "Russian (GOST 14289-88)";
    187 
    188     key <TLDE> { [  backslash, asterisk,   asciitilde, section ] };
    189     key <AE01> { [  parenleft,        1,         less, guillemotleft ] };
    190     key <AE02> { [ parenright,        2,           at, guillemotright ] };
    191     key <AE03> { [      minus,        3,   numbersign, numerosign ] };
    192     key <AE04> { [      slash,        4,        U20BD, dollar ] }; // ruble
    193     key <AE05> { [   quotedbl,        5,      greater ] };
    194     key <AE06> { [      colon,        6,  asciicircum ] };
    195     key <AE07> { [      comma,        7,   ampersand  ] };
    196     key <AE08> { [     period,        8,   apostrophe, dead_acute ] };
    197     key <AE09> { [ underscore,        9,    braceleft, U201E ] };
    198     key <AE10> { [   question,        0,   braceright, U201F ] };
    199     key <AE11> { [    percent,     plus,  bracketleft, plusminus ] };
    200     key <AE12> { [     exclam,    equal, bracketright ] };
    201 
    202     key <BKSL> { [  semicolon,      bar,        grave ] };
    203 
    204     key <LSGT> { [ emdash, endash ] };
    205 };
    206 
    207 partial alphanumeric_keys
    208 xkb_symbols "phonetic" {
    209 
    210     name[Group1]= "Russian (phonetic)";
    211 
    212     key <AE01> { [           1,      exclam  ] };
    213     key <AE02> { [           2,          at  ] };
    214     key <AE03> { [           3, Cyrillic_io  ] };
    215     key <AE04> { [           4, Cyrillic_IO  ] };
    216     key <AE05> { [           5, Cyrillic_hardsign  ] };
    217     key <AE06> { [           6, Cyrillic_HARDSIGN  ] };
    218     key <AE07> { [           7,   ampersand  ] };
    219     key <AE08> { [           8,    asterisk  ] };
    220     key <AE09> { [           9,   parenleft  ] };
    221     key <AE10> { [           0,  parenright  ] };
    222     key <AE11> { [       minus,  underscore  ] };
    223 
    224     key <AB09> { [      period,     greater  ] };
    225     key <AB10> { [       slash,    question  ] };
    226     key <AB08> { [       comma,        less  ] };
    227     key <AC10> { [   semicolon,       colon  ] };
    228     key <AC11> { [  apostrophe,    quotedbl  ] };
    229     key <LSGT> { [         bar,   brokenbar  ] };
    230 
    231     key <TLDE> { [       Cyrillic_yu,       Cyrillic_YU  ] };
    232     key <LatQ> { [       Cyrillic_ya,       Cyrillic_YA  ] };
    233     key <LatZ> { [       Cyrillic_ze,       Cyrillic_ZE  ] };
    234     key <LatS> { [       Cyrillic_es,       Cyrillic_ES  ] };
    235     key <LatA> { [        Cyrillic_a,        Cyrillic_A  ] };
    236     key <LatW> { [       Cyrillic_ve,       Cyrillic_VE  ] };
    237     key <LatC> { [      Cyrillic_tse,      Cyrillic_TSE  ] };
    238     key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
    239     key <LatD> { [       Cyrillic_de,       Cyrillic_DE  ] };
    240     key <LatE> { [       Cyrillic_ie,       Cyrillic_IE  ] };
    241     key <LatV> { [      Cyrillic_zhe,      Cyrillic_ZHE  ] };
    242     key <LatF> { [       Cyrillic_ef,       Cyrillic_EF  ] };
    243     key <LatT> { [       Cyrillic_te,       Cyrillic_TE  ] };
    244     key <LatR> { [       Cyrillic_er,       Cyrillic_ER  ] };
    245     key <LatN> { [       Cyrillic_en,       Cyrillic_EN  ] };
    246     key <LatB> { [       Cyrillic_be,       Cyrillic_BE  ] };
    247     key <LatH> { [       Cyrillic_ha,       Cyrillic_HA  ] };
    248     key <LatG> { [      Cyrillic_ghe,      Cyrillic_GHE  ] };
    249     key <LatY> { [     Cyrillic_yeru,     Cyrillic_YERU  ] };
    250     key <LatM> { [       Cyrillic_em,       Cyrillic_EM  ] };
    251     key <LatJ> { [   Cyrillic_shorti,   Cyrillic_SHORTI  ] };
    252     key <LatU> { [        Cyrillic_u,        Cyrillic_U  ] };
    253     key <LatK> { [       Cyrillic_ka,       Cyrillic_KA  ] };
    254     key <LatI> { [        Cyrillic_i,        Cyrillic_I  ] };
    255     key <LatO> { [        Cyrillic_o,        Cyrillic_O  ] };
    256     key <LatL> { [       Cyrillic_el,       Cyrillic_EL  ] };
    257     key <LatP> { [       Cyrillic_pe,       Cyrillic_PE  ] };
    258 
    259     key <AD11> { [      Cyrillic_sha,      Cyrillic_SHA  ] };
    260     key <AE12> { [      Cyrillic_che,      Cyrillic_CHE  ] };
    261     key <AD12> { [    Cyrillic_shcha,    Cyrillic_SHCHA  ] };
    262     key <BKSL> { [        Cyrillic_e,        Cyrillic_E  ] };
    263 };
    264 
    265 partial alphanumeric_keys
    266 xkb_symbols "phonetic_winkeys" {
    267 
    268     include "ru(phonetic)"
    269     name[Group1]= "Russian (phonetic, Windows)";
    270 
    271     key <LatX> { [       Cyrillic_ha,       Cyrillic_HA  ] };
    272     key <LatH> { [      Cyrillic_che,      Cyrillic_CHE  ] };
    273     key <AE12> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
    274 };
    275 
    276 partial alphanumeric_keys
    277 xkb_symbols "phonetic_YAZHERTY" {
    278     include "ru(phonetic_winkeys)"
    279     name[Group1]= "Russian (phonetic, YAZHERTY)";
    280     key	<LatW> {	[     Cyrillic_zhe,     Cyrillic_ZHE	]	};
    281     key	<LatV> {	[    Cyrillic_ve,    Cyrillic_VE	]	}; 
    282 };
    283 
    284 
    285 partial alphanumeric_keys
    286 xkb_symbols "tt" {
    287 
    288     include "ru(winkeys)"
    289     name[Group1]= "Tatar";
    290 
    291     key <TLDE> { [           Cyrillic_shha,           Cyrillic_SHHA,        Cyrillic_io,        Cyrillic_IO  ] };
    292     key <AD02> { [          Cyrillic_o_bar,          Cyrillic_O_bar,       Cyrillic_tse,       Cyrillic_TSE  ] };
    293     key <AD09> { [          Cyrillic_schwa,          Cyrillic_SCHWA,     Cyrillic_shcha,     Cyrillic_SHCHA  ] };
    294     key <AD12> { [     Cyrillic_u_straight,     Cyrillic_U_straight,  Cyrillic_hardsign,  Cyrillic_HARDSIGN  ] };
    295     key <AC10> { [   Cyrillic_en_descender,   Cyrillic_EN_descender,       Cyrillic_zhe,       Cyrillic_ZHE  ] };
    296     key <AB07> { [  Cyrillic_zhe_descender,  Cyrillic_ZHE_descender,  Cyrillic_softsign,  Cyrillic_SOFTSIGN  ] };
    297 
    298     include "level3(ralt_switch)"
    299 };
    300 
    301 partial alphanumeric_keys
    302 xkb_symbols "os_legacy" {
    303 
    304     include "ru(common)"
    305     name[Group1]= "Ossetian (legacy)";
    306 
    307     key <TLDE> { [  Cyrillic_e,  Cyrillic_E                              ] };
    308     key <AC07> { [  Cyrillic_o,  Cyrillic_O,  Cyrillic_io,  Cyrillic_IO  ] };
    309     key <AC11> { [  0x010004D5,  0x010004D4                              ] };
    310 };
    311 
    312 partial alphanumeric_keys
    313 xkb_symbols "os_winkeys" {
    314 
    315     include "ru(winkeys)"
    316     name[Group1]= "Ossetian (Windows)";
    317 
    318     key <TLDE> { [  Cyrillic_e,  Cyrillic_E                              ] };
    319     key <AC07> { [  Cyrillic_o,  Cyrillic_O,  Cyrillic_io,  Cyrillic_IO  ] };
    320     key <AC11> { [  0x010004D5,  0x010004D4                              ] };
    321 };
    322 
    323 partial alphanumeric_keys
    324 xkb_symbols "cv" {
    325 
    326     include "ru(winkeys)"
    327     name[Group1]= "Chuvash";
    328 
    329     key <AD03> { [   Cyrillic_u,   Cyrillic_U,  0x010004f3,  0x010004f2 ] };
    330     key <AD05> { [  Cyrillic_ie,  Cyrillic_IE,  0x010004d7,  0x010004d6 ] };
    331     key <AC04> { [   Cyrillic_a,   Cyrillic_A,  0x010004d1,  0x010004d0 ] };
    332     key <AB03> { [  Cyrillic_es,  Cyrillic_ES,  0x010004ab,  0x010004aa ] };
    333 
    334     include "level3(ralt_switch)"
    335 };
    336 
    337 partial alphanumeric_keys
    338 xkb_symbols "udm" {
    339 
    340     include "ru(winkeys)"
    341     name[Group1]= "Udmurt";
    342 
    343     key <AE01> { [    question,      exclam,   1,   1  ] };
    344     key <AE02> { [   parenleft,    quotedbl,   2,   2  ] };
    345     key <AE03> { [  parenright,  numerosign,   3,   3  ] };
    346     key <AE04> { [       colon,   semicolon,   4,   4  ] };
    347     key <AE05> { [    asterisk,     percent,   5,   5  ] };
    348     key <AE06> { [  0x010004dd,  0x010004dc,   6,   6  ] };
    349     key <AE07> { [  0x010004e7,  0x010004e6,   7,   7  ] };
    350     key <AE08> { [  0x010004f5,  0x010004f4,   8,   8  ] };
    351     key <AE09> { [  0x010004e5,  0x010004e4,   9,   9  ] };
    352     key <AE10> { [  0x010004df,  0x010004de,   0,   0  ] };
    353 
    354     include "level3(ralt_switch)"
    355 };
    356 
    357 partial alphanumeric_keys
    358 xkb_symbols "cv_latin" {
    359 
    360     include "us(alt-intl)"
    361     name[Group1]= "Chuvash (Latin)";
    362 
    363     key <AD01> { [   q,   Q,   0x01000161,   0x01000160  ] };
    364     key <AD02> { [   w,   W,   udiaeresis,   Udiaeresis  ] };
    365     key <AD03> { [   e,   E,   0x01000115,   0x01000114  ] };
    366     key <AD07> { [   u,   U,   udiaeresis,   Udiaeresis  ] };
    367     key <AD08> { [   i,   I,   0x0100012d,   0x0100012c  ] };
    368     key <AD09> { [   o,   O,   odiaeresis,   Odiaeresis  ] };
    369     key <AC01> { [   a,   A,       abreve,       Abreve  ] };
    370     key <AC02> { [   s,   S,     scedilla,     Scedilla  ] };
    371     key <AC05> { [   g,   G,       gbreve,       Gbreve  ] };
    372     key <AC07> { [   j,   J,   0x01000131,   0x01000130  ] };
    373     key <AB03> { [   c,   C,     ccedilla,     Ccedilla  ] };
    374 
    375     include "level3(ralt_switch)"
    376 };
    377 
    378 // Komi language layout
    379 // Vlad Shakhov <lumpen.intellectual (a] gmail.com>
    380 // last changes 2007/10/23
    381 partial alphanumeric_keys
    382 xkb_symbols "kom" {
    383 
    384     include "ru(winkeys)"
    385     name[Group1]= "Komi";
    386 
    387     // cyrilllic o with diaeresis
    388     key <AC07> { [  Cyrillic_o,  Cyrillic_O,        U04E7,        U04E6  ] };
    389 
    390     // hard I as additional key for soft Cyrillic_I
    391     key <AB05> { [  Cyrillic_i,  Cyrillic_I,  Ukrainian_i,  Ukrainian_I  ] };
    392 
    393     include "level3(ralt_switch)"
    394 };
    395 
    396 // Yakut language layout
    397 // 2008/04/23 Yakov Aleksandrov <bertjickty (a] yandex.ru>
    398 // 2008/04/23 Anatoliy Zhozhikov <jav (a] sitc.ru>
    399 // 2008/04/23 Aleksandr Varlamov
    400 partial alphanumeric_keys
    401 xkb_symbols "sah" {
    402 
    403     include "ru(winkeys)"
    404     name[Group1]= "Yakut";
    405 
    406     key <TLDE> { [  Cyrillic_io,      Cyrillic_IO,      U04EB,                U04EA                ] };
    407     key <AD01> { [  Cyrillic_shorti,  Cyrillic_SHORTI,  U048B,                U048A                ] };
    408     key <AD03> { [  Cyrillic_u,       Cyrillic_U,       Cyrillic_u_straight,  Cyrillic_U_straight  ] };
    409     key <AD04> { [  Cyrillic_ka,      Cyrillic_KA,      U04C4,                U04C3                ] };
    410     key <AD06> { [  Cyrillic_en,      Cyrillic_EN,      U04A5,                U04A4                ] };
    411     key <AD07> { [  Cyrillic_ghe,     Cyrillic_GHE,     U0495,                U0494                ] };
    412     key <AD10> { [  Cyrillic_ze,      Cyrillic_ZE,      U04E1,                U04E0                ] };
    413     key <AD11> { [  Cyrillic_ha,      Cyrillic_HA,      Cyrillic_shha,        Cyrillic_SHHA        ] };
    414     key <AC07> { [  Cyrillic_o,       Cyrillic_O,       Cyrillic_o_bar,       Cyrillic_O_bar       ] };
    415     key <AC10> { [  Cyrillic_zhe,     Cyrillic_ZHE,     U0461,                U0460                ] };
    416     key <AB02> { [  Cyrillic_che,     Cyrillic_CHE,     Cyrillic_u_macron,    Cyrillic_U_macron    ] };
    417     key <AB04> { [  Cyrillic_em,      Cyrillic_EM,      U04C8,                U04C7                ] };
    418     key <AB05> { [  Cyrillic_i,       Cyrillic_I,       Cyrillic_i_macron,    Cyrillic_I_macron    ] };
    419 
    420     include "level3(ralt_switch)"
    421 };
    422 
    423 
    424 //Kalmyk language layout
    425 //based on the Kalmyk language layout: http://soft.oyrat.org/
    426 //Nikolay Korneev <halmg (a] oyrat.org>
    427 //Toli Miron <mirontoli (a] gmail.com>
    428 partial alphanumeric_keys
    429 xkb_symbols "xal" {
    430 
    431     include "ru(winkeys)"
    432     name[Group1]= "Kalmyk";
    433 
    434     key.type[group1]="FOUR_LEVEL";
    435 
    436     key <AE01> { [               question,                 exclam,             1  ] };
    437     key <AE02> { [             numerosign,               quotedbl,             2  ] };
    438     key <AE03> { [    Cyrillic_u_straight,    Cyrillic_U_straight,             3  ] };
    439     key <AE04> { [         Cyrillic_schwa,         Cyrillic_SCHWA,             4  ] };
    440     key <AE05> { [               asterisk,                percent,             5  ] };
    441     key <AE06> { [  Cyrillic_en_descender,  Cyrillic_EN_descender,             6  ] };
    442     key <AE07> { [         Cyrillic_o_bar,         Cyrillic_O_bar,             7  ] };
    443     key <AE08> { [          Cyrillic_shha,          Cyrillic_SHHA,             8  ] };
    444     key <AE09> { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender,             9  ] };
    445     key <AE10> { [              semicolon,                  colon,             0  ] };
    446 
    447     key <TLDE> { [              parenleft,             parenright,   Cyrillic_io,  Cyrillic_IO    ] };
    448 
    449     key <AD02> { [           Cyrillic_tse,           Cyrillic_TSE,        dollar  ] };
    450     key <AD03> { [             Cyrillic_u,             Cyrillic_U,      EuroSign  ] };
    451     key <AD04> { [            Cyrillic_ka,            Cyrillic_KA,    registered  ] };
    452     key <AD05> { [            Cyrillic_ie,            Cyrillic_IE,     trademark  ] };
    453     key <AD11> { [            Cyrillic_ha,            Cyrillic_HA,   bracketleft  ] };
    454     key <AD12> { [      Cyrillic_hardsign,      Cyrillic_HARDSIGN,  bracketright  ] };
    455     key <AC11> { [             Cyrillic_e,             Cyrillic_E,    apostrophe  ] };
    456     key <AB03> { [            Cyrillic_es,            Cyrillic_ES,     copyright  ] };
    457     key <AB08> { [            Cyrillic_be,            Cyrillic_BE,          less  ] };
    458     key <AB09> { [            Cyrillic_yu,            Cyrillic_YU,       greater  ] };
    459 
    460     include "level3(ralt_switch)"
    461 };
    462 
    463 partial alphanumeric_keys
    464 xkb_symbols "dos" {
    465 
    466     include "ru(common)"
    467     name[Group1]= "Russian (DOS)";
    468 
    469     key <TLDE> { [   parenright,  parenleft   ] };
    470     key <AE04> { [   4,           currency    ] };
    471     key <AE09> { [   9,           question    ] };
    472     key <AE10> { [   0,           percent     ] };
    473 
    474     key <AB10> { [   Cyrillic_io, Cyrillic_IO ] };
    475 };
    476 
    477 partial alphanumeric_keys
    478 xkb_symbols "bak" {
    479 
    480     include "ru(winkeys)"
    481     name[Group1]= "Bashkirian";
    482 
    483     key.type[group1]="FOUR_LEVEL";
    484 
    485     key <TLDE> { [         Cyrillic_schwa,         Cyrillic_SCHWA,  Cyrillic_io,   Cyrillic_IO  ] };
    486     key <AE01> { [                 exclam,               quotedbl,            1,             1  ] };
    487     key <AE02> { [         Cyrillic_o_bar,         Cyrillic_O_bar,            2,             2  ] };
    488     key <AE03> { [             0x010004a1,             0x010004a0,            3,             3  ] };
    489     key <AE04> { [       Cyrillic_ghe_bar,       Cyrillic_GHE_bar,            4,             4  ] };
    490     key <AE05> { [             0x010004ab,             0x010004aa,            5,             5  ] };
    491     key <AE06> { [                  colon,              semicolon,            6,             6  ] };
    492     key <AE07> { [             0x01000499,             0x01000498,            7,             7  ] };
    493     key <AE08> { [          Cyrillic_shha,          Cyrillic_SHHA,            8,             8  ] };
    494     key <AE09> { [               question,              parenleft,            9,             9  ] };
    495     key <AE10> { [             numerosign,             parenright,            0,             0  ] };
    496     key <AE11> { [                  minus,                percent,        minus,    underscore  ] };
    497     key <AE12> { [    Cyrillic_u_straight,    Cyrillic_U_straight,        equal,          plus  ] };
    498     key <BKSL> { [  Cyrillic_en_descender,  Cyrillic_EN_descender,    backslash,         slash  ] };
    499 
    500     include "level3(ralt_switch)"
    501 };
    502 
    503 // Serbian characters are added as third-level symbols to Russian keyboard layout.
    504 partial alphanumeric_keys
    505 xkb_symbols "srp" {
    506 
    507     include "ru(common)"
    508     name[Group1]= "Serbian (Russia)";
    509 
    510     key <AE03> { [               3,      numerosign                ] };
    511     key <AE04> { [               4,       semicolon                ] };
    512     key <AE05> { [               5,         percent                ] };
    513     key <AE06> { [               6,           colon                ] };
    514     key <AE07> { [               7,        question                ] };
    515     key <AE08> { [               8,        asterisk                ] };
    516     key <AB10> { [          period,           comma                ] };
    517     key <BKSL> { [       backslash,           slash                ] };
    518     key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI,  U458,  U408  ] };
    519     key <AD06> { [     Cyrillic_en,     Cyrillic_EN,  U45A,  U40A  ] };
    520     key <AC08> { [     Cyrillic_el,     Cyrillic_EL,  U459,  U409  ] };
    521     key <AC09> { [     Cyrillic_de,     Cyrillic_DE,  U45F,  U40F  ] };
    522     key <AC10> { [    Cyrillic_zhe,    Cyrillic_ZHE,  U452,  U402  ] };
    523     key <AB02> { [    Cyrillic_che,    Cyrillic_CHE,  U45B,  U40B  ] };
    524 
    525     include "level3(ralt_switch)"
    526 };
    527 
    528 // Mari language layout
    529 // http://www.marlamuter.com/
    530 // Last edit by Viatcheslav Kileev (slavakileev (a] yandex.ru)
    531 partial alphanumeric_keys
    532 xkb_symbols "chm" {
    533 
    534     include "ru(winkeys)"
    535     name[Group1]= "Mari";
    536 
    537     key <AC04> { [   Cyrillic_a,   Cyrillic_A,   U04D3,   U04D2  ] };
    538     key <AD03> { [   Cyrillic_u,   Cyrillic_U,   U04F1,   U04F0  ] };
    539     key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, U04F9,   U04F8  ] };
    540     key <AD06> { [   Cyrillic_en,  Cyrillic_EN,  U04A5,   U04A4  ] };
    541     key <AC07> { [   Cyrillic_o,   Cyrillic_O,   U04E7,   U04E6  ] };
    542 
    543     include "level3(ralt_switch)"
    544 };
    545 
    546 partial alphanumeric_keys
    547 xkb_symbols "phonetic_azerty" {
    548 
    549     include "level3(ralt_switch)"
    550 
    551     name[Group1]= "Russian (phonetic, AZERTY)";
    552 
    553      key <AE01>	{ [ ampersand,          1,  onesuperior,   exclamdown ]	};
    554      key <AE02>	{ [    eacute,          2,   asciitilde,    oneeighth ]	};
    555      key <AE03>	{ [  quotedbl,          3,   numbersign,     sterling ]	};
    556      key <AE04>	{ [apostrophe,          4,    braceleft,       dollar ]	};
    557      key <AE05>	{ [ parenleft,          5,  bracketleft, threeeighths ]	};
    558      key <AE06>	{ [     minus,          6,          bar,  fiveeighths ]	};
    559      key <AE07>	{ [    egrave,          7,        grave, seveneighths ]	};
    560      key <AE08>	{ [underscore,          8,    backslash,    trademark ]	};
    561      key <AE09>	{ [  ccedilla,          9,  asciicircum,    plusminus ]	};
    562      key <AE10>	{ [    agrave,          0,           at,       degree ]	};
    563      key <AE11>	{ [parenright,     degree, bracketright, questiondown ]	};
    564      key <AE12>	{ [     equal,       plus,   braceright,  dead_ogonek ]	};
    565 
    566      key <AB07> { [     comma,   question,        acute,  doubleacute ] };
    567      key <AB08>	{ [ semicolon,     period,        U2022,     multiply ]	}; // bullet
    568      key <AB09>	{ [     colon,      slash, periodcentered,   division ]	};
    569      key <AB10>	{ [    exclam,    section, dead_belowdot, dead_abovedot ] };
    570 
    571      key <AC11>  { [    ugrave,    percent,  asciicircum,        caron ] };
    572      key	<LSGT> {	[	      bar,	 brokenbar	]	};
    573 
    574      key	<TLDE> {	[     Cyrillic_yu,     Cyrillic_YU	]	};
    575      key	<AC01> {	[     Cyrillic_ya,     Cyrillic_YA	]	}; // Q
    576      key	<AD02> {	[     Cyrillic_ze,     Cyrillic_ZE	]	}; // Z
    577      key	<LatS> {	[     Cyrillic_es,     Cyrillic_ES	]	};
    578      key	<AD01> {	[      Cyrillic_a,	Cyrillic_A	]	};
    579      key	<AB01> {	[     Cyrillic_ve,     Cyrillic_VE	]	}; // W
    580      key	<LatC> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};
    581      key	<LatX> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
    582      key	<LatD> {	[     Cyrillic_de,     Cyrillic_DE	]	};
    583      key	<LatE> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
    584      key	<LatV> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
    585      key	<LatF> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
    586      key	<LatT> {	[     Cyrillic_te,     Cyrillic_TE	]	};
    587      key	<LatR> {	[     Cyrillic_er,     Cyrillic_ER	]	};
    588      key	<LatN> {	[     Cyrillic_en,     Cyrillic_EN	]	};
    589      key	<LatB> {	[     Cyrillic_be,     Cyrillic_BE	]	};
    590      key	<LatH> {	[     Cyrillic_ha,     Cyrillic_HA	]	};
    591      key	<LatG> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};
    592      key	<LatY> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};
    593      key	<AC10> {	[     Cyrillic_em,     Cyrillic_EM	]	}; // M
    594      key	<LatJ> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};
    595      key	<LatU> {	[      Cyrillic_u,	Cyrillic_U	]	};
    596      key	<LatK> {	[     Cyrillic_ka,     Cyrillic_KA	]	};
    597      key	<LatI> {	[      Cyrillic_i,	Cyrillic_I	]	};
    598      key	<LatO> {	[      Cyrillic_o,	Cyrillic_O	]	};
    599      key	<LatL> {	[     Cyrillic_el,     Cyrillic_EL	]	};
    600      key	<LatP> {	[     Cyrillic_pe,     Cyrillic_PE	]	};
    601 
    602     key	<AD11> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
    603     key	<AE12> {	[    Cyrillic_che,    Cyrillic_CHE	]	};
    604     key	<AD12> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
    605     key	<BKSL> {	[      Cyrillic_e,	Cyrillic_E	]	};
    606 };
    607 
    608 // Russian dvorak phonetic layout
    609 // Oleg Zalizniak <ramaloke at gmail.com>
    610 partial alphanumeric_keys
    611 xkb_symbols "phonetic_dvorak" {
    612     include "level3(ralt_switch)"
    613 
    614     name[Group1]= "Russian (phonetic, Dvorak)";
    615 
    616     key <TLDE> { [ Cyrillic_yu, Cyrillic_YU ] };
    617 
    618     key <AE01> { [ 1, exclam ] };
    619     key <AE02> { [ 2, at ] };
    620     key <AE03> { [ 3, Cyrillic_io ] };
    621     key <AE04> { [ 4, Cyrillic_IO ] };
    622     key <AE05> { [ 5, Cyrillic_hardsign ] };
    623     key <AE06> { [ 6, Cyrillic_HARDSIGN ] };
    624     key <AE07> { [ 7, ampersand ] };
    625     key <AE08> { [ 8, asterisk ] };
    626     key <AE09> { [ 9, parenleft ] };
    627     key <AE10> { [ 0, parenright ] };
    628     key <AE11> { [ Cyrillic_sha, Cyrillic_SHA ] };
    629     key <AE12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
    630     key <BKSL> { [ Cyrillic_e, Cyrillic_E ] };
    631 
    632     key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    633     key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    634     key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    635     key <AD04> { [ Cyrillic_pe, Cyrillic_PE ] };
    636     key <AD05> { [ Cyrillic_yeru, Cyrillic_YERU ] };
    637     key <AD06> { [ Cyrillic_ef, Cyrillic_EF ] };
    638     key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
    639     key <AD08> { [ Cyrillic_tse, Cyrillic_TSE ] };
    640     key <AD09> { [ Cyrillic_er, Cyrillic_ER ] };
    641     key <AD10> { [ Cyrillic_el, Cyrillic_EL ] };
    642     key <AD11> { [ slash, question ] };
    643     key <AD12> { [ Cyrillic_che, Cyrillic_CHE ] };
    644 
    645     key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
    646     key <AC02> { [ Cyrillic_o, Cyrillic_O ] };
    647     key <AC03> { [ Cyrillic_ie, Cyrillic_IE ] };
    648     key <AC04> { [ Cyrillic_u, Cyrillic_U ] };
    649     key <AC05> { [ Cyrillic_i, Cyrillic_I ] };
    650     key <AC06> { [ Cyrillic_de, Cyrillic_DE ] };
    651     key <AC07> { [ Cyrillic_ha, Cyrillic_HA ] };
    652     key <AC08> { [ Cyrillic_te, Cyrillic_TE ] };
    653     key <AC09> { [ Cyrillic_en, Cyrillic_EN ] };
    654     key <AC10> { [ Cyrillic_es, Cyrillic_ES ] };
    655     key <AC11> { [ minus, underscore ] };
    656 
    657     key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    658     key <AB02> { [ Cyrillic_ya, Cyrillic_YA ] };
    659     key <AB03> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
    660     key <AB04> { [ Cyrillic_ka, Cyrillic_KA ] };
    661     key <AB05> { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
    662     key <AB06> { [ Cyrillic_be, Cyrillic_BE ] };
    663     key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
    664     key <AB08> { [ Cyrillic_ve, Cyrillic_VE ] };
    665     key <AB09> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
    666     key <AB10> { [ Cyrillic_ze, Cyrillic_ZE ] };
    667 };
    668 
    669 partial alphanumeric_keys
    670 xkb_symbols "phonetic_fr" {
    671 
    672     include "fr"
    673     include "ru(phonetic_azerty)"
    674 
    675     name[Group1]= "Russian (phonetic, French)";
    676 };
    677 
    678 // Keyboard layout for Abkhazian.
    679 // 2022/04/13 by Nart Tlisha <daniel.abzakh (a] gmail.com>
    680 partial alphanumeric_keys
    681 xkb_symbols "ab" {
    682 
    683     include "ru(common)"
    684     name[Group1]= "Abkhazian (Russia)";
    685 
    686     key <TLDE> { [     U0301,  asciitilde,        U201C,      U201D ] }; // double quotation marks
    687     key <AE01> { [         1,      exclam,        U00AB,      U00BB ] }; // guillemets
    688     key <AE02> { [         2,          at,     quotedbl,      U201E ] }; // low double quotation mark
    689     key <AE03> { [         3,  numbersign,   numerosign             ] };
    690     key <AE04> { [         4,      dollar,    semicolon             ] };
    691     key <AE05> { [         5,     percent                           ] };
    692     key <AE06> { [         6, asciicircum,        colon             ] };
    693     key <AE07> { [         7,   ampersand,     question             ] };
    694     key <AE08> { [         8,    asterisk                           ] };
    695     key <AE09> { [         9,   parenleft,  bracketleft,  braceleft ] };
    696     key <AE10> { [         0,  parenright, bracketright, braceright ] };
    697     key <AE11> { [     minus,  underscore,        U2013,      U2014 ] }; // endash, emdash
    698 
    699     key <AD01> { [        U049f,        U049e                       ] };
    700     key <AD02> { [ Cyrillic_tse, Cyrillic_TSE,      U04b5,    U04b4 ] };
    701     key <AD04> { [  Cyrillic_ka,  Cyrillic_KA,      U049b,    U049a ] };
    702     key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE,      U04f7,    U04f6 ] };
    703     key <AD09> { [        U04d9,        U04d8                       ] };
    704     key <AD10> { [  Cyrillic_ze,  Cyrillic_ZE,      U04e1,    U04e0 ] };
    705     key <AD11> { [  Cyrillic_ha,  Cyrillic_HA,      U04b3,    U04b2 ] };
    706     key <AD12> { [        U04bf,        U04be                       ] };
    707 
    708     key <AC05> { [  Cyrillic_pe,  Cyrillic_PE,      U0525,    U0524 ] };
    709     key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE,  semicolon,    colon ] };
    710     key <AC11> { [        U04bd,        U04bc, apostrophe, quotedbl ] };
    711     key <BKSL> { [    backslash,          bar,      slash           ] };
    712 
    713     key <AB01> { [        U045f,        U040f                       ] };
    714     key <AB02> { [ Cyrillic_che, Cyrillic_CHE,      U04b7,    U04b6 ] };
    715     key <AB06> { [  Cyrillic_te,  Cyrillic_TE,      U04ad,    U04ac ] };
    716     key <AB08> { [  Cyrillic_be,  Cyrillic_BE,      comma,     less ] };
    717     key <AB09> { [        U04a9,        U04a8,     period,  greater ] };
    718     key <AB10> { [        slash,     question,      comma,   period ] };
    719 
    720     include "level3(ralt_switch)"
    721 };
    722 
    723 // EXTRAS:
    724 
    725 // Rulemak, Colemak based Russian phonetic layout
    726 // contact: Geert Hendrickx <geert (a] hendrickx.be>
    727 // http://forum.colemak.com/viewtopic.php?id=519
    728 //
    729 // 
    730 //   `` !   @        $    %    ^   &    *   (    )    _    +         
    731 //   `  1   2   3 #  4   5   6   7    8   9 [  0 ]  -    = Backspace
    732 // 
    733 //                                      :   {   }  Enter 
    734 //  Tab                                ;             
    735 //       
    736 //   Back                                     "   |       
    737 //   space                                     '   \       
    738 // 
    739 //                                     ;    :    ?                  
    740 //   Shift                            , <  . >  /       Shift     
    741 // 
    742 //                                                                              
    743 //  Ctrl   Meta    Alt                  Space              AltGr  Menu   Ctrl  
    744 // 
    745 
    746 partial alphanumeric_keys
    747 xkb_symbols "rulemak" {
    748 
    749     name[Group1]= "Russian (Rulemak, phonetic Colemak)";
    750 
    751     key <TLDE> { [     Cyrillic_io,     Cyrillic_IO,           U0300,           U030F ] }; // Combining grave, double grave
    752     key <AE01> { [               1,          exclam,           U0301,           U030B ] }; // Combining acute, double acute
    753     key <AE02> { [               2,              at,           U0308                  ] }; // Combining diaeresis
    754     key <AE03> { [               3,      numerosign,      numbersign                  ] };
    755     key <AE04> { [               4,          dollar,            cent                  ] };
    756     key <AE05> { [               5,         percent,        EuroSign                  ] };
    757     key <AE06> { [               6,     asciicircum,           U0306,           U0304 ] }; // Combining breve, macron
    758     key <AE07> { [               7,       ampersand                                   ] };
    759     key <AE08> { [               8,        asterisk,           U20BD,           U20B4 ] }; // ruble, hryvnia
    760     key <AE09> { [               9,       parenleft,     bracketleft                  ] };
    761     key <AE10> { [               0,      parenright,    bracketright                  ] };
    762     key <AE11> { [           minus,      underscore,          endash,          emdash ] };
    763     key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,       equal,            plus ] };
    764 
    765     key <AD01> { [     Cyrillic_ya,     Cyrillic_YA,           U0463,           U0462 ] }; // yat
    766     key <AD02> { [    Cyrillic_zhe,    Cyrillic_ZHE,           U0475,           U0474 ] }; // izhitsa
    767     key <AD03> { [     Cyrillic_ef,     Cyrillic_EF,           U0473,           U0472 ] }; // fita
    768     key <AD04> { [     Cyrillic_pe,     Cyrillic_PE                                   ] };
    769     key <AD05> { [    Cyrillic_ghe,    Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
    770     key <AD06> { [ Cyrillic_shorti, Cyrillic_SHORTI,     Cyrillic_je,     Cyrillic_JE ] };
    771     key <AD07> { [     Cyrillic_el,     Cyrillic_EL,    Cyrillic_lje,    Cyrillic_LJE ] };
    772     key <AD08> { [      Cyrillic_u,      Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
    773     key <AD09> { [   Cyrillic_yeru,   Cyrillic_YERU,    Ukrainian_yi,    Ukrainian_YI ] };
    774     key <AD10> { [     Cyrillic_yu,     Cyrillic_YU,       semicolon,           colon ] };
    775     key <AD11> { [    Cyrillic_sha,    Cyrillic_SHA,   guillemotleft,       braceleft ] };
    776     key <AD12> { [  Cyrillic_shcha,  Cyrillic_SHCHA,  guillemotright,      braceright ] };
    777     key <BKSL> { [      Cyrillic_e,      Cyrillic_E,       backslash,             bar ] };
    778 
    779     key <AC01> { [      Cyrillic_a,      Cyrillic_A                                   ] };
    780     key <AC02> { [     Cyrillic_er,     Cyrillic_ER                                   ] };
    781     key <AC03> { [     Cyrillic_es,     Cyrillic_ES                                   ] };
    782     key <AC04> { [     Cyrillic_te,     Cyrillic_TE,    Serbian_tshe,    Serbian_TSHE ] };
    783     key <AC05> { [     Cyrillic_de,     Cyrillic_DE,     Serbian_dje,     Serbian_DJE ] };
    784     key <AC06> { [     Cyrillic_che,   Cyrillic_CHE,   Cyrillic_dzhe,   Cyrillic_DZHE ] };
    785     key <AC07> { [     Cyrillic_en,     Cyrillic_EN,    Cyrillic_nje,    Cyrillic_NJE ] };
    786     key <AC08> { [     Cyrillic_ie,     Cyrillic_IE,    Ukrainian_ie,    Ukrainian_IE ] };
    787     key <AC09> { [      Cyrillic_i,      Cyrillic_I,     Ukrainian_i,     Ukrainian_I ] };
    788     key <AC10> { [      Cyrillic_o,      Cyrillic_O                                   ] };
    789     key <AC11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN,  apostrophe,        quotedbl ] };
    790 
    791     key <AB01> { [     Cyrillic_ze,     Cyrillic_ZE,   Macedonia_dse,   Macedonia_DSE ] };
    792     key <AB02> { [     Cyrillic_ha,     Cyrillic_HA                                   ] };
    793     key <AB03> { [    Cyrillic_tse,    Cyrillic_TSE                                   ] };
    794     key <AB04> { [     Cyrillic_ve,     Cyrillic_VE                                   ] };
    795     key <AB05> { [     Cyrillic_be,     Cyrillic_BE,   Macedonia_gje,   Macedonia_GJE ] };
    796     key <AB06> { [     Cyrillic_ka,     Cyrillic_KA,   Macedonia_kje,   Macedonia_KJE ] };
    797     key <AB07> { [     Cyrillic_em,     Cyrillic_EM                                   ] };
    798     key <AB08> { [           comma,       semicolon,            less                  ] };
    799     key <AB09> { [          period,           colon,         greater                  ] };
    800     key <AB10> { [           slash,        question,           U04CF,           U04C0 ] }; // palochka
    801 
    802     key <LSGT> { [           equal,            plus,        multiply,        division ] };
    803 
    804     include "level3(ralt_switch)"
    805     include "capslock(backspace)"
    806     include "nbsp(level4)"
    807 };
    808 
    809 // Church Slavonic language layout
    810 // based on the Russian standard keyboard
    811 // by Aleksandr Andreev and Yuri Shardt
    812 // last changes 2010/08/01; contact <aleksandr.andreev (a] gmail.com>
    813 partial alphanumeric_keys
    814 xkb_symbols "chu" {
    815 
    816     name[Group1]= "Church Slavonic";
    817 
    818     key <TLDE> { [  Ukrainian_yi,  Ukrainian_YI,  U0482,  U20DD  ] };  //    e.g:  where the last is a combining ten thousands sign
    819     key <AE01> { [  U0461,  U0460,  U047D,  U047C  ] };  //    
    820     key <AE02> { [  Ukrainian_ie,  Ukrainian_IE,  U0465,  U0464  ] };  //    
    821     key <AE03> { [  U046F,  U046E,  U0469,  U0468  ] };  //    
    822     key <AE04> { [  U0471,  U0470,  U046D,  U046C  ] };  //    
    823     key <AE05> { [  U0473,  U0472,  UA657,  UA656  ] };  //   iotified A
    824     key <AE06> { [  U0475,  U0474,  U0477,  U0476  ] };  //    
    825     key <AE07> { [  U047B,  U047A,  UA64D,  UA64C  ] };  //    
    826     key <AE08> { [  U047F,  U047E,  U046B,  U046A  ] };  //    
    827     key <AE09> { [  Macedonia_dse,  Macedonia_DSE,  parenleft, asterisk  ] };  //   ( *
    828     key <AE10> { [  Cyrillic_u,     Cyrillic_U,  parenright,  U0488]};  //   ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u
    829     key <AE11> { [  U0483,  U0486,  U0487,  U005F  ] };  //   , _ (titlo, psili, pokrytie, underscore)
    830     key <AE12> { [  U0301,  U0300,  U0484,  UA67E  ] };  //     (oxia, varia, kamora, kavyka)
    831 
    832     key <AD01> { [  Cyrillic_shorti,  Cyrillic_SHORTI,  Ukrainian_i  ] };
    833     key <AD02> { [     Cyrillic_tse,     Cyrillic_TSE,  U2DF0  ] };
    834     key <AD03> { [            UA64B,            UA64A,  U2DF9  ] };  // Cyrillic monograph Uk (not U)!
    835     key <AD04> { [      Cyrillic_ka,      Cyrillic_KA,  U2DE6  ] };
    836     key <AD05> { [      Cyrillic_ie,      Cyrillic_IE,  U2DF7  ] };
    837     key <AD06> { [      Cyrillic_en,      Cyrillic_EN,  U2DE9  ] };
    838     key <AD07> { [     Cyrillic_ghe,     Cyrillic_GHE,  U2DE2  ] };
    839     key <AD08> { [     Cyrillic_sha,     Cyrillic_SHA,  U2DF2  ] };
    840     key <AD09> { [   Cyrillic_shcha,   Cyrillic_SHCHA,  U2DF3  ] };
    841     key <AD10> { [      Cyrillic_ze,      Cyrillic_ZE,  U2DE5  ] };
    842     key <AD11> { [      Cyrillic_ha,      Cyrillic_HA,  U2DEF  ] };
    843     key <AD12> { [Cyrillic_hardsign,Cyrillic_HARDSIGN,  UA67D  ] };  // Payerok
    844     key <BKSL> { [        backslash,            slash,  colon,  question ] };  // \ / : ? NB: for Slavonic question, use semicolon
    845 
    846     key <AC01> { [      Cyrillic_ef,      Cyrillic_EF          ] };
    847     key <AC02> { [    Cyrillic_yeru,    Cyrillic_YERU          ] };
    848     key <AC03> { [      Cyrillic_ve,      Cyrillic_VE,  U2DE1  ] };
    849     key <AC04> { [       Cyrillic_a,       Cyrillic_A,  U2DF6  ] };
    850     key <AC05> { [      Cyrillic_pe,      Cyrillic_PE,  U2DEB  ] };
    851     key <AC06> { [      Cyrillic_er,      Cyrillic_ER,  U2DEC  ] };
    852     key <AC07> { [       Cyrillic_o,       Cyrillic_O,  U2DEA  ] };
    853     key <AC08> { [      Cyrillic_el,      Cyrillic_EL,  U2DE7  ] };
    854     key <AC09> { [      Cyrillic_de,      Cyrillic_DE,  U2DE3  ] };
    855     key <AC10> { [     Cyrillic_zhe,     Cyrillic_ZHE,  U2DE4  ] };
    856     key <AC11> { [            U0463,            U0462,  U2DFA  ] };  // Yat
    857 
    858     key <AB01> { [            U0467,            U0466,  U2DFD  ] };  // Small Yus
    859     key <AB02> { [     Cyrillic_che,     Cyrillic_CHE,  U2DF1  ] };
    860     key <AB03> { [      Cyrillic_es,      Cyrillic_ES,  U2DED  ] };
    861     key <AB04> { [      Cyrillic_em,      Cyrillic_EM,  U2DE8  ] };
    862     key <AB05> { [       Cyrillic_i,       Cyrillic_I          ] };
    863     key <AB06> { [      Cyrillic_te,      Cyrillic_TE,  U2DEE  ] };
    864     key <AB07> { [Cyrillic_softsign,Cyrillic_SOFTSIGN          ] };
    865     key <AB08> { [      Cyrillic_be,      Cyrillic_BE,  U2DE0  ] };
    866     key <AB09> { [      Cyrillic_yu,      Cyrillic_YU,  U2DFB  ] };
    867     key <AB10> { [           period,            comma, semicolon, exclam  ] };
    868 };
    869 
    870 
    871 // RUU (Russian-Ukrainian United keyboard layout).
    872 // This is a modified Russian standard keyboard, with the third level containing
    873 // Ukrainian and Belorusian alphabetic letters and commonly used Unicode symbols.
    874 // For a description see http://wiki.opennet.ru/RUU [in Russian].
    875 // Vasyl V. Vercynskyj <fuckel (a] ukr.net>
    876 // last changes 2011/05/11
    877 //
    878 // 
    879 //  ' ~  !   "      ;   %   :   ?   *   ( {  ) }  _   +          
    880 //      1   2   3   4 $  5   6 <  7 >  8   9 [  0 ]  -   =  Backspace
    881 // 
    882 //                                                     Enter 
    883 //  Tab                                                   
    884 //       
    885 //  Caps                                              |        
    886 //  Lock                                             / \       
    887 // 
    888 //                                              ,                  
    889 //   Shift                                  . /      Shift     
    890 // 
    891 //                                                                              
    892 //  Ctrl   Meta    Alt                  Space              AltGr  Menu   Ctrl  
    893 // 
    894 partial alphanumeric_keys
    895 xkb_symbols "ruu" {
    896 
    897     include "ru(common)"
    898     name[Group1]= "Russian (with Ukrainian-Belorussian layout)";
    899 
    900     key <TLDE> { [  U2019,  apostrophe,         U0301,  asciitilde  ] };  // Apostrophe and Stress symbol
    901     key <AE01> { [      1,      exclam,      division,       U2248  ] };  // Division Sign and Almost Equal To
    902     key <AE02> { [      2,    quotedbl,      currency,    infinity  ] };
    903     key <AE03> { [      3,  numerosign,       section,       U20B4  ] };  // Paragraph and Hryvnia sign
    904     key <AE04> { [      4,   semicolon,        dollar,    EuroSign  ] };
    905     key <AE05> { [      5,     percent,        degree,    permille  ] };
    906     key <AE06> { [      6,       colon,        less, lessthanequal  ] };
    907     key <AE07> { [      7,    question,  greater, greaterthanequal  ] };
    908     key <AE08> { [      8,    asterisk,enfilledcircbullet,multiply  ] };
    909     key <AE09> { [      9,   parenleft,   bracketleft,   braceleft  ] };
    910     key <AE10> { [      0,  parenright,  bracketright,  braceright  ] };
    911     key <AE11> { [  minus,  underscore,        emdash,      endash  ] };
    912     key <AE12> { [  equal,        plus,      notequal,   plusminus  ] };
    913 
    914     key <AD03> { [        Cyrillic_u,        Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
    915     key <AD04> { [       Cyrillic_ka,       Cyrillic_KA,    registered                        ] };
    916     key <AD05> { [       Cyrillic_ie,       Cyrillic_IE,   Cyrillic_io,          Cyrillic_IO  ] };
    917     key <AD07> { [      Cyrillic_ghe,      Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
    918     key <AD10> { [       Cyrillic_ze,       Cyrillic_ZE,     paragraph                        ] };
    919     key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,  Ukrainian_yi,         Ukrainian_YI  ] };
    920 
    921     key <AC02> { [     Cyrillic_yeru,     Cyrillic_YERU,   Ukrainian_i,          Ukrainian_I  ] };
    922     key <AC11> { [        Cyrillic_e,        Cyrillic_E,  Ukrainian_ie,         Ukrainian_IE  ] };
    923     key <BKSL> { [             slash,               bar,     backslash,            brokenbar  ] };
    924 
    925     key <AB03> { [       Cyrillic_es,       Cyrillic_ES,      copyright                       ] };
    926     key <AB06> { [       Cyrillic_te,       Cyrillic_TE,      trademark                       ] };
    927     key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN,             mu                       ] };
    928     key <AB08> { [       Cyrillic_be,       Cyrillic_BE,  guillemotleft,  doublelowquotemark  ] };
    929     key <AB09> { [       Cyrillic_yu,       Cyrillic_YU, guillemotright, leftdoublequotemark  ] };
    930     key <AB10> { [            period,             comma,          slash,            ellipsis  ] };
    931 
    932     include "level3(ralt_switch)"
    933 };
    934 
    935 partial alphanumeric_keys
    936 	xkb_symbols "sun_type6" {
    937 	include "sun_vndr/ru(sun_type6)"
    938 };
    939 
    940 // Apple layout
    941 partial alphanumeric_keys
    942 xkb_symbols "mac" {
    943 
    944     include "ru(common)"
    945     name[Group1]= "Russian (Macintosh)";
    946 
    947     key <LSGT> { [          less,      greater  ] };
    948     key <AE02> { [             2,     quotedbl  ] };
    949     key <AE03> { [             3,   numerosign  ] };
    950     key <AE04> { [             4,      percent  ] };
    951     key <AE05> { [             5,        colon  ] };
    952     key <AE06> { [             6,        comma  ] };
    953     key <AE07> { [             7,       period  ] };
    954     key <AE08> { [             8,    semicolon  ] };
    955     key <TLDE> { [  bracketright,  bracketleft  ] };
    956     key <BKSL> { [   Cyrillic_io,  Cyrillic_IO  ] };
    957 
    958     key <AC06> { [   Cyrillic_er,  Cyrillic_ER, U20BD ] };
    959 
    960     include "level3(ralt_switch)"
    961 };
    962 
    963 // eng: Russian-based polyglot and reactionary keyboard layout
    964 // This keyboard layout covers Russian in Petrine 1708 and Bolshevik 1918 variant spelling, Ukrainian, Belorussian, Serbian in its modern and Slavenoserbian variants, and Bulgarian and Slavomacedonian in pre-1945 and post-1945 spelling,
    965 // in short all in any dominion prevailing Cyrillic orthographies of modern secular Slavic literary languages, even with dictionary accentuation marks,
    966 // but also the most-widespread Church Slavonic spellings, that is all Church-Slavonic in so far as variants can be replaced without loss of meaning   not to speak of Interslavic.
    967 // Furthermore, it suffices Romanian Cyrillic, Moldovan Cyrillic, Abkhazian excluding the more clumsy obsoleted forms unlikely to find devotees, Tajik, all Turkic and Mongolic Cyrillic alphabets
    968 // and virtually all overlooked languages in Cyrillic reigns at least by combining characters, taking advantage of eight key levels.
    969 // This is withal a pan-Cyrillic keyboard layout, or a comprehensive Cyrillic keyboard layout, an universal Cyrillic keyboard layout, a generic Cyrillic keyboard layout.
    970 //
    971 // rus:        
    972 //        1708-    1918-, ,      ,          1945- ,
    973 //    -   ,    ,               .
    974 //  ,     ,   ,       ,        ,  ,      ,
    975 //              ,      .
    976 //      ,    ,     .
    977 //
    978 // srp:        
    979 //        1708-    1918- , , ,      ,          1945- ,
    980 //       ,    ,               .
    981 //  ,     ,   ,       ,        ,  ,      ,
    982 //             ,    .
    983 //       ,     ,     .
    984 partial alphanumeric_keys
    985 xkb_symbols "prxn" {
    986 
    987 	name[Group1]= "Russian (Polyglot and Reactionary)";
    988 
    989 	key.type[Group1]="EIGHT_LEVEL";
    990     key <TLDE> { [ U2019, apostrophe,  U0301,      U0300, U2053, U2015, U02BC, asciitilde ] }; // Typographic Apostrophe, Apostrophe, Combining Acute, Combining Grave, Swung Dash, Quotation Dash, Modifier Letter Apostrophe, Tilde
    991     key <AE01> { [      1,    exclam,  U0304,      U0306, U0308, U0311, U0307, U0313 ] };      // 1, !, Combining Macron, Combining Breve, Combining Diaresis, Combining Inverted Breve, Combining Dot Above, Combining Comma Above
    992     key <AE02> { [     2,quotedbl,numerosign,      U20BF, U20B8, U20AE, U00A3, U20B9 ] };      // 2 "      
    993     key <AE03> { [     3,    section,  U20B4,   currency, U20BD, U20AA, U20BC, U20BE ] };      // 3       
    994     key <AE04> { [     4,  semicolon, dollar,   EuroSign, U0482, U20DD, U0488, U0489 ] };      // 4 ; $  Thousands Sign, Combining Enclosing Circle, Combining Hundred Thousands, Combining Millions
    995     key <AE05> { [      5,   percent, degree,   permille, UA670, UA671, UA672, UA66F ] };      // 5, %, , , Combinining Ten Millions, Combining Hundred Millions, Combining Thousand Millions, Combining Vzmet
    996     key <AE06> { [      6,     colon,  U0335,      U0336, U0483, U0487, UFE2E, UFE2F ] };      // 6, :, Combining Short Stroke Overlay, Combining Long Stroke Overlay, Combining Titlo, Combining Pokrytie, Combining Titlo Left Half, Combining Titlo Right Half
    997     key <AE07> { [    7,    question,  U030B,      U030F, U030C, U0303, U032C, U0360 ] };      // 7, ?, Combining Double Acute, Combining Double Grave, Combining Caron/Hek, Combining Tilde, Combining Caron/Hek Below, Combining Double Tilde
    998     key <AE08> { [    8,    asterisk,  U0331,      U0332, U0333, U032F, U032D, U032E ] };      // 8, *, Combining Macron Below, Combining Low Line, Combining Double Low Line, Combining Inverted Breve Below, Combining Circumflex Accent, Combining Breve Below
    999     key <AE09> { [ 9,parenleft,  bracketleft,  braceleft, U035F, U035D, U035E, U035C ] };      // 9 ( [ { Combining Double Macron Below, Combining Double Breve, Combining Double Macron, Combining Double Breve Below
   1000     key <AE10> { [ 0,parenright,bracketright, braceright, U27E8, U27E9, U04A7, U04A6 ] };      // 0 ) ] }   
   1001     key <AE11> { [ minus, underscore, emdash,     endash, U2011,hyphen, U2010, U2212 ] };      // Hyphen-Minus, Underscore, Em Dash, En Dash,  Non-Breaking-Hyphen, Soft Hyphen, Hyphen, Minus Sign
   1002     key <AE12> { [  equal,     plus,notequal,      U2248, U04FF, U04FE, U050D, U050C ] };      // = +      
   1003 
   1004     key <AD01> { [ Cyrillic_shorti,   Cyrillic_SHORTI,                 Cyrillic_je,            Cyrillic_JE,     U04CF,    U04C0,                                  U030A,    U0325 ] };	                             //      , Combining Ring Above and Below
   1005     key <AD02> { [      Cyrillic_tse,    Cyrillic_TSE,                       U04B5,                  U04B4,     Cyrillic_u_straight, Cyrillic_U_straight,         U051B,    U051A ] };                               //        
   1006     key <AD03> { [        Cyrillic_u,      Cyrillic_U,         Byelorussian_shortu,    Byelorussian_SHORTU,     Cyrillic_u_straight_bar,Cyrillic_U_straight_bar,  Byelorussian_shortu, Byelorussian_SHORTU ] };      //        
   1007     key <AD04> { [       Cyrillic_ka,     Cyrillic_KA,       Cyrillic_ka_descender,  Cyrillic_KA_descender,     U049F,    U049E,                                  U046F,    U046E ] };                               //         
   1008     key <AD05> { [     Cyrillic_ie,       Cyrillic_IE,                 Cyrillic_io,            Cyrillic_IO,     U0463,    U0462,                                  UA653,    UA652 ] };	                             //        
   1009     key <AD06> { [     Cyrillic_en,       Cyrillic_EN,                Cyrillic_nje,           Cyrillic_NJE,     Cyrillic_en_descender, Cyrillic_EN_descender,     U04C8,    U04C7 ] };	                             //        
   1010     key <AD07> { [      Cyrillic_ghe,    Cyrillic_GHE, Ukrainian_ghe_with_upturn,Ukrainian_GHE_WITH_UPTURN,     Cyrillic_ghe_bar, Cyrillic_GHE_bar,               U04F7,    U04F6 ] };                               //        
   1011     key <AD08> { [      Cyrillic_sha,    Cyrillic_SHA,                       U04A1,                  U04A0,     U04AB,    U04AA,                                  UA67D,    UA67F ] };                               //       Combining Payerok Payerok
   1012     key <AD09> { [    Cyrillic_shcha,  Cyrillic_SHCHA,                       U0505,                  U0504,     UA68D,    UA68C,                                  U050F,    U050E ] };                               //        
   1013     key <AD10> { [       Cyrillic_ze,     Cyrillic_ZE,                       U04E1,                  U04E0,     U0499,    U0498,                                  U0507,    U0506 ] };                               //        
   1014     key <AD11> { [       Cyrillic_ha,     Cyrillic_HA,               Cyrillic_shha,          Cyrillic_SHHA,     Cyrillic_ha_descender, Cyrillic_HA_descender,     U04FD,    U04FC ] };                               //        
   1015     key <AD12> { [Cyrillic_hardsign,Cyrillic_HARDSIGN,                Ukrainian_yi,           Ukrainian_YI,     Macedonia_dse, Macedonia_DSE,                     U033E,    U2E2F ] };	                             //      , Combining Yerok, Yerok
   1016 
   1017     key <AC01> { [      Cyrillic_ef,      Cyrillic_EF,                       U0473,                  U0472,     U04C4,    U04C3,                                  U04FB,    U04FA ] };	                             //        
   1018     key <AC02> { [     Cyrillic_yeru,   Cyrillic_YERU,                 Ukrainian_i,            Ukrainian_I,     U04D5,    U04D4,                                  U04A9,    U04A8 ] };	                             //        
   1019     key	<AC03> { [     Cyrillic_ve,       Cyrillic_VE,                       U051D,                  U051C,     U0529,    U0528,                                  U0527,    U0526 ] };                               //        
   1020     key <AC04> { [        Cyrillic_a,      Cyrillic_A,              Cyrillic_schwa,         Cyrillic_SCHWA,     UA657,    UA656,                                  UA655,    UA654 ] };                               //        
   1021     key <AC05> { [       Cyrillic_pe,     Cyrillic_PE,                       U0525,                  U0524,     U0471,    U0470,                                  UA65F,    UA65E ] };                               //        
   1022     key <AC06> { [       Cyrillic_er,     Cyrillic_ER,                       U0481,                  U0480,     U048F,    U048E,                                  U0521,    U0520 ] };                               //        
   1023     key <AC07> { [        Cyrillic_o,      Cyrillic_O,              Cyrillic_o_bar,         Cyrillic_O_bar,     U047B,    U047A,                                  U0461,    U0460 ] };                               //        
   1024     key <AC08> { [     Cyrillic_el,       Cyrillic_EL,                Cyrillic_lje,           Cyrillic_LJE,     U04C6,    U04C5,                                  U052F,    U052E ] };	                             //        
   1025     key <AC09> { [     Cyrillic_de,       Cyrillic_DE,               Cyrillic_dzhe,          Cyrillic_DZHE,     U04BD,    U04BC,                                  U04BF,    U04BE ] };	                             //        
   1026     key <AC10> { [    Cyrillic_zhe,      Cyrillic_ZHE,                 Serbian_dje,            Serbian_DJE,     Cyrillic_zhe_descender, Cyrillic_ZHE_descender,   U04C2,    U04C1 ] };	                             //        
   1027     key <AC11> { [      Cyrillic_e,        Cyrillic_E,                Ukrainian_ie,           Ukrainian_IE,     U0465,    U0464,                                  U04CA,    U04C9 ] };                               //        
   1028     key <BKSL> { [           slash,               bar,                   backslash,                  U260E,     UA65B,    UA65A,                                  U0513,    U0512 ] };                               // / | \     
   1029 
   1030     key <LSGT> { [           U0495,             U0494,                       U0501,                  U0500,     U0503,    U0502,                                  U0509,    U0508 ] };                               //        
   1031     key <AB01> { [     Cyrillic_ya,       Cyrillic_YA,                       U0469,                  U0468,     U0467,    U0466,                                  UA657,    UA656 ] };                               //        
   1032     key <AB02> { [    Cyrillic_che,      Cyrillic_CHE,                Serbian_tshe,           Serbian_TSHE,     Cyrillic_che_descender,  Cyrillic_CHE_descender,  U2016,brokenbar ] };	                             //        
   1033     key <AB03> { [      Cyrillic_es,      Cyrillic_ES,                       U046D,                  U046C,     U046B,    U046A,                                  U04F7,    U04F6 ] };                               //        
   1034     key <AB04> { [       Cyrillic_em,     Cyrillic_EM,                    multiply,               division,     U22C5,    U2219,                                  U04CE,    U04CD ] };                               //        
   1035     key <AB05> { [      Cyrillic_i,        Cyrillic_I,                       U0475,                  U0474,     U048B,    U048A,                         periodcentered,    U261B ] };    	                     //        
   1036     key <AB06> { [      Cyrillic_te,      Cyrillic_TE,                       U04AD,                  U04AC,     U051F,    U051E, Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ] };                               //        
   1037     key <AB07> { [Cyrillic_softsign,Cyrillic_SOFTSIGN,                       U04A5,                  U04A4,     UA64F,    UA64E,                                  U048D,    U048C ] };                               //        
   1038     key <AB08> { [       Cyrillic_be,     Cyrillic_BE,                  guillemotleft,  doublelowquotemark,     singlelowquotemark, U2039,                        U0523,    U0522 ] };	                             //        
   1039     key <AB09> { [       Cyrillic_yu,     Cyrillic_YU,                 guillemotright, leftdoublequotemark,     leftsinglequotemark, U203A,                       rightdoublequotemark, rightsinglequotemark]};      //        
   1040     key <AB10> { [            period,           comma,                       ellipsis,  enfilledcircbullet,     U04CC,    U04CB,                                  UA649,    UA648 ] };                               // . ,       
   1041 
   1042 // eng: Maps Right Alt for reaching the third level
   1043 // rus:   Alt    
   1044 // srp:   Alt    
   1045 	include "level3(ralt_switch)"
   1046 
   1047 // eng: Maps <CAPS> for reaching the fifth level
   1048 // rus:  <CAPS>    
   1049 // srp:  <CAPS>    
   1050 	include "level5(caps_switch)"
   1051 
   1052 // eng: Allows pressing both Shift keys for enabling ShiftLock; one Shift releases it
   1053 // rus:     Shift    
   1054 // srp:       Shift   
   1055 	include "shift(both_shiftlock)"
   1056 
   1057 // eng: Makes <KPDL> return comma instead of dot, as the comma is decimal separator in Cyrillic written languages
   1058 // rus:   <KPDL>    ,         
   1059 // srp:   <KPDL>    ,            
   1060 	include "kpdl(comma)"
   1061 };
   1062 
   1063 
   1064 partial alphanumeric_keys
   1065 xkb_symbols "unipunct" {
   1066 
   1067 //      ,      
   1068 //    ,         ,    
   1069 // US  (+   ,    US ,     RU).
   1070 
   1071 // ru(unipunct):
   1072 // `~ 1! 2@ 3#3 4$ 5% 6^ 7& 8* 9( 0) -_ =+
   1073 //           [{ ]} \|
   1074 //          ;: '"           //"
   1075 //        ,< .> /?
   1076 
   1077  include "us(basic)"
   1078  name[Group1]= "Russian (with US punctuation)";
   1079  
   1080  //  ,    US  - 
   1081  key <AE03> { [ 3,             numbersign, 3, numerosign  ] };
   1082 
   1083  key <LatQ> { [ Cyrillic_ha,   Cyrillic_HA ] };
   1084  key <LatW> { [ Cyrillic_be,   Cyrillic_BE ] };
   1085  key <LatE> { [ Cyrillic_u,    Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] };
   1086  key <LatR> { [ Cyrillic_ka,   Cyrillic_KA ] };
   1087  key <LatT> { [ Cyrillic_ie,   Cyrillic_IE, Cyrillic_e, Cyrillic_E ] };
   1088  key <LatY> { [ Cyrillic_en,   Cyrillic_EN ] };
   1089  key <LatU> { [ Cyrillic_ghe,  Cyrillic_GHE ] };
   1090  key <LatI> { [ Cyrillic_sha,  Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] };
   1091  key <LatO> { [ Cyrillic_zhe,  Cyrillic_ZHE ] };
   1092  key <LatP> { [ Cyrillic_ze,   Cyrillic_ZE ] };
   1093 
   1094  key <LatA> { [ Cyrillic_ef,   Cyrillic_EF ] };
   1095  key <LatS> { [ Cyrillic_yeru, Cyrillic_YERU ] };
   1096  key <LatD> { [ Cyrillic_ve,   Cyrillic_VE ] };
   1097  key <LatF> { [ Cyrillic_a,    Cyrillic_A ] };
   1098  key <LatG> { [ Cyrillic_pe,   Cyrillic_PE ] };
   1099  key <LatH> { [ Cyrillic_er,   Cyrillic_ER ] };
   1100  key <LatJ> { [ Cyrillic_o,    Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
   1101  key <LatK> { [ Cyrillic_el,   Cyrillic_EL ] };
   1102  key <LatL> { [ Cyrillic_de,   Cyrillic_DE ] };
   1103 
   1104  key <LatZ> { [ Cyrillic_ya,   Cyrillic_YA ] };
   1105  key <LatX> { [ Cyrillic_che,  Cyrillic_CHE, Cyrillic_tse, Cyrillic_TSE ] };
   1106  key <LatC> { [ Cyrillic_es,   Cyrillic_ES ] };
   1107  key <LatV> { [ Cyrillic_em,   Cyrillic_EM ] };
   1108  key <LatB> { [ Cyrillic_i,    Cyrillic_I, Cyrillic_shorti, Cyrillic_SHORTI ] };
   1109  key <LatN> { [ Cyrillic_te,   Cyrillic_TE ] };
   1110  key <LatM> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
   1111 };
   1112 
   1113 partial alphanumeric_keys
   1114 xkb_symbols "phonetic_mac" {
   1115 
   1116     include "ru(phonetic_winkeys)"
   1117     name[Group1]= "Russian (phonetic Macintosh)";
   1118 
   1119     key <LatE> { [       Cyrillic_ie,       Cyrillic_IE, Cyrillic_io, Cyrillic_IO  ] };
   1120     key <LatW> { [      Cyrillic_sha,      Cyrillic_SHA  ] };
   1121     key <LatV> { [       Cyrillic_ve,       Cyrillic_VE  ] };
   1122     key <TLDE> { [    Cyrillic_shcha,    Cyrillic_SHCHA  ] };
   1123     key <AD11> { [       Cyrillic_yu,       Cyrillic_YU  ] };
   1124     key <AD12> { [      Cyrillic_zhe,      Cyrillic_ZHE  ] };
   1125     key <AE03> { [                 3,        numbersign, numerosign  ] };
   1126     key <AE04> { [                 4,            dollar, U20BD       ] }; // ruble
   1127     key <AE05> { [                 5,           percent  ] };
   1128     key <AE06> { [                 6,       asciicircum  ] };
   1129     key <AE11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, minus,       underscore  ] };
   1130     key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal,       plus        ] };
   1131 
   1132     include "level3(ralt_switch)"
   1133 };
   1134 
   1135 // Russian engineering keyboard layout ()
   1136 // Based on the Russian standard keyboard layout
   1137 // Baryshkin Andrey <baryshkin_aa (a] codeblast.ru>
   1138 // Last changes 2022/11/29
   1139 // Version 2.1
   1140 partial alphanumeric_keys
   1141 xkb_symbols "ruchey_ru" {
   1142 
   1143     name[Group1]= "Russian (engineering, RU)";
   1144 
   1145     include "ru(common)"
   1146 
   1147     key <TLDE> { [ NoSymbol,   NoSymbol,          grave, VoidSymbol ] };
   1148 
   1149     key <AE01> { [ NoSymbol,     exclam,          U20BD, VoidSymbol ] };
   1150     key <AE02> { [ NoSymbol,   quotedbl,             at, VoidSymbol ] };
   1151     key <AE03> { [ NoSymbol, numerosign,     numbersign, VoidSymbol ] };
   1152     key <AE04> { [ NoSymbol,  semicolon,         dollar, VoidSymbol ] };
   1153     key <AE05> { [ NoSymbol,    percent,     apostrophe,     degree ] };
   1154     key <AE06> { [ NoSymbol,      colon,    asciicircum, VoidSymbol ] };
   1155     key <AE07> { [ NoSymbol,   question,      ampersand, VoidSymbol ] };
   1156     key <AE08> { [ NoSymbol,   asterisk,     asciitilde, VoidSymbol ] };
   1157     key <AE09> { [ NoSymbol,  parenleft,  guillemotleft, VoidSymbol ] };
   1158     key <AE10> { [ NoSymbol, parenright, guillemotright, VoidSymbol ] };
   1159     key <AE11> { [ NoSymbol, underscore,         emdash, VoidSymbol ] };
   1160     key <AE12> { [ NoSymbol,       plus,     VoidSymbol, VoidSymbol ] };
   1161 
   1162     key <AD03> { [ NoSymbol,   NoSymbol,       EuroSign, VoidSymbol ] };
   1163     key <AD04> { [ NoSymbol,   NoSymbol,     registered, VoidSymbol ] };
   1164     key <AD06> { [ NoSymbol,   NoSymbol,          U00A5, VoidSymbol ] };
   1165     key <AD11> { [ NoSymbol,   NoSymbol,      braceleft, VoidSymbol ] };
   1166     key <AD12> { [ NoSymbol,   NoSymbol,     braceright, VoidSymbol ] };
   1167 
   1168     key <AC02> { [ NoSymbol,   NoSymbol,          U00A7, VoidSymbol ] };
   1169     key <AC04> { [ NoSymbol,   NoSymbol,       sterling, VoidSymbol ] };
   1170     key <AC10> { [ NoSymbol,   NoSymbol,    bracketleft, VoidSymbol ] };
   1171     key <AC11> { [ NoSymbol,   NoSymbol,   bracketright, VoidSymbol ] };
   1172 
   1173     key <AB03> { [ NoSymbol,   NoSymbol,      copyright, VoidSymbol ] };
   1174     key <AB08> { [ NoSymbol,   NoSymbol,           less, VoidSymbol ] };
   1175     key <AB09> { [ NoSymbol,   NoSymbol,        greater, VoidSymbol ] };
   1176     key <AB10> { [   period,      comma,     VoidSymbol,      U0301 ] };
   1177 
   1178     key <BKSL> { [    slash,  backslash,            bar, VoidSymbol ] };
   1179     key <LSGT> { [    slash,  backslash,            bar, VoidSymbol ] };
   1180 
   1181     include "kpdl(dot)"
   1182 };
   1183 
   1184 // Russian engineering keyboard layout ()
   1185 // Based on the English standard keyboard layout
   1186 // Baryshkin Andrey <baryshkin_aa (a] codeblast.ru>
   1187 // Last changes 2022/11/29
   1188 // Version 2.1
   1189 partial alphanumeric_keys
   1190 xkb_symbols "ruchey_en" {
   1191 
   1192     name[Group1]= "Russian (engineering, EN)";
   1193 
   1194     include "us(basic)"
   1195 
   1196     key <TLDE> { [ VoidSymbol,   VoidSymbol,          grave, VoidSymbol ] };
   1197 
   1198     key <AE01> { [   NoSymbol,       exclam,          U20BD, VoidSymbol ] };
   1199     key <AE02> { [   NoSymbol,     quotedbl,             at, VoidSymbol ] };
   1200     key <AE03> { [   NoSymbol,   numerosign,     numbersign, VoidSymbol ] };
   1201     key <AE04> { [   NoSymbol,    semicolon,         dollar, VoidSymbol ] };
   1202     key <AE05> { [   NoSymbol,      percent,     apostrophe,     degree ] };
   1203     key <AE06> { [   NoSymbol,        colon,    asciicircum, VoidSymbol ] };
   1204     key <AE07> { [   NoSymbol,     question,      ampersand, VoidSymbol ] };
   1205     key <AE08> { [   NoSymbol,     asterisk,     asciitilde, VoidSymbol ] };
   1206     key <AE09> { [   NoSymbol,    parenleft,  guillemotleft, VoidSymbol ] };
   1207     key <AE10> { [   NoSymbol,   parenright, guillemotright, VoidSymbol ] };
   1208     key <AE11> { [   NoSymbol,   underscore,         emdash, VoidSymbol ] };
   1209     key <AE12> { [   NoSymbol,         plus,     VoidSymbol, VoidSymbol ] };
   1210 
   1211     key <AD03> { [   NoSymbol,     NoSymbol,       EuroSign, VoidSymbol ] };
   1212     key <AD04> { [   NoSymbol,     NoSymbol,     registered, VoidSymbol ] };
   1213     key <AD06> { [   NoSymbol,     NoSymbol,          U00A5, VoidSymbol ] };
   1214     key <AD11> { [ VoidSymbol,   VoidSymbol,      braceleft, VoidSymbol ] };
   1215     key <AD12> { [ VoidSymbol,   VoidSymbol,     braceright, VoidSymbol ] };
   1216 
   1217     key <AC02> { [   NoSymbol,     NoSymbol,          U00A7, VoidSymbol ] };
   1218     key <AC04> { [   NoSymbol,     NoSymbol,       sterling, VoidSymbol ] };
   1219     key <AC10> { [ VoidSymbol,   VoidSymbol,    bracketleft, VoidSymbol ] };
   1220     key <AC11> { [ VoidSymbol,   VoidSymbol,   bracketright, VoidSymbol ] };
   1221 
   1222     key <AB03> { [   NoSymbol,     NoSymbol,      copyright, VoidSymbol ] };
   1223     key <AB08> { [ VoidSymbol,   VoidSymbol,           less, VoidSymbol ] };
   1224     key <AB09> { [ VoidSymbol,   VoidSymbol,        greater, VoidSymbol ] };
   1225     key <AB10> { [     period,        comma,     VoidSymbol,      U0301 ] };
   1226 
   1227     key <BKSL> { [      slash,    backslash,            bar, VoidSymbol ] };
   1228     key <LSGT> { [      slash,    backslash,            bar, VoidSymbol ] };
   1229 
   1230     include "kpdl(dot)"
   1231 };
   1232 
   1233 // RU Winkeys-P layout based on RU Winkeys with top row digits switched
   1234 // Vladimir Gorelov <virtual.lark (a] gmail.com>
   1235 partial alphanumeric_keys
   1236 xkb_symbols "winkeys-p" {
   1237     include "ru(winkeys)"
   1238     name[Group1]= "Russian (Programmer)";
   1239 
   1240     key <AE01> { [ exclam,      1 ] };
   1241     key <AE02> { [ at,          2 ] };
   1242     key <AE03> { [ numbersign,  3 ] };
   1243     key <AE04> { [ dollar,      4 ] };
   1244     key <AE05> { [ percent,     5 ] };
   1245     key <AE06> { [ asciicircum, 6 ] };
   1246     key <AE07> { [ ampersand,   7 ] };
   1247     key <AE08> { [ asterisk,    8 ] };
   1248     key <AE09> { [ parenleft,   9 ] };
   1249     key <AE10> { [ parenright,  0 ] };
   1250 };
   1251 
   1252 // Russian keyboard layout with typography symbols.
   1253 // This is a modified Russian standard keyboard, with the third level containing
   1254 // typographic symbols commonly used in Russian language and punctuation symbols
   1255 // from Latin keyboard layout.
   1256 // Boolat Kamalov <800147 (a] gmail.com>
   1257 partial alphanumeric_keys
   1258 xkb_symbols "typo" {
   1259     include "ru(winkeys)"
   1260     name[Group1]= "Russian (typographic)";
   1261 
   1262     key <TLDE> { [ NoSymbol, NoSymbol,              grave,          asciitilde ] };
   1263     key <AE01> { [ NoSymbol, NoSymbol, enfilledcircbullet                      ] };
   1264     key <AE02> { [ NoSymbol, NoSymbol,                 at,          apostrophe ] };
   1265     key <AE03> { [ NoSymbol, NoSymbol,         numbersign,             section ] };
   1266     key <AE04> { [ NoSymbol, NoSymbol,             dollar                      ] };
   1267     key <AE06> { [ NoSymbol, NoSymbol,        asciicircum,               U0301 ] }; // Combining Acute Accent
   1268     key <AE07> { [ NoSymbol, NoSymbol,          ampersand                      ] };
   1269     key <AE09> { [ NoSymbol, NoSymbol,               less                      ] };
   1270     key <AE10> { [ NoSymbol, NoSymbol,            greater                      ] };
   1271     key <AE11> { [ NoSymbol, NoSymbol,             emdash,              endash ] };
   1272 
   1273     key <AD11> { [ NoSymbol, NoSymbol,        bracketleft,           braceleft ] };
   1274     key <AD12> { [ NoSymbol, NoSymbol,       bracketright,          braceright ] };
   1275 
   1276     key <AB08> { [ NoSymbol, NoSymbol,      guillemotleft,  doublelowquotemark ] };
   1277     key <AB09> { [ NoSymbol, NoSymbol,     guillemotright, leftdoublequotemark ] };
   1278     key <AB10> { [ NoSymbol, NoSymbol,           ellipsis,               U2019 ] }; // Right Single Quotation Mark
   1279     key <SPCE> { [    space,    space,       nobreakspace,               U2060 ] }; // Word Joiner
   1280 
   1281     include "level3(ralt_switch)"
   1282 };
   1283