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