hu revision c067fea9
1// New style XKB layout for some widely used Hungarian keyboard layouts
2//
3// Based on old style 'xkb/symbols/hu"
4//
5// $XKeyboardConfig$
6// (C) 2002-2004 Soós Péter <sp@osb.hu>
7// (C) 2010 Andras Timar <timar@fsf.hu>
8//
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.
13//
14// This file is distributed without any expressed or implied warranty.
15//
16// Changes:
17//  2004-04-17 - Moved to new style (only Unicode based layouts)
18//             - Added consistent dead key support
19//             - Fixed abovedot
20//             - Added adiaeresis
21//             - Added EuroSign and cent symbol
22//  2010-04-23 - Added doublelowquotemark
23//             - Added rightdoublequotemark
24//             - Added endash
25//  2010-05-13 - Added ellipsis
26
27
28// Default layout
29default partial
30xkb_symbols "basic" {
31    include "hu(102_qwertz_comma_dead)"
32    name[Group1] = "Hungary";
33};
34
35// Standard layout
36partial
37xkb_symbols "standard" {
38    include "hu(102_qwertz_comma_dead)"
39    name[Group1] = "Hungary - Standard";
40};
41
42// Standard layout without dead key support
43partial
44xkb_symbols "nodeadkeys" {
45    include "hu(102_qwertz_comma_nodead)"
46    name[Group1] = "Hungary - Eliminate dead keys";
47};
48
49// Qwerty layout
50partial
51xkb_symbols "qwerty" {
52    include "hu(101_qwerty_comma_dead)"
53    name[Group1] = "Hungary - qwerty";
54};
55
56// Main layouts
57
58// 101_qwertz_comma_dead
59// 101 key qwertz layout
60// with decimal comma on keypad
61// and with dead key support
62partial
63xkb_symbols "101_qwertz_comma_dead" {
64    name[Group1] = "Hungary - 101/qwertz/comma/Dead keys";
65    include "latin"
66    include "hu(def_101)"
67    include "hu(def_qwertz)"
68    include "kpdl(comma)"
69    include "hu(def_dead)"
70    include "hu(def_common)"
71    include "level3(ralt_switch)"
72};
73
74// 101_qwertz_comma_nodead
75// 101 key qwertz layout
76// with decimal comma on keypad
77// and without dead key support
78partial
79xkb_symbols "101_qwertz_comma_nodead" {
80    name[Group1] = "Hungary - 101/qwertz/comma/Eliminate dead keys";
81    include "latin"
82    include "hu(def_101)"
83    include "hu(def_qwertz)"
84    include "kpdl(comma)"
85    include "hu(def_nodead)"
86    include "hu(def_common)"
87    include "level3(ralt_switch)"
88};
89
90// 101_qwertz_dot_dead
91// 101 key qwertz layout
92// with decimal dot on keypad
93// and with dead key support
94partial
95xkb_symbols "101_qwertz_dot_dead" {
96    name[Group1] = "Hungary - 101/qwertz/dot/Dead keys";
97    include "latin"
98    include "hu(def_101)"
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)"
104};
105
106// 101_qwertz_dot_nodead
107// 101 key qwertz layout
108// with decimal dot on keypad
109// and without dead key support
110partial
111xkb_symbols "101_qwertz_dot_nodead" {
112    name[Group1] = "Hungary - 101/qwertz/dot/Eliminate dead keys";
113    include "latin"
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)"
120};
121
122// 101_qwerty_comma_dead
123// 101 key qwerty layout
124// with decimal comma on keypad
125// and with dead key support
126partial
127xkb_symbols "101_qwerty_comma_dead" {
128    name[Group1] = "Hungary - 101/qwerty/comma/Dead keys";
129    include "latin"
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)"
136};
137
138// 101_qwerty_comma_nodead
139// 101 key qwerty layout
140// with decimal comma on keypad
141// and without dead key support
142partial
143xkb_symbols "101_qwerty_comma_nodead" {
144    name[Group1] = "Hungary - 101/qwerty/comma/Eliminate dead keys";
145    include "latin"
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)"
152};
153
154// 101_qwerty_dot_dead
155// 101 key qwerty layout
156// with decimal dot on keypad
157// and with dead key support
158partial
159xkb_symbols "101_qwerty_dot_dead" {
160    name[Group1] = "Hungary - 101/qwerty/dot/Dead keys";
161    include "latin"
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)"
168};
169
170// 101_qwerty_dot_nodead
171// 101 key qwerty layout
172// with decimal dot on keypad
173// and without dead key support
174partial
175xkb_symbols "101_qwerty_dot_nodead" {
176    name[Group1] = "Hungary - 101/qwerty/dot/Eliminate dead keys";
177    include "latin"
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)"
184};
185
186// 102_qwertz_comma_dead
187// 102 key qwertz layout
188// with decimal comma on keypad
189// and with dead key support
190partial
191xkb_symbols "102_qwertz_comma_dead" {
192    name[Group1] = "Hungary - 102/qwertz/comma/Dead keys";
193    include "latin"
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)"
200};
201
202// 102_qwertz_comma_nodead
203// 102 key qwertz layout
204// with decimal comma on keypad
205// and without dead key support
206partial
207xkb_symbols "102_qwertz_comma_nodead" {
208    name[Group1] = "Hungary - 102/qwertz/comma/Eliminate dead keys";
209    include "latin"
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)"
216};
217
218// 102_qwertz_dot_dead
219// 102 key qwertz layout
220// with decimal dot on keypad
221// and with dead key support
222partial
223xkb_symbols "102_qwertz_dot_dead" {
224    name[Group1] = "Hungary - 102/qwertz/dot/Dead keys";
225    include "latin"
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)"
232};
233
234// 102_qwertz_dot_nodead
235// 102 key qwertz layout
236// with decimal dot on keypad
237// and without dead key support
238partial
239xkb_symbols "102_qwertz_dot_nodead" {
240    name[Group1] = "Hungary - 102/qwertz/dot/Eliminate dead keys";
241    include "latin"
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)"
248};
249
250// 102_qwerty_comma_dead
251// 102 key qwerty layout
252// with decimal comma on keypad
253// and with dead key support
254partial
255xkb_symbols "102_qwerty_comma_dead" {
256    name[Group1] = "Hungary - 102/qwerty/comma/Dead keys";
257    include "latin"
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)"
264};
265
266// 102_qwerty_comma_nodead
267// 102 key qwerty layout
268// with decimal comma on keypad
269// and without dead key support
270partial
271xkb_symbols "102_qwerty_comma_nodead" {
272    name[Group1] = "Hungary - 102/qwerty/comma/Eliminate dead keys";
273    include "latin"
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)"
280};
281
282// 102_qwerty_dot_dead
283// 102 key qwerty layout
284// with decimal dot on keypad
285// and with dead key support
286partial
287xkb_symbols "102_qwerty_dot_dead" {
288    name[Group1] = "Hungary - 102/qwerty/dot/Dead keys";
289    include "latin"
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)"
296};
297
298// 102_qwerty_dot_nodead
299// 102 key qwerty layout
300// with decimal dot on keypad
301// and without dead key support
302partial
303xkb_symbols "102_qwerty_dot_nodead" {
304    name[Group1] = "Hungary - 102/qwerty/dot/Eliminate dead keys";
305    include "latin"
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)"
312};
313
314// Partial layouts
315
316// def_102:
317// The standard Hungarian 102 key layout
318hidden partial alphanumeric_keys
319xkb_symbols "def_102" {
320    key <TLDE>  { [            0,      section,           notsign                  ] };
321    key <LSGT>  { [       iacute,       Iacute,              less,         greater ] };
322
323};
324
325// def_101:
326// An alternative layout for 101 key keyboards
327hidden partial alphanumeric_keys
328xkb_symbols "def_101" {
329    key <TLDE>  { [       iacute,       Iacute,                 0,         section ] };
330    key <LSGT>  { [         less,      greater                                     ] };
331};
332
333// def_qwertz:
334// The standard Hungaryan qwertz layout
335hidden partial alphanumeric_keys
336xkb_symbols "def_qwertz" {
337    key <AD06>  { [            z,            Z,           endash                   ] };
338    key <AB01>  { [            y,            Y,           greater                  ] };
339};
340
341
342// def_qwerty:
343// The qwerty layout for people who familiar with the standard US layout
344hidden partial alphanumeric_keys
345xkb_symbols "def_qwerty" {
346    key <AD06>  { [            y,            Y,           endash                   ] };
347    key <AB01>  { [            z,            Z,           greater                  ] };
348};
349
350// def_dot: 	 
351// The Hungarian standard is the comma on the keypad not decimal dot, 	 
352// but programmers hate it 	 
353hidden partial keypad_keys 	 
354xkb_symbols "def_dot" { 	 
355    key <KPDL>  { [    KP_Delete,   KP_Decimal                                     ] }; 	 
356}; 	 
357 
358
359// def_dead:
360// Dead keys support part
361hidden partial alphanumeric_keys
362xkb_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 ] };
375};
376
377// def_nodead:
378// Without dead keys support
379hidden partial alphanumeric_keys
380xkb_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                  ] };
393};
394
395
396// def_common:
397// The common part of all Hungarian layout above
398hidden partial alphanumeric_keys
399xkb_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                  ] };
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,          ellipsis                  ] };
430    key <AB10>  { [        minus,   underscore,          asterisk                  ] };
431
432};
433