3 // Support for Irish (old and new orthography) and English
4 // Seamus O Ciardhuain <seoc@cnds.ucd.ie> (19 December 2002)
6 // The general idea is to provide the characters in ISO 8859-1,
7 // ISO 8859-15, ISO 8859-14, CP1252 and "Extended Latin-8".
8 // However, not all are accessible directly because there aren't
9 // enough keys; some need deadkeys to access them, others the
10 // "Multi_key" compose sequences.
12 // Designed to be similar to the layouts used on Windows
15 // Everything is in Group 1 to be compatible with the
16 // multi-layout keyboard support in XFree86 4.3.
18 // The basic layout is a modern keyboard, but dotted consonants are
19 // accessible using a deadkey (AltGr+H or AltGr+W).
20 // If a proper Clo Gaelach keyboard is needed, then use the layout
21 // defined below as ie(CloGaelach), which gives dotted consonants
22 // without use of a deadkey.
25 partial default alphanumeric_keys
28 // Modern keyboard for Irish and English
29 // - acute-accented vowels as AltGr+vowel and AltGr+Shift+vowel
30 // - euro currency sign as AltGr+4
31 // - Comhartha Agus (Tironian Sign Et) as AltGr+Shift+7
32 // - non-breaking space as AltGr+Space and AltGr+Shift+Space
33 // - matches hardware (keys and engraved symbols) for Irish keyboards
35 name[Group1] = "Irish";
38 // Numeric row `1234567890-=
40 key <TLDE> { [ grave, notsign, brokenbar, NoSymbol ] };
41 key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
42 key <AE02> { [ 2, quotedbl, trademark, twosuperior ] };
43 key <AE03> { [ 3, sterling, copyright, threesuperior ] };
44 key <AE04> { [ 4, dollar, EuroSign, cent ] };
45 key <AE05> { [ 5, percent, section, dagger ] };
46 key <AE06> { [ 6, asciicircum, dead_circumflex, 0x1002030 ] };
48 key <AE07> { [ 7, ampersand, paragraph, 0x100204A ] };
50 key <AE08> { [ 8, asterisk, dead_diaeresis, enfilledcircbullet ] };
51 key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
52 key <AE10> { [ 0, parenright, masculine, degree ] };
53 key <AE11> { [ minus, underscore, endash, emdash ] };
54 key <AE12> { [ equal, plus, notequal, plusminus ] };
59 key <AD01> { [ q, Q, oe, OE ] };
60 key <AD02> { [ w, W, dead_abovedot, dead_abovedot ] };
61 key <AD03> { [ e, E, eacute, Eacute ] };
62 key <AD04> { [ r, R, registered, 0x1002030 ] };
64 key <AD05> { [ t, T, thorn, THORN ] };
65 key <AD06> { [ y, Y, yen, mu ] };
66 key <AD07> { [ u, U, uacute, Uacute ] };
67 key <AD08> { [ i, I, iacute, Iacute ] };
68 key <AD09> { [ o, O, oacute, Oacute ] };
69 key <AD10> { [ p, P, singlelowquotemark, NoSymbol ] };
70 key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
71 key <AD12> { [ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
76 key <AC01> { [ a, A, aacute, Aacute ] };
77 key <AC02> { [ s, S, ssharp, NoSymbol ] };
78 key <AC03> { [ d, D, eth, ETH ] };
79 key <AC04> { [ f, F, 0x1000192, NoSymbol ] };
81 key <AC05> { [ g, G, copyright, NoSymbol ] };
82 key <AC06> { [ h, H, dead_abovedot, dead_abovedot ] };
83 key <AC07> { [ j, J, idotless, onequarter ] };
84 key <AC08> { [ k, K, dead_abovering, onehalf ] };
85 key <AC09> { [ l, L, acute, threequarters ] };
86 key <AC10> { [ semicolon, colon, ellipsis, doubledagger ] };
87 key <AC11> { [ apostrophe, at, ae, AE ] };
88 key <BKSL> { [ numbersign, asciitilde, guillemotleft, guillemotright ] };
94 key <LSGT> { [ backslash, bar, dead_grave, dead_acute ] };
95 key <AB01> { [ z, Z, leftanglebracket, rightanglebracket ] };
96 key <AB02> { [ x, X, multiply, approximate ] };
97 key <AB03> { [ c, C, dead_cedilla, cedilla ] };
98 key <AB04> { [ v, V, dead_caron, NoSymbol ] };
99 key <AB05> { [ b, B, diaeresis, NoSymbol ] };
100 key <AB06> { [ n, N, dead_tilde, NoSymbol ] };
101 key <AB07> { [ m, M, macron, NoSymbol ] };
102 key <AB08> { [ comma, less, lessthanequal, doublelowquotemark ] };
103 key <AB09> { [ period, greater, greaterthanequal, singlelowquotemark ] };
104 key <AB10> { [ slash, question, division, questiondown ] };
107 key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
109 include "level3(ralt_switch)"
111 // NB: putting Shift+<RALT> as Multi_key gives odd behaviour since the
112 // order of pressing keys affects the result.
114 include "compose(rwin)"
117 partial alphanumeric_keys
118 xkb_symbols "CloGaelach" {
120 // Adds support for Clo Gaelach (old orthography for Irish).
121 // Changes from "basic":
122 // - dotted consonants as AltGr+consonant or AltGr+Shift+consonant (TPSDFGCBM)
123 // - long lowercase r as AltGr+R
124 // - long lowercase s as AltGr+Z
125 // - long lowercase s dotted as AltGr+Shift+Z
126 // - some symbols moved around to retain them
127 // - several characters unlikely to be used are lost
128 // The long letters are needed only where the font provides
129 // both the long and short forms as different glyphs.
133 name[Group1] = "CloGaelach";
135 key <TLDE> { [ grave, notsign, brokenbar, ssharp ] };
136 key <AD04> { [ r, R, 0x100027C, registered ] };
138 key <AD05> { [ t, T, tabovedot, Tabovedot ] };
139 key <AD10> { [ p, P, pabovedot, Pabovedot ] };
141 key <AC02> { [ s, S, sabovedot, Sabovedot ] };
142 key <AC03> { [ d, D, dabovedot, Dabovedot ] };
143 key <AC04> { [ f, F, fabovedot, Fabovedot ] };
144 key <AC05> { [ g, G, gabovedot, Gabovedot ] };
146 key <AB01> { [ z, Z, 0x100017F, 0x1001E9B ] };
147 // long s, long s dot
148 key <AB03> { [ c, C, cabovedot, Cabovedot ] };
149 key <AB05> { [ b, B, babovedot, Babovedot ] };
150 key <AB07> { [ m, M, mabovedot, Mabovedot ] };
152 key <LSGT> { [ backslash, bar, dead_grave, dead_cedilla ] };
155 partial alphanumeric_keys
156 xkb_symbols "UnicodeExpert" {
158 // This should eventually be a "Unicode Expert" layout like the Mac one.
160 name[Group1] = "Irish (UnicodeExpert)";
163 // Numeric row `1234567890-=
165 key <TLDE> { [ grave, notsign, 0x10000A6, 0x10000A6 ] };
167 key <AE01> { [ 1, exclam, NoSymbol, NoSymbol ] };
168 key <AE02> { [ 2, quotedbl, dead_doubleacute, dead_doubleacute ] };
169 key <AE03> { [ 3, sterling, NoSymbol, NoSymbol ] };
170 key <AE04> { [ 4, dollar, EuroSign, EuroSign ] };
171 key <AE05> { [ 5, percent, NoSymbol, NoSymbol ] };
172 key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
173 key <AE07> { [ 7, ampersand, 0x100204A, 0x100204A ] };
175 key <AE08> { [ 8, asterisk, dead_abovering, dead_abovering ] };
176 key <AE09> { [ 9, parenleft, dead_breve, dead_breve ] };
177 key <AE10> { [ 0, parenright, dead_ogonek, dead_ogonek ] };
178 key <AE11> { [ minus, underscore, dead_macron, dead_macron ] };
179 key <AE12> { [ equal, plus, NoSymbol, NoSymbol ] };
184 key <AD01> { [ q, Q, NoSymbol, NoSymbol ] };
185 key <AD02> { [ w, W, NoSymbol, NoSymbol ] };
186 key <AD03> { [ e, E, eacute, Eacute ] };
187 key <AD04> { [ r, R, 0x100027C, 0x100027C ] };
189 key <AD05> { [ t, T, NoSymbol, NoSymbol ] };
190 key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
191 key <AD07> { [ u, U, uacute, Uacute ] };
192 key <AD08> { [ i, I, iacute, Iacute ] };
193 key <AD09> { [ o, O, oacute, Oacute ] };
194 key <AD10> { [ p, P, NoSymbol, NoSymbol ] };
195 key <AD11> { [ bracketleft, braceleft, dead_hook, dead_hook ] };
196 key <AD12> { [ bracketright, braceright, dead_horn, dead_horn ] };
201 key <AC01> { [ a, A, aacute, Aacute ] };
202 key <AC02> { [ s, S, NoSymbol, NoSymbol ] };
203 key <AC03> { [ d, D, NoSymbol, NoSymbol ] };
204 key <AC04> { [ f, F, NoSymbol, NoSymbol ] };
205 key <AC05> { [ g, G, NoSymbol, NoSymbol ] };
206 key <AC06> { [ h, H, dead_abovedot, dead_abovedot ] };
207 key <AC07> { [ j, J, NoSymbol, NoSymbol ] };
208 key <AC08> { [ k, K, NoSymbol, NoSymbol ] };
209 key <AC09> { [ l, L, NoSymbol, NoSymbol ] };
210 key <AC10> { [ semicolon, colon, dead_diaeresis, dead_diaeresis ] };
211 key <AC11> { [ apostrophe, at, dead_acute, dead_acute ] };
212 key <BKSL> { [ numbersign, asciitilde, dead_tilde, dead_tilde ] };
217 key <LSGT> { [ backslash, bar, dead_grave, dead_grave ] };
218 key <AB01> { [ z, Z, 0x100017F, 0x1001E9B ] };
219 // long s, long s dot
220 key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
221 key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
222 key <AB04> { [ v, V, dead_caron, dead_caron ] };
223 key <AB05> { [ b, B, NoSymbol, NoSymbol ] };
224 key <AB06> { [ n, N, NoSymbol, NoSymbol ] };
225 key <AB07> { [ m, M, NoSymbol, NoSymbol ] };
226 key <AB08> { [ comma, less, dead_cedilla, dead_cedilla ] };
227 key <AB09> { [ period, greater, dead_abovedot, dead_abovedot ] };
228 key <AB10> { [ slash, question, dead_belowdot, dead_belowdot ] };
230 key <SPCE> { [ space, space, space, nobreakspace ] };
232 include "level3(ralt_switch)"
234 include "compose(rwin)"
238 // Ogham keyboard map for XFree86
240 // Seamus O Ciardhuain <seoc@cnds.ucd.ie> (17 December 2002)
242 // Ogham keyboard layout as recommended in I.S. 434:1999.
243 // Suitable for multi-layout xkbcomp.
244 // Character names are given as in the Unicode standard,
245 // range U+1680 to U+169F.
247 partial alphanumeric_keys
250 name[Group1] = "Ogham";
252 key.type[Group1] = "ONE_LEVEL";
254 key <LSGT> { type[Group1]="TWO_LEVEL",
255 [ 0x100169B, 0x100169C ] };
256 // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
258 key <BKSL> { [ 0x1001680 ] }; // OGHAM SPACE MARK
260 key <TLDE> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
262 key <SPCE> { [ space ] };
265 // Top Row QWERTYUIOP
267 key <AD01> { [ 0x100168A ] }; // OGHAM LETTER CEIRT
268 key <AD02> { [ 0x1001695 ] }; // OGHAM LETTER EABHADH
269 key <AD03> { [ 0x1001693 ] }; // OGHAM LETTER EADHADH
270 key <AD04> { [ 0x100168F ] }; // OGHAM LETTER RUIS
271 key <AD05> { [ 0x1001688 ] }; // OGHAM LETTER TINNE
272 key <AD06> { [ 0x1001698 ] }; // OGHAM LETTER IFIN
273 key <AD07> { [ 0x1001692 ] }; // OGHAM LETTER UR
274 key <AD08> { [ 0x1001694 ] }; // OGHAM LETTER IODHADH
275 key <AD09> { [ 0x1001691 ] }; // OGHAM LETTER ONN
276 key <AD10> { [ 0x100169A ] }; // OGHAM LETTER PEITH
279 // Middle Row ASDFGHJKL
281 key <AC01> { [ 0x1001690 ] }; // OGHAM LETTER AILM
282 key <AC02> { [ 0x1001684 ] }; // OGHAM LETTER SAIL
283 key <AC03> { [ 0x1001687 ] }; // OGHAM LETTER DAIR
284 key <AC04> { [ 0x1001683 ] }; // OGHAM LETTER FEARN
285 key <AC05> { [ 0x100168C ] }; // OGHAM LETTER GORT
286 key <AC06> { [ 0x1001686 ] }; // OGHAM LETTER UATH
287 key <AC07> { [ 0x1001697 ] }; // OGHAM LETTER UILLEANN
288 key <AC08> { [ 0x1001696 ] }; // OGHAM LETTER OR
289 key <AC09> { [ 0x1001682 ] }; // OGHAM LETTER LUIS
292 // Bottom Row ZXCVBNM
294 key <AB01> { [ 0x100168E ] }; // OGHAM LETTER STRAIF
295 key <AB02> { [ 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
296 key <AB03> { [ 0x1001689 ] }; // OGHAM LETTER COLL
297 key <AB04> { [ 0x100168D ] }; // OGHAM LETTER NGEADAL
298 key <AB05> { [ 0x1001681 ] }; // OGHAM LETTER BEITH
299 key <AB06> { [ 0x1001685 ] }; // OGHAM LETTER NION
300 key <AB07> { [ 0x100168B ] }; // OGHAM LETTER MUIN
302 // As an extension because <BKSL> and <LSGT> may not be
303 // available or sensible. These are also a bit more
304 // intuitive on a standard Irish keyboard.
305 key <AB08> { [ 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
306 key <AB09> { [ 0x100169B ] }; // OGHAM FEATHER MARK
307 key <AB10> { [ 0x1001680 ] }; // OGHAM SPACE MARK
309 include "compose(rwin)"
312 partial alphanumeric_keys
313 xkb_symbols "ogam_is434" {
315 // This has the full layout of IS434 with an Irish QWERTY keyboard,
316 // and the Ogham characters accessed when CAPS LOCK is on.
318 name[Group1] = "Ogham (IS434)";
320 key.type[Group1] = "THREE_LEVEL";
322 key <LSGT> { type[Group1] = "FOUR_LEVEL_ALPHABETIC",
323 [ backslash, bar, 0x100169B, 0x100169C ] };
324 // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK
326 key <BKSL> { [ numbersign, asciitilde, 0x1001680 ] }; // OGHAM SPACE MARK
327 key <TLDE> { [ grave, notsign, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
328 key <SPCE> { [ space, space, space ] };
333 key <AE01> { type[Group1]="TWO_LEVEL", [ 1, exclam ] };
334 key <AE02> { type[Group1]="TWO_LEVEL", [ 2, quotedbl ] };
335 key <AE03> { type[Group1]="TWO_LEVEL", [ 3, sterling ] };
336 key <AE04> { [ 4, dollar, EuroSign ] };
337 key <AE05> { type[Group1]="TWO_LEVEL", [ 5, percent ] };
338 key <AE06> { type[Group1]="TWO_LEVEL", [ 6, asciicircum ] };
339 key <AE07> { [ 7, ampersand, 0x100204A ] }; // Tironian Et
340 key <AE08> { type[Group1]="TWO_LEVEL", [ 8, asterisk ] };
341 key <AE09> { type[Group1]="TWO_LEVEL", [ 9, parenleft ] };
342 key <AE10> { type[Group1]="TWO_LEVEL", [ 0, parenright ] };
343 key <AE11> { type[Group1]="TWO_LEVEL", [ minus, underscore ] };
344 key <AE12> { type[Group1]="TWO_LEVEL", [ equal, plus ] };
347 // Top Row QWERTYUIOP
349 key <AD01> { [ q, Q, 0x100168A ] }; // OGHAM LETTER CEIRT
350 key <AD02> { [ w, W, 0x1001695 ] }; // OGHAM LETTER EABHADH
351 key <AD03> { [ e, E, 0x1001693 ] }; // OGHAM LETTER EADHADH
352 key <AD04> { [ r, R, 0x100168F ] }; // OGHAM LETTER RUIS
353 key <AD05> { [ t, T, 0x1001688 ] }; // OGHAM LETTER TINNE
354 key <AD06> { [ y, Y, 0x1001698 ] }; // OGHAM LETTER IFIN
355 key <AD07> { [ u, U, 0x1001692 ] }; // OGHAM LETTER UR
356 key <AD08> { [ i, I, 0x1001694 ] }; // OGHAM LETTER IODHADH
357 key <AD09> { [ o, O, 0x1001691 ] }; // OGHAM LETTER ONN
358 key <AD10> { [ p, P, 0x100169A ] }; // OGHAM LETTER PEITH
361 // Middle Row ASDFGHJKL
363 key <AC01> { [ a, A, 0x1001690 ] }; // OGHAM LETTER AILM
364 key <AC02> { [ s, S, 0x1001684 ] }; // OGHAM LETTER SAIL
365 key <AC03> { [ d, D, 0x1001687 ] }; // OGHAM LETTER DAIR
366 key <AC04> { [ f, F, 0x1001683 ] }; // OGHAM LETTER FEARN
367 key <AC05> { [ g, G, 0x100168C ] }; // OGHAM LETTER GORT
368 key <AC06> { [ h, H, 0x1001686 ] }; // OGHAM LETTER UATH
369 key <AC07> { [ j, J, 0x1001697 ] }; // OGHAM LETTER UILLEANN
370 key <AC08> { [ k, K, 0x1001696 ] }; // OGHAM LETTER OR
371 key <AC09> { [ l, L, 0x1001682 ] }; // OGHAM LETTER LUIS
374 // Bottom Row ZXCVBNM
376 key <AB01> { [ z, Z, 0x100168E ] }; // OGHAM LETTER STRAIF
377 key <AB02> { [ x, X, 0x1001699 ] }; // OGHAM LETTER EAMHANCHOLL
378 key <AB03> { [ c, C, 0x1001689 ] }; // OGHAM LETTER COLL
379 key <AB04> { [ v, V, 0x100168D ] }; // OGHAM LETTER NGEADAL
380 key <AB05> { [ b, B, 0x1001681 ] }; // OGHAM LETTER BEITH
381 key <AB06> { [ n, N, 0x1001685 ] }; // OGHAM LETTER NION
382 key <AB07> { [ m, M, 0x100168B ] }; // OGHAM LETTER MUIN
384 // As an extension because <BKSL> and <LSGT> may not be
385 // available or sensible. These are also a bit more
386 // intuitive on a standard Irish keyboard.
387 key <AB08> { [ comma, less, 0x100169C ] }; // OGHAM REVERSED FEATHER MARK
388 key <AB09> { [ period, greater, 0x100169B ] }; // OGHAM FEATHER MARK
389 key <AB10> { [ slash, question, 0x1001680 ] }; // OGHAM SPACE MARK
391 // The standard says the Ogham characters should be accessed when
392 // Caps Lock is down; not clear if this means it should lock but
395 key <CAPS> { type[Group1] = "ONE_LEVEL", [ ISO_Level3_Lock ] };
397 // Also allow access to Ogham characters using RALT for convenience
398 include "level3(ralt_switch)"
400 // Redefine Scroll Lock as locking shift in case that's needed.
401 // Also overcomes annoying use of Scroll Lock LED inherited from
402 // US symbols but not relevant here since we're not changing group.
403 key <SCLK> {type[Group1] = "ONE_LEVEL", [ Shift_Lock ] };
404 modifier_map Shift { Shift_Lock };
406 include "compose(rwin)"