1 // New style XKB layout for some widely used Hungarian keyboard layouts
3 // Based on old style 'xkb/symbols/hu"
6 // (C) 2002-2004 Soós Péter <sp@osb.hu>
7 // (C) 2010 Andras Timar <timar@fsf.hu>
9 // Permission is granted to anyone to use, distribute and modify
10 // this file in any way, provided that the above copyright notice
11 // is left intact and the author of the modification summarizes
12 // the changes in this header.
14 // This file is distributed without any expressed or implied warranty.
17 // 2004-04-17 - Moved to new style (only Unicode based layouts)
18 // - Added consistent dead key support
21 // - Added EuroSign and cent symbol
22 // 2010-04-23 - Added doublelowquotemark
23 // - Added rightdoublequotemark
25 // 2010-05-13 - Added ellipsis
31 include "hu(102_qwertz_comma_dead)"
32 name[Group1] = "Hungary";
37 xkb_symbols "standard" {
38 include "hu(102_qwertz_comma_dead)"
39 name[Group1] = "Hungary - Standard";
42 // Standard layout without dead key support
44 xkb_symbols "nodeadkeys" {
45 include "hu(102_qwertz_comma_nodead)"
46 name[Group1] = "Hungary - Eliminate dead keys";
51 xkb_symbols "qwerty" {
52 include "hu(101_qwerty_comma_dead)"
53 name[Group1] = "Hungary - qwerty";
58 // 101_qwertz_comma_dead
59 // 101 key qwertz layout
60 // with decimal comma on keypad
61 // and with dead key support
63 xkb_symbols "101_qwertz_comma_dead" {
64 name[Group1] = "Hungary - 101/qwertz/comma/Dead keys";
67 include "hu(def_qwertz)"
69 include "hu(def_dead)"
70 include "hu(def_common)"
71 include "level3(ralt_switch)"
74 // 101_qwertz_comma_nodead
75 // 101 key qwertz layout
76 // with decimal comma on keypad
77 // and without dead key support
79 xkb_symbols "101_qwertz_comma_nodead" {
80 name[Group1] = "Hungary - 101/qwertz/comma/Eliminate dead keys";
83 include "hu(def_qwertz)"
85 include "hu(def_nodead)"
86 include "hu(def_common)"
87 include "level3(ralt_switch)"
90 // 101_qwertz_dot_dead
91 // 101 key qwertz layout
92 // with decimal dot on keypad
93 // and with dead key support
95 xkb_symbols "101_qwertz_dot_dead" {
96 name[Group1] = "Hungary - 101/qwertz/dot/Dead keys";
99 include "hu(def_qwertz)"
100 include "hu(def_dot)"
101 include "hu(def_dead)"
102 include "hu(def_common)"
103 include "level3(ralt_switch)"
106 // 101_qwertz_dot_nodead
107 // 101 key qwertz layout
108 // with decimal dot on keypad
109 // and without dead key support
111 xkb_symbols "101_qwertz_dot_nodead" {
112 name[Group1] = "Hungary - 101/qwertz/dot/Eliminate dead keys";
114 include "hu(def_101)"
115 include "hu(def_qwertz)"
116 include "hu(def_dot)"
117 include "hu(def_nodead)"
118 include "hu(def_common)"
119 include "level3(ralt_switch)"
122 // 101_qwerty_comma_dead
123 // 101 key qwerty layout
124 // with decimal comma on keypad
125 // and with dead key support
127 xkb_symbols "101_qwerty_comma_dead" {
128 name[Group1] = "Hungary - 101/qwerty/comma/Dead keys";
130 include "hu(def_101)"
131 include "hu(def_qwerty)"
132 include "kpdl(comma)"
133 include "hu(def_dead)"
134 include "hu(def_common)"
135 include "level3(ralt_switch)"
138 // 101_qwerty_comma_nodead
139 // 101 key qwerty layout
140 // with decimal comma on keypad
141 // and without dead key support
143 xkb_symbols "101_qwerty_comma_nodead" {
144 name[Group1] = "Hungary - 101/qwerty/comma/Eliminate dead keys";
146 include "hu(def_101)"
147 include "hu(def_qwerty)"
148 include "kpdl(comma)"
149 include "hu(def_nodead)"
150 include "hu(def_common)"
151 include "level3(ralt_switch)"
154 // 101_qwerty_dot_dead
155 // 101 key qwerty layout
156 // with decimal dot on keypad
157 // and with dead key support
159 xkb_symbols "101_qwerty_dot_dead" {
160 name[Group1] = "Hungary - 101/qwerty/dot/Dead keys";
162 include "hu(def_101)"
163 include "hu(def_qwerty)"
164 include "hu(def_dot)"
165 include "hu(def_dead)"
166 include "hu(def_common)"
167 include "level3(ralt_switch)"
170 // 101_qwerty_dot_nodead
171 // 101 key qwerty layout
172 // with decimal dot on keypad
173 // and without dead key support
175 xkb_symbols "101_qwerty_dot_nodead" {
176 name[Group1] = "Hungary - 101/qwerty/dot/Eliminate dead keys";
178 include "hu(def_101)"
179 include "hu(def_qwerty)"
180 include "hu(def_dot)"
181 include "hu(def_nodead)"
182 include "hu(def_common)"
183 include "level3(ralt_switch)"
186 // 102_qwertz_comma_dead
187 // 102 key qwertz layout
188 // with decimal comma on keypad
189 // and with dead key support
191 xkb_symbols "102_qwertz_comma_dead" {
192 name[Group1] = "Hungary - 102/qwertz/comma/Dead keys";
194 include "hu(def_102)"
195 include "hu(def_qwertz)"
196 include "kpdl(comma)"
197 include "hu(def_dead)"
198 include "hu(def_common)"
199 include "level3(ralt_switch)"
202 // 102_qwertz_comma_nodead
203 // 102 key qwertz layout
204 // with decimal comma on keypad
205 // and without dead key support
207 xkb_symbols "102_qwertz_comma_nodead" {
208 name[Group1] = "Hungary - 102/qwertz/comma/Eliminate dead keys";
210 include "hu(def_102)"
211 include "hu(def_qwertz)"
212 include "kpdl(comma)"
213 include "hu(def_nodead)"
214 include "hu(def_common)"
215 include "level3(ralt_switch)"
218 // 102_qwertz_dot_dead
219 // 102 key qwertz layout
220 // with decimal dot on keypad
221 // and with dead key support
223 xkb_symbols "102_qwertz_dot_dead" {
224 name[Group1] = "Hungary - 102/qwertz/dot/Dead keys";
226 include "hu(def_102)"
227 include "hu(def_qwertz)"
228 include "hu(def_dot)"
229 include "hu(def_dead)"
230 include "hu(def_common)"
231 include "level3(ralt_switch)"
234 // 102_qwertz_dot_nodead
235 // 102 key qwertz layout
236 // with decimal dot on keypad
237 // and without dead key support
239 xkb_symbols "102_qwertz_dot_nodead" {
240 name[Group1] = "Hungary - 102/qwertz/dot/Eliminate dead keys";
242 include "hu(def_102)"
243 include "hu(def_qwertz)"
244 include "hu(def_dot)"
245 include "hu(def_nodead)"
246 include "hu(def_common)"
247 include "level3(ralt_switch)"
250 // 102_qwerty_comma_dead
251 // 102 key qwerty layout
252 // with decimal comma on keypad
253 // and with dead key support
255 xkb_symbols "102_qwerty_comma_dead" {
256 name[Group1] = "Hungary - 102/qwerty/comma/Dead keys";
258 include "hu(def_102)"
259 include "hu(def_qwerty)"
260 include "kpdl(comma)"
261 include "hu(def_dead)"
262 include "hu(def_common)"
263 include "level3(ralt_switch)"
266 // 102_qwerty_comma_nodead
267 // 102 key qwerty layout
268 // with decimal comma on keypad
269 // and without dead key support
271 xkb_symbols "102_qwerty_comma_nodead" {
272 name[Group1] = "Hungary - 102/qwerty/comma/Eliminate dead keys";
274 include "hu(def_102)"
275 include "hu(def_qwerty)"
276 include "kpdl(comma)"
277 include "hu(def_nodead)"
278 include "hu(def_common)"
279 include "level3(ralt_switch)"
282 // 102_qwerty_dot_dead
283 // 102 key qwerty layout
284 // with decimal dot on keypad
285 // and with dead key support
287 xkb_symbols "102_qwerty_dot_dead" {
288 name[Group1] = "Hungary - 102/qwerty/dot/Dead keys";
290 include "hu(def_102)"
291 include "hu(def_qwerty)"
292 include "hu(def_dot)"
293 include "hu(def_dead)"
294 include "hu(def_common)"
295 include "level3(ralt_switch)"
298 // 102_qwerty_dot_nodead
299 // 102 key qwerty layout
300 // with decimal dot on keypad
301 // and without dead key support
303 xkb_symbols "102_qwerty_dot_nodead" {
304 name[Group1] = "Hungary - 102/qwerty/dot/Eliminate dead keys";
306 include "hu(def_102)"
307 include "hu(def_qwerty)"
308 include "hu(def_dot)"
309 include "hu(def_nodead)"
310 include "hu(def_common)"
311 include "level3(ralt_switch)"
317 // The standard Hungarian 102 key layout
318 hidden partial alphanumeric_keys
319 xkb_symbols "def_102" {
320 key <TLDE> { [ 0, section, notsign ] };
321 key <LSGT> { [ iacute, Iacute, less, greater ] };
326 // An alternative layout for 101 key keyboards
327 hidden partial alphanumeric_keys
328 xkb_symbols "def_101" {
329 key <TLDE> { [ iacute, Iacute, 0, section ] };
330 key <LSGT> { [ less, greater ] };
334 // The standard Hungaryan qwertz layout
335 hidden partial alphanumeric_keys
336 xkb_symbols "def_qwertz" {
337 key <AD06> { [ z, Z, endash ] };
338 key <AB01> { [ y, Y, greater ] };
343 // The qwerty layout for people who familiar with the standard US layout
344 hidden partial alphanumeric_keys
345 xkb_symbols "def_qwerty" {
346 key <AD06> { [ y, Y, endash ] };
347 key <AB01> { [ z, Z, greater ] };
351 // The Hungarian standard is the comma on the keypad not decimal dot,
352 // but programmers hate it
353 hidden partial keypad_keys
354 xkb_symbols "def_dot" {
355 key <KPDL> { [ KP_Delete, KP_Decimal ] };
360 // Dead keys support part
361 hidden partial alphanumeric_keys
362 xkb_symbols "def_dead" {
363 key <AE01> { [ 1, apostrophe, asciitilde, dead_tilde ] };
364 key <AE02> { [ 2, quotedbl, dead_caron, caron ] };
365 key <AE03> { [ 3, plus, asciicircum, dead_circumflex ] };
366 key <AE04> { [ 4, exclam, dead_breve, breve ] };
367 key <AE05> { [ 5, percent, dead_abovering, degree ] };
368 key <AE06> { [ 6, slash, dead_ogonek, ogonek ] };
369 key <AE07> { [ 7, equal, grave, dead_grave ] };
370 key <AE08> { [ 8, parenleft, dead_abovedot, abovedot ] };
371 key <AE09> { [ 9, parenright, dead_acute, acute ] };
372 key <AE10> { [ odiaeresis, Odiaeresis, dead_doubleacute, doubleacute ] };
373 key <AE11> { [ udiaeresis, Udiaeresis, dead_diaeresis, diaeresis ] };
374 key <AE12> { [ oacute, Oacute, dead_cedilla, cedilla ] };
378 // Without dead keys support
379 hidden partial alphanumeric_keys
380 xkb_symbols "def_nodead" {
381 key <AE01> { [ 1, apostrophe, asciitilde ] };
382 key <AE02> { [ 2, quotedbl, caron ] };
383 key <AE03> { [ 3, plus, asciicircum ] };
384 key <AE04> { [ 4, exclam, breve ] };
385 key <AE05> { [ 5, percent, degree ] };
386 key <AE06> { [ 6, slash, ogonek ] };
387 key <AE07> { [ 7, equal, grave ] };
388 key <AE08> { [ 8, parenleft, abovedot ] };
389 key <AE09> { [ 9, parenright, acute ] };
390 key <AE10> { [ odiaeresis, Odiaeresis, doubleacute ] };
391 key <AE11> { [ udiaeresis, Udiaeresis, diaeresis ] };
392 key <AE12> { [ oacute, Oacute, cedilla ] };
397 // The common part of all Hungarian layout above
398 hidden partial alphanumeric_keys
399 xkb_symbols "def_common" {
400 key <AD01> { [ q, Q, backslash ] };
401 key <AD02> { [ w, W, bar ] };
402 key <AD07> { [ u, U, EuroSign ] };
403 key <AD08> { [ i, I, Iacute, iacute ] };
404 key <AD09> { [ o, O, doublelowquotemark ] };
405 key <AD10> { [ p, P, rightdoublequotemark ] };
406 key <AD11> { [ odoubleacute, Odoubleacute, division ] };
407 key <AD12> { [ uacute, Uacute, multiply ] };
409 key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
410 key <AC02> { [ s, S, dstroke ] };
411 key <AC03> { [ d, D, Dstroke ] };
412 key <AC04> { [ f, F, bracketleft ] };
413 key <AC05> { [ g, G, bracketright ] };
414 key <AC07> { [ j, J, iacute, Iacute ] };
415 key <AC08> { [ k, K, lstroke ] };
416 key <AC09> { [ l, L, Lstroke ] };
417 key <AC10> { [ eacute, Eacute, dollar, cent ] };
418 key <AC11> { [ aacute, Aacute, ssharp ] };
420 key <BKSL> { [ udoubleacute, Udoubleacute, currency ] };
422 key <AB02> { [ x, X, numbersign ] };
423 key <AB03> { [ c, C, ampersand ] };
424 key <AB04> { [ v, V, at ] };
425 key <AB05> { [ b, B, braceleft ] };
426 key <AB06> { [ n, N, braceright ] };
427 key <AB07> { [ m, M, less ] };
428 key <AB08> { [ comma, question, semicolon ] };
429 key <AB09> { [ period, colon, ellipsis ] };
430 key <AB10> { [ minus, underscore, asterisk ] };