ua revision c067fea9
1// $XKeyboardConfig$
2
3// based on
4// ukrainian standard keyboard 
5// AEN <aen@logic.ru> & Leon Kanter <leon@geon.donetsk.ua>
6// Last Changes 2007/10/03 by Andriy Rysin <arysin@yahoo.com>
7//
8// $XFree86: xc/programs/xkbcomp/symbols/ua,v 1.4 2003/05/15 11:29:47 pascal Exp $
9
10// Unicode - 3d level added with some Unicode symbols (typographic quotes, m-dash, n-dash etc), 
11// some often used cyrillics from other slavic languages and some ASCII symbols used often (slash, brackets...)
12partial default alphanumeric_keys
13xkb_symbols "unicode" {
14    include "ua(winkeys)"
15 
16    name[Group1]= "Ukraine";
17
18    key <TLDE> {    [           U2019, 	apostrophe,    U0301,   asciitilde     ]       };	// Apostrophe and Stress symbol
19    key <AE02> {    [               1,      exclam,  onesuperior               ]       };
20    key <AE02> {    [               2,    quotedbl,  twosuperior               ]       };
21    key <AE03> {    [               3,  numerosign,	   U00A7,    U20B4     ]       };	// Paragraph and Hryvnia sign
22    key <AE04> {    [               4,   semicolon,	  dollar,    EuroSign  ]       };
23    key <AE05> {    [               5,     percent,	  degree               ]       };
24    key <AE06> {    [               6,       colon,   less                             ]       };
25    key <AE07> {    [               7,    question,   greater                             ]       };
26    key <AE08> {    [               8,    asterisk, enfilledcircbullet         ]       };
27    key	<AE09> {    [		    9,	 parenleft,  bracketleft,    braceleft ]       };
28    key	<AE10> {    [		    0,	parenright, bracketright,    braceright]       };
29    key	<AE11> {    [	    	minus,	underscore,       emdash,    endash    ]       };
30    key	<AE12> {    [	    	equal,	      plus, 	notequal,    plusminus ]       };
31
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	<AD12> {    [    Ukrainian_yi,Ukrainian_YI,	Cyrillic_hardsign,	Cyrillic_HARDSIGN	]	};
36    key	<AC02> {    [    Ukrainian_i,  Ukrainian_I, Cyrillic_yeru,   Cyrillic_YERU	]	};
37    key	<AC11> {    [    Ukrainian_ie,Ukrainian_IE,	Cyrillic_e,	Cyrillic_E	]	};
38
39    key	<BKSL> {    [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN, backslash,  bar	]	};
40
41    key	<AB03> {    [     Cyrillic_es,     Cyrillic_ES,	copyright              ]	};
42    key	<AB06> {    [     Cyrillic_te,     Cyrillic_TE,	trademark              ]	};
43    key	<AB08> {    [     Cyrillic_be,     Cyrillic_BE,	guillemotleft,	doublelowquotemark 	]	};
44    key	<AB09> {    [     Cyrillic_yu,     Cyrillic_YU,	guillemotright, leftdoublequotemark ]	};
45    key <AB10> {    [          period,           comma,	slash,          ellipsis        ]       };
46
47    include "level3(ralt_switch)"
48};
49
50partial alphanumeric_keys 
51xkb_symbols "legacy" {
52
53    name[Group1]= "Ukraine - Legacy";
54
55    key	<TLDE> {	[      apostrophe,	asciitilde	]	};
56    key	<AE01> {	[		1,	    exclam 	]	};
57    key	<AE02> {	[		2,        quotedbl	]	};
58    key	<AE03> {	[		3,      numbersign	]	};
59    key	<AE04> {	[		4,        asterisk	]	};
60    key	<AE05> {	[		5,	     colon	]	};
61    key	<AE06> {	[		6,	     comma	]	};
62    key	<AE07> {	[		7,	    period	]	};
63    key	<AE08> {	[		8,	 semicolon	]	};
64    key	<AE09> {	[		9,	 parenleft	]	};
65    key	<AE10> {	[		0,	parenright	]	};
66    key	<AE11> {	[	    minus,	underscore	]	};
67    key	<AE12> {	[	    equal,	      plus	]	};
68
69    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};
70    key	<AD02> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};
71    key	<AD03> {	[      Cyrillic_u,	Cyrillic_U	]	};
72    key	<AD04> {	[     Cyrillic_ka,     Cyrillic_KA	]	};
73    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
74    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN	]	};
75    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};
76    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
77    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
78    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};
79    key	<AD11> {	[     Cyrillic_ha,     Cyrillic_HA	]	};
80    key	<AD12> {	[    Ukrainian_yi,    Ukrainian_YI	]	};
81    key	<BKSL> {	[ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
82
83    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
84    key	<AC02> {	[     Ukrainian_i,     Ukrainian_I	]	};
85    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE	]	};
86    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A	]	};
87    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE	]	};
88    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER	]	};
89    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O	]	};
90    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL	]	};
91    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE	]	};
92    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
93    key	<AC11> {	[    Ukrainian_ie,    Ukrainian_IE	]	};
94
95    key	<AB01> {	[     Cyrillic_ya,     Cyrillic_YA	]	};
96    key	<AB02> {	[    Cyrillic_che,    Cyrillic_CHE	]	};
97    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES	]	};
98    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM	]	};
99    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE	]	};
100    key	<AB05> {	[      Cyrillic_i,	Cyrillic_I	]	};
101    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
102    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE	]	};
103    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU	]	};
104    key	<AB10> {	[	    slash,	  question	]	};
105
106    key <LSGT> {        [           slash,             bar      ]       };
107    // End alphanumeric section
108};
109
110partial alphanumeric_keys
111xkb_symbols "winkeys" {
112    include "ua(legacy)"
113 
114    name[Group1]= "Ukraine - Winkeys";
115
116    key <AE03> {        [               3,      numerosign      ]       };
117    key <AE04> {        [               4,       semicolon      ]       };
118    key <AE05> {        [               5,         percent      ]       };
119    key <AE06> {        [               6,           colon      ]       };
120    key <AE07> {        [               7,        question      ]       };
121    key <AE08> {        [               8,        asterisk      ]       };
122    key <AB10> {        [          period,           comma      ]       };
123};
124
125partial alphanumeric_keys
126xkb_symbols "typewriter" {
127    include "ua(legacy)"
128
129    name[Group1]= "Ukraine - Typewriter";
130
131    key	<TLDE> {	[      apostrophe,	  quotedbl	] 	};
132    key	<AE01> {	[	   exclam,		 1 	]	};
133    key	<AE02> {	[      numerosign,		 2	]	};
134    key	<AE03> {	[	    slash,		 3	]	};
135    key	<AE04> {	[	semicolon,		 4	]	};
136    key	<AE05> {	[	    colon,		 5	]	};
137    key	<AE06> {	[	    comma,		 6	]	};
138    key	<AE07> {	[	   period,		 7	]	};
139    key	<AE08> {	[      underscore,		 8	]	};
140    key	<AE09> {	[	 question,		 9	]	};
141    key	<AE10> {	[	  percent,		 0	]	};
142
143    key	<AD12> {	[ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
144
145    key	<AC02> {	[      Cyrillic_i,	Cyrillic_I	]	};
146
147    key	<AB05> {	[     Ukrainian_i,     Ukrainian_I	]	};
148
149    key	<AB10> {	[    Ukrainian_yi,    Ukrainian_YI	]	};
150
151    key	<BKSL> {	[	parenleft,	parenright	]	};
152};
153
154partial alphanumeric_keys
155xkb_symbols "phonetic" {
156  include "ua(legacy)"
157  
158  name[Group1]= "Ukraine - Phonetic";
159
160  key <LatQ> {   [ Cyrillic_ya,       Cyrillic_YA         ]    };
161  key <LatW> {   [ Cyrillic_ve,       Cyrillic_VE         ]    };
162  key <LatE> {   [ Cyrillic_ie,       Cyrillic_IE         ]    };
163  key <LatR> {   [ Cyrillic_er,       Cyrillic_ER         ]    };
164  key <LatT> {   [ Cyrillic_te,       Cyrillic_TE         ]    };
165  key <LatY> {   [ Cyrillic_i,        Cyrillic_I          ]    };
166  key <LatU> {   [ Cyrillic_u,        Cyrillic_U          ]    };
167  key <LatI> {   [ Ukrainian_i,       Ukrainian_I         ]    };
168  key <LatO> {   [ Cyrillic_o,        Cyrillic_O          ]    };
169  key <LatP> {   [ Cyrillic_pe,       Cyrillic_PE         ]    };
170  key <AD11> {   [ Cyrillic_sha,      Cyrillic_SHA        ]    };
171  key <AD12> {   [ Cyrillic_shcha,    Cyrillic_SHCHA      ]    };
172
173  key <LatA> {   [ Cyrillic_a,        Cyrillic_A          ]    };
174  key <LatS> {   [ Cyrillic_es,       Cyrillic_ES         ]    };
175  key <LatD> {   [ Cyrillic_de,       Cyrillic_DE         ]    };
176  key <LatF> {   [ Cyrillic_ef,       Cyrillic_EF         ]    };
177  key <LatG> {   [ Cyrillic_ghe,      Cyrillic_GHE        ]    };
178  key <LatH> {   [ Cyrillic_ha,       Cyrillic_HA         ]    };
179  key <LatJ> {   [ Cyrillic_shorti,   Cyrillic_SHORTI     ]    };
180  key <LatK> {   [ Cyrillic_ka,       Cyrillic_KA         ]    };
181  key <LatL> {   [ Cyrillic_el,       Cyrillic_EL         ]    };
182  key <AC10> {   [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
183  key <AC11> {   [ Cyrillic_che,      Cyrillic_CHE        ]    };
184  key <BKSL> {   [ Cyrillic_yu,       Cyrillic_YU         ]    };
185
186  key <LatZ> {   [ Cyrillic_ze,       Cyrillic_ZE         ]    };
187  key <LatX> {   [ Cyrillic_softsign, Cyrillic_SOFTSIGN   ]    };
188  key <LatC> {   [ Cyrillic_tse,      Cyrillic_TSE        ]    };
189  key <LatV> {   [ Cyrillic_zhe,      Cyrillic_ZHE        ]    };
190  key <LatB> {   [ Cyrillic_be,       Cyrillic_BE         ]    };
191  key <LatN> {   [ Cyrillic_en,       Cyrillic_EN         ]    };
192  key <LatM> {   [ Cyrillic_em,       Cyrillic_EM         ]    };
193  key <AB08> {   [ Ukrainian_yi,      Ukrainian_YI	  ]    };
194  key <AB09> {   [ Ukrainian_ie,      Ukrainian_IE	  ]    };
195  key <AB10> {   [ slash,             question            ]    };
196};
197
198// ukrainian keyboard layout RSTU 2019-91 (Respublikanskij STandart Ukrajiny)
199// Andrew Porokhnyak <aop@porokhnyak.org>
200partial alphanumeric_keys
201xkb_symbols "rstu" {
202    include "ua(legacy)"
203
204    name[Group1]= "Ukraine - Standard RSTU";
205
206    key	<TLDE> {	[      apostrophe,	  question	] 	};
207    key	<AE01> {	[	   exclam,		 1 	]	};
208    key	<AE02> {	[        quotedbl,		 2	]	};
209    key	<AE03> {	[      numbersign,		 3	]	};
210    key	<AE04> {	[	semicolon,		 4	]	};
211    key	<AE05> {	[	    colon,		 5	]	};
212    key	<AE06> {	[	    comma,		 6	]	};
213    key	<AE07> {	[	   period,		 7	]	};
214    key	<AE08> {	[        asterisk,		 8	]	};
215    key	<AE09> {	[	parenleft,		 9	]	};
216    key	<AE10> {	[      parenright,		 0	]	};
217
218    key	<AD12> {	[ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
219
220    key	<AC02> {	[      Cyrillic_i,	Cyrillic_I	]	};
221
222    key	<AB05> {	[     Ukrainian_i,     Ukrainian_I	]	};
223
224    key	<AB10> {	[    Ukrainian_yi,    Ukrainian_YI	]	};
225
226    key	<BKSL> {	[	    slash,	   percent	]	};
227};
228
229// russian keyboard layout RSTU 2019-91 (Respublikanskij STandart Ukrajiny)
230// Andrew Porokhnyak <aop@porokhnyak.org>
231partial alphanumeric_keys
232xkb_symbols "rstu_ru" {
233    include "ru(common)"
234    name[Group1]= "Ukraine - Standard RSTU on Russian layout";
235
236    key <TLDE> {        [      apostrophe,        question      ]       };
237    key <AE01> {        [          exclam,               1      ]       };
238    key <AE02> {        [        quotedbl,               2      ]       };
239    key <AE03> {        [      numbersign,               3      ]       };
240    key <AE04> {        [       semicolon,               4      ]       };
241    key <AE05> {        [           colon,               5      ]       };
242    key <AE06> {        [           comma,               6      ]       };
243    key <AE07> {        [          period,               7      ]       };
244    key <AE08> {        [        asterisk,               8      ]       };
245    key <AE09> {        [       parenleft,               9      ]       };
246    key <AE10> {        [      parenright,               0      ]       };
247    key <BKSL> {        [           slash,         percent      ]       };
248
249key.type[group1]="ALPHABETIC";
250
251    key <AB10> {        [     Cyrillic_io,     Cyrillic_IO      ]       };
252};
253
254//Homophonic keyboard layout (Tomas Marko Miljenović)
255//Based on Ukrainian National Transliteration, commonly used phonetic layouts for Mac and Win.
256//Existing layout "phonetic" used as template.
257partial alphanumeric_keys
258xkb_symbols "homophonic" {
259  include "ua(legacy)"
260  name[Group1]= "Ukraine - Homophonic";
261
262  key <TLDE> {	 [          grave,	underscore	]	};
263  key <AE01> {	 [		1,	    exclam 	]	};
264  key <AE02> {	 [		2,              at	]	};
265  key <AE03> {	 [		3,       semicolon	]	};
266  key <AE04> {	 [		4,           colon	]	};
267  key <AE05> {	 [		5,	   percent	]	};
268  key <AE06> {	 [		6,	apostrophe	]	};
269  key <AE07> {	 [		7,	  quotedbl	]	};
270  key <AE08> {	 [		8,	  asterisk	]	};
271  key <AE09> {	 [		9,	 parenleft	]	};
272  key <AE10> {	 [		0,	parenright	]	};
273  key <AE11> {	 [ Ukrainian_ie,      Ukrainian_IE	  ]    };
274  key <AE12> {	 [ Ukrainian_yi,      Ukrainian_YI        ]    };
275
276  key <LatQ> {   [ Cyrillic_ya,       Cyrillic_YA         ]    };
277  key <LatW> {   [ Cyrillic_sha,      Cyrillic_SHA        ]    };
278  key <LatE> {   [ Cyrillic_ie,       Cyrillic_IE         ]    };
279  key <LatR> {   [ Cyrillic_er,       Cyrillic_ER         ]    };
280  key <LatT> {   [ Cyrillic_te,       Cyrillic_TE         ]    };
281  key <LatY> {   [ Cyrillic_i,        Cyrillic_I          ]    };
282  key <LatU> {   [ Cyrillic_u,        Cyrillic_U          ]    };
283  key <LatI> {   [ Ukrainian_i,       Ukrainian_I         ]    };
284  key <LatO> {   [ Cyrillic_o,        Cyrillic_O          ]    };
285  key <LatP> {   [ Cyrillic_pe,       Cyrillic_PE         ]    };
286  key <AD11> {   [ Cyrillic_yu,       Cyrillic_YU        ]    };
287  key <AD12> {   [ Cyrillic_shcha,    Cyrillic_SHCHA      ]    };
288
289  key <LatA> {   [ Cyrillic_a,        Cyrillic_A          ]    };
290  key <LatS> {   [ Cyrillic_es,       Cyrillic_ES         ]    };
291  key <LatD> {   [ Cyrillic_de,       Cyrillic_DE         ]    };
292  key <LatF> {   [ Cyrillic_ef,       Cyrillic_EF         ]    };
293  key <LatG> {   [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ]    };
294  key <LatH> {   [ Cyrillic_ghe,      Cyrillic_GHE        ]    };
295  key <LatJ> {   [ Cyrillic_shorti,   Cyrillic_SHORTI     ]    };
296  key <LatK> {   [ Cyrillic_ka,       Cyrillic_KA         ]    };
297  key <LatL> {   [ Cyrillic_el,       Cyrillic_EL         ]    };
298  key <AC10> {   [ Cyrillic_che,      Cyrillic_CHE        ]    };
299  key <AC11> {   [ Cyrillic_zhe,      Cyrillic_ZHE        ]    };
300  key <BKSL> {   [ Cyrillic_softsign, Cyrillic_SOFTSIGN   ]    };
301
302  key <LatZ> {   [ Cyrillic_ze,       Cyrillic_ZE         ]    };
303  key <LatX> {   [ Cyrillic_ha,       Cyrillic_HA         ]    };
304  key <LatC> {   [ Cyrillic_tse,      Cyrillic_TSE        ]    };
305  key <LatV> {   [ Cyrillic_ve,       Cyrillic_VE         ]    };
306  key <LatB> {   [ Cyrillic_be,       Cyrillic_BE         ]    };
307  key <LatN> {   [ Cyrillic_en,       Cyrillic_EN         ]    };
308  key <LatM> {   [ Cyrillic_em,       Cyrillic_EM         ]    };
309  key <AB08> {   [ comma,             less	          ]    };
310  key <AB09> {   [ period,            greater	          ]    };
311  key <AB10> {   [ slash,             question            ]    };
312};
313
314// Crimean Tatar (Crimean Turkish) layouts.
315partial
316xkb_symbols "crh" {
317    include "tr(crh)"
318
319    name[Group1]="Ukraine - Crimean Tatar (Turkish Q)";
320};
321
322partial
323xkb_symbols "crh_f" {
324    include "tr(crh_f)"
325
326    name[Group1]="Ukraine - Crimean Tatar (Turkish F)";
327};
328
329partial
330xkb_symbols "crh_alt" {
331    include "tr(crh_alt)"
332
333    name[Group1]="Ukraine - Crimean Tatar (Turkish Alt-Q)";
334};
335