OLPC Keyboard layouts/xkb

From OLPC
< OLPC Keyboard layouts
Revision as of 23:56, 21 September 2008 by 24.37.30.118 (talk) (Files names)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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