OLPC Khmer Keyboard: Difference between revisions
Line 14: | Line 14: | ||
<pre> |
<pre> |
||
// $XKeyboardConfig: xkbdesc/symbols/kh,v 1.2 2005/12/31 02:02:46 svu Exp $ |
|||
// |
|||
// khmer unicode keyboard for XFree86 4.3 or XOrg |
|||
// (might work with older versions, not tested) |
|||
// |
|||
// layout defined by National Information Communications Technology Development Authority (NiDA) |
|||
// http://www.nida.gov.kh |
|||
// |
|||
// version: 1.0.1 |
|||
// |
|||
// date: 14.09.2005 |
|||
// |
|||
// author: Jens Herden (jens at khmeros.info) |
|||
// |
|||
// |
|||
// understanding the symbols: |
|||
// |
|||
// 0x100yyyy = unicode, yyyy is hexcode |
|||
// codes that are not assigned in unicode (0x10017fb-0x10017ff), |
|||
// are used to make compositions for special vowels |
|||
// |
|||
// voidsymbol = no symbol for this combination |
|||
// |
|||
// all other symbol are defined in: /usr/X11/include/X11/keysymdef.h |
|||
// but with a leading 'XK_' |
|||
// |
|||
partial default alphanumeric_keys |
partial default alphanumeric_keys |
||
xkb_symbols "olpc" { |
xkb_symbols "olpc" { |
||
Line 46: | Line 19: | ||
// Contact Walter@laptop.org |
// Contact Walter@laptop.org |
||
// there are four levels defined: |
|||
// |
|||
// normal shift right-alt right-alt + shift |
|||
// |
|||
// keys: `1234567890-=\ |
// keys: `1234567890-=\ |
Revision as of 15:12, 25 January 2008
OLPC keyboard layouts
Instructions for setting up keyboard switching in Terminal are on the Customizing NAND images page. On bilingual XOs, the multiplication/division key is replaced with a keyboard switching key.
Changing the language of the keyboard is independent of changing the language currently displayed. The language currently displayed can be changed by using the Language section of the Sugar Control Panel.
Membrane keyboard layouts
English (US international); Spanish (Latin America); Portuguese (Brazilian); Amharic (Ethiopic); Arabic; Nigerian (Igbo, Hausa, Yoruba); French; Thai; Urdu; Cyrillic (Russian); Turkish; Nepali; Mongolian; Kazakh; Devanagari; Uzbek; Pashto; Dari; Armenian; Khmer; Pulaar; Italian; Kreyòl; German; Chinese (Simplified); OLPC AZERTY
Non-membrane keyboard layouts
Starting with the XO-1.5 HS ("High School") edition, the XO laptop has a traditional (non-membrane) keyboard available as an option: English (US International); Spanish (Latin America);
Blank Keyboard Artwork
Artwork defining the inner dimensions of the membrane keyboard is available here: keyboard-blank.svg
Khmer keyboard layout
OLPC section of the XKB symbol file
To use the XKB Khmer layout along with US layout, you may need to edit /etc/X11/xorg.conf. This will make "us" the first and "kh" a second layout:
XkbLayout "us,kh" XkbVariant "olpc2,olpc"
partial default alphanumeric_keys xkb_symbols "olpc" { include "kh(basic)" // Contact Walter@laptop.org // keys: `1234567890-=\ key <TLDE> { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] }; key <AE01> { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] }; key <AE02> { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] }; key <AE03> { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] }; key <AE04> { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] }; key <AE05> { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] }; key <AE06> { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] }; key <AE07> { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] }; key <AE08> { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] }; key <AE09> { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] }; key <AE10> { [ 0x10017e0, parenright, braceright, 0x10017f0 ] }; key <AE11> { [ 0x10017a5, 0x10017cc, x, voidsymbol ] }; key <AE12> { [ 0x10017b2, 0x10017ce, equal, voidsymbol ] }; key <BKSL> { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] }; // keys: qwertyuiop[] key <AD01> { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] }; key <AD02> { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] }; key <AD03> { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] }; key <AD04> { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] }; key <AD05> { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] }; key <AD06> { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] }; key <AD07> { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] }; key <AD08> { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] }; key <AD09> { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] }; key <AD10> { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] }; key <AD11> { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] }; key <AD12> { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] }; // keys: asdfghjkl;' key <AC01> { [ 0x10017b6, voidsymbol, voidsymbol, 0x10019ec ] }; // U17B6+U17C6 key <AC02> { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] }; key <AC03> { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] }; key <AC04> { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] }; key <AC05> { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] }; key <AC06> { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] }; key <AC07> { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] }; key <AC08> { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] }; key <AC09> { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] }; key <AC10> { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] }; key <AC11> { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] }; // keys: zxcvbnm,./ key <AB01> { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] }; key <AB02> { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] }; key <AB03> { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] }; key <AB04> { [ 0x100179c, voidsymbol, voidsymbol, 0x10019fa ] }; // U17C1+U17C7 key <AB05> { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] }; key <AB06> { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] }; key <AB07> { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] }; key <AB08> { [ voidsymbol, voidsymbol, comma, 0x10019fe ] }; // U17BB+U17C6; U17BB+U17C7 key <AB09> { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] }; key <AB10> { [ 0x10017ca, question, slash, voidsymbol ] }; key <SPCE> { [ 0x100200b, space, 0x10000a0, voidsymbol ] }; //language key key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; };