// Keyboard layouts for Ireland. // Support for Irish (old and new orthography), English, and Ogham. // Original author: Seamus O Ciardhuain , 2002. // The general idea is to provide the characters in ISO 8859-1, // ISO 8859-14, ISO 8859-15, CP1252 and "Extended Latin-8". // However, not all are accessible directly because there aren't // enough keys; some need dead keys to access them, others the // "Multi_key" compose sequences. // The basic layout is a modern keyboard, but dotted consonants are // accessible using a dead key (AltGr+H or AltGr+W). // If a proper Clo Gaelach keyboard is needed, then use the layout // defined below as ie(CloGaelach), which gives dotted consonants // without use of a dead key. default partial alphanumeric_keys xkb_symbols "basic" { // Modern keyboard for Irish and English // - acute-accented vowels as AltGr+vowel and AltGr+Shift+vowel // - euro currency sign as AltGr+4 // - Comhartha Agus (Tironian Sign Et) as AltGr+Shift+7 // - non-breaking space as AltGr+Space and AltGr+Shift+Space // - matches hardware (keys and engraved symbols) for Irish keyboards name[Group1] = "Irish"; key {[ grave, notsign, brokenbar, NoSymbol ]}; key {[ 1, exclam, exclamdown, onesuperior ]}; key {[ 2, quotedbl, trademark, twosuperior ]}; key {[ 3, sterling, copyright, threesuperior ]}; key {[ 4, dollar, EuroSign, cent ]}; key {[ 5, percent, section, dagger ]}; key {[ 6, asciicircum, dead_circumflex, permille ]}; key {[ 7, ampersand, paragraph, U204A ]}; // Tironian Et key {[ 8, asterisk, dead_diaeresis, enfilledcircbullet ]}; key {[ 9, parenleft, ordfeminine, periodcentered ]}; key {[ 0, parenright, masculine, degree ]}; key {[ minus, underscore, endash, emdash ]}; key {[ equal, plus, notequal, plusminus ]}; key {[ q, Q, oe, OE ]}; key {[ w, W, dead_abovedot, dead_abovedot ]}; key {[ e, E, eacute, Eacute ]}; key {[ r, R, registered, permille ]}; key {[ t, T, thorn, THORN ]}; key {[ y, Y, yen, mu ]}; key {[ u, U, uacute, Uacute ]}; key {[ i, I, iacute, Iacute ]}; key {[ o, O, oacute, Oacute ]}; key {[ p, P, singlelowquotemark, NoSymbol ]}; key {[ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ]}; key {[ bracketright, braceright, leftsinglequotemark, rightsinglequotemark ]}; key {[ a, A, aacute, Aacute ]}; key {[ s, S, ssharp, U1E9E ]}; // ß ẞ key {[ d, D, eth, ETH ]}; key {[ f, F, function, NoSymbol ]}; key {[ g, G, copyright, NoSymbol ]}; key {[ h, H, dead_abovedot, dead_abovedot ]}; key {[ j, J, idotless, onequarter ]}; key {[ k, K, dead_abovering, onehalf ]}; key {[ l, L, acute, threequarters ]}; key {[ semicolon, colon, ellipsis, doubledagger ]}; key {[ apostrophe, at, ae, AE ]}; key {[ numbersign, asciitilde, guillemotleft, guillemotright ]}; key {[ backslash, bar, dead_grave, dead_acute ]}; key {[ z, Z, leftanglebracket, rightanglebracket ]}; key {[ x, X, multiply, approximate ]}; key {[ c, C, dead_cedilla, cedilla ]}; key {[ v, V, dead_caron, NoSymbol ]}; key {[ b, B, diaeresis, NoSymbol ]}; key {[ n, N, dead_tilde, NoSymbol ]}; key {[ m, M, macron, NoSymbol ]}; key {[ comma, less, lessthanequal, doublelowquotemark ]}; key {[ period, greater, greaterthanequal, singlelowquotemark ]}; key {[ slash, question, division, questiondown ]}; key {[ space, space, nobreakspace, nobreakspace ]}; include "level3(ralt_switch)" include "compose(rwin)" }; partial alphanumeric_keys xkb_symbols "CloGaelach" { // Adds support for Clo Gaelach (old orthography for Irish). // Changes from "basic": // - dotted consonants as AltGr+consonant or AltGr+Shift+consonant (TPSDFGCBM) // - long lowercase r as AltGr+R // - long lowercase s as AltGr+Z // - long lowercase s dotted as AltGr+Shift+Z // - some symbols moved around to retain them // - several characters unlikely to be used are lost // The long letters are needed only where the font provides // both the long and short forms as different glyphs. include "ie(basic)" name[Group1] = "CloGaelach"; key {[ grave, notsign, brokenbar, ssharp ]}; key {[ r, R, U027C, registered ]}; // long r key {[ t, T, tabovedot, Tabovedot ]}; key {[ p, P, pabovedot, Pabovedot ]}; key {[ s, S, sabovedot, Sabovedot ]}; key {[ d, D, dabovedot, Dabovedot ]}; key {[ f, F, fabovedot, Fabovedot ]}; key {[ g, G, gabovedot, Gabovedot ]}; key {[ z, Z, U017F, U1E9B ]}; // long s, long s dot key {[ c, C, cabovedot, Cabovedot ]}; key {[ b, B, babovedot, Babovedot ]}; key {[ m, M, mabovedot, Mabovedot ]}; key {[ backslash, bar, dead_grave, dead_cedilla ]}; }; partial alphanumeric_keys xkb_symbols "UnicodeExpert" { // This should eventually be a "Unicode Expert" layout like the Mac one. name[Group1] = "Irish (UnicodeExpert)"; key {[ grave, notsign, brokenbar, brokenbar ]}; key {[ 1, exclam, NoSymbol, NoSymbol ]}; key {[ 2, quotedbl, dead_doubleacute, dead_doubleacute ]}; key {[ 3, sterling, NoSymbol, NoSymbol ]}; key {[ 4, dollar, EuroSign, EuroSign ]}; key {[ 5, percent, NoSymbol, NoSymbol ]}; key {[ 6, asciicircum, dead_circumflex, dead_circumflex ]}; key {[ 7, ampersand, U204A, U204A ]}; // Tironian Et key {[ 8, asterisk, dead_abovering, dead_abovering ]}; key {[ 9, parenleft, dead_breve, dead_breve ]}; key {[ 0, parenright, dead_ogonek, dead_ogonek ]}; key {[ minus, underscore, dead_macron, dead_macron ]}; key {[ equal, plus, NoSymbol, NoSymbol ]}; key {[ q, Q, NoSymbol, NoSymbol ]}; key {[ w, W, NoSymbol, NoSymbol ]}; key {[ e, E, eacute, Eacute ]}; key {[ r, R, U027C, U027C ]}; // long r key {[ t, T, NoSymbol, NoSymbol ]}; key {[ y, Y, NoSymbol, NoSymbol ]}; key {[ u, U, uacute, Uacute ]}; key {[ i, I, iacute, Iacute ]}; key {[ o, O, oacute, Oacute ]}; key {[ p, P, NoSymbol, NoSymbol ]}; key {[ bracketleft, braceleft, dead_hook, dead_hook ]}; key {[ bracketright, braceright, dead_horn, dead_horn ]}; key {[ a, A, aacute, Aacute ]}; key {[ s, S, NoSymbol, NoSymbol ]}; key {[ d, D, NoSymbol, NoSymbol ]}; key {[ f, F, NoSymbol, NoSymbol ]}; key {[ g, G, NoSymbol, NoSymbol ]}; key {[ h, H, dead_abovedot, dead_abovedot ]}; key {[ j, J, NoSymbol, NoSymbol ]}; key {[ k, K, NoSymbol, NoSymbol ]}; key {[ l, L, NoSymbol, NoSymbol ]}; key {[ semicolon, colon, dead_diaeresis, dead_diaeresis ]}; key {[ apostrophe, at, dead_acute, dead_acute ]}; key {[ numbersign, asciitilde, dead_tilde, dead_tilde ]}; key {[ backslash, bar, dead_grave, dead_grave ]}; key {[ z, Z, U017F, U1E9B ]}; // long s, long s dot key {[ x, X, NoSymbol, NoSymbol ]}; key {[ c, C, NoSymbol, NoSymbol ]}; key {[ v, V, dead_caron, dead_caron ]}; key {[ b, B, NoSymbol, NoSymbol ]}; key {[ n, N, NoSymbol, NoSymbol ]}; key {[ m, M, NoSymbol, NoSymbol ]}; key {[ comma, less, dead_cedilla, dead_cedilla ]}; key {[ period, greater, dead_abovedot, dead_abovedot ]}; key {[ slash, question, dead_belowdot, dead_belowdot ]}; key {[ space, space, space, nobreakspace ]}; include "level3(ralt_switch)" include "compose(rwin)" }; partial alphanumeric_keys xkb_symbols "ogam" { // Ogham keyboard layout as recommended in I.S. 434:1999. name[Group1] = "Ogham"; key.type[Group1] = "ONE_LEVEL"; key {[ U169C ]}; // OGHAM REVERSED FEATHER MARK // Top row: QWERTYUIOP key {[ U168A ]}; // OGHAM LETTER CEIRT key {[ U1695 ]}; // OGHAM LETTER EABHADH key {[ U1693 ]}; // OGHAM LETTER EADHADH key {[ U168F ]}; // OGHAM LETTER RUIS key {[ U1688 ]}; // OGHAM LETTER TINNE key {[ U1698 ]}; // OGHAM LETTER IFIN key {[ U1692 ]}; // OGHAM LETTER UR key {[ U1694 ]}; // OGHAM LETTER IODHADH key {[ U1691 ]}; // OGHAM LETTER ONN key {[ U169A ]}; // OGHAM LETTER PEITH // Middle row: ASDFGHJKL key {[ U1690 ]}; // OGHAM LETTER AILM key {[ U1684 ]}; // OGHAM LETTER SAIL key {[ U1687 ]}; // OGHAM LETTER DAIR key {[ U1683 ]}; // OGHAM LETTER FEARN key {[ U168C ]}; // OGHAM LETTER GORT key {[ U1686 ]}; // OGHAM LETTER UATH key {[ U1697 ]}; // OGHAM LETTER UILLEANN key {[ U1696 ]}; // OGHAM LETTER OR key {[ U1682 ]}; // OGHAM LETTER LUIS key {[ U1680 ]}; // OGHAM SPACE MARK key {[ U169B, U169C ], type[group1]="TWO_LEVEL" }; // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK // Bottom row: ZXCVBNM key {[ U168E ]}; // OGHAM LETTER STRAIF key {[ U1699 ]}; // OGHAM LETTER EAMHANCHOLL key {[ U1689 ]}; // OGHAM LETTER COLL key {[ U168D ]}; // OGHAM LETTER NGEADAL key {[ U1681 ]}; // OGHAM LETTER BEITH key {[ U1685 ]}; // OGHAM LETTER NION key {[ U168B ]}; // OGHAM LETTER MUIN // As an extension because and may not be // available or sensible. These are also a bit more // intuitive on a standard Irish keyboard. key {[ U169C ]}; // OGHAM REVERSED FEATHER MARK key {[ U169B ]}; // OGHAM FEATHER MARK key {[ U1680 ]}; // OGHAM SPACE MARK key {[ space ]}; include "compose(rwin)" }; partial alphanumeric_keys xkb_symbols "ogam_is434" { // This has the full layout of IS434 with an Irish QWERTY keyboard, // and the Ogham characters accessed when CAPS LOCK is on. name[Group1] = "Ogham (IS434)"; key.type[Group1] = "THREE_LEVEL"; key {[ grave, notsign, U169C ]}; // OGHAM REVERSED FEATHER MARK key {[ 1, exclam ], type[group1]="TWO_LEVEL" }; key {[ 2, quotedbl ], type[group1]="TWO_LEVEL" }; key {[ 3, sterling ], type[group1]="TWO_LEVEL" }; key {[ 4, dollar, EuroSign ]}; key {[ 5, percent ], type[group1]="TWO_LEVEL" }; key {[ 6, asciicircum ], type[group1]="TWO_LEVEL" }; key {[ 7, ampersand, U204A ]}; // Tironian Et key {[ 8, asterisk ], type[group1]="TWO_LEVEL" }; key {[ 9, parenleft ], type[group1]="TWO_LEVEL" }; key {[ 0, parenright ], type[group1]="TWO_LEVEL" }; key {[ minus, underscore ], type[group1]="TWO_LEVEL" }; key {[ equal, plus ], type[group1]="TWO_LEVEL" }; key {[ q, Q, U168A ]}; // OGHAM LETTER CEIRT key {[ w, W, U1695 ]}; // OGHAM LETTER EABHADH key {[ e, E, U1693 ]}; // OGHAM LETTER EADHADH key {[ r, R, U168F ]}; // OGHAM LETTER RUIS key {[ t, T, U1688 ]}; // OGHAM LETTER TINNE key {[ y, Y, U1698 ]}; // OGHAM LETTER IFIN key {[ u, U, U1692 ]}; // OGHAM LETTER UR key {[ i, I, U1694 ]}; // OGHAM LETTER IODHADH key {[ o, O, U1691 ]}; // OGHAM LETTER ONN key {[ p, P, U169A ]}; // OGHAM LETTER PEITH key {[ a, A, U1690 ]}; // OGHAM LETTER AILM key {[ s, S, U1684 ]}; // OGHAM LETTER SAIL key {[ d, D, U1687 ]}; // OGHAM LETTER DAIR key {[ f, F, U1683 ]}; // OGHAM LETTER FEARN key {[ g, G, U168C ]}; // OGHAM LETTER GORT key {[ h, H, U1686 ]}; // OGHAM LETTER UATH key {[ j, J, U1697 ]}; // OGHAM LETTER UILLEANN key {[ k, K, U1696 ]}; // OGHAM LETTER OR key {[ l, L, U1682 ]}; // OGHAM LETTER LUIS key {[ numbersign, asciitilde, U1680 ]}; // OGHAM SPACE MARK key {[ backslash, bar, U169B, U169C ], type[group1] = "FOUR_LEVEL_ALPHABETIC" }; // OGHAM FEATHER MARK, OGHAM REVERSED FEATHER MARK key {[ z, Z, U168E ]}; // OGHAM LETTER STRAIF key {[ x, X, U1699 ]}; // OGHAM LETTER EAMHANCHOLL key {[ c, C, U1689 ]}; // OGHAM LETTER COLL key {[ v, V, U168D ]}; // OGHAM LETTER NGEADAL key {[ b, B, U1681 ]}; // OGHAM LETTER BEITH key {[ n, N, U1685 ]}; // OGHAM LETTER NION key {[ m, M, U168B ]}; // OGHAM LETTER MUIN key {[ comma, less, U169C ]}; // OGHAM REVERSED FEATHER MARK key {[ period, greater, U169B ]}; // OGHAM FEATHER MARK key {[ slash, question, U1680 ]}; // OGHAM SPACE MARK key {[ space, space, space ]}; // The standard says the Ogham characters should be accessed when Caps Lock // is down; not clear if this means it should lock but seems logical. key {[ ISO_Level3_Lock ], type[group1] = "ONE_LEVEL" }; // Also allow access to Ogham characters using RALT, for convenience. include "level3(ralt_switch)" // Redefine Scroll Lock as locking shift, in case that's needed. key {[ Shift_Lock ], type[group1] = "ONE_LEVEL" }; modifier_map Shift { Shift_Lock }; include "compose(rwin)" };