OLPC Keyboard layouts/xkb
Jump to navigation
Jump to search
partial alphanumeric_keys xkb_symbols "olpc" { name[Group1]= "U.S. English - OLPC International"; include "us(basic)" // OLPC international US English keyboard layout. // It's a little different from the usual international layout. // See: http://wiki.laptop.org/go/Image:Keyboard_english.png key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] }; key <AE01> { [ 1, exclam, exclamdown, exclamdown ] }; key <AE02> { [ 2, at, notsign, notsign ] }; key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above key <AE08> { [ 8, asterisk, 0x1000324, 0x1000324 ] }; // combining caron above key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] }; key <AD02> { [ w, W, oslash, Oslash ] }; key <AD03> { [ e, E, oe, OE ] }; key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below key <AD10> { [ p, P, 0x1000304, 0x1000304 ] }; // combining diaeresis below key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below key <AC01> { [ a, A, ae, AE ] }; key <AC02> { [ s, S, ssharp, ssharp ] }; key <AC03> { [ d, D, eth, ETH ] }; key <AC04> { [ f, F, thorn, THORN ] }; key <AC06> { [ h, H, sterling, sterling ] }; key <AC07> { [ j, J, EuroSign, EuroSign ] }; key <AC10> { [ semicolon, colon, masculine, ordfeminine ] }; key <AC11> { [ apostrophe, quotedbl, currency, currency ] }; key <BKSL> { [ backslash, bar, section, section ] }; key <AB03> { [ c, C, ccedilla, Ccedilla ] }; key <AB06> { [ n, N, ntilde, Ntilde ] }; key <AB07> { [ m, M, mu, mu ] ); key <AB08> { [ comma, less, guillemontleft, guillemontleft ] }; key <AB09> { [ period, greater, guillemontright, guillemontright ] }; key <AB10> { [ slash, question, questiondown, questiondown ] }; key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc2" { include "us(olpc)" key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; };
OLPC section of the XKB symbol file (dead key variant)
XkbLayout "us" XkbVariant "dead_olpc"
This goes into /usr/share/X11/xkb/symbols/us
partial alphanumeric_keys xkb_symbols "dead_olpc" { name[Group1]= "U.S. English - OLPC International"; include "us(basic)" // OLPC international US English keyboard layout. // This version uses dead keys whenever possible // See: http://wiki.laptop.org/go/Image:Keyboard_english.png key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] }; key <AE01> { [ 1, exclam, exclamdown, exclamdown ] }; key <AE02> { [ 2, at, notsign, notsign ] }; key <AE03> { [ 3, numbersign, dead_grave, dead_grave ] }; key <AE04> { [ 4, dollar, dead_acute, dead_acute ] }; key <AE05> { [ 5, percent, dead_breve, dead_breve ] }; key <AE06> { [ 6,asciicircum, dead_abovering, dead_abovering ] }; key <AE07> { [ 7, ampersand, dead_circumflex, dead_circumflex ] }; key <AE08> { [ 8, asterisk, dead_caron, dead_caron ] }; key <AE09> { [ 9, parenleft, dead_abovedot, dead_abovedot ] }; key <AE10> { [ 0, parenright, dead_diaeresis, dead_diaeresis ] }; key <AE11> { [ minus, underscore, dead_macron, dead_macron ] }; key <AE12> { [ equal, plus, dead_tilde, dead_tilde ] }; key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] }; key <AD02> { [ w, W, oslash, Oslash ] }; key <AD03> { [ e, E, oe, OE ] }; key <AD04> { [ r, R, dead_cedilla, dead_cedilla ] }; key <AD05> { [ t, T, dead_belowbreve, dead_belowbreve] }; key <AD06> { [ y, Y, dead_belowring, dead_belowring] }; key <AD07> { [ u, U, dead_belowcircumflex, dead_belowcircumflex] }; key <AD08> { [ i, I,dead_belowcaron, dead_belowcaron] }; key <AD09> { [ o, O, dead_belowdot, dead_belowdot ] }; key <AD10> { [ p, P,dead_belowdiaeresis,dead_belowdiaeresis] }; key <AD11> { [ bracketleft, braceleft,dead_belowmacron,dead_belowmacron] }; key <AD12> { [bracketright, braceright,dead_belowtilde,dead_belowtilde] }; key <AC01> { [ a, A, ae, AE ] }; key <AC02> { [ s, S, ssharp, ssharp ] }; key <AC03> { [ d, D, eth, ETH ] }; key <AC04> { [ f, F, thorn, THORN ] }; key <AC06> { [ h, H, sterling, sterling ] }; key <AC07> { [ j, J, EuroSign, EuroSign ] }; key <AC10> { [ semicolon, colon, masculine, ordfeminine ] }; key <AC11> { [ apostrophe, quotedbl, currency, currency ] }; key <BKSL> { [ backslash, bar, section, section ] }; key <AB03> { [ c, C, ccedilla, Ccedilla ] }; key <AB06> { [ n, N, ntilde, Ntilde ] }; key <AB07> { [ m, M, mu, mu ] }; key <AB08> { [ comma, less, guillemotleft, guillemotleft ] }; key <AB09> { [ period, greater, guillemotright, guillemotright ] }; key <AB10> { [ slash, question, questiondown, questiondown ] }; key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc2" { include "us(dead_olpc)" key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; };
This goes into /usr/share/X11/locale/en_US.UTFF-8/Compose
<dead_belowring> <A> : Ḁ Abelowring <dead_belowring> <a> : ḁ Abelowring <dead_belowmacron> <B> : Ḇ Bbelowmacron <dead_belowmacron> <b> : ḇ Bbelowmacron <dead_belowmacron> <K> : Ḵ Kbelowmacron <dead_belowmacron> <k> : ḵ kbelowmacron <dead_belowmacron> <N> : Ṉ Nbelowmacron <dead_belowmacron> <n> : ṉ nbelowmacron <dead_belowmacron> <R> : Ṟ Rbelowmacron <dead_belowmacron> <r> : ṟ rbelowmacron <dead_belowmacron> <T> : Ṯ Tbelowmacron <dead_belowmacron> <t> : ṯ tbelowmacron <dead_belowmacron> <Z> : Ẕ Zbelowmacron <dead_belowmacron> <z> : ẕ zbelowmacron <dead_belowmacron> <h> : ẖ hbelowmacron <dead_belowcircumflex> <r> : Ḙ Ebelowcircumflex <dead_belowcircumflex> <S> : ḙ ebelowcircumflex <dead_belowcircumflex> <s> : Ṋ Nbelowcircumflex <dead_belowcircumflex> <T> : ṋ nbelowcircumflex <dead_belowcircumflex> <t> : Ṱ Tbelowcircumflex <dead_belowcircumflex> <V> : ṱ tbelowcircumflex <dead_belowcircumflex> <v> : Ṷ Ubelowcircumflex <dead_belowcircumflex> <Z> : ṷ ubelowcircumflex <dead_belowtilde> <E> : Ḛ Ebelowtilde <dead_belowtilde> <e> : ḛ ebelowtilde <dead_belowtilde> <I> : Ḭ Ibelowtilde <dead_belowtilde> <i> : ḭ ibelowtilde <dead_belowtilde> <U> : Ṵ Ubelowtilde <dead_belowtilde> <u> : ṵ ubelowtilde <dead_belowbreve> <H> : Ḫ Hbelowbreve <dead_belowbreve> <h> : ḫ hbelowbreve <dead_belowdiaeresis> <U> : Ṳ Ubelowdiaeresis <dead_belowdiaeresis> <u> : ṳ ubelowdiaeresis <dead_belowcaron> <R> : Rbelowcaron <dead_belowcaron> <r> : rbelowcaron <dead_belowcaron> <C> : Cbelowcaron <dead_belowcaron> <c> : cbelowcaron <dead_belowcaron> <S> : Sbelowcaron <dead_belowcaron> <s> : sbelowcaron