kz revision 1.1.1.9 1 // Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html
2 // Baurzhan Ismagulov <ibr (a] radix50.net>
3 //
4
5 // TODO:
6 // 1. AltGr with TLDE and LSGT.
7 // 2. Dead key for ruskaz and kazrus.
8 // 3. Ctrl + <key>.
9 // 4. Alt-Tab.
10
11 // RST KazSSR 903-90
12 // levels 3 and 4 are non-standard extensions
13 default partial alphanumeric_keys
14 xkb_symbols "basic" {
15
16 name[Group1] = "Kazakh";
17
18 key.type[group1] = "FOUR_LEVEL";
19
20 key <TLDE> { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] };
21 key <AE01> { [ quotedbl, exclam ] };
22 key <AE06> { [ comma, semicolon ] };
23 key <AE07> { [ period, colon ] };
24 key <BKSL> { [ backslash, slash ] };
25 key <AB10> { [ numerosign, question ] };
26 key <LSGT> { [ less, greater, bar, brokenbar ] };
27
28 key.type[group1] = "ALPHABETIC";
29
30 key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA ] };
31 key <AE03> { [ Ukrainian_i, Ukrainian_I ] };
32 key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] };
33 key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
34 key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight ] };
35 key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
36 key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] };
37 key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar ] };
38 key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA ] };
39
40 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
41 key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
42 key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
43 key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
44 key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
45 key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
46 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
47 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
48 key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
49 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
50 key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
51 key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
52 key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
53 key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
54 key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
55 key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
56 key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
57 key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
58 key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
59 key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
60 key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
61 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
62 key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
63 key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
64 key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
65 key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
66 key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
67 key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
68 key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
69 key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
70 key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
71 key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
72 };
73
74 // Kikkarin KZ1
75 partial alphanumeric_keys
76 xkb_symbols "ruskaz" {
77
78 name[Group1] = "Russian (Kazakhstan, with Kazakh)";
79
80 key.type[group1] = "FOUR_LEVEL";
81
82 key <AE01> { [ 1, exclam ] };
83 key <AE02> { [ 2, quotedbl, at ] };
84 key <AE03> { [ 3, numerosign, numbersign ] };
85 key <AE04> { [ 4, semicolon, dollar ] };
86 key <AE05> { [ 5, percent ] };
87 key <AE06> { [ 6, colon, asciicircum ] };
88 key <AE07> { [ 7, question, ampersand ] };
89 key <AE08> { [ 8, asterisk ] };
90 key <AE09> { [ 9, parenleft ] };
91 key <AE10> { [ 0, parenright ] };
92 key <AE11> { [ minus, underscore ] };
93 key <AE12> { [ equal, plus ] };
94 key <BKSL> { [ backslash, slash, bar ] };
95 key <AB10> { [ period, comma, slash, question ] };
96 key <LSGT> { [ less, greater, bar, brokenbar ] };
97
98 key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
99
100 key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
101 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] };
102 key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
103 key <AD03> { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] };
104 key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
105 key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
106 key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] };
107 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] };
108 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
109 key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
110 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
111 key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
112 key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
113 key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
114 key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
115 key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
116 key <AC04> { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] };
117 key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
118 key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
119 key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] };
120 key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
121 key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
122 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
123 key <AC11> { [ Cyrillic_e, Cyrillic_E ] };
124 key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
125 key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
126 key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
127 key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
128 key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
129 key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] };
130 key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
131 key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
132 key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
133 };
134
135 // Kikkarin KZ2
136 partial alphanumeric_keys
137 xkb_symbols "kazrus" {
138
139 name[Group1] = "Kazakh (with Russian)";
140
141 key.type[group1] = "FOUR_LEVEL";
142
143 key <AE01> { [ 1, exclam ] };
144 key <AE02> { [ 2, quotedbl, at ] };
145 key <AE03> { [ 3, numerosign, numbersign ] };
146 key <AE04> { [ 4, semicolon, dollar ] };
147 key <AE05> { [ 5, percent ] };
148 key <AE06> { [ 6, colon, asciicircum ] };
149 key <AE07> { [ 7, question, ampersand ] };
150 key <AE08> { [ 8, asterisk ] };
151 key <AE09> { [ 9, parenleft ] };
152 key <AE10> { [ 0, parenright ] };
153 key <AE11> { [ minus, underscore ] };
154 key <AE12> { [ equal, plus ] };
155 key <BKSL> { [ backslash, slash, bar ] };
156 key <AB10> { [ period, comma, slash, question ] };
157 key <LSGT> { [ less, greater, bar, brokenbar ] };
158
159 key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
160
161 key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] };
162 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
163 key <AD02> { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] };
164 key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
165 key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] };
166 key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
167 key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
168 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
169 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
170 key <AD09> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] };
171 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
172 key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] };
173 key <AD12> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
174 key <AC01> { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] };
175 key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] };
176 key <AC03> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] };
177 key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
178 key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
179 key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
180 key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
181 key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
182 key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
183 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
184 key <AC11> { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] };
185 key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
186 key <AB02> { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] };
187 key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
188 key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
189 key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
190 key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
191 key <AB07> { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
192 key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
193 key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
194 };
195
196 partial alphanumeric_keys
197 xkb_symbols "olpc" {
198
199 // Contact: Walter Bender <walter (a] laptop.org>
200
201 // We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character
202 // and moved it onto the Backslash key, making Backslash and Bar available
203 // through the Latin side of the keyboard.
204
205 include "kz(basic)"
206
207 key <TLDE> { [ parenleft, parenright ] };
208 key <BKSL> { [ Cyrillic_io, Cyrillic_IO ] };
209
210 include "group(olpc)"
211 };
212
213 partial alphanumeric_keys
214 xkb_symbols "ext" {
215
216 // Levels 3 and 4 represent main keyboard's numeric part of US layout,
217 // parens are duplicated for consistency.
218
219 include "kz(basic)"
220 name[Group1] = "Kazakh (extended)";
221
222 key.type[group1] = "FOUR_LEVEL_ALPHABETIC";
223
224 key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
225 key <AE01> { [ quotedbl, exclam, 1, exclam ] };
226 key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA, 2, at ] };
227 key <AE03> { [ Ukrainian_i, Ukrainian_I, 3, numbersign ] };
228 key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender, 4, dollar ] };
229 key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 5, percent ] };
230 key <AE06> { [ comma, semicolon, 6, asciicircum ] };
231 key <AE07> { [ period, colon, 7, ampersand ] };
232 key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight, 8, asterisk ] };
233 key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, 9, parenleft ] };
234 key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, 0, parenright ] };
235 key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar, minus, underscore ] };
236 key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA, equal, plus ] };
237 key <BKSL> { [ backslash, slash, bar, brokenbar ] };
238 key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] };
239 key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] };
240 key <AC11> { [ Cyrillic_e, Cyrillic_E, apostrophe ] };
241 key <AB08> { [ Cyrillic_be, Cyrillic_BE, less ] };
242 key <AB09> { [ Cyrillic_yu, Cyrillic_YU, greater ] };
243
244 include "level3(ralt_switch)"
245 };
246
247 // Kazakh Latin (based on Kazakh alphabet version of 2018)
248 // levels 3 and 4 are non-standard extensions
249 partial alphanumeric_keys
250 xkb_symbols "latin" {
251
252 // Contact: Galym Kerimbekov <housegregory299 (a] gmail.com>
253
254 name[Group1] = "Kazakh (Latin)";
255
256 key.type[group1] = "FOUR_LEVEL";
257
258 key <TLDE> { [ parenleft, parenright ] };
259 key <AE01> { [ quotedbl, exclam ] };
260 key <AE06> { [ comma, semicolon ] };
261 key <AE07> { [ period, colon ] };
262 key <BKSL> { [ backslash, slash ] };
263 key <AB10> { [ numerosign, question ] };
264 key <LSGT> { [ less, greater, bar, brokenbar ] };
265
266 key.type[group1] = "ALPHABETIC";
267
268 key <AE02> { [ aacute, Aacute ] };
269 key <AE03> { [ iacute, Iacute ] };
270 key <AE04> { [ nacute, Nacute ] };
271 key <AE05> { [ U01F5, U01F4 ] }; // gG with acute
272 key <AE08> { [ uacute, Uacute ] };
273 key <AE09> { [ yacute, Yacute ] };
274 key <AE10> { [ oacute, Oacute ] };
275 key <AE11> { [ sacute, Sacute ] };
276 key <AE12> { [ cacute, Cacute ] };
277
278 key <AD01> { [ q, Q ] };
279 key <AD02> { [ w, W ] };
280 key <AD03> { [ e, E ] };
281 key <AD04> { [ r, R ] };
282 key <AD05> { [ t, T ] };
283 key <AD06> { [ y, Y ] };
284 key <AD07> { [ u, U ] };
285 key <AD08> { [ i, I ] };
286 key <AD09> { [ o, O ] };
287 key <AD10> { [ p, P ] };
288 key <AC01> { [ a, A ] };
289 key <AC02> { [ s, S ] };
290 key <AC03> { [ d, D ] };
291 key <AC04> { [ f, F ] };
292 key <AC05> { [ g, G ] };
293 key <AC06> { [ h, H ] };
294 key <AC07> { [ j, J ] };
295 key <AC08> { [ k, K ] };
296 key <AC09> { [ l, L ] };
297 key <AB01> { [ z, Z ] };
298 key <AB02> { [ x, X ] };
299 key <AB03> { [ c, C ] };
300 key <AB04> { [ v, M ] };
301 key <AB05> { [ b, B ] };
302 key <AB06> { [ n, N ] };
303 key <AB07> { [ m, M ] };
304 };
305
306