1// New style XKB layout for some widely used Hungarian keyboard layouts
2//
3// Based on old style 'xkb/symbols/hu"
4//
5// (C) 2002-2004 Soós Péter <sp@osb.hu>
6// (C) 2010 Andras Timar <timar@fsf.hu>
7//
8// Permission is granted to anyone to use, distribute and modify
9// this file in any way, provided that the above copyright notice
10// is left intact and the author of the modification summarizes
11// the changes in this header.
12//
13// This file is distributed without any expressed or implied warranty.
14//
15// Changes:
16//  2004-04-17 - Moved to new style (only Unicode based layouts)
17//             - Added consistent dead key support
18//             - Fixed abovedot
19//             - Added adiaeresis
20//             - Added EuroSign and cent symbol
21//  2010-04-23 - Added doublelowquotemark
22//             - Added rightdoublequotemark
23//             - Added endash
24//  2010-05-13 - Added ellipsis
25
26
27// Default layout
28default partial
29xkb_symbols "basic" {
30    include "hu(102_qwertz_comma_dead)"
31    name[Group1] = "Hungarian";
32};
33
34// Standard layout
35partial
36xkb_symbols "standard" {
37    include "hu(102_qwertz_comma_dead)"
38    name[Group1] = "Hungarian (standard)";
39};
40
41// Standard layout without dead key support
42partial
43xkb_symbols "nodeadkeys" {
44    include "hu(102_qwertz_comma_nodead)"
45    name[Group1] = "Hungarian (no dead keys)";
46};
47
48// Qwerty layout
49partial
50xkb_symbols "qwerty" {
51    include "hu(101_qwerty_comma_dead)"
52    name[Group1] = "Hungarian (QWERTY)";
53};
54
55// Main layouts
56
57// 101_qwertz_comma_dead
58// 101 key qwertz layout
59// with decimal comma on keypad
60// and with dead key support
61partial
62xkb_symbols "101_qwertz_comma_dead" {
63    name[Group1] = "Hungarian (QWERTZ, 101-key, comma, dead keys)";
64    include "latin"
65    include "hu(def_101)"
66    include "hu(def_qwertz)"
67    include "kpdl(comma)"
68    include "hu(def_dead)"
69    include "hu(def_common)"
70    include "level3(ralt_switch)"
71};
72
73// 101_qwertz_comma_nodead
74// 101 key qwertz layout
75// with decimal comma on keypad
76// and without dead key support
77partial
78xkb_symbols "101_qwertz_comma_nodead" {
79    name[Group1] = "Hungarian (QWERTZ, 101-key, comma, no dead keys)";
80    include "latin"
81    include "hu(def_101)"
82    include "hu(def_qwertz)"
83    include "kpdl(comma)"
84    include "hu(def_nodead)"
85    include "hu(def_common)"
86    include "level3(ralt_switch)"
87};
88
89// 101_qwertz_dot_dead
90// 101 key qwertz layout
91// with decimal dot on keypad
92// and with dead key support
93partial
94xkb_symbols "101_qwertz_dot_dead" {
95    name[Group1] = "Hungarian (QWERTZ, 101-key, dot, dead keys)";
96    include "latin"
97    include "hu(def_101)"
98    include "hu(def_qwertz)"
99    include "hu(def_dot)"
100    include "hu(def_dead)"
101    include "hu(def_common)"
102    include "level3(ralt_switch)"
103};
104
105// 101_qwertz_dot_nodead
106// 101 key qwertz layout
107// with decimal dot on keypad
108// and without dead key support
109partial
110xkb_symbols "101_qwertz_dot_nodead" {
111    name[Group1] = "Hungarian (QWERTZ, 101-key, dot, no dead keys)";
112    include "latin"
113    include "hu(def_101)"
114    include "hu(def_qwertz)"
115    include "hu(def_dot)"
116    include "hu(def_nodead)"
117    include "hu(def_common)"
118    include "level3(ralt_switch)"
119};
120
121// 101_qwerty_comma_dead
122// 101 key qwerty layout
123// with decimal comma on keypad
124// and with dead key support
125partial
126xkb_symbols "101_qwerty_comma_dead" {
127    name[Group1] = "Hungarian (QWERTY, 101-key, comma, dead keys)";
128    include "latin"
129    include "hu(def_101)"
130    include "hu(def_qwerty)"
131    include "kpdl(comma)"
132    include "hu(def_dead)"
133    include "hu(def_common)"
134    include "level3(ralt_switch)"
135};
136
137// 101_qwerty_comma_nodead
138// 101 key qwerty layout
139// with decimal comma on keypad
140// and without dead key support
141partial
142xkb_symbols "101_qwerty_comma_nodead" {
143    name[Group1] = "Hungarian (QWERTY, 101-key, comma, no dead keys)";
144    include "latin"
145    include "hu(def_101)"
146    include "hu(def_qwerty)"
147    include "kpdl(comma)"
148    include "hu(def_nodead)"
149    include "hu(def_common)"
150    include "level3(ralt_switch)"
151};
152
153// 101_qwerty_dot_dead
154// 101 key qwerty layout
155// with decimal dot on keypad
156// and with dead key support
157partial
158xkb_symbols "101_qwerty_dot_dead" {
159    name[Group1] = "Hungarian (QWERTY, 101-key, dot, dead keys)";
160    include "latin"
161    include "hu(def_101)"
162    include "hu(def_qwerty)"
163    include "hu(def_dot)"
164    include "hu(def_dead)"
165    include "hu(def_common)"
166    include "level3(ralt_switch)"
167};
168
169// 101_qwerty_dot_nodead
170// 101 key qwerty layout
171// with decimal dot on keypad
172// and without dead key support
173partial
174xkb_symbols "101_qwerty_dot_nodead" {
175    name[Group1] = "Hungarian (QWERTY, 101-key, dot, no dead keys)";
176    include "latin"
177    include "hu(def_101)"
178    include "hu(def_qwerty)"
179    include "hu(def_dot)"
180    include "hu(def_nodead)"
181    include "hu(def_common)"
182    include "level3(ralt_switch)"
183};
184
185// 102_qwertz_comma_dead
186// 102 key qwertz layout
187// with decimal comma on keypad
188// and with dead key support
189partial
190xkb_symbols "102_qwertz_comma_dead" {
191    name[Group1] = "Hungarian (QWERTZ, 102-key, comma, dead keys)";
192    include "latin"
193    include "hu(def_102)"
194    include "hu(def_qwertz)"
195    include "kpdl(comma)"
196    include "hu(def_dead)"
197    include "hu(def_common)"
198    include "level3(ralt_switch)"
199};
200
201// 102_qwertz_comma_nodead
202// 102 key qwertz layout
203// with decimal comma on keypad
204// and without dead key support
205partial
206xkb_symbols "102_qwertz_comma_nodead" {
207    name[Group1] = "Hungarian (QWERTZ, 102-key, comma, no dead keys)";
208    include "latin"
209    include "hu(def_102)"
210    include "hu(def_qwertz)"
211    include "kpdl(comma)"
212    include "hu(def_nodead)"
213    include "hu(def_common)"
214    include "level3(ralt_switch)"
215};
216
217// 102_qwertz_dot_dead
218// 102 key qwertz layout
219// with decimal dot on keypad
220// and with dead key support
221partial
222xkb_symbols "102_qwertz_dot_dead" {
223    name[Group1] = "Hungarian (QWERTZ, 102-key, dot, dead keys)";
224    include "latin"
225    include "hu(def_102)"
226    include "hu(def_qwertz)"
227    include "hu(def_dot)"
228    include "hu(def_dead)"
229    include "hu(def_common)"
230    include "level3(ralt_switch)"
231};
232
233// 102_qwertz_dot_nodead
234// 102 key qwertz layout
235// with decimal dot on keypad
236// and without dead key support
237partial
238xkb_symbols "102_qwertz_dot_nodead" {
239    name[Group1] = "Hungarian (QWERTZ, 102-key, dot, no dead keys)";
240    include "latin"
241    include "hu(def_102)"
242    include "hu(def_qwertz)"
243    include "hu(def_dot)"
244    include "hu(def_nodead)"
245    include "hu(def_common)"
246    include "level3(ralt_switch)"
247};
248
249// 102_qwerty_comma_dead
250// 102 key qwerty layout
251// with decimal comma on keypad
252// and with dead key support
253partial
254xkb_symbols "102_qwerty_comma_dead" {
255    name[Group1] = "Hungarian (QWERTY, 102-key, comma, dead keys)";
256    include "latin"
257    include "hu(def_102)"
258    include "hu(def_qwerty)"
259    include "kpdl(comma)"
260    include "hu(def_dead)"
261    include "hu(def_common)"
262    include "level3(ralt_switch)"
263};
264
265// 102_qwerty_comma_nodead
266// 102 key qwerty layout
267// with decimal comma on keypad
268// and without dead key support
269partial
270xkb_symbols "102_qwerty_comma_nodead" {
271    name[Group1] = "Hungarian (QWERTY, 102-key, comma, no dead keys)";
272    include "latin"
273    include "hu(def_102)"
274    include "hu(def_qwerty)"
275    include "kpdl(comma)"
276    include "hu(def_nodead)"
277    include "hu(def_common)"
278    include "level3(ralt_switch)"
279};
280
281// 102_qwerty_dot_dead
282// 102 key qwerty layout
283// with decimal dot on keypad
284// and with dead key support
285partial
286xkb_symbols "102_qwerty_dot_dead" {
287    name[Group1] = "Hungarian (QWERTY, 102-key, dot, dead keys)";
288    include "latin"
289    include "hu(def_102)"
290    include "hu(def_qwerty)"
291    include "hu(def_dot)"
292    include "hu(def_dead)"
293    include "hu(def_common)"
294    include "level3(ralt_switch)"
295};
296
297// 102_qwerty_dot_nodead
298// 102 key qwerty layout
299// with decimal dot on keypad
300// and without dead key support
301partial
302xkb_symbols "102_qwerty_dot_nodead" {
303    name[Group1] = "Hungarian (QWERTY, 102-key, dot, no dead keys)";
304    include "latin"
305    include "hu(def_102)"
306    include "hu(def_qwerty)"
307    include "hu(def_dot)"
308    include "hu(def_nodead)"
309    include "hu(def_common)"
310    include "level3(ralt_switch)"
311};
312
313// Partial layouts
314
315// def_102:
316// The standard Hungarian 102 key layout
317hidden partial alphanumeric_keys
318xkb_symbols "def_102" {
319    key <TLDE>  { [            0,      section,           notsign                  ] };
320    key <LSGT>  { [       iacute,       Iacute,              less,         greater ] };
321
322};
323
324// def_101:
325// An alternative layout for 101 key keyboards
326hidden partial alphanumeric_keys
327xkb_symbols "def_101" {
328    key <TLDE>  { [       iacute,       Iacute,                 0,         section ] };
329    key <LSGT>  { [         less,      greater                                     ] };
330};
331
332// def_qwertz:
333// The standard Hungaryan qwertz layout
334hidden partial alphanumeric_keys
335xkb_symbols "def_qwertz" {
336    key <AD06>  { [            z,            Z,           endash                   ] };
337    key <AB01>  { [            y,            Y,           greater                  ] };
338};
339
340
341// def_qwerty:
342// The qwerty layout for people who familiar with the standard US layout
343hidden partial alphanumeric_keys
344xkb_symbols "def_qwerty" {
345    key <AD06>  { [            y,            Y,           endash                   ] };
346    key <AB01>  { [            z,            Z,           greater                  ] };
347};
348
349// def_dot:
350// The Hungarian standard is the comma on the keypad not decimal dot,
351// but programmers hate it
352hidden partial keypad_keys
353xkb_symbols "def_dot" {
354    key <KPDL>  { [    KP_Delete,   KP_Decimal                                     ] };
355};
356
357
358// def_dead:
359// Dead keys support part
360hidden partial alphanumeric_keys
361xkb_symbols "def_dead" {
362    key <AE01>  { [            1,   apostrophe,        asciitilde,      dead_tilde ] };
363    key <AE02>  { [            2,     quotedbl,        dead_caron,           caron ] };
364    key <AE03>  { [            3,         plus,       asciicircum, dead_circumflex ] };
365    key <AE04>  { [            4,       exclam,        dead_breve,           breve ] };
366    key <AE05>  { [            5,      percent,    dead_abovering,          degree ] };
367    key <AE06>  { [            6,        slash,       dead_ogonek,          ogonek ] };
368    key <AE07>  { [            7,        equal,             grave,      dead_grave ] };
369    key <AE08>  { [            8,    parenleft,     dead_abovedot,        abovedot ] };
370    key <AE09>  { [            9,   parenright,        dead_acute,           acute ] };
371    key <AE10>  { [   odiaeresis,   Odiaeresis,  dead_doubleacute,     doubleacute ] };
372    key <AE11>  { [   udiaeresis,   Udiaeresis,    dead_diaeresis,       diaeresis ] };
373    key <AE12>  { [       oacute,       Oacute,      dead_cedilla,         cedilla ] };
374};
375
376// def_nodead:
377// Without dead keys support
378hidden partial alphanumeric_keys
379xkb_symbols "def_nodead" {
380    key <AE01>  { [            1,   apostrophe,        asciitilde                  ] };
381    key <AE02>  { [            2,     quotedbl,             caron                  ] };
382    key <AE03>  { [            3,         plus,       asciicircum                  ] };
383    key <AE04>  { [            4,       exclam,             breve                  ] };
384    key <AE05>  { [            5,      percent,            degree                  ] };
385    key <AE06>  { [            6,        slash,            ogonek                  ] };
386    key <AE07>  { [            7,        equal,             grave                  ] };
387    key <AE08>  { [            8,    parenleft,          abovedot                  ] };
388    key <AE09>  { [            9,   parenright,             acute                  ] };
389    key <AE10>  { [   odiaeresis,   Odiaeresis,       doubleacute                  ] };
390    key <AE11>  { [   udiaeresis,   Udiaeresis,         diaeresis                  ] };
391    key <AE12>  { [       oacute,       Oacute,           cedilla                  ] };
392};
393
394
395// def_common:
396// The common part of all Hungarian layout above
397hidden partial alphanumeric_keys
398xkb_symbols "def_common" {
399    key <AD01>  { [            q,            Q,         backslash                  ] };
400    key <AD02>  { [            w,            W,               bar                  ] };
401    key <AD03>  { [            e,            E,        Adiaeresis                  ] };
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                  ] };
408
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,           U1E9E ] };
419
420    key <BKSL>  { [ udoubleacute, Udoubleacute,          currency                  ] };
421
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,           greater                  ] };
430    key <AB10>  { [        minus,   underscore,          asterisk                  ] };
431
432};
433
434// EXTRAS:
435
436// New style XKB layout used Old Hungarian keyboard layouts
437//
438//
439//
440// (C) 2013 Andras Tisza
441// (C) 2017,2018,2020  Viktor Kovacs <kov.h.vik@gmail.com>
442//
443// Permission is granted to anyone to use, distribute and modify
444// this file in any way, provided that the above copyright notice
445// is left intact and the author of the modification summarizes
446// the changes in this header.
447//
448// This file is distributed without any expressed or implied warranty.
449//
450// Changes:
451// 2013 - Planned Old Hungarian layout
452// 2017 - Added Old Hungarian layout
453// 2018 - Resolved several easy-to-use issue, added extra punctuation and quotation marks
454// 2020 - Added ligature capable layout ( with Zero-widt-joiner), added copyright, copyleft symbols
455// 2020 - Added ZWNJ key to "Old Hungarian (for ligatures)", replaced its ohu_lig id to oldhunlig, replaced its ohu_lig short description to oldhun(lig).
456// Added "oldhun_magic_numpad" for both "Old Hungarian" layouts, as a specialised numpad.
457
458// Old Hungartian layout
459partial alphanumeric_keys
460xkb_symbols "oldhun" {
461name[Group1]="Old Hungarian";
462include "hu(oldhun_base)"
463include "hu(oldhun_origin)"
464include "hu(oldhun_magic_numpad)"
465include "level3(ralt_switch)"
466};
467
468// Old Hungarian layout for ligatures
469partial alphanumeric_keys
470xkb_symbols "oldhunlig" {
471name[Group1]="Old Hungarian (for ligatures)";
472include "hu(oldhun_base)"
473include "hu(oldhun_lig)"
474include "hu(oldhun_magic_numpad)"
475include "level3(ralt_switch)"
476};
477
478// The base Old Hungarian keys
479// In the remarks you can read characters displayed only Unicode point
480hidden partial alphanumeric_keys
481xkb_symbols "oldhun_base" {
482key.type[Group1]="FOUR_LEVEL_ALPHABETIC";
483    key <AD01> {[ U10CCE, U10C8E, backslash ]};
484//Old-Hungarian gy, Gy
485    key <AD02> {[ U10CF0, U10CB0 ]};
486//Old Hungarian zs, Zs
487    key <AD03> {[ U10CC9, U10C89, U10CCA, U10C8A ]};
488 //Old Hungarian e, E, close e, close E
489    key <AD04> {[ U10CE2, U10CA2, U10CE3, U10CA3 ]};
490//Old Hungarian r, R, short r, short R
491    key <AD05> {[ U10CE6, U10CA6, U10CF1, U10CB1 ]};
492//Old Hungarian t, T, ent-sharped sign,Ent-sharped sign
493    key <AD06> {[ U10CEF, U10CAF ]};
494//Old Hungarian z, Z
495    key <AD07> {[ U10CEA, U10CAA, U10CF2, U10CB2 ]};
496//Old Hungarian u, U,  Old Hungarian us, Us
497    key <AD08> {[ U10CD0, U10C90, U10CD1, U10C91 ]};
498//Old Hungarian i, I, ii, II
499    key <AD09> {[ U10CDB, U10C9B ]};
500//Old Hungarian o, O
501    key <AD10> {[ U10CE0, U10CA0 ]};
502//Old Hungarian p, P
503    key <AD11> {[ U10CDF, U10C9F ]};
504//Old Hungarian oee, Oee
505    key <AD12> {[ U10CEB, U10CAB, U10CD5, U10C95 ]};
506//Old Hungarian uu,Uu,unk,Unk
507    key <AC01> {[ U10CC0, U10C80, U10CC3, U10C83 ]};
508//Old Hungarian a,A,amb,Amb
509    key <AC02> {[ U10CE4, U10CA4, U10CE1, U10CA1 ]};
510//Old Hungarian s,S,emp,Emp
511    key <AC03> {[ U10CC7, U10C87, U10CE7, U10CA7 ]};
512//Old Hungarian d,D, ent/ant/int, Ent/Ant/Int
513	key <AC04> {[ U10CCC, U10C8C, bracketleft ]};
514//Old Hungarian f,F
515    key <AC05> {[ U10CCD, U10C8D, bracketright ]};
516//Old Hungarian g, G
517    key <AC06> {[ U10CCF, U10C8F, U10CE9, U10CA9 ]};
518//Old Hungarian h, H,ech, Ech
519    key <AC07> {[ U10CD2, U10C92, backslash ]};
520//Old Hungarian j, J
521    key <AC08> {[ U10CD3, U10C93, U10CD4, U10C94 ]};
522//Old Hungarian open k, open K, close k, close K
523    key <AC09> {[ U10CD6, U10C96 ]};
524//Old Hungarian l, L
525    key <AC10> {[ U10CCB, U10C8B ]};
526//Old Hungarian ee, EE
527    key <AC11> {[ U10CC1, U10C81, U10CC8, U10C88 ]};
528//Old Hungarian aa, AA, and And
529    key <BKSL> {[ U10CEC, U10CAC ]};
530//Old Hungarian ue, Ue
531    key <AB01> {[ U10CD7, U10C97, greater ]};
532//Old Hungarian ly, Ly
533    key <AB02> {[ U10CE5, U10CA5, numbersign ]};
534//Old Hungarian sz, Sz
535    key <AB03> {[ U10CC4, U10C84, U10CC5, U10C85 ]};
536//Old Hungarian c,C, enc, Enc
537    key <AB04> {[ U10CEE, U10CAE, at ]};
538//Old Hungarian v,V
539    key <AB05> {[ U10CC2, U10C82, braceleft ]};
540//Old Hungarian b, B
541    key <AB06> {[ U10CD9, U10C99, braceright ]};
542//Old Hungarian n, N
543    key <AB07> {[ U10CD8, U10C98, less ]};
544//Old Hungarian m, M
545    key <AB08> {[ U2E41, U2E2E, U204F ]};
546//reversed question mark,reversed semicolon, reversed comma
547    key <AB09> {[ period, colon, greater ]};
548    key <AB10> {[ minus, underscore, asterisk ]};
549	key <LSGT> {[ U10CD1, U10C91, less ]};
550//Old Hungarian ii,II
551};
552
553//Old Hungarian layout specialised keys
554// In the remarks you can read characters displayed only Unicode point
555hidden partial alphanumeric_keys
556xkb_symbols "oldhun_origin" {
557key.type[Group1]="FOUR_LEVEL_ALPHABETIC";
558	key <TLDE> {[ section, U200F, U200E, 0 ]};
559//Right to left mark, left to right mark
560    key <AE01> {[ U10CFA, apostrophe, U2E42, 1 ]};
561//Old Hungarian one, reversed 9 double low quotemark
562    key <AE02> {[ U10CFB, quotedbl, U201F, 2 ]};
563//Old Hungarian five, reversed 9 double upper quotemark
564    key <AE03> {[ U10CFC, plus, minus, 3 ]};
565//Old Hungarian ten
566    key <AE04> {[ U10CFD, exclam, U203C, 4 ]};
567//Old Hungarian fifty,double exclam
568    key <AE05> {[ U10CFE, percent, U2026, 5 ]};
569//Old Hungarian hundred, triple dot
570    key <AE06> {[ U10CFF, slash, backslash, 6 ]};
571//Old Hungarian thousand
572    key <AE07> {[ U10CC6, U10C86, equal, 7 ]};
573//Old Hungarian cs, Cs
574    key <AE08> {[ U10CDA, U10C9A, parenleft, 8 ]};
575//Old Hungarian ny, Ny
576    key <AE09> {[ U10CE8, U10CA8, parenright, 9 ]};
577//Old Hungarian ty, Ty
578    key <AE10> {[ U10CDE, U10C9E, U10CDD, U10C9D ]};
579//Old Hungarian Rudimenta oe, Oe, Nikolsburg oe, Oe
580    key <AE11> {[ U10CED, U10CAD, section ]};
581//Old Hungarian ue , Ue
582    key <AE12> {[ U10CDC, U10C9C, copyright, U1F12F ]};
583//Old Hungarian oo, OO, copyleft
584};
585
586//Special section for "Old Hungarian (for ligatures)" layout
587// In the remarks you can read characters displayed only Unicode point
588hidden partial alphanumeric_keys
589xkb_symbols "oldhun_lig" {
590key.type[Group1]="FOUR_LEVEL_ALPHABETIC";
591	key <TLDE> {[ U200D, U200F, U200C, 0 ]};
592//Zero-width-joiner,Right to left mark, Zero-width-non-joiner
593//Zero-width-joiner and Zero-width-non-joiner are reqired for ligatures
594    key <AE01> {[ U10CFA, apostrophe, U2E42, 1 ]};
595//Old Hungarian one, reversed 9 double low quotemark
596    key <AE02> {[ U10CFB, quotedbl, U201F, 2 ]};
597//Old Hungarian five, reversed 9 double upper quotemark
598    key <AE03> {[ U10CFC, plus, minus, 3 ]};
599//Old Hungarian ten
600    key <AE04> {[ U10CFD, exclam, U203C, 4 ]};
601//Old Hungarian fifty,double exclam
602    key <AE05> {[ U10CFE, percent, U2026, 5 ]};
603//Old Hungarian hundred, triple dot
604    key <AE06> {[ U10CFF, slash, backslash, 6 ]};
605//Old Hungarian thousand
606    key <AE07> {[ U10CC6, U10C86, equal, 7 ]};
607//Old Hungarian cs, Cs
608    key <AE08> {[ U10CDA, U10C9A, parenleft, 8 ]};
609//Old Hungarian ny, Ny
610    key <AE09> {[ U10CE8, U10CA8, parenright, 9 ]};
611//Old Hungarian ty, Ty
612    key <AE10> {[ U10CDE, U10C9E, U10CDD, U10C9D ]};
613//Old Hungarian Rudimenta oe, Oe, Nikolsburg oe, Oe
614    key <AE11> {[ U10CED, U10CAD, section ]};
615//Old Hungarian ue , Ue
616    key <AE12> {[ U10CDC, U10C9C, copyright, U1F12F ]};
617//Old Hungarian oo, OO, copyleft
618};
619
620//Numpad for Old Hungarian layouts
621// In the remarks you can read characters displayed only Unicode point
622hidden partial keypad_keys
623xkb_symbols "oldhun_magic_numpad" {
624    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD";
625    key <NMLK> {[ Num_Lock, Num_Lock, Num_Lock, Num_Lock ]};
626    key <KP0> {[ KP_Insert, KP_0, U200C, U200C ]};
627//Zero-width-non-joiner
628    key <KP7> {[ KP_Home, KP_7, U10CFA, U10CFA ]};
629//Old Hungarian number one
630    key <KP8> {[ KP_Up, KP_8, U10CFB, U10CFB ]};
631//Old Hungarian number five
632    key <KP9> {[ KP_Prior, KP_9, U10CFC, U10CFC ]};
633//Old Hungarian number ten
634    key <KP4> {[ KP_Left, KP_4, U10CFD, U10CFD ]};
635//Old Hungarian number fifty
636    key <KP5> {[ KP_Begin, KP_5, U10CFE, U10CFE ]};
637//Old Hungarian number hundred
638    key <KP6> {[ KP_Right, KP_6, U10CFF, U10CFF ]};
639//Old Hungarian number thousand
640    key <KP1> {[ KP_End, KP_1, U200F, U200F ]};
641//Right-to-left mark
642    key <KP2> {[ KP_Down, KP_2, U200D, U200D ]};
643//Zero-width-joiner
644    key <KP3> {[ KP_Next, KP_3, U200E, U200E ]};
645//Left-to-right mark
646    key <KPEN> {[ KP_Enter, KP_Enter, KP_Enter, KP_Enter ]};
647    key <KPEQ> {[ KP_Equal, KP_Equal, KP_Equal, KP_Equal ]};
648    key <KPDL> {[ KP_Delete, KP_Separator, KP_Delete, KP_Separator ]};
649    key <KPPT> {[ KP_Separator, KP_Separator, KP_Separator, KP_Separator ]};
650    key <KPDV> {[ KP_Divide, KP_Divide, KP_Divide, KP_Divide ]};
651    key <KPMU> {[ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply ]};
652    key <KPSU> {[ KP_Subtract, KP_Subtract,	KP_Subtract, KP_Subtract ]};
653    key <KPAD> {[ KP_Add, KP_Add, KP_Add, KP_Add ]};
654};
655