Hungarian layout added, thanks to Soós
[xorg/xkeyboard-config] / symbols / hu
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 //
7 // Permission is granted to anyone to use, distribute and modify
8 // this file in any way, provided that the above copyright notice
9 // is left intact and the author of the modification summarizes
10 // the changes in this header.
11 //
12 // This file is distributed without any expressed or implied warranty.
13 //
14 // Changes:
15 //  2004-04-17 - Moved to new style (only Unicode based layouts)
16 //             - Added consistent dead key support
17 //             - Fixed abovedot
18 //             - Added adiaeresis
19 //             - Added EuroSign and cent symbol
20
21
22 // Default layout
23 default partial
24 xkb_symbols "basic" {
25     include "hu(102_qwertz_comma_dead)"
26 };
27
28 // Standard layout
29 partial
30 xkb_symbols "standard" {
31     include "hu(102_qwertz_comma_dead)"
32 };
33
34 // Standard layout without dead key support
35 partial
36 xkb_symbols "nodeadkeys" {
37     include "hu(102_qwertz_comma_nodead)"
38 };
39
40 // Qwerty layout
41 partial
42 xkb_symbols "qwerty" {
43     include "hu(101_qwerty_comma_dead)"
44 };
45
46 // Main layouts
47
48 // 101_qwertz_comma_dead
49 // 101 key qwertz layout
50 // with decimal comma on keypad
51 // and with dead key support
52 partial
53 xkb_symbols "101_qwertz_comma_dead" {
54     name[Group1] = "Hungarian";
55     include "latin"
56     include "hu(def_101)"
57     include "hu(def_qwertz)"
58     include "hu(def_comma)"
59     include "hu(def_dead)"
60     include "hu(def_common)"
61     include "level3(ralt_switch_multikey)"
62 };
63
64 // 101_qwertz_comma_nodead
65 // 101 key qwertz layout
66 // with decimal comma on keypad
67 // and without dead key support
68 partial
69 xkb_symbols "101_qwertz_comma_nodead" {
70     name[Group1] = "Hungarian";
71     include "latin"
72     include "hu(def_101)"
73     include "hu(def_qwertz)"
74     include "hu(def_comma)"
75     include "hu(def_nodead)"
76     include "hu(def_common)"
77     include "level3(ralt_switch_multikey)"
78 };
79
80 // 101_qwertz_dot_dead
81 // 101 key qwertz layout
82 // with decimal dot on keypad
83 // and with dead key support
84 partial
85 xkb_symbols "101_qwertz_dot_dead" {
86     name[Group1] = "Hungarian";
87     include "latin"
88     include "hu(def_101)"
89     include "hu(def_qwertz)"
90     include "hu(def_dot)"
91     include "hu(def_dead)"
92     include "hu(def_common)"
93     include "level3(ralt_switch_multikey)"
94 };
95
96 // 101_qwertz_dot_nodead
97 // 101 key qwertz layout
98 // with decimal dot on keypad
99 // and without dead key support
100 partial
101 xkb_symbols "101_qwertz_dot_nodead" {
102     name[Group1] = "Hungarian";
103     include "latin"
104     include "hu(def_101)"
105     include "hu(def_qwertz)"
106     include "hu(def_dot)"
107     include "hu(def_nodead)"
108     include "hu(def_common)"
109     include "level3(ralt_switch_multikey)"
110 };
111
112 // 101_qwerty_comma_dead
113 // 101 key qwerty layout
114 // with decimal comma on keypad
115 // and with dead key support
116 partial
117 xkb_symbols "101_qwerty_comma_dead" {
118     name[Group1] = "Hungarian";
119     include "latin"
120     include "hu(def_101)"
121     include "hu(def_qwerty)"
122     include "hu(def_comma)"
123     include "hu(def_dead)"
124     include "hu(def_common)"
125     include "level3(ralt_switch_multikey)"
126 };
127
128 // 101_qwerty_comma_nodead
129 // 101 key qwerty layout
130 // with decimal comma on keypad
131 // and without dead key support
132 partial
133 xkb_symbols "101_qwerty_comma_nodead" {
134     name[Group1] = "Hungarian";
135     include "latin"
136     include "hu(def_101)"
137     include "hu(def_qwerty)"
138     include "hu(def_comma)"
139     include "hu(def_nodead)"
140     include "hu(def_common)"
141     include "level3(ralt_switch_multikey)"
142 };
143
144 // 101_qwerty_dot_dead
145 // 101 key qwerty layout
146 // with decimal dot on keypad
147 // and with dead key support
148 partial
149 xkb_symbols "101_qwerty_dot_dead" {
150     name[Group1] = "Hungarian";
151     include "latin"
152     include "hu(def_101)"
153     include "hu(def_qwerty)"
154     include "hu(def_dot)"
155     include "hu(def_dead)"
156     include "hu(def_common)"
157     include "level3(ralt_switch_multikey)"
158 };
159
160 // 101_qwerty_dot_nodead
161 // 101 key qwerty layout
162 // with decimal dot on keypad
163 // and without dead key support
164 partial
165 xkb_symbols "101_qwerty_dot_nodead" {
166     name[Group1] = "Hungarian";
167     include "latin"
168     include "hu(def_101)"
169     include "hu(def_qwerty)"
170     include "hu(def_dot)"
171     include "hu(def_nodead)"
172     include "hu(def_common)"
173     include "level3(ralt_switch_multikey)"
174 };
175
176 // 102_qwertz_comma_dead
177 // 102 key qwertz layout
178 // with decimal comma on keypad
179 // and with dead key support
180 partial
181 xkb_symbols "102_qwertz_comma_dead" {
182     name[Group1] = "Hungarian";
183     include "latin"
184     include "hu(def_102)"
185     include "hu(def_qwertz)"
186     include "hu(def_comma)"
187     include "hu(def_dead)"
188     include "hu(def_common)"
189     include "level3(ralt_switch_multikey)"
190 };
191
192 // 102_qwertz_comma_nodead
193 // 102 key qwertz layout
194 // with decimal comma on keypad
195 // and without dead key support
196 partial
197 xkb_symbols "102_qwertz_comma_nodead" {
198     name[Group1] = "Hungarian";
199     include "latin"
200     include "hu(def_102)"
201     include "hu(def_qwertz)"
202     include "hu(def_comma)"
203     include "hu(def_nodead)"
204     include "hu(def_common)"
205     include "level3(ralt_switch_multikey)"
206 };
207
208 // 102_qwertz_dot_dead
209 // 102 key qwertz layout
210 // with decimal dot on keypad
211 // and with dead key support
212 partial
213 xkb_symbols "102_qwertz_dot_dead" {
214     name[Group1] = "Hungarian";
215     include "latin"
216     include "hu(def_102)"
217     include "hu(def_qwertz)"
218     include "hu(def_dot)"
219     include "hu(def_dead)"
220     include "hu(def_common)"
221     include "level3(ralt_switch_multikey)"
222 };
223
224 // 102_qwertz_dot_nodead
225 // 102 key qwertz layout
226 // with decimal dot on keypad
227 // and without dead key support
228 partial
229 xkb_symbols "102_qwertz_dot_nodead" {
230     name[Group1] = "Hungarian";
231     include "latin"
232     include "hu(def_102)"
233     include "hu(def_qwertz)"
234     include "hu(def_dot)"
235     include "hu(def_nodead)"
236     include "hu(def_common)"
237     include "level3(ralt_switch_multikey)"
238 };
239
240 // 102_qwerty_comma_dead
241 // 102 key qwerty layout
242 // with decimal comma on keypad
243 // and with dead key support
244 partial
245 xkb_symbols "102_qwerty_comma_dead" {
246     name[Group1] = "Hungarian";
247     include "latin"
248     include "hu(def_102)"
249     include "hu(def_qwerty)"
250     include "hu(def_comma)"
251     include "hu(def_dead)"
252     include "hu(def_common)"
253     include "level3(ralt_switch_multikey)"
254 };
255
256 // 102_qwerty_comma_nodead
257 // 102 key qwerty layout
258 // with decimal comma on keypad
259 // and without dead key support
260 partial
261 xkb_symbols "102_qwerty_comma_nodead" {
262     name[Group1] = "Hungarian";
263     include "latin"
264     include "hu(def_102)"
265     include "hu(def_qwerty)"
266     include "hu(def_comma)"
267     include "hu(def_nodead)"
268     include "hu(def_common)"
269     include "level3(ralt_switch_multikey)"
270 };
271
272 // 102_qwerty_dot_dead
273 // 102 key qwerty layout
274 // with decimal dot on keypad
275 // and with dead key support
276 partial
277 xkb_symbols "102_qwerty_dot_dead" {
278     name[Group1] = "Hungarian";
279     include "latin"
280     include "hu(def_102)"
281     include "hu(def_qwerty)"
282     include "hu(def_dot)"
283     include "hu(def_dead)"
284     include "hu(def_common)"
285     include "level3(ralt_switch_multikey)"
286 };
287
288 // 102_qwerty_dot_nodead
289 // 102 key qwerty layout
290 // with decimal dot on keypad
291 // and without dead key support
292 partial
293 xkb_symbols "102_qwerty_dot_nodead" {
294     name[Group1] = "Hungarian";
295     include "latin"
296     include "hu(def_102)"
297     include "hu(def_qwerty)"
298     include "hu(def_dot)"
299     include "hu(def_nodead)"
300     include "hu(def_common)"
301     include "level3(ralt_switch_multikey)"
302 };
303
304 // Partial layouts
305
306 // def_102:
307 // The standard Hungarian 102 key layout
308 hidden partial alphanumeric_keys
309 xkb_symbols "def_102" {
310     key <TLDE>  { [            0,      section,           notsign                  ] };
311     key <LSGT>  { [       iacute,       Iacute,              less,         greater ] };
312
313 };
314
315 // def_101:
316 // An alternative layout for 101 key keyboards
317 hidden partial alphanumeric_keys
318 xkb_symbols "def_101" {
319     key <TLDE>  { [       iacute,       Iacute,                  0,        section ] };
320     key <LSGT>  { [         less,      greater                                     ] };
321 };
322
323 // def_qwertz:
324 // The standard Hungaryan qwertz layout
325 hidden partial alphanumeric_keys
326 xkb_symbols "def_qwertz" {
327     key <AD06>  { [            z,            Z                                     ] };
328     key <AB01>  { [            y,            Y,           greater                  ] };
329 };
330
331
332 // def_qwerty:
333 // The qwerty layout for people who familiar with the standard US layout
334 hidden partial alphanumeric_keys
335 xkb_symbols "def_qwerty" {
336     key <AD06>  { [            y,            Y                                     ] };
337     key <AB01>  { [            z,            Z,           greater                  ] };
338 };
339
340 // def_comma:
341 // The Hungarian standard is the comma on the keypad not decimal dot
342 hidden partial keypad_keys
343 xkb_symbols "def_comma" {
344     key <KPDL>  { [    KP_Delete, KP_Separator                                     ] };
345 };
346
347 // def_dot:
348 // The Hungarian standard is the comma on the keypad not decimal dot,
349 // but programmers hate it
350 hidden partial keypad_keys
351 xkb_symbols "def_dot" {
352     key <KPDL>  { [    KP_Delete,   KP_Decimal                                     ] };
353 };
354
355
356 // def_dead:
357 // Dead keys support part
358 hidden partial alphanumeric_keys
359 xkb_symbols "def_dead" {
360     key <AE01>  { [            1,   apostrophe,        asciitilde,      dead_tilde ] };
361     key <AE02>  { [            2,     quotedbl,        dead_caron,           caron ] };
362     key <AE03>  { [            3,         plus,       asciicircum, dead_circumflex ] };
363     key <AE04>  { [            4,       exclam,        dead_breve,           breve ] };
364     key <AE05>  { [            5,      percent,    dead_abovering,          degree ] };
365     key <AE06>  { [            6,        slash,       dead_ogonek,          ogonek ] };
366     key <AE07>  { [            7,        equal,             grave,      dead_grave ] };
367     key <AE08>  { [            8,    parenleft,     dead_abovedot,        abovedot ] };
368     key <AE09>  { [            9,   parenright,        dead_acute,           acute ] };
369     key <AE10>  { [   odiaeresis,   Odiaeresis,  dead_doubleacute,     doubleacute ] };
370     key <AE11>  { [   udiaeresis,   Udiaeresis,    dead_diaeresis,       diaeresis ] };
371     key <AE12>  { [       oacute,       Oacute,      dead_cedilla,         cedilla ] };
372 };
373
374 // def_nodead:
375 // Without dead keys support
376 hidden partial alphanumeric_keys
377 xkb_symbols "def_nodead" {
378     key <AE01>  { [            1,   apostrophe,        asciitilde                  ] };
379     key <AE02>  { [            2,     quotedbl,             caron                  ] };
380     key <AE03>  { [            3,         plus,       asciicircum                  ] };
381     key <AE04>  { [            4,       exclam,             breve                  ] };
382     key <AE05>  { [            5,      percent,            degree                  ] };
383     key <AE06>  { [            6,        slash,            ogonek                  ] };
384     key <AE07>  { [            7,        equal,             grave                  ] };
385     key <AE08>  { [            8,    parenleft,          abovedot                  ] };
386     key <AE09>  { [            9,   parenright,             acute                  ] };
387     key <AE10>  { [   odiaeresis,   Odiaeresis,       doubleacute                  ] };
388     key <AE11>  { [   udiaeresis,   Udiaeresis,         diaeresis                  ] };
389     key <AE12>  { [       oacute,       Oacute,           cedilla                  ] };
390 };
391
392
393 // def_common:
394 // The common part of all Hungarian layout above
395 hidden partial alphanumeric_keys
396 xkb_symbols "def_common" {
397     key <AD01>  { [            q,            Q,         backslash                  ] };
398     key <AD02>  { [            w,            W,               bar                  ] };
399     key <AD07>  { [            u,            U,          EuroSign                  ] };
400     key <AD08>  { [            i,            I,            Iacute,          iacute ] };
401     key <AD11>  { [ odoubleacute, Odoubleacute,          division                  ] };
402     key <AD12>  { [       uacute,       Uacute,          multiply                  ] };
403
404     key <AC01>  { [            a,            A,        adiaeresis,      Adiaeresis ] };
405     key <AC02>  { [            s,            S,           dstroke                  ] };
406     key <AC03>  { [            d,            D,           Dstroke                  ] };
407     key <AC04>  { [            f,            F,       bracketleft                  ] };
408     key <AC05>  { [            g,            G,      bracketright                  ] };
409     key <AC07>  { [            j,            J,            iacute,          Iacute ] };
410     key <AC08>  { [            k,            K,           lstroke                  ] };
411     key <AC09>  { [            l,            L,           Lstroke                  ] };
412     key <AC10>  { [       eacute,       Eacute,            dollar,            cent ] };
413     key <AC11>  { [       aacute,       Aacute,            ssharp                  ] };
414
415     key <BKSL>  { [ udoubleacute, Udoubleacute,          currency                  ] };
416
417     key <AB02>  { [            x,            X,        numbersign                  ] };
418     key <AB03>  { [            c,            C,         ampersand                  ] };
419     key <AB04>  { [            v,            V,                at                  ] };
420     key <AB05>  { [            b,            B,         braceleft                  ] };
421     key <AB06>  { [            n,            N,        braceright                  ] };
422     key <AB07>  { [            m,            M,              less                  ] };
423     key <AB08>  { [        comma,     question,         semicolon                  ] };
424     key <AB09>  { [       period,        colon,           greater                  ] };
425     key <AB10>  { [        minus,   underscore,          asterisk                  ] };
426
427 };