1// Belarusian standard keyboard, by Alexander Mikhailian <mikhailian@altern.org>. 2// Reworked to use Russian keymap as base and winkeys by default, 3// by Paul Lubetsky <vegeek@gmail.com>, see https://bugs.freedesktop.org/23604. 4 5// Added Belarusian-Russian and Russian-Belarusian variants, 6// by Pavel Senchanka <pavel.senchanka@gmail.com> 7 8default partial alphanumeric_keys 9xkb_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 18partial alphanumeric_keys 19xkb_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 33partial alphanumeric_keys 34xkb_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. 52partial alphanumeric_keys 53xkb_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). 65partial alphanumeric_keys 66xkb_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 83partial alphanumeric_keys 84xkb_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