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