1bb3a541cSmrg// Belarusian standard keyboard, by Alexander Mikhailian <mikhailian@altern.org>.
246185892Smrg// Reworked to use Russian keymap as base and winkeys by default,
346185892Smrg// by Paul Lubetsky <vegeek@gmail.com>, see https://bugs.freedesktop.org/23604.
446185892Smrg
546185892Smrg// Added Belarusian-Russian and Russian-Belarusian variants,
646185892Smrg// by Pavel Senchanka <pavel.senchanka@gmail.com>
7154daed1Smrg
88157b447Smrgdefault partial alphanumeric_keys
9154daed1Smrgxkb_symbols "basic" {
10c067fea9Sghen	include "ru(winkeys)"
11bfd7cbc1Smrg	name[Group1]= "Belarusian";
12154daed1Smrg
1346185892Smrg	key <AD09> {[  Byelorussian_shortu,  Byelorussian_SHORTU  ]};
1446185892Smrg	key <AD12> {[  apostrophe,           apostrophe           ]};
1546185892Smrg	key <AB05> {[  Ukrainian_i,          Ukrainian_I          ]};
16154daed1Smrg};
17154daed1Smrg
18154daed1Smrgpartial alphanumeric_keys
19c067fea9Sghenxkb_symbols "legacy" {
20c067fea9Sghen	include "by(basic)"
21bfd7cbc1Smrg	name[Group1]= "Belarusian (legacy)";
22797b363dSmrg
2346185892Smrg	key <AE03> {[          3,  numbersign  ]};
2446185892Smrg	key <AE04> {[          4,    asterisk  ]};
2546185892Smrg	key <AE05> {[          5,       colon  ]};
2646185892Smrg	key <AE06> {[          6,       comma  ]};
2746185892Smrg	key <AE07> {[          7,      period  ]};
2846185892Smrg	key <AE08> {[          8,   semicolon  ]};
2946185892Smrg	key <AB10> {[      slash,    question  ]};
3046185892Smrg	key <BKSL> {[  backslash,         bar  ]};
31154daed1Smrg};
32154daed1Smrg
33154daed1Smrgpartial alphanumeric_keys
34154daed1Smrgxkb_symbols "latin" {
35c067fea9Sghen	include "latin"
36bfd7cbc1Smrg	name[Group1]= "Belarusian (Latin)";
37797b363dSmrg
3846185892Smrg	key <AD02> {[    w,    W,    scaron,    Scaron    ]};
3946185892Smrg	key <AD07> {[    u,    U,    ubreve,    Ubreve    ]};
4046185892Smrg	key <AC02> {[    s,    S,    sacute,    Sacute    ]};
4146185892Smrg	key <AC09> {[    l,    L,    lstroke,   Lstroke   ]};
4246185892Smrg	key <AB01> {[    z,    Z,    zacute,    Zacute    ]};
4346185892Smrg	key <AB02> {[    x,    X,    zcaron,    Zcaron    ]};
4446185892Smrg	key <AB03> {[    c,    C,    cacute,    Cacute    ]};
4546185892Smrg	key <AB04> {[    v,    V,    ccaron,    Ccaron    ]};
4646185892Smrg	key <AB06> {[    n,    N,    nacute,    Nacute    ]};
47797b363dSmrg
48c067fea9Sghen	include "level3(ralt_switch)"
49154daed1Smrg};
508157b447Smrg
518157b447Smrg// Russian layout with Belarusian symbols on third level.
528157b447Smrgpartial alphanumeric_keys
538157b447Smrgxkb_symbols "ru" {
548157b447Smrg	include "ru(winkeys)"
558157b447Smrg	name[Group1]= "Russian (Belarus)";
568157b447Smrg
5746185892Smrg	key <AB05> {[ Cyrillic_i,        Cyrillic_I,        Ukrainian_i,         Ukrainian_I         ]};
5846185892Smrg	key <AD09> {[ Cyrillic_shcha,    Cyrillic_SHCHA,    Byelorussian_shortu, Byelorussian_SHORTU ]};
5946185892Smrg	key <AD12> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U2019,               apostrophe          ]};
608157b447Smrg
618157b447Smrg	include "level3(ralt_switch)"
628157b447Smrg};
638157b447Smrg
6446185892Smrg// Belarusian layout extended with other East Slavic symbols (Russian, Ukrainian).
658157b447Smrgpartial alphanumeric_keys
668157b447Smrgxkb_symbols "intl" {
678157b447Smrg	include "by(basic)"
688157b447Smrg	name[Group1]= "Belarusian (intl.)";
698157b447Smrg
708157b447Smrg	// Russian
7146185892Smrg	key <AB05> {[ Ukrainian_i,         Ukrainian_I,         Cyrillic_i,        Cyrillic_I        ]};
7246185892Smrg	key <AD09> {[ Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_shcha,    Cyrillic_SHCHA    ]};
7346185892Smrg	key <AD12> {[ U2019,               apostrophe,          Cyrillic_hardsign, Cyrillic_HARDSIGN ]};
7446185892Smrg
7546185892Smrg	// Ukrainian (Yi is usually on <AD12>, but it is already taken in our case).
7646185892Smrg	key <AC11> {[ Cyrillic_e,  Cyrillic_E,  Ukrainian_ie, Ukrainian_IE ]};
7746185892Smrg	key <AD11> {[ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ]};
7846185892Smrg	key <BKSL> {[ backslash,   bar,  Ukrainian_ghe_with_upturn,  Ukrainian_GHE_WITH_UPTURN ]};
7946185892Smrg
8046185892Smrg	include "level3(ralt_switch)"
8146185892Smrg};
8246185892Smrg
8346185892Smrgpartial alphanumeric_keys
8446185892Smrgxkb_symbols "phonetic" {
8546185892Smrg	include "ru(phonetic)"
8646185892Smrg	name[Group1]= "Belarusian (phonetic)";
8746185892Smrg
8846185892Smrg	// Mostly same as good old YAWERTY layout, but with correct
8946185892Smrg	// Belarusian i and ў (u-short) instead of щ (shcha). We also
9046185892Smrg	// keep originals on level3 just in case.
9146185892Smrg	key <AD12> {[ Byelorussian_shortu, Byelorussian_SHORTU, Cyrillic_shcha, Cyrillic_SHCHA ]};
9246185892Smrg	key <LatI> {[ Ukrainian_i, Ukrainian_I, Cyrillic_i, Cyrillic_I ]};
9346185892Smrg
9446185892Smrg	// Lets also add level3+u to enable another way to input u-short
9546185892Smrg	key <LatU> {[ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ]};
9646185892Smrg
9746185892Smrg	// Since we already enable level3 lets also do alternative
9846185892Smrg	// means for io and hardsign.
9946185892Smrg	key <LatE> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ]};
10046185892Smrg	key <LatX> {[ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ]};
1018157b447Smrg
1028157b447Smrg	include "level3(ralt_switch)"
1038157b447Smrg};
104