ua revision 1.1.1.12 1 // Keyboard layouts for the Ukraine.
2
3 // AEN <aen (a] logic.ru> & Leon Kanter <leon (a] geon.donetsk.ua>,
4 // Andriy Rysin <arysin (a] yahoo.com>, Oleksiy Protas <elfy.ua (a] gmail.com>
5
6 // The legacy WinKeys layout extended on the third and fourth level with
7 // some Unicode symbols, Cyrillics from other Slavic languages, and some
8 // often-used ASCII symbols.
9 default partial alphanumeric_keys
10 xkb_symbols "unicode" {
11
12 include "ua(legacy)"
13
14 name[Group1]= "Ukrainian";
15
16 key <TLDE> { [ apostrophe, U02BC, U0301, asciitilde ] }; // Apostrophe and Stress symbol
17 key <AE01> { [ 1, exclam, onesuperior ] };
18 key <AE02> { [ 2, quotedbl, twosuperior, U2019 ] }; // single quote used often as an apostrophe (deprecated)
19 key <AE03> { [ 3, numerosign, section, U20B4 ] }; // Paragraph and Hryvnia sign
20 key <AE04> { [ 4, semicolon, dollar, EuroSign ] };
21 key <AE05> { [ 5, percent, degree ] };
22 key <AE06> { [ 6, colon, less ] };
23 key <AE07> { [ 7, question, greater ] };
24 key <AE08> { [ 8, asterisk, enfilledcircbullet ] };
25 key <AE09> { [ 9, parenleft, bracketleft, braceleft ] };
26 key <AE10> { [ 0, parenright, bracketright, braceright ] };
27 key <AE11> { [ minus, underscore, emdash, endash ] };
28 key <AE12> { [ equal, plus, notequal, plusminus ] };
29
30 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE ] };
31 key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_dzhe, Cyrillic_DZHE ] };
32 key <AD03> { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
33 key <AD04> { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm
34 key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
35 key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE ] };
36 key <AD12> { [ Ukrainian_yi, Ukrainian_YI, Cyrillic_hardsign,Cyrillic_HARDSIGN ] };
37
38 key <AC02> { [ Ukrainian_i, Ukrainian_I, Cyrillic_yeru, Cyrillic_YERU ] };
39 key <AC08> { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE ] };
40 key <AC09> { [ Cyrillic_de, Cyrillic_DE, Serbian_dje, Serbian_DJE ] };
41 key <AC11> { [ Ukrainian_ie, Ukrainian_IE, Cyrillic_e, Cyrillic_E ] };
42
43 key <BKSL> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN, backslash, bar ] };
44
45 key <AB02> { [ Cyrillic_che, Cyrillic_CHE, Serbian_tshe, Serbian_TSHE ] };
46 key <AB03> { [ Cyrillic_es, Cyrillic_ES, copyright ] };
47 key <AB06> { [ Cyrillic_te, Cyrillic_TE, trademark ] };
48 key <AB08> { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] };
49 key <AB09> { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] };
50 key <AB10> { [ period, comma, slash, ellipsis ] };
51
52 include "level3(ralt_switch)"
53 };
54
55 partial alphanumeric_keys
56 xkb_symbols "macOS" {
57
58 include "ua(unicode)"
59 name[Group1]= "Ukrainian (macOS)";
60
61 key <TLDE> { [ apostrophe, asciitilde, bracketright, bracketleft ] };
62 key <AE01> { [ 1, exclam, exclam, U0174 ] };
63 key <AE02> { [ 2, quotedbl, at, quotedbl ] };
64 key <AE03> { [ 3, numerosign, numbersign, U20B4 ] };
65 key <AE04> { [ 4, percent, dollar, EuroSign ] };
66 key <AE05> { [ 5, colon, degree ] };
67 key <AE06> { [ 6, comma, less ] };
68 key <AE07> { [ 7, period, ampersand, U204B ] };
69 key <AE08> { [ 8, semicolon, asterisk, U221A ] };
70 key <AE09> { [ 9, parenleft, parenleft, apostrophe ] };
71 key <AE10> { [ 0, parenright, parenright, grave ] };
72 key <AE11> { [ minus, underscore, endash, emdash ] };
73 key <AE12> { [ equal, plus, U00BB, U00AB ] };
74
75 key <AC02> { [ Cyrillic_i, Cyrillic_I, Cyrillic_yeru, Cyrillic_YERU ] };
76 key <AB05> { [ Ukrainian_i, Ukrainian_I, Cyrillic_i, Cyrillic_I ] };
77
78 key <AB08> { [ Cyrillic_be, Cyrillic_BE, lessthanequal, less ] };
79 key <AB09> { [ Cyrillic_yu, Cyrillic_YU, greaterthanequal, greater ] };
80
81 key <AB10> { [ slash, question, U201C, U201E] };
82
83 include "level3(ralt_switch)"
84 };
85
86 partial alphanumeric_keys
87 xkb_symbols "legacy" {
88
89 name[Group1]= "Ukrainian (legacy)";
90
91 key <TLDE> { [ apostrophe, asciitilde ] };
92 key <AE01> { [ 1, exclam ] };
93 key <AE02> { [ 2, quotedbl ] };
94 key <AE03> { [ 3, numbersign ] };
95 key <AE04> { [ 4, asterisk ] };
96 key <AE05> { [ 5, colon ] };
97 key <AE06> { [ 6, comma ] };
98 key <AE07> { [ 7, period ] };
99 key <AE08> { [ 8, semicolon ] };
100 key <AE09> { [ 9, parenleft ] };
101 key <AE10> { [ 0, parenright ] };
102 key <AE11> { [ minus, underscore ] };
103 key <AE12> { [ equal, plus ] };
104
105 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
106 key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
107 key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
108 key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
109 key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
110 key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
111 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
112 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
113 key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
114 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
115 key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
116 key <AD12> { [ Ukrainian_yi, Ukrainian_YI ] };
117 key <BKSL> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
118
119 key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
120 key <AC02> { [ Ukrainian_i, Ukrainian_I ] };
121 key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
122 key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
123 key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
124 key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
125 key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
126 key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
127 key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
128 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
129 key <AC11> { [ Ukrainian_ie, Ukrainian_IE ] };
130
131 key <LSGT> { [ slash, bar ] };
132 key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
133 key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
134 key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
135 key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
136 key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
137 key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
138 key <AB07> {[Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
139 key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
140 key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
141 key <AB10> { [ slash, question ] };
142 };
143
144 partial alphanumeric_keys
145 xkb_symbols "winkeys" {
146
147 include "ua(legacy)"
148
149 name[Group1]= "Ukrainian (Windows)";
150
151 key <AE03> { [ 3, numerosign ] };
152 key <AE04> { [ 4, semicolon ] };
153 key <AE05> { [ 5, percent ] };
154 key <AE06> { [ 6, colon ] };
155 key <AE07> { [ 7, question ] };
156 key <AE08> { [ 8, asterisk ] };
157
158 key <AB10> { [ period, comma ] };
159 };
160
161 partial alphanumeric_keys
162 xkb_symbols "typewriter" {
163
164 include "ua(legacy)"
165
166 name[Group1]= "Ukrainian (typewriter)";
167
168 key <TLDE> { [ apostrophe, quotedbl ] };
169 key <AE01> { [ exclam, 1 ] };
170 key <AE02> { [ numerosign, 2 ] };
171 key <AE03> { [ slash, 3 ] };
172 key <AE04> { [ semicolon, 4 ] };
173 key <AE05> { [ colon, 5 ] };
174 key <AE06> { [ comma, 6 ] };
175 key <AE07> { [ period, 7 ] };
176 key <AE08> { [ underscore, 8 ] };
177 key <AE09> { [ question, 9 ] };
178 key <AE10> { [ percent, 0 ] };
179
180 key <AD12> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
181
182 key <AC02> { [ Cyrillic_i, Cyrillic_I ] };
183
184 key <AB05> { [ Ukrainian_i, Ukrainian_I ] };
185 key <AB10> { [ Ukrainian_yi, Ukrainian_YI ] };
186
187 key <BKSL> { [ parenleft, parenright ] };
188 };
189
190 partial alphanumeric_keys
191 xkb_symbols "phonetic" {
192
193 include "ua(legacy)"
194
195 name[Group1]= "Ukrainian (phonetic)";
196
197 key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
198 key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
199 key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
200 key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
201 key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
202 key <LatY> { [ Cyrillic_i, Cyrillic_I ] };
203 key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
204 key <LatI> { [ Ukrainian_i, Ukrainian_I ] };
205 key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
206 key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
207 key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
208 key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
209
210 key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
211 key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
212 key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
213 key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
214 key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
215 key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
216 key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
217 key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
218 key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
219 key <AC10> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
220 key <AC11> { [ Cyrillic_che, Cyrillic_CHE ] };
221 key <BKSL> { [ Cyrillic_yu, Cyrillic_YU ] };
222
223 key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
224 key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
225 key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
226 key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
227 key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
228 key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
229 key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
230 key <AB08> { [ Ukrainian_yi, Ukrainian_YI ] };
231 key <AB09> { [ Ukrainian_ie, Ukrainian_IE ] };
232 key <AB10> { [ slash, question ] };
233 };
234
235 // Ukrainian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny).
236 // Andrew Porokhnyak <aop (a] porokhnyak.org>
237 partial alphanumeric_keys
238 xkb_symbols "rstu" {
239
240 include "ua(legacy)"
241
242 name[Group1]= "Ukrainian (standard RSTU)";
243
244 key <TLDE> { [ apostrophe, question ] };
245 key <AE01> { [ exclam, 1 ] };
246 key <AE02> { [ quotedbl, 2 ] };
247 key <AE03> { [ numbersign, 3 ] };
248 key <AE04> { [ semicolon, 4 ] };
249 key <AE05> { [ colon, 5 ] };
250 key <AE06> { [ comma, 6 ] };
251 key <AE07> { [ period, 7 ] };
252 key <AE08> { [ asterisk, 8 ] };
253 key <AE09> { [ parenleft, 9 ] };
254 key <AE10> { [ parenright, 0 ] };
255
256 key <AD12> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
257
258 key <AC02> { [ Cyrillic_i, Cyrillic_I ] };
259
260 key <AB05> { [ Ukrainian_i, Ukrainian_I ] };
261 key <AB10> { [ Ukrainian_yi, Ukrainian_YI ] };
262
263 key <BKSL> { [ slash, percent ] };
264 };
265
266 // Russian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny).
267 // Andrew Porokhnyak <aop (a] porokhnyak.org>
268 partial alphanumeric_keys
269 xkb_symbols "rstu_ru" {
270
271 include "ru(common)"
272
273 name[Group1]= "Russian (Ukraine, standard RSTU)";
274
275 key <TLDE> { [ apostrophe, question ] };
276 key <AE01> { [ exclam, 1 ] };
277 key <AE02> { [ quotedbl, 2 ] };
278 key <AE03> { [ numbersign, 3 ] };
279 key <AE04> { [ semicolon, 4 ] };
280 key <AE05> { [ colon, 5 ] };
281 key <AE06> { [ comma, 6 ] };
282 key <AE07> { [ period, 7 ] };
283 key <AE08> { [ asterisk, 8 ] };
284 key <AE09> { [ parenleft, 9 ] };
285 key <AE10> { [ parenright, 0 ] };
286 key <BKSL> { [ slash, percent ] };
287
288 key.type[group1]="ALPHABETIC";
289
290 key <AB10> { [ Cyrillic_io, Cyrillic_IO ] };
291 };
292
293 // Homophonic keyboard layout (by Tomas Marko Miljenovi),
294 // based on the Ukrainian National Transliteration,
295 // commonly used phonetic layouts for Mac and Win.
296 partial alphanumeric_keys
297 xkb_symbols "homophonic" {
298
299 include "ua(legacy)"
300
301 name[Group1]= "Ukrainian (homophonic)";
302
303 key <TLDE> { [ grave, underscore ] };
304 key <AE01> { [ 1, exclam ] };
305 key <AE02> { [ 2, at ] };
306 key <AE03> { [ 3, semicolon ] };
307 key <AE04> { [ 4, colon ] };
308 key <AE05> { [ 5, percent ] };
309 key <AE06> { [ 6, apostrophe ] };
310 key <AE07> { [ 7, quotedbl ] };
311 key <AE08> { [ 8, asterisk ] };
312 key <AE09> { [ 9, parenleft ] };
313 key <AE10> { [ 0, parenright ] };
314 key <AE11> { [ Ukrainian_ie, Ukrainian_IE ] };
315 key <AE12> { [ Ukrainian_yi, Ukrainian_YI ] };
316
317 key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
318 key <LatW> { [ Cyrillic_sha, Cyrillic_SHA ] };
319 key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
320 key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
321 key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
322 key <LatY> { [ Cyrillic_i, Cyrillic_I ] };
323 key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
324 key <LatI> { [ Ukrainian_i, Ukrainian_I ] };
325 key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
326 key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
327 key <AD11> { [ Cyrillic_yu, Cyrillic_YU ] };
328 key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
329
330 key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
331 key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
332 key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
333 key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
334 key <LatG> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
335 key <LatH> { [ Cyrillic_ghe, Cyrillic_GHE ] };
336 key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
337 key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
338 key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
339 key <AC10> { [ Cyrillic_che, Cyrillic_CHE ] };
340 key <AC11> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
341 key <BKSL> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
342
343 key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
344 key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
345 key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
346 key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
347 key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
348 key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
349 key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
350 key <AB08> { [ comma, less ] };
351 key <AB09> { [ period, greater ] };
352 key <AB10> { [ slash, question ] };
353 };
354
355 // Crimean Tatar (Crimean Turkish) layouts.
356 // First released (by Ubuntu): 2009-02-24.
357 // These layouts are not yet standard. In particular, the mapping of
358 // the letter 'x' might change in the future. This letter is not used
359 // in the current official alphabet, but is included in the layouts for
360 // foreign words and for shortcuts.
361 // Reat SABIQ <tilde.birlik @ gmail . com>, 2009
362 // zgr Qarahan <qarahan @ gmail . com>, 2009
363
364 // Crimean Tatar (Crimean Turkish) Q layout
365 partial
366 xkb_symbols "crh" {
367
368 include "tr(basic)"
369
370 name[Group1]="Crimean Tatar (Turkish Q)";
371
372 key <TLDE> { [ quotedbl, backslash, less, degree ] };
373 key <AE11> { [ x, X, asterisk, question ] };
374
375 key <AC04> { [ f, F, iacute, Iacute ] };
376 key <AC07> { [ j, J, ibreve, Ibreve ] };
377
378 key <AB02> { [ ntilde, Ntilde, guillemotright, greater ] };
379 };
380
381 // Crimean Tatar (Crimean Turkish) F layout
382 partial
383 xkb_symbols "crh_f" {
384
385 include "tr(f)"
386
387 name[Group1]="Crimean Tatar (Turkish F)";
388
389 key <TLDE> { [ plus, asterisk, backslash, plusminus ] };
390 key <AE11> { [ x, X, slash, question ] };
391
392 key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC",
393 [ idotless, I, iacute, Iacute ] };
394
395 key <AC07> { [ k, K, ibreve, Ibreve ] };
396
397 key <BKSL> { [ ntilde, Ntilde, grave, dead_grave ] };
398 };
399
400 // Crimean Tatar (Crimean Turkish) Alt-Q layout
401 partial
402 xkb_symbols "crh_alt" {
403
404 include "tr(alt)"
405
406 name[Group1]="Crimean Tatar (Turkish Alt-Q)";
407
408 key <AC04> { [ f, F, iacute, Iacute ] };
409 key <AC07> { [ j, J, ibreve, Ibreve ] };
410
411 key <AB06> { [ n, N, ntilde, Ntilde ] };
412 };
413
414 // EXTRAS:
415
416 partial alphanumeric_keys
417 xkb_symbols "sun_type6" {
418 include "sun_vndr/ua(sun_type6)"
419 };
420