by revision 1.1.1.8 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