1// Keyboard layouts for Russia.
2// AEN <aen@logic.ru>
3// 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
4// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>
5// 2018/07/15 @a13 (a.k.a. @dbvvmpg) and Stepanenko Andrey <ftvkyo2011@yandex.ru>
6
7// Windows layout
8default partial alphanumeric_keys
9xkb_symbols "winkeys" {
10
11    include "ru(common)"
12    name[Group1]= "Russian";
13
14    key <AE03> { [           3,  numerosign  ] };
15    key <AE04> { [           4,   semicolon  ] };
16    key <AE05> { [           5,     percent  ] };
17    key <AE06> { [           6,       colon  ] };
18    key <AE07> { [           7,    question  ] };
19    key <AE08> { [           8,    asterisk, U20BD  ] };
20
21    key <AB10> { [      period,       comma  ] };
22    key <BKSL> { [   backslash,       slash  ] };
23};
24
25hidden partial alphanumeric_keys
26xkb_symbols "common" {
27
28    key <AE01> { [           1,      exclam  ] };
29    key <AE02> { [           2,    quotedbl  ] };
30    key <AE03> { [           3,  numbersign  ] };
31    key <AE04> { [           4,    asterisk  ] };
32    key <AE05> { [           5,       colon  ] };
33    key <AE06> { [           6,       comma  ] };
34    key <AE07> { [           7,      period  ] };
35    key <AE08> { [           8,   semicolon  ] };
36    key <AE09> { [           9,   parenleft  ] };
37    key <AE10> { [           0,  parenright  ] };
38    key <AE11> { [       minus,  underscore  ] };
39    key <AE12> { [       equal,        plus  ] };
40    key <BKSL> { [   backslash,         bar  ] };
41
42    key <AB10> { [       slash,    question  ] };
43    key <LSGT> { [       slash,         bar  ] };
44
45    key <TLDE> { [       Cyrillic_io,       Cyrillic_IO  ] };
46    key <AD01> { [   Cyrillic_shorti,   Cyrillic_SHORTI  ] };
47    key <AD02> { [      Cyrillic_tse,      Cyrillic_TSE  ] };
48    key <AD03> { [        Cyrillic_u,        Cyrillic_U  ] };
49    key <AD04> { [       Cyrillic_ka,       Cyrillic_KA  ] };
50    key <AD05> { [       Cyrillic_ie,       Cyrillic_IE  ] };
51    key <AD06> { [       Cyrillic_en,       Cyrillic_EN  ] };
52    key <AD07> { [      Cyrillic_ghe,      Cyrillic_GHE  ] };
53    key <AD08> { [      Cyrillic_sha,      Cyrillic_SHA  ] };
54    key <AD09> { [    Cyrillic_shcha,    Cyrillic_SHCHA  ] };
55    key <AD10> { [       Cyrillic_ze,       Cyrillic_ZE  ] };
56    key <AD11> { [       Cyrillic_ha,       Cyrillic_HA  ] };
57    key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN  ] };
58
59    key <AC01> { [       Cyrillic_ef,       Cyrillic_EF  ] };
60    key <AC02> { [     Cyrillic_yeru,     Cyrillic_YERU  ] };
61    key <AC03> { [       Cyrillic_ve,       Cyrillic_VE  ] };
62    key <AC04> { [        Cyrillic_a,        Cyrillic_A  ] };
63    key <AC05> { [       Cyrillic_pe,       Cyrillic_PE  ] };
64    key <AC06> { [       Cyrillic_er,       Cyrillic_ER  ] };
65    key <AC07> { [        Cyrillic_o,        Cyrillic_O  ] };
66    key <AC08> { [       Cyrillic_el,       Cyrillic_EL  ] };
67    key <AC09> { [       Cyrillic_de,       Cyrillic_DE  ] };
68    key <AC10> { [      Cyrillic_zhe,      Cyrillic_ZHE  ] };
69    key <AC11> { [        Cyrillic_e,        Cyrillic_E  ] };
70
71    key <AB01> { [       Cyrillic_ya,       Cyrillic_YA  ] };
72    key <AB02> { [      Cyrillic_che,      Cyrillic_CHE  ] };
73    key <AB03> { [       Cyrillic_es,       Cyrillic_ES  ] };
74    key <AB04> { [       Cyrillic_em,       Cyrillic_EM  ] };
75    key <AB05> { [        Cyrillic_i,        Cyrillic_I  ] };
76    key <AB06> { [       Cyrillic_te,       Cyrillic_TE  ] };
77    key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
78    key <AB08> { [       Cyrillic_be,       Cyrillic_BE  ] };
79    key <AB09> { [       Cyrillic_yu,       Cyrillic_YU  ] };
80
81    include "kpdl(comma)"
82};
83
84partial alphanumeric_keys
85xkb_symbols "legacy" {
86
87    include "ru(common)"
88    name[Group1]= "Russian (legacy)";
89};
90
91partial alphanumeric_keys
92xkb_symbols "olpc" {
93
94    include "ru(common)"
95
96    key <TLDE> { [  0x01000451,   0x01000401,       grave  ] };  // Ñ‘, Ð
97    key <AE03> { [           3,   numbersign,  0x01002116  ] };  // â„–
98    key <AE04> { [           4,       dollar,   semicolon  ] };
99    key <AE06> { [           6,  asciicircum,       colon  ] };
100    key <AE07> { [           7,    ampersand               ] };
101    key <AE09> { [           9,    parenleft,       acute  ] };
102    key <AC12> { [   backslash,          bar,       slash  ] };
103
104    include "group(olpc)"
105};
106
107partial alphanumeric_keys
108xkb_symbols "typewriter" {
109
110    include "ru(common)"
111    name[Group1]= "Russian (typewriter)";
112
113    key <TLDE> { [         bar,        plus  ] };
114    key <AE01> { [  numerosign,           1  ] };
115    key <AE02> { [       minus,           2  ] };
116    key <AE03> { [       slash,           3  ] };
117    key <AE04> { [    quotedbl,           4  ] };
118    key <AE05> { [       colon,           5  ] };
119    key <AE06> { [       comma,           6  ] };
120    key <AE07> { [      period,           7  ] };
121    key <AE08> { [  underscore,           8  ] };
122    key <AE09> { [    question,           9  ] };
123    key <AE10> { [     percent,           0  ] };
124    key <AE11> { [      exclam,       equal  ] };
125    key <AE12> { [   semicolon,   backslash  ] };
126
127    key <BKSL> { [  parenright,   parenleft  ] };
128
129    key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN  ] };
130    key <AB10> { [       Cyrillic_io,       Cyrillic_IO  ] };
131};
132
133partial alphanumeric_keys
134xkb_symbols "typewriter-legacy" {
135
136    include "ru(common)"
137    name[Group1]= "Russian (typewriter, legacy)";
138
139    key <TLDE> { [  apostrophe,    quotedbl  ] };
140    key <AE01> { [      exclam,           1  ] };
141    key <AE02> { [  numerosign,           2  ] };
142    key <AE03> { [       slash,           3  ] };
143    key <AE04> { [   semicolon,           4  ] };
144    key <AE05> { [       colon,           5  ] };
145    key <AE06> { [       comma,           6  ] };
146    key <AE07> { [      period,           7  ] };
147    key <AE08> { [  underscore,           8  ] };
148    key <AE09> { [    question,           9  ] };
149    key <AE10> { [     percent,           0  ] };
150
151    key <BKSL> { [   parenleft,  parenright  ] };
152
153    key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN  ] };
154    key <AB10> { [       Cyrillic_io,       Cyrillic_IO  ] };
155};
156
157partial alphanumeric_keys
158xkb_symbols "gost-6431-75-48" {
159
160    include "ru(typewriter)"
161    name[Group1]= "Russian (GOST 6431-75)";
162
163    key <TLDE> { [    section,  asciitilde  ] };
164    key <AE01> { [  parenleft,           1  ] };
165    key <AE02> { [ parenright,           2  ] };
166    key <AE03> { [      minus,           3  ] };
167    key <AE04> { [      slash,           4  ] };
168    key <AE05> { [   quotedbl,           5  ] };
169    key <AE06> { [      colon,           6  ] };
170    key <AE07> { [      comma,           7  ] };
171    key <AE08> { [     period,           8  ] };
172    key <AE09> { [ underscore,           9  ] };
173    key <AE10> { [   question,           0  ] };
174    key <AE11> { [    percent,        plus  ] };
175    key <AE12> { [    exclam,        equal  ] };
176
177    key <BKSL> { [   semicolon,  numerosign ] };
178
179    key <LSGT> { [ emdash, endash ] };
180};
181
182partial alphanumeric_keys
183xkb_symbols "gost-14289-88" {
184
185    include "ru(typewriter)"
186    name[Group1]= "Russian (GOST 14289-88)";
187
188    key <TLDE> { [  backslash, asterisk,   asciitilde, section ] };
189    key <AE01> { [  parenleft,        1,         less, guillemotleft ] };
190    key <AE02> { [ parenright,        2,           at, guillemotright ] };
191    key <AE03> { [      minus,        3,   numbersign, numerosign ] };
192    key <AE04> { [      slash,        4,        U20BD, dollar ] }; // ruble
193    key <AE05> { [   quotedbl,        5,      greater ] };
194    key <AE06> { [      colon,        6,  asciicircum ] };
195    key <AE07> { [      comma,        7,   ampersand  ] };
196    key <AE08> { [     period,        8,   apostrophe, dead_acute ] };
197    key <AE09> { [ underscore,        9,    braceleft, U201E ] };
198    key <AE10> { [   question,        0,   braceright, U201F ] };
199    key <AE11> { [    percent,     plus,  bracketleft, plusminus ] };
200    key <AE12> { [     exclam,    equal, bracketright ] };
201
202    key <BKSL> { [  semicolon,      bar,        grave ] };
203
204    key <LSGT> { [ emdash, endash ] };
205};
206
207partial alphanumeric_keys
208xkb_symbols "phonetic" {
209
210    name[Group1]= "Russian (phonetic)";
211
212    key <AE01> { [           1,      exclam  ] };
213    key <AE02> { [           2,          at  ] };
214    key <AE03> { [           3, Cyrillic_io  ] };
215    key <AE04> { [           4, Cyrillic_IO  ] };
216    key <AE05> { [           5, Cyrillic_hardsign  ] };
217    key <AE06> { [           6, Cyrillic_HARDSIGN  ] };
218    key <AE07> { [           7,   ampersand  ] };
219    key <AE08> { [           8,    asterisk  ] };
220    key <AE09> { [           9,   parenleft  ] };
221    key <AE10> { [           0,  parenright  ] };
222    key <AE11> { [       minus,  underscore  ] };
223
224    key <AB09> { [      period,     greater  ] };
225    key <AB10> { [       slash,    question  ] };
226    key <AB08> { [       comma,        less  ] };
227    key <AC10> { [   semicolon,       colon  ] };
228    key <AC11> { [  apostrophe,    quotedbl  ] };
229    key <LSGT> { [         bar,   brokenbar  ] };
230
231    key <TLDE> { [       Cyrillic_yu,       Cyrillic_YU  ] };
232    key <LatQ> { [       Cyrillic_ya,       Cyrillic_YA  ] };
233    key <LatZ> { [       Cyrillic_ze,       Cyrillic_ZE  ] };
234    key <LatS> { [       Cyrillic_es,       Cyrillic_ES  ] };
235    key <LatA> { [        Cyrillic_a,        Cyrillic_A  ] };
236    key <LatW> { [       Cyrillic_ve,       Cyrillic_VE  ] };
237    key <LatC> { [      Cyrillic_tse,      Cyrillic_TSE  ] };
238    key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
239    key <LatD> { [       Cyrillic_de,       Cyrillic_DE  ] };
240    key <LatE> { [       Cyrillic_ie,       Cyrillic_IE  ] };
241    key <LatV> { [      Cyrillic_zhe,      Cyrillic_ZHE  ] };
242    key <LatF> { [       Cyrillic_ef,       Cyrillic_EF  ] };
243    key <LatT> { [       Cyrillic_te,       Cyrillic_TE  ] };
244    key <LatR> { [       Cyrillic_er,       Cyrillic_ER  ] };
245    key <LatN> { [       Cyrillic_en,       Cyrillic_EN  ] };
246    key <LatB> { [       Cyrillic_be,       Cyrillic_BE  ] };
247    key <LatH> { [       Cyrillic_ha,       Cyrillic_HA  ] };
248    key <LatG> { [      Cyrillic_ghe,      Cyrillic_GHE  ] };
249    key <LatY> { [     Cyrillic_yeru,     Cyrillic_YERU  ] };
250    key <LatM> { [       Cyrillic_em,       Cyrillic_EM  ] };
251    key <LatJ> { [   Cyrillic_shorti,   Cyrillic_SHORTI  ] };
252    key <LatU> { [        Cyrillic_u,        Cyrillic_U  ] };
253    key <LatK> { [       Cyrillic_ka,       Cyrillic_KA  ] };
254    key <LatI> { [        Cyrillic_i,        Cyrillic_I  ] };
255    key <LatO> { [        Cyrillic_o,        Cyrillic_O  ] };
256    key <LatL> { [       Cyrillic_el,       Cyrillic_EL  ] };
257    key <LatP> { [       Cyrillic_pe,       Cyrillic_PE  ] };
258
259    key <AD11> { [      Cyrillic_sha,      Cyrillic_SHA  ] };
260    key <AE12> { [      Cyrillic_che,      Cyrillic_CHE  ] };
261    key <AD12> { [    Cyrillic_shcha,    Cyrillic_SHCHA  ] };
262    key <BKSL> { [        Cyrillic_e,        Cyrillic_E  ] };
263};
264
265partial alphanumeric_keys
266xkb_symbols "phonetic_winkeys" {
267
268    include "ru(phonetic)"
269    name[Group1]= "Russian (phonetic, Windows)";
270
271    key <LatX> { [       Cyrillic_ha,       Cyrillic_HA  ] };
272    key <LatH> { [      Cyrillic_che,      Cyrillic_CHE  ] };
273    key <AE12> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
274};
275
276partial alphanumeric_keys
277xkb_symbols "phonetic_YAZHERTY" {
278    include "ru(phonetic_winkeys)"
279    name[Group1]= "Russian (phonetic, YAZHERTY)";
280    key	<LatW> {	[     Cyrillic_zhe,     Cyrillic_ZHE	]	};
281    key	<LatV> {	[    Cyrillic_ve,    Cyrillic_VE	]	}; 
282};
283
284
285partial alphanumeric_keys
286xkb_symbols "tt" {
287
288    include "ru(winkeys)"
289    name[Group1]= "Tatar";
290
291    key <TLDE> { [           Cyrillic_shha,           Cyrillic_SHHA,        Cyrillic_io,        Cyrillic_IO  ] };
292    key <AD02> { [          Cyrillic_o_bar,          Cyrillic_O_bar,       Cyrillic_tse,       Cyrillic_TSE  ] };
293    key <AD09> { [          Cyrillic_schwa,          Cyrillic_SCHWA,     Cyrillic_shcha,     Cyrillic_SHCHA  ] };
294    key <AD12> { [     Cyrillic_u_straight,     Cyrillic_U_straight,  Cyrillic_hardsign,  Cyrillic_HARDSIGN  ] };
295    key <AC10> { [   Cyrillic_en_descender,   Cyrillic_EN_descender,       Cyrillic_zhe,       Cyrillic_ZHE  ] };
296    key <AB07> { [  Cyrillic_zhe_descender,  Cyrillic_ZHE_descender,  Cyrillic_softsign,  Cyrillic_SOFTSIGN  ] };
297
298    include "level3(ralt_switch)"
299};
300
301partial alphanumeric_keys
302xkb_symbols "os_legacy" {
303
304    include "ru(common)"
305    name[Group1]= "Ossetian (legacy)";
306
307    key <TLDE> { [  Cyrillic_e,  Cyrillic_E                              ] };
308    key <AC07> { [  Cyrillic_o,  Cyrillic_O,  Cyrillic_io,  Cyrillic_IO  ] };
309    key <AC11> { [  0x010004D5,  0x010004D4                              ] };
310};
311
312partial alphanumeric_keys
313xkb_symbols "os_winkeys" {
314
315    include "ru(winkeys)"
316    name[Group1]= "Ossetian (Windows)";
317
318    key <TLDE> { [  Cyrillic_e,  Cyrillic_E                              ] };
319    key <AC07> { [  Cyrillic_o,  Cyrillic_O,  Cyrillic_io,  Cyrillic_IO  ] };
320    key <AC11> { [  0x010004D5,  0x010004D4                              ] };
321};
322
323partial alphanumeric_keys
324xkb_symbols "cv" {
325
326    include "ru(winkeys)"
327    name[Group1]= "Chuvash";
328
329    key <AD03> { [   Cyrillic_u,   Cyrillic_U,  0x010004f3,  0x010004f2 ] };
330    key <AD05> { [  Cyrillic_ie,  Cyrillic_IE,  0x010004d7,  0x010004d6 ] };
331    key <AC04> { [   Cyrillic_a,   Cyrillic_A,  0x010004d1,  0x010004d0 ] };
332    key <AB03> { [  Cyrillic_es,  Cyrillic_ES,  0x010004ab,  0x010004aa ] };
333
334    include "level3(ralt_switch)"
335};
336
337partial alphanumeric_keys
338xkb_symbols "udm" {
339
340    include "ru(winkeys)"
341    name[Group1]= "Udmurt";
342
343    key <AE01> { [    question,      exclam,   1,   1  ] };
344    key <AE02> { [   parenleft,    quotedbl,   2,   2  ] };
345    key <AE03> { [  parenright,  numerosign,   3,   3  ] };
346    key <AE04> { [       colon,   semicolon,   4,   4  ] };
347    key <AE05> { [    asterisk,     percent,   5,   5  ] };
348    key <AE06> { [  0x010004dd,  0x010004dc,   6,   6  ] };
349    key <AE07> { [  0x010004e7,  0x010004e6,   7,   7  ] };
350    key <AE08> { [  0x010004f5,  0x010004f4,   8,   8  ] };
351    key <AE09> { [  0x010004e5,  0x010004e4,   9,   9  ] };
352    key <AE10> { [  0x010004df,  0x010004de,   0,   0  ] };
353
354    include "level3(ralt_switch)"
355};
356
357partial alphanumeric_keys
358xkb_symbols "cv_latin" {
359
360    include "us(alt-intl)"
361    name[Group1]= "Chuvash (Latin)";
362
363    key <AD01> { [   q,   Q,   0x01000161,   0x01000160  ] };
364    key <AD02> { [   w,   W,   udiaeresis,   Udiaeresis  ] };
365    key <AD03> { [   e,   E,   0x01000115,   0x01000114  ] };
366    key <AD07> { [   u,   U,   udiaeresis,   Udiaeresis  ] };
367    key <AD08> { [   i,   I,   0x0100012d,   0x0100012c  ] };
368    key <AD09> { [   o,   O,   odiaeresis,   Odiaeresis  ] };
369    key <AC01> { [   a,   A,       abreve,       Abreve  ] };
370    key <AC02> { [   s,   S,     scedilla,     Scedilla  ] };
371    key <AC05> { [   g,   G,       gbreve,       Gbreve  ] };
372    key <AC07> { [   j,   J,   0x01000131,   0x01000130  ] };
373    key <AB03> { [   c,   C,     ccedilla,     Ccedilla  ] };
374
375    include "level3(ralt_switch)"
376};
377
378// Komi language layout
379// Vlad Shakhov <lumpen.intellectual@gmail.com>
380// last changes 2007/10/23
381partial alphanumeric_keys
382xkb_symbols "kom" {
383
384    include "ru(winkeys)"
385    name[Group1]= "Komi";
386
387    // cyrilllic o with diaeresis
388    key <AC07> { [  Cyrillic_o,  Cyrillic_O,        U04E7,        U04E6  ] };
389
390    // hard I as additional key for soft Cyrillic_I
391    key <AB05> { [  Cyrillic_i,  Cyrillic_I,  Ukrainian_i,  Ukrainian_I  ] };
392
393    include "level3(ralt_switch)"
394};
395
396// Yakut language layout
397// 2008/04/23 Yakov Aleksandrov <bertjickty@yandex.ru>
398// 2008/04/23 Anatoliy Zhozhikov <jav@sitc.ru>
399// 2008/04/23 Aleksandr Varlamov
400partial alphanumeric_keys
401xkb_symbols "sah" {
402
403    include "ru(winkeys)"
404    name[Group1]= "Yakut";
405
406    key <TLDE> { [  Cyrillic_io,      Cyrillic_IO,      U04EB,                U04EA                ] };
407    key <AD01> { [  Cyrillic_shorti,  Cyrillic_SHORTI,  U048B,                U048A                ] };
408    key <AD03> { [  Cyrillic_u,       Cyrillic_U,       Cyrillic_u_straight,  Cyrillic_U_straight  ] };
409    key <AD04> { [  Cyrillic_ka,      Cyrillic_KA,      U04C4,                U04C3                ] };
410    key <AD06> { [  Cyrillic_en,      Cyrillic_EN,      U04A5,                U04A4                ] };
411    key <AD07> { [  Cyrillic_ghe,     Cyrillic_GHE,     U0495,                U0494                ] };
412    key <AD10> { [  Cyrillic_ze,      Cyrillic_ZE,      U04E1,                U04E0                ] };
413    key <AD11> { [  Cyrillic_ha,      Cyrillic_HA,      Cyrillic_shha,        Cyrillic_SHHA        ] };
414    key <AC07> { [  Cyrillic_o,       Cyrillic_O,       Cyrillic_o_bar,       Cyrillic_O_bar       ] };
415    key <AC10> { [  Cyrillic_zhe,     Cyrillic_ZHE,     U0461,                U0460                ] };
416    key <AB02> { [  Cyrillic_che,     Cyrillic_CHE,     Cyrillic_u_macron,    Cyrillic_U_macron    ] };
417    key <AB04> { [  Cyrillic_em,      Cyrillic_EM,      U04C8,                U04C7                ] };
418    key <AB05> { [  Cyrillic_i,       Cyrillic_I,       Cyrillic_i_macron,    Cyrillic_I_macron    ] };
419
420    include "level3(ralt_switch)"
421};
422
423
424//Kalmyk language layout
425//based on the Kalmyk language layout: http://soft.oyrat.org/
426//Nikolay Korneev <halmg@oyrat.org>
427//Toli Miron <mirontoli@gmail.com>
428partial alphanumeric_keys
429xkb_symbols "xal" {
430
431    include "ru(winkeys)"
432    name[Group1]= "Kalmyk";
433
434    key.type[group1]="FOUR_LEVEL";
435
436    key <AE01> { [               question,                 exclam,             1  ] };
437    key <AE02> { [             numerosign,               quotedbl,             2  ] };
438    key <AE03> { [    Cyrillic_u_straight,    Cyrillic_U_straight,             3  ] };
439    key <AE04> { [         Cyrillic_schwa,         Cyrillic_SCHWA,             4  ] };
440    key <AE05> { [               asterisk,                percent,             5  ] };
441    key <AE06> { [  Cyrillic_en_descender,  Cyrillic_EN_descender,             6  ] };
442    key <AE07> { [         Cyrillic_o_bar,         Cyrillic_O_bar,             7  ] };
443    key <AE08> { [          Cyrillic_shha,          Cyrillic_SHHA,             8  ] };
444    key <AE09> { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender,             9  ] };
445    key <AE10> { [              semicolon,                  colon,             0  ] };
446
447    key <TLDE> { [              parenleft,             parenright,   Cyrillic_io,  Cyrillic_IO    ] };
448
449    key <AD02> { [           Cyrillic_tse,           Cyrillic_TSE,        dollar  ] };
450    key <AD03> { [             Cyrillic_u,             Cyrillic_U,      EuroSign  ] };
451    key <AD04> { [            Cyrillic_ka,            Cyrillic_KA,    registered  ] };
452    key <AD05> { [            Cyrillic_ie,            Cyrillic_IE,     trademark  ] };
453    key <AD11> { [            Cyrillic_ha,            Cyrillic_HA,   bracketleft  ] };
454    key <AD12> { [      Cyrillic_hardsign,      Cyrillic_HARDSIGN,  bracketright  ] };
455    key <AC11> { [             Cyrillic_e,             Cyrillic_E,    apostrophe  ] };
456    key <AB03> { [            Cyrillic_es,            Cyrillic_ES,     copyright  ] };
457    key <AB08> { [            Cyrillic_be,            Cyrillic_BE,          less  ] };
458    key <AB09> { [            Cyrillic_yu,            Cyrillic_YU,       greater  ] };
459
460    include "level3(ralt_switch)"
461};
462
463partial alphanumeric_keys
464xkb_symbols "dos" {
465
466    include "ru(common)"
467    name[Group1]= "Russian (DOS)";
468
469    key <TLDE> { [   parenright,  parenleft   ] };
470    key <AE04> { [   4,           currency    ] };
471    key <AE09> { [   9,           question    ] };
472    key <AE10> { [   0,           percent     ] };
473
474    key <AB10> { [   Cyrillic_io, Cyrillic_IO ] };
475};
476
477partial alphanumeric_keys
478xkb_symbols "bak" {
479
480    include "ru(winkeys)"
481    name[Group1]= "Bashkirian";
482
483    key.type[group1]="FOUR_LEVEL";
484
485    key <TLDE> { [         Cyrillic_schwa,         Cyrillic_SCHWA,  Cyrillic_io,   Cyrillic_IO  ] };
486    key <AE01> { [                 exclam,               quotedbl,            1,             1  ] };
487    key <AE02> { [         Cyrillic_o_bar,         Cyrillic_O_bar,            2,             2  ] };
488    key <AE03> { [             0x010004a1,             0x010004a0,            3,             3  ] };
489    key <AE04> { [       Cyrillic_ghe_bar,       Cyrillic_GHE_bar,            4,             4  ] };
490    key <AE05> { [             0x010004ab,             0x010004aa,            5,             5  ] };
491    key <AE06> { [                  colon,              semicolon,            6,             6  ] };
492    key <AE07> { [             0x01000499,             0x01000498,            7,             7  ] };
493    key <AE08> { [          Cyrillic_shha,          Cyrillic_SHHA,            8,             8  ] };
494    key <AE09> { [               question,              parenleft,            9,             9  ] };
495    key <AE10> { [             numerosign,             parenright,            0,             0  ] };
496    key <AE11> { [                  minus,                percent,        minus,    underscore  ] };
497    key <AE12> { [    Cyrillic_u_straight,    Cyrillic_U_straight,        equal,          plus  ] };
498    key <BKSL> { [  Cyrillic_en_descender,  Cyrillic_EN_descender,    backslash,         slash  ] };
499
500    include "level3(ralt_switch)"
501};
502
503// Serbian characters are added as third-level symbols to Russian keyboard layout.
504partial alphanumeric_keys
505xkb_symbols "srp" {
506
507    include "ru(common)"
508    name[Group1]= "Serbian (Russia)";
509
510    key <AE03> { [               3,      numerosign                ] };
511    key <AE04> { [               4,       semicolon                ] };
512    key <AE05> { [               5,         percent                ] };
513    key <AE06> { [               6,           colon                ] };
514    key <AE07> { [               7,        question                ] };
515    key <AE08> { [               8,        asterisk                ] };
516    key <AB10> { [          period,           comma                ] };
517    key <BKSL> { [       backslash,           slash                ] };
518    key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI,  U458,  U408  ] };
519    key <AD06> { [     Cyrillic_en,     Cyrillic_EN,  U45A,  U40A  ] };
520    key <AC08> { [     Cyrillic_el,     Cyrillic_EL,  U459,  U409  ] };
521    key <AC09> { [     Cyrillic_de,     Cyrillic_DE,  U45F,  U40F  ] };
522    key <AC10> { [    Cyrillic_zhe,    Cyrillic_ZHE,  U452,  U402  ] };
523    key <AB02> { [    Cyrillic_che,    Cyrillic_CHE,  U45B,  U40B  ] };
524
525    include "level3(ralt_switch)"
526};
527
528// Mari language layout
529// http://www.marlamuter.com/
530// Last edit by Viatcheslav Kileev (slavakileev@yandex.ru)
531partial alphanumeric_keys
532xkb_symbols "chm" {
533
534    include "ru(winkeys)"
535    name[Group1]= "Mari";
536
537    key <AC04> { [   Cyrillic_a,   Cyrillic_A,   U04D3,   U04D2  ] };
538    key <AD03> { [   Cyrillic_u,   Cyrillic_U,   U04F1,   U04F0  ] };
539    key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, U04F9,   U04F8  ] };
540    key <AD06> { [   Cyrillic_en,  Cyrillic_EN,  U04A5,   U04A4  ] };
541    key <AC07> { [   Cyrillic_o,   Cyrillic_O,   U04E7,   U04E6  ] };
542
543    include "level3(ralt_switch)"
544};
545
546partial alphanumeric_keys
547xkb_symbols "phonetic_azerty" {
548
549    include "level3(ralt_switch)"
550
551    name[Group1]= "Russian (phonetic, AZERTY)";
552
553     key <AE01>	{ [ ampersand,          1,  onesuperior,   exclamdown ]	};
554     key <AE02>	{ [    eacute,          2,   asciitilde,    oneeighth ]	};
555     key <AE03>	{ [  quotedbl,          3,   numbersign,     sterling ]	};
556     key <AE04>	{ [apostrophe,          4,    braceleft,       dollar ]	};
557     key <AE05>	{ [ parenleft,          5,  bracketleft, threeeighths ]	};
558     key <AE06>	{ [     minus,          6,          bar,  fiveeighths ]	};
559     key <AE07>	{ [    egrave,          7,        grave, seveneighths ]	};
560     key <AE08>	{ [underscore,          8,    backslash,    trademark ]	};
561     key <AE09>	{ [  ccedilla,          9,  asciicircum,    plusminus ]	};
562     key <AE10>	{ [    agrave,          0,           at,       degree ]	};
563     key <AE11>	{ [parenright,     degree, bracketright, questiondown ]	};
564     key <AE12>	{ [     equal,       plus,   braceright,  dead_ogonek ]	};
565
566     key <AB07> { [     comma,   question,        acute,  doubleacute ] };
567     key <AB08>	{ [ semicolon,     period,        U2022,     multiply ]	}; // bullet
568     key <AB09>	{ [     colon,      slash, periodcentered,   division ]	};
569     key <AB10>	{ [    exclam,    section, dead_belowdot, dead_abovedot ] };
570
571     key <AC11>  { [    ugrave,    percent,  asciicircum,        caron ] };
572     key	<LSGT> {	[	      bar,	 brokenbar	]	};
573
574     key	<TLDE> {	[     Cyrillic_yu,     Cyrillic_YU	]	};
575     key	<AC01> {	[     Cyrillic_ya,     Cyrillic_YA	]	}; // Q
576     key	<AD02> {	[     Cyrillic_ze,     Cyrillic_ZE	]	}; // Z
577     key	<LatS> {	[     Cyrillic_es,     Cyrillic_ES	]	};
578     key	<AD01> {	[      Cyrillic_a,	Cyrillic_A	]	};
579     key	<AB01> {	[     Cyrillic_ve,     Cyrillic_VE	]	}; // W
580     key	<LatC> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};
581     key	<LatX> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
582     key	<LatD> {	[     Cyrillic_de,     Cyrillic_DE	]	};
583     key	<LatE> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
584     key	<LatV> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
585     key	<LatF> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
586     key	<LatT> {	[     Cyrillic_te,     Cyrillic_TE	]	};
587     key	<LatR> {	[     Cyrillic_er,     Cyrillic_ER	]	};
588     key	<LatN> {	[     Cyrillic_en,     Cyrillic_EN	]	};
589     key	<LatB> {	[     Cyrillic_be,     Cyrillic_BE	]	};
590     key	<LatH> {	[     Cyrillic_ha,     Cyrillic_HA	]	};
591     key	<LatG> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};
592     key	<LatY> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};
593     key	<AC10> {	[     Cyrillic_em,     Cyrillic_EM	]	}; // M
594     key	<LatJ> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};
595     key	<LatU> {	[      Cyrillic_u,	Cyrillic_U	]	};
596     key	<LatK> {	[     Cyrillic_ka,     Cyrillic_KA	]	};
597     key	<LatI> {	[      Cyrillic_i,	Cyrillic_I	]	};
598     key	<LatO> {	[      Cyrillic_o,	Cyrillic_O	]	};
599     key	<LatL> {	[     Cyrillic_el,     Cyrillic_EL	]	};
600     key	<LatP> {	[     Cyrillic_pe,     Cyrillic_PE	]	};
601
602    key	<AD11> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
603    key	<AE12> {	[    Cyrillic_che,    Cyrillic_CHE	]	};
604    key	<AD12> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
605    key	<BKSL> {	[      Cyrillic_e,	Cyrillic_E	]	};
606};
607
608// Russian dvorak phonetic layout
609// Oleg Zalizniak <ramaloke at gmail.com>
610partial alphanumeric_keys
611xkb_symbols "phonetic_dvorak" {
612    include "level3(ralt_switch)"
613
614    name[Group1]= "Russian (phonetic, Dvorak)";
615
616    key <TLDE> { [ Cyrillic_yu, Cyrillic_YU ] };
617
618    key <AE01> { [ 1, exclam ] };
619    key <AE02> { [ 2, at ] };
620    key <AE03> { [ 3, Cyrillic_io ] };
621    key <AE04> { [ 4, Cyrillic_IO ] };
622    key <AE05> { [ 5, Cyrillic_hardsign ] };
623    key <AE06> { [ 6, Cyrillic_HARDSIGN ] };
624    key <AE07> { [ 7, ampersand ] };
625    key <AE08> { [ 8, asterisk ] };
626    key <AE09> { [ 9, parenleft ] };
627    key <AE10> { [ 0, parenright ] };
628    key <AE11> { [ Cyrillic_sha, Cyrillic_SHA ] };
629    key <AE12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
630    key <BKSL> { [ Cyrillic_e, Cyrillic_E ] };
631
632    key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
633    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
634    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
635    key <AD04> { [ Cyrillic_pe, Cyrillic_PE ] };
636    key <AD05> { [ Cyrillic_yeru, Cyrillic_YERU ] };
637    key <AD06> { [ Cyrillic_ef, Cyrillic_EF ] };
638    key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
639    key <AD08> { [ Cyrillic_tse, Cyrillic_TSE ] };
640    key <AD09> { [ Cyrillic_er, Cyrillic_ER ] };
641    key <AD10> { [ Cyrillic_el, Cyrillic_EL ] };
642    key <AD11> { [ slash, question ] };
643    key <AD12> { [ Cyrillic_che, Cyrillic_CHE ] };
644
645    key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
646    key <AC02> { [ Cyrillic_o, Cyrillic_O ] };
647    key <AC03> { [ Cyrillic_ie, Cyrillic_IE ] };
648    key <AC04> { [ Cyrillic_u, Cyrillic_U ] };
649    key <AC05> { [ Cyrillic_i, Cyrillic_I ] };
650    key <AC06> { [ Cyrillic_de, Cyrillic_DE ] };
651    key <AC07> { [ Cyrillic_ha, Cyrillic_HA ] };
652    key <AC08> { [ Cyrillic_te, Cyrillic_TE ] };
653    key <AC09> { [ Cyrillic_en, Cyrillic_EN ] };
654    key <AC10> { [ Cyrillic_es, Cyrillic_ES ] };
655    key <AC11> { [ minus, underscore ] };
656
657    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
658    key <AB02> { [ Cyrillic_ya, Cyrillic_YA ] };
659    key <AB03> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
660    key <AB04> { [ Cyrillic_ka, Cyrillic_KA ] };
661    key <AB05> { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
662    key <AB06> { [ Cyrillic_be, Cyrillic_BE ] };
663    key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
664    key <AB08> { [ Cyrillic_ve, Cyrillic_VE ] };
665    key <AB09> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
666    key <AB10> { [ Cyrillic_ze, Cyrillic_ZE ] };
667};
668
669partial alphanumeric_keys
670xkb_symbols "phonetic_fr" {
671
672    include "fr"
673    include "ru(phonetic_azerty)"
674
675    name[Group1]= "Russian (phonetic, French)";
676};
677
678// Keyboard layout for Abkhazian.
679// 2022/04/13 by Nart Tlisha <daniel.abzakh@gmail.com>
680partial alphanumeric_keys
681xkb_symbols "ab" {
682
683    include "ru(common)"
684    name[Group1]= "Abkhazian (Russia)";
685
686    key <TLDE> { [     U0301,  asciitilde,        U201C,      U201D ] }; // double quotation marks
687    key <AE01> { [         1,      exclam,        U00AB,      U00BB ] }; // guillemets
688    key <AE02> { [         2,          at,     quotedbl,      U201E ] }; // low double quotation mark
689    key <AE03> { [         3,  numbersign,   numerosign             ] };
690    key <AE04> { [         4,      dollar,    semicolon             ] };
691    key <AE05> { [         5,     percent                           ] };
692    key <AE06> { [         6, asciicircum,        colon             ] };
693    key <AE07> { [         7,   ampersand,     question             ] };
694    key <AE08> { [         8,    asterisk                           ] };
695    key <AE09> { [         9,   parenleft,  bracketleft,  braceleft ] };
696    key <AE10> { [         0,  parenright, bracketright, braceright ] };
697    key <AE11> { [     minus,  underscore,        U2013,      U2014 ] }; // endash, emdash
698
699    key <AD01> { [        U049f,        U049e                       ] };
700    key <AD02> { [ Cyrillic_tse, Cyrillic_TSE,      U04b5,    U04b4 ] };
701    key <AD04> { [  Cyrillic_ka,  Cyrillic_KA,      U049b,    U049a ] };
702    key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE,      U04f7,    U04f6 ] };
703    key <AD09> { [        U04d9,        U04d8                       ] };
704    key <AD10> { [  Cyrillic_ze,  Cyrillic_ZE,      U04e1,    U04e0 ] };
705    key <AD11> { [  Cyrillic_ha,  Cyrillic_HA,      U04b3,    U04b2 ] };
706    key <AD12> { [        U04bf,        U04be                       ] };
707
708    key <AC05> { [  Cyrillic_pe,  Cyrillic_PE,      U0525,    U0524 ] };
709    key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE,  semicolon,    colon ] };
710    key <AC11> { [        U04bd,        U04bc, apostrophe, quotedbl ] };
711    key <BKSL> { [    backslash,          bar,      slash           ] };
712
713    key <AB01> { [        U045f,        U040f                       ] };
714    key <AB02> { [ Cyrillic_che, Cyrillic_CHE,      U04b7,    U04b6 ] };
715    key <AB06> { [  Cyrillic_te,  Cyrillic_TE,      U04ad,    U04ac ] };
716    key <AB08> { [  Cyrillic_be,  Cyrillic_BE,      comma,     less ] };
717    key <AB09> { [        U04a9,        U04a8,     period,  greater ] };
718    key <AB10> { [        slash,     question,      comma,   period ] };
719
720    include "level3(ralt_switch)"
721};
722
723// EXTRAS:
724
725// Rulemak, Colemak based Russian phonetic layout
726// contact: Geert Hendrickx <geert@hendrickx.be>
727// http://forum.colemak.com/viewtopic.php?id=519
728//
729// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
730// │ Ё ``│ ! ˝ │ @   │ №   │ $   │ %   │ ^ ¯ │ &   │ * ₴ │ (   │ )   │ _ — │ Ъ + ┃ ⌫       ┃
731// │ ё ` │ 1 ´ │ 2 ¨ │ 3 # │ 4 ¢ │ 5 € │ 6 ˘ │ 7   │ 8 ₽ │ 9 [ │ 0 ] │ - – │ ъ = ┃Backspace┃
732// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
733// ┃       ┃ Я Ѣ │ Ж Ѵ │ Ф Ѳ │ П   │ Г Ґ │ й Ј │ Л Љ │ У Ў │ Ы Ї │ Ю : │ Ш { │ Щ } ┃ Enter ┃
734// ┃ Tab ↹ ┃ я ѣ │ ж ѵ │ ф ѳ │ п   │ г ґ │ й ј │ л љ │ у ў │ ы ї │ ю ; │ ш « │ щ » ┃   ⏎   ┃
735// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
736// ┃ ⌫ Back ┃ А   │ Р   │ С   │ Т Ћ │ Д Ђ │ Ч Џ │ Н Њ │ Е Є │ И І │ О   │ Ь " │ Э | ┃      ┃
737// ┃  space ┃ а   │ р   │ с   │ т ћ │ д ђ │ ч џ │ н њ │ е є │ и і │ о   │ ь ' │ э \ ┃      ┃
738// ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
739// ┃          ┃ З Ѕ │ Х   │ Ц   │ В   │ Б Ѓ │ К Ќ │ М   │ ;   │ :   │ ? Ӏ ┃                ┃
740// ┃  Shift ⇧ ┃ з ѕ │ х   │ ц   │ в   │ б ѓ │ к ќ │ м   │ , < │ . > │ / ӏ ┃     Shift ⇧    ┃
741// ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
742// ┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
743// ┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃
744// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
745
746partial alphanumeric_keys
747xkb_symbols "rulemak" {
748
749    name[Group1]= "Russian (Rulemak, phonetic Colemak)";
750
751    key <TLDE> { [     Cyrillic_io,     Cyrillic_IO,           U0300,           U030F ] }; // Combining grave, double grave
752    key <AE01> { [               1,          exclam,           U0301,           U030B ] }; // Combining acute, double acute
753    key <AE02> { [               2,              at,           U0308                  ] }; // Combining diaeresis
754    key <AE03> { [               3,      numerosign,      numbersign                  ] };
755    key <AE04> { [               4,          dollar,            cent                  ] };
756    key <AE05> { [               5,         percent,        EuroSign                  ] };
757    key <AE06> { [               6,     asciicircum,           U0306,           U0304 ] }; // Combining breve, macron
758    key <AE07> { [               7,       ampersand                                   ] };
759    key <AE08> { [               8,        asterisk,           U20BD,           U20B4 ] }; // ruble, hryvnia
760    key <AE09> { [               9,       parenleft,     bracketleft                  ] };
761    key <AE10> { [               0,      parenright,    bracketright                  ] };
762    key <AE11> { [           minus,      underscore,          endash,          emdash ] };
763    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,       equal,            plus ] };
764
765    key <AD01> { [     Cyrillic_ya,     Cyrillic_YA,           U0463,           U0462 ] }; // yat
766    key <AD02> { [    Cyrillic_zhe,    Cyrillic_ZHE,           U0475,           U0474 ] }; // izhitsa
767    key <AD03> { [     Cyrillic_ef,     Cyrillic_EF,           U0473,           U0472 ] }; // fita
768    key <AD04> { [     Cyrillic_pe,     Cyrillic_PE                                   ] };
769    key <AD05> { [    Cyrillic_ghe,    Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
770    key <AD06> { [ Cyrillic_shorti, Cyrillic_SHORTI,     Cyrillic_je,     Cyrillic_JE ] };
771    key <AD07> { [     Cyrillic_el,     Cyrillic_EL,    Cyrillic_lje,    Cyrillic_LJE ] };
772    key <AD08> { [      Cyrillic_u,      Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
773    key <AD09> { [   Cyrillic_yeru,   Cyrillic_YERU,    Ukrainian_yi,    Ukrainian_YI ] };
774    key <AD10> { [     Cyrillic_yu,     Cyrillic_YU,       semicolon,           colon ] };
775    key <AD11> { [    Cyrillic_sha,    Cyrillic_SHA,   guillemotleft,       braceleft ] };
776    key <AD12> { [  Cyrillic_shcha,  Cyrillic_SHCHA,  guillemotright,      braceright ] };
777    key <BKSL> { [      Cyrillic_e,      Cyrillic_E,       backslash,             bar ] };
778
779    key <AC01> { [      Cyrillic_a,      Cyrillic_A                                   ] };
780    key <AC02> { [     Cyrillic_er,     Cyrillic_ER                                   ] };
781    key <AC03> { [     Cyrillic_es,     Cyrillic_ES                                   ] };
782    key <AC04> { [     Cyrillic_te,     Cyrillic_TE,    Serbian_tshe,    Serbian_TSHE ] };
783    key <AC05> { [     Cyrillic_de,     Cyrillic_DE,     Serbian_dje,     Serbian_DJE ] };
784    key <AC06> { [     Cyrillic_che,   Cyrillic_CHE,   Cyrillic_dzhe,   Cyrillic_DZHE ] };
785    key <AC07> { [     Cyrillic_en,     Cyrillic_EN,    Cyrillic_nje,    Cyrillic_NJE ] };
786    key <AC08> { [     Cyrillic_ie,     Cyrillic_IE,    Ukrainian_ie,    Ukrainian_IE ] };
787    key <AC09> { [      Cyrillic_i,      Cyrillic_I,     Ukrainian_i,     Ukrainian_I ] };
788    key <AC10> { [      Cyrillic_o,      Cyrillic_O                                   ] };
789    key <AC11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN,  apostrophe,        quotedbl ] };
790
791    key <AB01> { [     Cyrillic_ze,     Cyrillic_ZE,   Macedonia_dse,   Macedonia_DSE ] };
792    key <AB02> { [     Cyrillic_ha,     Cyrillic_HA                                   ] };
793    key <AB03> { [    Cyrillic_tse,    Cyrillic_TSE                                   ] };
794    key <AB04> { [     Cyrillic_ve,     Cyrillic_VE                                   ] };
795    key <AB05> { [     Cyrillic_be,     Cyrillic_BE,   Macedonia_gje,   Macedonia_GJE ] };
796    key <AB06> { [     Cyrillic_ka,     Cyrillic_KA,   Macedonia_kje,   Macedonia_KJE ] };
797    key <AB07> { [     Cyrillic_em,     Cyrillic_EM                                   ] };
798    key <AB08> { [           comma,       semicolon,            less                  ] };
799    key <AB09> { [          period,           colon,         greater                  ] };
800    key <AB10> { [           slash,        question,           U04CF,           U04C0 ] }; // palochka
801
802    key <LSGT> { [           equal,            plus,        multiply,        division ] };
803
804    include "level3(ralt_switch)"
805    include "capslock(backspace)"
806    include "nbsp(level4)"
807};
808
809// Church Slavonic language layout
810// based on the Russian standard keyboard
811// by Aleksandr Andreev and Yuri Shardt
812// last changes 2010/08/01; contact <aleksandr.andreev@gmail.com>
813partial alphanumeric_keys
814xkb_symbols "chu" {
815
816    name[Group1]= "Church Slavonic";
817
818    key <TLDE> { [  Ukrainian_yi,  Ukrainian_YI,  U0482,  U20DD  ] };  // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign
819    key <AE01> { [  U0461,  U0460,  U047D,  U047C  ] };  // ѡ Ѡ ѽ Ѽ
820    key <AE02> { [  Ukrainian_ie,  Ukrainian_IE,  U0465,  U0464  ] };  // є Є ѥ Ѥ
821    key <AE03> { [  U046F,  U046E,  U0469,  U0468  ] };  // ѯ Ѯ ѩ Ѩ
822    key <AE04> { [  U0471,  U0470,  U046D,  U046C  ] };  // ѱ Ѱ ѭ Ѭ
823    key <AE05> { [  U0473,  U0472,  UA657,  UA656  ] };  // ѳ Ѳ iotified A
824    key <AE06> { [  U0475,  U0474,  U0477,  U0476  ] };  // ѵ Ѵ ѷ Ѷ
825    key <AE07> { [  U047B,  U047A,  UA64D,  UA64C  ] };  // ѻ Ѻ ꙍ Ꙍ
826    key <AE08> { [  U047F,  U047E,  U046B,  U046A  ] };  // ѿ Ѿ ѫ Ѫ
827    key <AE09> { [  Macedonia_dse,  Macedonia_DSE,  parenleft, asterisk  ] };  // ѕ Ѕ ( *
828    key <AE10> { [  Cyrillic_u,     Cyrillic_U,  parenright,  U0488]};  // у У ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u
829    key <AE11> { [  U0483,  U0486,  U0487,  U005F  ] };  // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore)
830    key <AE12> { [  U0301,  U0300,  U0484,  UA67E  ] };  // а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka)
831
832    key <AD01> { [  Cyrillic_shorti,  Cyrillic_SHORTI,  Ukrainian_i  ] };
833    key <AD02> { [     Cyrillic_tse,     Cyrillic_TSE,  U2DF0  ] };
834    key <AD03> { [            UA64B,            UA64A,  U2DF9  ] };  // Cyrillic monograph Uk (not U)!
835    key <AD04> { [      Cyrillic_ka,      Cyrillic_KA,  U2DE6  ] };
836    key <AD05> { [      Cyrillic_ie,      Cyrillic_IE,  U2DF7  ] };
837    key <AD06> { [      Cyrillic_en,      Cyrillic_EN,  U2DE9  ] };
838    key <AD07> { [     Cyrillic_ghe,     Cyrillic_GHE,  U2DE2  ] };
839    key <AD08> { [     Cyrillic_sha,     Cyrillic_SHA,  U2DF2  ] };
840    key <AD09> { [   Cyrillic_shcha,   Cyrillic_SHCHA,  U2DF3  ] };
841    key <AD10> { [      Cyrillic_ze,      Cyrillic_ZE,  U2DE5  ] };
842    key <AD11> { [      Cyrillic_ha,      Cyrillic_HA,  U2DEF  ] };
843    key <AD12> { [Cyrillic_hardsign,Cyrillic_HARDSIGN,  UA67D  ] };  // Payerok
844    key <BKSL> { [        backslash,            slash,  colon,  question ] };  // \ / : ? NB: for Slavonic question, use semicolon
845
846    key <AC01> { [      Cyrillic_ef,      Cyrillic_EF          ] };
847    key <AC02> { [    Cyrillic_yeru,    Cyrillic_YERU          ] };
848    key <AC03> { [      Cyrillic_ve,      Cyrillic_VE,  U2DE1  ] };
849    key <AC04> { [       Cyrillic_a,       Cyrillic_A,  U2DF6  ] };
850    key <AC05> { [      Cyrillic_pe,      Cyrillic_PE,  U2DEB  ] };
851    key <AC06> { [      Cyrillic_er,      Cyrillic_ER,  U2DEC  ] };
852    key <AC07> { [       Cyrillic_o,       Cyrillic_O,  U2DEA  ] };
853    key <AC08> { [      Cyrillic_el,      Cyrillic_EL,  U2DE7  ] };
854    key <AC09> { [      Cyrillic_de,      Cyrillic_DE,  U2DE3  ] };
855    key <AC10> { [     Cyrillic_zhe,     Cyrillic_ZHE,  U2DE4  ] };
856    key <AC11> { [            U0463,            U0462,  U2DFA  ] };  // Yat
857
858    key <AB01> { [            U0467,            U0466,  U2DFD  ] };  // Small Yus
859    key <AB02> { [     Cyrillic_che,     Cyrillic_CHE,  U2DF1  ] };
860    key <AB03> { [      Cyrillic_es,      Cyrillic_ES,  U2DED  ] };
861    key <AB04> { [      Cyrillic_em,      Cyrillic_EM,  U2DE8  ] };
862    key <AB05> { [       Cyrillic_i,       Cyrillic_I          ] };
863    key <AB06> { [      Cyrillic_te,      Cyrillic_TE,  U2DEE  ] };
864    key <AB07> { [Cyrillic_softsign,Cyrillic_SOFTSIGN          ] };
865    key <AB08> { [      Cyrillic_be,      Cyrillic_BE,  U2DE0  ] };
866    key <AB09> { [      Cyrillic_yu,      Cyrillic_YU,  U2DFB  ] };
867    key <AB10> { [           period,            comma, semicolon, exclam  ] };
868};
869
870
871// RUU (Russian-Ukrainian United keyboard layout).
872// This is a modified Russian standard keyboard, with the third level containing
873// Ukrainian and Belorusian alphabetic letters and commonly used Unicode symbols.
874// For a description see http://wiki.opennet.ru/RUU [in Russian].
875// Vasyĺ V. Vercynśkyj <fuckel@ukr.net>
876// last changes 2011/05/11
877//
878// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
879// │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫       ┃
880// │ ’  ́ │ 1 ÷ │ 2 ¤ │ 3 § │ 4 $ │ 5 ° │ 6 < │ 7 > │ 8 • │ 9 [ │ 0 ] │ - — │ = ≠ ┃Backspace┃
881// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
882// ┃       ┃ Й   │ Ц   │ У Ў │ К   │ Е Ё │ Н   │ Г Ґ │ Ш   │ Щ   │ З   │ Х   │ Ъ Ї ┃ Enter ┃
883// ┃ Tab ↹ ┃ й   │ ц   │ у ў │ к ® │ е ё │ н   │ г ґ │ ш   │ щ   │ з   │ х   │ ъ ї ┃   ⏎   ┃
884// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
885// ┃ Caps   ┃ Ф   │ Ы І │ В   │ А   │ П   │ Р   │ О   │ Л   │ Д   │ Ж   │ Э Є │ | ¦ ┃      ┃
886// ┃ Lock ⇬ ┃ ф   │ ы і │ в   │ а   │ п   │ р   │ о   │ л   │ д   │ ж   │ э є │ / \ ┃      ┃
887// ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
888// ┃          ┃ Я   │ Ч   │ С   │ М   │ И   │ Т   │ Ь   │ Б „ │ Ю “ │ , … ┃                ┃
889// ┃  Shift ⇧ ┃ я   │ ч   │ с © │ м   │ и   │ т ™ │ ь µ │ б « │ ю » │ . / ┃     Shift ⇧    ┃
890// ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
891// ┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
892// ┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃
893// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
894partial alphanumeric_keys
895xkb_symbols "ruu" {
896
897    include "ru(common)"
898    name[Group1]= "Russian (with Ukrainian-Belorussian layout)";
899
900    key <TLDE> { [  U2019,  apostrophe,         U0301,  asciitilde  ] };  // Apostrophe and Stress symbol
901    key <AE01> { [      1,      exclam,      division,       U2248  ] };  // Division Sign and Almost Equal To
902    key <AE02> { [      2,    quotedbl,      currency,    infinity  ] };
903    key <AE03> { [      3,  numerosign,       section,       U20B4  ] };  // Paragraph and Hryvnia sign
904    key <AE04> { [      4,   semicolon,        dollar,    EuroSign  ] };
905    key <AE05> { [      5,     percent,        degree,    permille  ] };
906    key <AE06> { [      6,       colon,        less, lessthanequal  ] };
907    key <AE07> { [      7,    question,  greater, greaterthanequal  ] };
908    key <AE08> { [      8,    asterisk,enfilledcircbullet,multiply  ] };
909    key <AE09> { [      9,   parenleft,   bracketleft,   braceleft  ] };
910    key <AE10> { [      0,  parenright,  bracketright,  braceright  ] };
911    key <AE11> { [  minus,  underscore,        emdash,      endash  ] };
912    key <AE12> { [  equal,        plus,      notequal,   plusminus  ] };
913
914    key <AD03> { [        Cyrillic_u,        Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
915    key <AD04> { [       Cyrillic_ka,       Cyrillic_KA,    registered                        ] };
916    key <AD05> { [       Cyrillic_ie,       Cyrillic_IE,   Cyrillic_io,          Cyrillic_IO  ] };
917    key <AD07> { [      Cyrillic_ghe,      Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
918    key <AD10> { [       Cyrillic_ze,       Cyrillic_ZE,     paragraph                        ] };
919    key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,  Ukrainian_yi,         Ukrainian_YI  ] };
920
921    key <AC02> { [     Cyrillic_yeru,     Cyrillic_YERU,   Ukrainian_i,          Ukrainian_I  ] };
922    key <AC11> { [        Cyrillic_e,        Cyrillic_E,  Ukrainian_ie,         Ukrainian_IE  ] };
923    key <BKSL> { [             slash,               bar,     backslash,            brokenbar  ] };
924
925    key <AB03> { [       Cyrillic_es,       Cyrillic_ES,      copyright                       ] };
926    key <AB06> { [       Cyrillic_te,       Cyrillic_TE,      trademark                       ] };
927    key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN,             mu                       ] };
928    key <AB08> { [       Cyrillic_be,       Cyrillic_BE,  guillemotleft,  doublelowquotemark  ] };
929    key <AB09> { [       Cyrillic_yu,       Cyrillic_YU, guillemotright, leftdoublequotemark  ] };
930    key <AB10> { [            period,             comma,          slash,            ellipsis  ] };
931
932    include "level3(ralt_switch)"
933};
934
935partial alphanumeric_keys
936	xkb_symbols "sun_type6" {
937	include "sun_vndr/ru(sun_type6)"
938};
939
940// Apple layout
941partial alphanumeric_keys
942xkb_symbols "mac" {
943
944    include "ru(common)"
945    name[Group1]= "Russian (Macintosh)";
946
947    key <LSGT> { [          less,      greater  ] };
948    key <AE02> { [             2,     quotedbl  ] };
949    key <AE03> { [             3,   numerosign  ] };
950    key <AE04> { [             4,      percent  ] };
951    key <AE05> { [             5,        colon  ] };
952    key <AE06> { [             6,        comma  ] };
953    key <AE07> { [             7,       period  ] };
954    key <AE08> { [             8,    semicolon  ] };
955    key <TLDE> { [  bracketright,  bracketleft  ] };
956    key <BKSL> { [   Cyrillic_io,  Cyrillic_IO  ] };
957
958    key <AC06> { [   Cyrillic_er,  Cyrillic_ER, U20BD ] };
959
960    include "level3(ralt_switch)"
961};
962
963// eng: Russian-based polyglot and reactionary keyboard layout
964// This keyboard layout covers Russian in Petrine 1708 and Bolshevik 1918 variant spelling, Ukrainian, Belorussian, Serbian in its modern and Slavenoserbian variants, and Bulgarian and Slavomacedonian in pre-1945 and post-1945 spelling,
965// in short all in any dominion prevailing Cyrillic orthographies of modern secular Slavic literary languages, even with dictionary accentuation marks,
966// but also the most-widespread Church Slavonic spellings, that is all Church-Slavonic in so far as variants can be replaced without loss of meaning  – not to speak of Interslavic.
967// Furthermore, it suffices Romanian Cyrillic, Moldovan Cyrillic, Abkhazian excluding the more clumsy obsoleted forms unlikely to find devotees, Tajik, all Turkic and Mongolic Cyrillic alphabets
968// and virtually all overlooked languages in Cyrillic reigns at least by combining characters, taking advantage of eight key levels.
969// This is withal a pan-Cyrillic keyboard layout, or a comprehensive Cyrillic keyboard layout, an universal Cyrillic keyboard layout, a generic Cyrillic keyboard layout.
970//
971// rus: Многоязыковая и реакціонная клавіатурная разкладка основана на русскихъ
972// Сія разкладка покрываетъ русскій въ петровскомъ правописаніи 1708-го года и большевицкомъ 1918-го, украинскій, бѣлорусскій въ современномъ и славяносербскомъ видѣ, и булгарскій и славомацедонскій въ писаніи до и послѣ 1945-го года,
973// короче всѣ въ какомъ-либо державствѣ преобладающія правописанія, то есть весь церкославянскій, поскольку какъ разные виды буквъ можно возмѣщать безъ потери значенія — не говоря о междуславянскомъ.
974// Свѣрхъ этого, она подходитъ къ румынской кириллицѣ, къ молдавской кириллицѣ, къ абхазскому за изключеніемъ неуклюжихъ устарѣлыхъ образовъ, у которыхъ невѣроятно что они вообще найдутъ поклонниковъ, къ таджикскому, къ всѣмъ тюрксимъ и монголскимъ кириллицамъ,
975// и по сути дѣла всѣмъ упущеннымъ языкамъ въ кириллическихъ правленіяхъ хотя бы соединящими сѵмволами, извлѣкая выгоду изъ восьми уровней клавишъ.
976// Тѣмъ всѣмъ сё всекириллическая клавіатурная разкладка, или всеобъемлющая кириллическая разкладка, или универсальная кириллическая разкладка клавіатуры.
977//
978// srp: Многојезиков и реакционаран распоред тастера основан на рускима
979// Овај распоред покрива руски у петровском правопису 1708-е године и бољшевичком 1918-е године, украјински, белоруски, српски у сувременом и славеносрпском виду, те бугарски и славомакедонски у писању до и после 1945-е године,
980// укратко све у некој држави преовлађујуће правописе, то је читав црквенословенски, пошто је могуће разне видове слова замењивати без губитка значења — не говорећи о меџусловенском.
981// Поврх овог, он одговара к румунској ћирилици, к молдавској ћирилици, к абхаскоме с изузетком гломазних застарелих ликова, уз које није вероватно да они најђу поклонике, к таџичкоме, к свим туркијским и монголским ћирилицима,
982// те у спровођењу свим испуштеним језицима у ћириличким господарствима бар са спајајућим симболима, искориштавајући осам ступњева тастера.
983// Тиме свим ово је свећирилички тастатуран распоред, или свеобухватан ћирилички распоред тастера, или свеопшти ћирилички тастатуран распоред.
984partial alphanumeric_keys
985xkb_symbols "prxn" {
986
987	name[Group1]= "Russian (Polyglot and Reactionary)";
988
989	key.type[Group1]="EIGHT_LEVEL";
990    key <TLDE> { [ U2019, apostrophe,  U0301,      U0300, U2053, U2015, U02BC, asciitilde ] }; // Typographic Apostrophe, Apostrophe, Combining Acute, Combining Grave, Swung Dash, Quotation Dash, Modifier Letter Apostrophe, Tilde
991    key <AE01> { [      1,    exclam,  U0304,      U0306, U0308, U0311, U0307, U0313 ] };      // 1, !, Combining Macron, Combining Breve, Combining Diaresis, Combining Inverted Breve, Combining Dot Above, Combining Comma Above
992    key <AE02> { [     2,quotedbl,numerosign,      U20BF, U20B8, U20AE, U00A3, U20B9 ] };      // 2 " № ₿ ₸ ₮ £ ₹
993    key <AE03> { [     3,    section,  U20B4,   currency, U20BD, U20AA, U20BC, U20BE ] };      // 3 § ₴ ¤ ₽ ₪ ₼ ₾
994    key <AE04> { [     4,  semicolon, dollar,   EuroSign, U0482, U20DD, U0488, U0489 ] };      // 4 ; $ € Thousands Sign, Combining Enclosing Circle, Combining Hundred Thousands, Combining Millions
995    key <AE05> { [      5,   percent, degree,   permille, UA670, UA671, UA672, UA66F ] };      // 5, %, °, ‰, Combinining Ten Millions, Combining Hundred Millions, Combining Thousand Millions, Combining Vzmet
996    key <AE06> { [      6,     colon,  U0335,      U0336, U0483, U0487, UFE2E, UFE2F ] };      // 6, :, Combining Short Stroke Overlay, Combining Long Stroke Overlay, Combining Titlo, Combining Pokrytie, Combining Titlo Left Half, Combining Titlo Right Half
997    key <AE07> { [    7,    question,  U030B,      U030F, U030C, U0303, U032C, U0360 ] };      // 7, ?, Combining Double Acute, Combining Double Grave, Combining Caron/Háček, Combining Tilde, Combining Caron/Háček Below, Combining Double Tilde
998    key <AE08> { [    8,    asterisk,  U0331,      U0332, U0333, U032F, U032D, U032E ] };      // 8, *, Combining Macron Below, Combining Low Line, Combining Double Low Line, Combining Inverted Breve Below, Combining Circumflex Accent, Combining Breve Below
999    key <AE09> { [ 9,parenleft,  bracketleft,  braceleft, U035F, U035D, U035E, U035C ] };      // 9 ( [ { Combining Double Macron Below, Combining Double Breve, Combining Double Macron, Combining Double Breve Below
1000    key <AE10> { [ 0,parenright,bracketright, braceright, U27E8, U27E9, U04A7, U04A6 ] };      // 0 ) ] } ⟨⟩ ҧ Ҧ
1001    key <AE11> { [ minus, underscore, emdash,     endash, U2011,hyphen, U2010, U2212 ] };      // Hyphen-Minus, Underscore, Em Dash, En Dash,  Non-Breaking-Hyphen, Soft Hyphen, Hyphen, Minus Sign
1002    key <AE12> { [  equal,     plus,notequal,      U2248, U04FF, U04FE, U050D, U050C ] };      // = + ≠ ≈ ӿ Ӿ ԍ Ԍ
1003
1004    key <AD01> { [ Cyrillic_shorti,   Cyrillic_SHORTI,                 Cyrillic_je,            Cyrillic_JE,     U04CF,    U04C0,                                  U030A,    U0325 ] };	                             // й Й ј Ј ӏ Ӏ, Combining Ring Above and Below
1005    key <AD02> { [      Cyrillic_tse,    Cyrillic_TSE,                       U04B5,                  U04B4,     Cyrillic_u_straight, Cyrillic_U_straight,         U051B,    U051A ] };                               // ц Ц ҵ Ҵ ү Ү ԛ Ԛ
1006    key <AD03> { [        Cyrillic_u,      Cyrillic_U,         Byelorussian_shortu,    Byelorussian_SHORTU,     Cyrillic_u_straight_bar,Cyrillic_U_straight_bar,  Byelorussian_shortu, Byelorussian_SHORTU ] };      // у У ў Ў ұ Ұ ў Ў
1007    key <AD04> { [       Cyrillic_ka,     Cyrillic_KA,       Cyrillic_ka_descender,  Cyrillic_KA_descender,     U049F,    U049E,                                  U046F,    U046E ] };                               // к К Қ қ ҟ Ҟ ѯ Ѯ 
1008    key <AD05> { [     Cyrillic_ie,       Cyrillic_IE,                 Cyrillic_io,            Cyrillic_IO,     U0463,    U0462,                                  UA653,    UA652 ] };	                             // е Е ё Ё ѣ Ѣ ꙓ Ꙓ
1009    key <AD06> { [     Cyrillic_en,       Cyrillic_EN,                Cyrillic_nje,           Cyrillic_NJE,     Cyrillic_en_descender, Cyrillic_EN_descender,     U04C8,    U04C7 ] };	                             // н Н њ Њ ң Ң ӈ Ӈ
1010    key <AD07> { [      Cyrillic_ghe,    Cyrillic_GHE, Ukrainian_ghe_with_upturn,Ukrainian_GHE_WITH_UPTURN,     Cyrillic_ghe_bar, Cyrillic_GHE_bar,               U04F7,    U04F6 ] };                               // г Г Ґ ґ ғ Ғ ӷ Ӷ
1011    key <AD08> { [      Cyrillic_sha,    Cyrillic_SHA,                       U04A1,                  U04A0,     U04AB,    U04AA,                                  UA67D,    UA67F ] };                               // ш Ш ҡ Ҡ ҫ Ҫ Combining Payerok Payerok
1012    key <AD09> { [    Cyrillic_shcha,  Cyrillic_SHCHA,                       U0505,                  U0504,     UA68D,    UA68C,                                  U050F,    U050E ] };                               // щ Щ ԅ Ԅ ꚍ Ꚍ ԏ Ԏ
1013    key <AD10> { [       Cyrillic_ze,     Cyrillic_ZE,                       U04E1,                  U04E0,     U0499,    U0498,                                  U0507,    U0506 ] };                               // з З ӡ Ӡ ҙ Ҙ ԇ Ԇ
1014    key <AD11> { [       Cyrillic_ha,     Cyrillic_HA,               Cyrillic_shha,          Cyrillic_SHHA,     Cyrillic_ha_descender, Cyrillic_HA_descender,     U04FD,    U04FC ] };                               // х Х һ Һ ҳ Ҳ ӽ Ӽ
1015    key <AD12> { [Cyrillic_hardsign,Cyrillic_HARDSIGN,                Ukrainian_yi,           Ukrainian_YI,     Macedonia_dse, Macedonia_DSE,                     U033E,    U2E2F ] };	                             // ъ Ъ ї Ї ѕ Ѕ, Combining Yerok, Yerok
1016
1017    key <AC01> { [      Cyrillic_ef,      Cyrillic_EF,                       U0473,                  U0472,     U04C4,    U04C3,                                  U04FB,    U04FA ] };	                             // ф Ф ѳ Ѳ ӄ Ӄ ӻ Ӻ
1018    key <AC02> { [     Cyrillic_yeru,   Cyrillic_YERU,                 Ukrainian_i,            Ukrainian_I,     U04D5,    U04D4,                                  U04A9,    U04A8 ] };	                             // ы Ы і І ӕ Ӕ ҩ Ҩ
1019    key	<AC03> { [     Cyrillic_ve,       Cyrillic_VE,                       U051D,                  U051C,     U0529,    U0528,                                  U0527,    U0526 ] };                               // в В ԝ Ԝ ԩ Ԩ ԧ Ԧ
1020    key <AC04> { [        Cyrillic_a,      Cyrillic_A,              Cyrillic_schwa,         Cyrillic_SCHWA,     UA657,    UA656,                                  UA655,    UA654 ] };                               // а А ә Ә ꙗ Ꙗ ꙕ Ꙕ
1021    key <AC05> { [       Cyrillic_pe,     Cyrillic_PE,                       U0525,                  U0524,     U0471,    U0470,                                  UA65F,    UA65E ] };                               // п П ԥ Ԥ ѱ Ѱ ꙟ Ꙟ
1022    key <AC06> { [       Cyrillic_er,     Cyrillic_ER,                       U0481,                  U0480,     U048F,    U048E,                                  U0521,    U0520 ] };                               // р Р ҁ Ҁ ҏ Ҏ ԡ Ԡ
1023    key <AC07> { [        Cyrillic_o,      Cyrillic_O,              Cyrillic_o_bar,         Cyrillic_O_bar,     U047B,    U047A,                                  U0461,    U0460 ] };                               // о О ө Ө ѻ Ѻ ѡ Ѡ
1024    key <AC08> { [     Cyrillic_el,       Cyrillic_EL,                Cyrillic_lje,           Cyrillic_LJE,     U04C6,    U04C5,                                  U052F,    U052E ] };	                             // л Л љ Љ ӆ Ӆ ԯ Ԯ
1025    key <AC09> { [     Cyrillic_de,       Cyrillic_DE,               Cyrillic_dzhe,          Cyrillic_DZHE,     U04BD,    U04BC,                                  U04BF,    U04BE ] };	                             // д Д џ Џ ҽ Ҽ ҿ Ҿ
1026    key <AC10> { [    Cyrillic_zhe,      Cyrillic_ZHE,                 Serbian_dje,            Serbian_DJE,     Cyrillic_zhe_descender, Cyrillic_ZHE_descender,   U04C2,    U04C1 ] };	                             // ж Ж ђ Ђ Җ җ ӂ Ӂ
1027    key <AC11> { [      Cyrillic_e,        Cyrillic_E,                Ukrainian_ie,           Ukrainian_IE,     U0465,    U0464,                                  U04CA,    U04C9 ] };                               // э Э є Є ѥ Ѥ ӊ Ӊ
1028    key <BKSL> { [           slash,               bar,                   backslash,                  U260E,     UA65B,    UA65A,                                  U0513,    U0512 ] };                               // / | \ ☎ ꙛ Ꙛ ԓ Ԓ
1029
1030    key <LSGT> { [           U0495,             U0494,                       U0501,                  U0500,     U0503,    U0502,                                  U0509,    U0508 ] };                               // ҕ Ҕ ԁ Ԁ ԃ Ԃ ԉ Ԉ
1031    key <AB01> { [     Cyrillic_ya,       Cyrillic_YA,                       U0469,                  U0468,     U0467,    U0466,                                  UA657,    UA656 ] };                               // я Я ѩ Ѩ ѧ Ѧ ꙗ Ꙗ
1032    key <AB02> { [    Cyrillic_che,      Cyrillic_CHE,                Serbian_tshe,           Serbian_TSHE,     Cyrillic_che_descender,  Cyrillic_CHE_descender,  U2016,brokenbar ] };	                             // ч Ч ћ Ћ ҷ Ҷ ‖ ¦
1033    key <AB03> { [      Cyrillic_es,      Cyrillic_ES,                       U046D,                  U046C,     U046B,    U046A,                                  U04F7,    U04F6 ] };                               // с С ѭ Ѭ ѫ Ѫ ӷ Ӷ
1034    key <AB04> { [       Cyrillic_em,     Cyrillic_EM,                    multiply,               division,     U22C5,    U2219,                                  U04CE,    U04CD ] };                               // м М × ÷ ⋅ ∙ ӎ Ӎ
1035    key <AB05> { [      Cyrillic_i,        Cyrillic_I,                       U0475,                  U0474,     U048B,    U048A,                         periodcentered,    U261B ] };    	                     // и И ѵ Ѵ ҋ Ҋ · ☛
1036    key <AB06> { [      Cyrillic_te,      Cyrillic_TE,                       U04AD,                  U04AC,     U051F,    U051E, Cyrillic_che_vertstroke, Cyrillic_CHE_vertstroke ] };                               // т Т ҭ Ҭ ԟ Ԟ ҹ Ҹ
1037    key <AB07> { [Cyrillic_softsign,Cyrillic_SOFTSIGN,                       U04A5,                  U04A4,     UA64F,    UA64E,                                  U048D,    U048C ] };                               // ь Ь ҥ Ҥ ꙏ Ꙏ ҍ Ҍ
1038    key <AB08> { [       Cyrillic_be,     Cyrillic_BE,                  guillemotleft,  doublelowquotemark,     singlelowquotemark, U2039,                        U0523,    U0522 ] };	                             // б Б « „ ‚ ‹ ԣ Ԣ
1039    key <AB09> { [       Cyrillic_yu,     Cyrillic_YU,                 guillemotright, leftdoublequotemark,     leftsinglequotemark, U203A,                       rightdoublequotemark, rightsinglequotemark]};      // ю Ю » “ ‘ › ” ’
1040    key <AB10> { [            period,           comma,                       ellipsis,  enfilledcircbullet,     U04CC,    U04CB,                                  UA649,    UA648 ] };                               // . , … • ӌ Ӌ ꙉ  Ꙉ
1041
1042// eng: Maps Right Alt for reaching the third level
1043// rus: Составляетъ правую Alt для достиженія третьяго уровня
1044// srp: Саставља десни Alt за достизање трећег ступња
1045	include "level3(ralt_switch)"
1046
1047// eng: Maps <CAPS> for reaching the fifth level
1048// rus: Составляетъ <CAPS> для достиженія пятаго уровня
1049// srp: Саставља <CAPS> за достизање петег ступња
1050	include "level5(caps_switch)"
1051
1052// eng: Allows pressing both Shift keys for enabling ShiftLock; one Shift releases it
1053// rus: Предоставляетъ нажатие обѣихъ клавишъ Shift для защелкиванія прописности буквъ
1054// srp: Ставља на располагање притискивање обију тастера Shift за учвршћивање верзала
1055	include "shift(both_shiftlock)"
1056
1057// eng: Makes <KPDL> return comma instead of dot, as the comma is decimal separator in Cyrillic written languages
1058// rus: Дѣлаетъ что <KPDL> отдаетъ запятую вмѣсто точки, такъ какъ запятая десятичный раздѣлитель въ языкахъ пишемыхъ кириллицей
1059// srp: Ради да <KPDL> враћа зарез уместо точке, будући да зарез је десетни разделитељ у језицима који се пишу ћирилицом
1060	include "kpdl(comma)"
1061};
1062
1063
1064partial alphanumeric_keys
1065xkb_symbols "unipunct" {
1066
1067// Раскладка представляет собой обычную русскую раскладку, в которой некоторые редко используемые буквы
1068// убрали на третий уровень, и поставили все пунктуационные знаки на то же место, где они стоят на
1069// US раскладке (+ добавлен знак номера, который отсутствует в US раскладке, но часто нужен в RU).
1070
1071// ru(unipunct):
1072// `~ 1! 2@ 3#3№ 4$ 5% 6^ 7& 8* 9( 0) -_ =+
1073// хХ бБ уУюЮ кК еЕэЭ нН гГ шШщЩ жЖ зЗ [{ ]} \|
1074// фФ ыЫ вВ аА пП рР оОёЁ лЛ дД ;: '"           //"
1075// яЯ чЧцЦ сС мМ иИйЙ тТ ьЬъЪ ,< .> /?
1076
1077 include "us(basic)"
1078 name[Group1]= "Russian (with US punctuation)";
1079 
1080 // Единственный символ, который отсутствует на US раскладке - №
1081 key <AE03> { [ 3,             numbersign, 3, numerosign  ] };
1082
1083 key <LatQ> { [ Cyrillic_ha,   Cyrillic_HA ] };
1084 key <LatW> { [ Cyrillic_be,   Cyrillic_BE ] };
1085 key <LatE> { [ Cyrillic_u,    Cyrillic_U, Cyrillic_yu, Cyrillic_YU ] };
1086 key <LatR> { [ Cyrillic_ka,   Cyrillic_KA ] };
1087 key <LatT> { [ Cyrillic_ie,   Cyrillic_IE, Cyrillic_e, Cyrillic_E ] };
1088 key <LatY> { [ Cyrillic_en,   Cyrillic_EN ] };
1089 key <LatU> { [ Cyrillic_ghe,  Cyrillic_GHE ] };
1090 key <LatI> { [ Cyrillic_sha,  Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] };
1091 key <LatO> { [ Cyrillic_zhe,  Cyrillic_ZHE ] };
1092 key <LatP> { [ Cyrillic_ze,   Cyrillic_ZE ] };
1093
1094 key <LatA> { [ Cyrillic_ef,   Cyrillic_EF ] };
1095 key <LatS> { [ Cyrillic_yeru, Cyrillic_YERU ] };
1096 key <LatD> { [ Cyrillic_ve,   Cyrillic_VE ] };
1097 key <LatF> { [ Cyrillic_a,    Cyrillic_A ] };
1098 key <LatG> { [ Cyrillic_pe,   Cyrillic_PE ] };
1099 key <LatH> { [ Cyrillic_er,   Cyrillic_ER ] };
1100 key <LatJ> { [ Cyrillic_o,    Cyrillic_O, Cyrillic_io, Cyrillic_IO ] };
1101 key <LatK> { [ Cyrillic_el,   Cyrillic_EL ] };
1102 key <LatL> { [ Cyrillic_de,   Cyrillic_DE ] };
1103
1104 key <LatZ> { [ Cyrillic_ya,   Cyrillic_YA ] };
1105 key <LatX> { [ Cyrillic_che,  Cyrillic_CHE, Cyrillic_tse, Cyrillic_TSE ] };
1106 key <LatC> { [ Cyrillic_es,   Cyrillic_ES ] };
1107 key <LatV> { [ Cyrillic_em,   Cyrillic_EM ] };
1108 key <LatB> { [ Cyrillic_i,    Cyrillic_I, Cyrillic_shorti, Cyrillic_SHORTI ] };
1109 key <LatN> { [ Cyrillic_te,   Cyrillic_TE ] };
1110 key <LatM> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
1111};
1112
1113partial alphanumeric_keys
1114xkb_symbols "phonetic_mac" {
1115
1116    include "ru(phonetic_winkeys)"
1117    name[Group1]= "Russian (phonetic Macintosh)";
1118
1119    key <LatE> { [       Cyrillic_ie,       Cyrillic_IE, Cyrillic_io, Cyrillic_IO  ] };
1120    key <LatW> { [      Cyrillic_sha,      Cyrillic_SHA  ] };
1121    key <LatV> { [       Cyrillic_ve,       Cyrillic_VE  ] };
1122    key <TLDE> { [    Cyrillic_shcha,    Cyrillic_SHCHA  ] };
1123    key <AD11> { [       Cyrillic_yu,       Cyrillic_YU  ] };
1124    key <AD12> { [      Cyrillic_zhe,      Cyrillic_ZHE  ] };
1125    key <AE03> { [                 3,        numbersign, numerosign  ] };
1126    key <AE04> { [                 4,            dollar, U20BD       ] }; // ruble
1127    key <AE05> { [                 5,           percent  ] };
1128    key <AE06> { [                 6,       asciicircum  ] };
1129    key <AE11> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, minus,       underscore  ] };
1130    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal,       plus        ] };
1131
1132    include "level3(ralt_switch)"
1133};
1134
1135// Russian engineering keyboard layout (Ручей)
1136// Based on the Russian standard keyboard layout
1137// Baryshkin Andrey <baryshkin_aa@codeblast.ru>
1138// Last changes 2022/11/29
1139// Version 2.1
1140partial alphanumeric_keys
1141xkb_symbols "ruchey_ru" {
1142
1143    name[Group1]= "Russian (engineering, RU)";
1144
1145    include "ru(common)"
1146
1147    key <TLDE> { [ NoSymbol,   NoSymbol,          grave, VoidSymbol ] };
1148
1149    key <AE01> { [ NoSymbol,     exclam,          U20BD, VoidSymbol ] };
1150    key <AE02> { [ NoSymbol,   quotedbl,             at, VoidSymbol ] };
1151    key <AE03> { [ NoSymbol, numerosign,     numbersign, VoidSymbol ] };
1152    key <AE04> { [ NoSymbol,  semicolon,         dollar, VoidSymbol ] };
1153    key <AE05> { [ NoSymbol,    percent,     apostrophe,     degree ] };
1154    key <AE06> { [ NoSymbol,      colon,    asciicircum, VoidSymbol ] };
1155    key <AE07> { [ NoSymbol,   question,      ampersand, VoidSymbol ] };
1156    key <AE08> { [ NoSymbol,   asterisk,     asciitilde, VoidSymbol ] };
1157    key <AE09> { [ NoSymbol,  parenleft,  guillemotleft, VoidSymbol ] };
1158    key <AE10> { [ NoSymbol, parenright, guillemotright, VoidSymbol ] };
1159    key <AE11> { [ NoSymbol, underscore,         emdash, VoidSymbol ] };
1160    key <AE12> { [ NoSymbol,       plus,     VoidSymbol, VoidSymbol ] };
1161
1162    key <AD03> { [ NoSymbol,   NoSymbol,       EuroSign, VoidSymbol ] };
1163    key <AD04> { [ NoSymbol,   NoSymbol,     registered, VoidSymbol ] };
1164    key <AD06> { [ NoSymbol,   NoSymbol,          U00A5, VoidSymbol ] };
1165    key <AD11> { [ NoSymbol,   NoSymbol,      braceleft, VoidSymbol ] };
1166    key <AD12> { [ NoSymbol,   NoSymbol,     braceright, VoidSymbol ] };
1167
1168    key <AC02> { [ NoSymbol,   NoSymbol,          U00A7, VoidSymbol ] };
1169    key <AC04> { [ NoSymbol,   NoSymbol,       sterling, VoidSymbol ] };
1170    key <AC10> { [ NoSymbol,   NoSymbol,    bracketleft, VoidSymbol ] };
1171    key <AC11> { [ NoSymbol,   NoSymbol,   bracketright, VoidSymbol ] };
1172
1173    key <AB03> { [ NoSymbol,   NoSymbol,      copyright, VoidSymbol ] };
1174    key <AB08> { [ NoSymbol,   NoSymbol,           less, VoidSymbol ] };
1175    key <AB09> { [ NoSymbol,   NoSymbol,        greater, VoidSymbol ] };
1176    key <AB10> { [   period,      comma,     VoidSymbol,      U0301 ] };
1177
1178    key <BKSL> { [    slash,  backslash,            bar, VoidSymbol ] };
1179    key <LSGT> { [    slash,  backslash,            bar, VoidSymbol ] };
1180
1181    include "kpdl(dot)"
1182};
1183
1184// Russian engineering keyboard layout (Ручей)
1185// Based on the English standard keyboard layout
1186// Baryshkin Andrey <baryshkin_aa@codeblast.ru>
1187// Last changes 2022/11/29
1188// Version 2.1
1189partial alphanumeric_keys
1190xkb_symbols "ruchey_en" {
1191
1192    name[Group1]= "Russian (engineering, EN)";
1193
1194    include "us(basic)"
1195
1196    key <TLDE> { [ VoidSymbol,   VoidSymbol,          grave, VoidSymbol ] };
1197
1198    key <AE01> { [   NoSymbol,       exclam,          U20BD, VoidSymbol ] };
1199    key <AE02> { [   NoSymbol,     quotedbl,             at, VoidSymbol ] };
1200    key <AE03> { [   NoSymbol,   numerosign,     numbersign, VoidSymbol ] };
1201    key <AE04> { [   NoSymbol,    semicolon,         dollar, VoidSymbol ] };
1202    key <AE05> { [   NoSymbol,      percent,     apostrophe,     degree ] };
1203    key <AE06> { [   NoSymbol,        colon,    asciicircum, VoidSymbol ] };
1204    key <AE07> { [   NoSymbol,     question,      ampersand, VoidSymbol ] };
1205    key <AE08> { [   NoSymbol,     asterisk,     asciitilde, VoidSymbol ] };
1206    key <AE09> { [   NoSymbol,    parenleft,  guillemotleft, VoidSymbol ] };
1207    key <AE10> { [   NoSymbol,   parenright, guillemotright, VoidSymbol ] };
1208    key <AE11> { [   NoSymbol,   underscore,         emdash, VoidSymbol ] };
1209    key <AE12> { [   NoSymbol,         plus,     VoidSymbol, VoidSymbol ] };
1210
1211    key <AD03> { [   NoSymbol,     NoSymbol,       EuroSign, VoidSymbol ] };
1212    key <AD04> { [   NoSymbol,     NoSymbol,     registered, VoidSymbol ] };
1213    key <AD06> { [   NoSymbol,     NoSymbol,          U00A5, VoidSymbol ] };
1214    key <AD11> { [ VoidSymbol,   VoidSymbol,      braceleft, VoidSymbol ] };
1215    key <AD12> { [ VoidSymbol,   VoidSymbol,     braceright, VoidSymbol ] };
1216
1217    key <AC02> { [   NoSymbol,     NoSymbol,          U00A7, VoidSymbol ] };
1218    key <AC04> { [   NoSymbol,     NoSymbol,       sterling, VoidSymbol ] };
1219    key <AC10> { [ VoidSymbol,   VoidSymbol,    bracketleft, VoidSymbol ] };
1220    key <AC11> { [ VoidSymbol,   VoidSymbol,   bracketright, VoidSymbol ] };
1221
1222    key <AB03> { [   NoSymbol,     NoSymbol,      copyright, VoidSymbol ] };
1223    key <AB08> { [ VoidSymbol,   VoidSymbol,           less, VoidSymbol ] };
1224    key <AB09> { [ VoidSymbol,   VoidSymbol,        greater, VoidSymbol ] };
1225    key <AB10> { [     period,        comma,     VoidSymbol,      U0301 ] };
1226
1227    key <BKSL> { [      slash,    backslash,            bar, VoidSymbol ] };
1228    key <LSGT> { [      slash,    backslash,            bar, VoidSymbol ] };
1229
1230    include "kpdl(dot)"
1231};
1232
1233// RU Winkeys-P layout based on RU Winkeys with top row digits switched
1234// Vladimir Gorelov <virtual.lark@gmail.com>
1235partial alphanumeric_keys
1236xkb_symbols "winkeys-p" {
1237    include "ru(winkeys)"
1238    name[Group1]= "Russian (Programmer)";
1239
1240    key <AE01> { [ exclam,      1 ] };
1241    key <AE02> { [ at,          2 ] };
1242    key <AE03> { [ numbersign,  3 ] };
1243    key <AE04> { [ dollar,      4 ] };
1244    key <AE05> { [ percent,     5 ] };
1245    key <AE06> { [ asciicircum, 6 ] };
1246    key <AE07> { [ ampersand,   7 ] };
1247    key <AE08> { [ asterisk,    8 ] };
1248    key <AE09> { [ parenleft,   9 ] };
1249    key <AE10> { [ parenright,  0 ] };
1250};
1251
1252// Russian keyboard layout with typography symbols.
1253// This is a modified Russian standard keyboard, with the third level containing
1254// typographic symbols commonly used in Russian language and punctuation symbols
1255// from Latin keyboard layout.
1256// Boolat Kamalov <800147@gmail.com>
1257partial alphanumeric_keys
1258xkb_symbols "typo" {
1259    include "ru(winkeys)"
1260    name[Group1]= "Russian (typographic)";
1261
1262    key <TLDE> { [ NoSymbol, NoSymbol,              grave,          asciitilde ] };
1263    key <AE01> { [ NoSymbol, NoSymbol, enfilledcircbullet                      ] };
1264    key <AE02> { [ NoSymbol, NoSymbol,                 at,          apostrophe ] };
1265    key <AE03> { [ NoSymbol, NoSymbol,         numbersign,             section ] };
1266    key <AE04> { [ NoSymbol, NoSymbol,             dollar                      ] };
1267    key <AE06> { [ NoSymbol, NoSymbol,        asciicircum,               U0301 ] }; // Combining Acute Accent
1268    key <AE07> { [ NoSymbol, NoSymbol,          ampersand                      ] };
1269    key <AE09> { [ NoSymbol, NoSymbol,               less                      ] };
1270    key <AE10> { [ NoSymbol, NoSymbol,            greater                      ] };
1271    key <AE11> { [ NoSymbol, NoSymbol,             emdash,              endash ] };
1272
1273    key <AD11> { [ NoSymbol, NoSymbol,        bracketleft,           braceleft ] };
1274    key <AD12> { [ NoSymbol, NoSymbol,       bracketright,          braceright ] };
1275
1276    key <AB08> { [ NoSymbol, NoSymbol,      guillemotleft,  doublelowquotemark ] };
1277    key <AB09> { [ NoSymbol, NoSymbol,     guillemotright, leftdoublequotemark ] };
1278    key <AB10> { [ NoSymbol, NoSymbol,           ellipsis,               U2019 ] }; // Right Single Quotation Mark
1279    key <SPCE> { [    space,    space,       nobreakspace,               U2060 ] }; // Word Joiner
1280
1281    include "level3(ralt_switch)"
1282};
1283