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