Home | History | Annotate | Line # | Download | only in symbols
      1 // Belarusian standard keyboard, by Alexander Mikhailian <mikhailian (a] altern.org>.
      2 // Reworked to use Russian keymap as base and winkeys by default,
      3 // by Paul Lubetsky <vegeek (a] gmail.com>, see https://bugs.freedesktop.org/23604.
      4 
      5 // Added Belarusian-Russian and Russian-Belarusian variants,
      6 // by Pavel Senchanka <pavel.senchanka (a] gmail.com>
      7 
      8 default partial alphanumeric_keys
      9 xkb_symbols "basic" {
     10 	include "ru(winkeys)"
     11 	name[Group1]= "Belarusian";
     12 
     13 	key <AD09> {[  Byelorussian_shortu,  Byelorussian_SHORTU  ]};
     14 	key <AD12> {[  apostrophe,           apostrophe           ]};
     15 	key <AB05> {[  Ukrainian_i,          Ukrainian_I          ]};
     16 };
     17 
     18 partial alphanumeric_keys
     19 xkb_symbols "legacy" {
     20 	include "by(basic)"
     21 	name[Group1]= "Belarusian (legacy)";
     22 
     23 	key <AE03> {[          3,  numbersign  ]};
     24 	key <AE04> {[          4,    asterisk  ]};
     25 	key <AE05> {[          5,       colon  ]};
     26 	key <AE06> {[          6,       comma  ]};
     27 	key <AE07> {[          7,      period  ]};
     28 	key <AE08> {[          8,   semicolon  ]};
     29 	key <AB10> {[      slash,    question  ]};
     30 	key <BKSL> {[  backslash,         bar  ]};
     31 };
     32 
     33 partial alphanumeric_keys
     34 xkb_symbols "latin" {
     35 	include "latin"
     36 	name[Group1]= "Belarusian (Latin)";
     37 
     38 	key <AD02> {[    w,    W,    scaron,    Scaron    ]};
     39 	key <AD07> {[    u,    U,    ubreve,    Ubreve    ]};
     40 	key <AC02> {[    s,    S,    sacute,    Sacute    ]};
     41 	key <AC09> {[    l,    L,    lstroke,   Lstroke   ]};
     42 	key <AB01> {[    z,    Z,    zacute,    Zacute    ]};
     43 	key <AB02> {[    x,    X,    zcaron,    Zcaron    ]};
     44 	key <AB03> {[    c,    C,    cacute,    Cacute    ]};
     45 	key <AB04> {[    v,    V,    ccaron,    Ccaron    ]};
     46 	key <AB06> {[    n,    N,    nacute,    Nacute    ]};
     47 
     48 	include "level3(ralt_switch)"
     49 };
     50 
     51 // Russian layout with Belarusian symbols on third level.
     52 partial alphanumeric_keys
     53 xkb_symbols "ru" {
     54 	include "ru(winkeys)"
     55 	name[Group1]= "Russian (Belarus)";
     56 
     57 	key <AB05> {[ Cyrillic_i,        Cyrillic_I,        Ukrainian_i,         Ukrainian_I         ]};
     58 	key <AD09> {[ Cyrillic_shcha,    Cyrillic_SHCHA,    Byelorussian_shortu, Byelorussian_SHORTU ]};
     59 	key <AD12> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U2019,               apostrophe          ]};
     60 
     61 	include "level3(ralt_switch)"
     62 };
     63 
     64 // Belarusian layout extended with other East Slavic symbols (Russian, Ukrainian).
     65 partial alphanumeric_keys
     66 xkb_symbols "intl" {
     67 	include "by(basic)"
     68 	name[Group1]= "Belarusian (intl.)";
     69 
     70 	// Russian
     71 	key <AB05> {[ Ukrainian_i,         Ukrainian_I,         Cyrillic_i,        Cyrillic_I        ]};
     72 	key <AD09> {[ Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_shcha,    Cyrillic_SHCHA    ]};
     73 	key <AD12> {[ U2019,               apostrophe,          Cyrillic_hardsign, Cyrillic_HARDSIGN ]};
     74 
     75 	// Ukrainian (Yi is usually on <AD12>, but it is already taken in our case).
     76 	key <AC11> {[ Cyrillic_e,  Cyrillic_E,  Ukrainian_ie, Ukrainian_IE ]};
     77 	key <AD11> {[ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ]};
     78 	key <BKSL> {[ backslash,   bar,  Ukrainian_ghe_with_upturn,  Ukrainian_GHE_WITH_UPTURN ]};
     79 
     80 	include "level3(ralt_switch)"
     81 };
     82 
     83 partial alphanumeric_keys
     84 xkb_symbols "phonetic" {
     85 	include "ru(phonetic)"
     86 	name[Group1]= "Belarusian (phonetic)";
     87 
     88 	// Mostly same as good old YAWERTY layout, but with correct
     89 	// Belarusian i and  (u-short) instead of  (shcha). We also
     90 	// keep originals on level3 just in case.
     91 	key <AD12> {[ Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_shcha, Cyrillic_SHCHA ]};
     92 	key <LatI> {[ Ukrainian_i, Ukrainian_I, Cyrillic_i, Cyrillic_I ]};
     93 
     94 	// Lets also add level3+u to enable another way to input u-short
     95 	key <LatU> {[ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ]};
     96 
     97 	// Since we already enable level3 lets also do alternative
     98 	// means for io and hardsign.
     99 	key <LatE> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ]};
    100 	key <LatX> {[ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ]};
    101 
    102 	include "level3(ralt_switch)"
    103 };
    104