hu revision 797b363d
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 (eliminate 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 (101/qwertz/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 (101/qwertz/comma/eliminate 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 (101/qwertz/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 (101/qwertz/dot/eliminate 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 (101/qwerty/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 (101/qwerty/comma/eliminate 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 (101/qwerty/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 (101/qwerty/dot/eliminate 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 (102/qwertz/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 (102/qwertz/comma/eliminate 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 (102/qwertz/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 (102/qwertz/dot/eliminate 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 (102/qwerty/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 (102/qwerty/comma/eliminate 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 (102/qwerty/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 (102/qwerty/dot/eliminate 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                  ] };
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