OLPC Urdu Keyboard
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
Urdu keyboard layout
[[Media:Media:Example.ogg[[Me{| class="wikitable" |- ! header 1 ! header 2 ! header 3 |- | row 1, cell 1 | row 1, cell 2 | row 1, cell 3 |- | row 2, cell 1 | row 2, cell 2 | row 2, cell 3 |}dia:Example.ogg]]]]
Symbol Table
XKB KEY | HID | key | unmodified | shift | alt gr | alt gr shift | ctrl | fn | comment |
---|---|---|---|---|---|---|---|---|---|
0x38 | 110 | esc | HK_01 | ||||||
0x79 | 140 | HK_00 | search | ||||||
0x3A | 112 | XK_ViewMesh | F1, analog 1 | ||||||
0x77 | 141 | HK_02 | analog 2 | ||||||
0x3B | 113 | XK_ViewFriends | F2, analog 3 | ||||||
0x76 | 142 | HK_07 | analog 4 | ||||||
0x3C | 114 | XK_ViewHome | F3, analog 5 | ||||||
0x75 | 143 | HK_08 | analog 6 | ||||||
0x3D | 115 | XK_ViewActivity | F4, analog 7 | ||||||
0x3E | 116 | F5, analog 8 | |||||||
0x74 | 144 | HK_09 | analog 9 | ||||||
0x3F | 117 | F6, analog 10 | |||||||
0x73 | 145 | HK_10 | analog 11 | ||||||
0x40 | 118 | F7, analog 12 | |||||||
0x72 | 146 | HK_11 | analog 13 | ||||||
0x41 | 119 | F8, analog 14 | |||||||
0x42 | 120 | F9, analog 15 | |||||||
0x71 | 147 | HK_12 | analog 16 | ||||||
0x43 | 121 | F10, analog 17 | |||||||
0x70 | 148 | HK_13 | analog 18 | ||||||
0x44 | 122 | F11, analog 19 | |||||||
0x6F | 149 | HK_14 | analog 20 | ||||||
0x45 | 123 | F12, analog 21 | |||||||
0x6E | 150 | HK_05 | bulletin board | ||||||
0x5D | 129 | XK_Menu | HK_06 | frame | |||||
key <TLDE> | 0x01 | 1 | grave | asciitilde | 0x1000654 | 0x100064B | HAMZA ABOVE; FATHATAN | ||
key <AE01> | 0x1E | 2 | 1 | exclam | 0x10006F1 | 0x1000603 | ARABIC-INDIC DIGIT ONE; SIGN SAFHA | ||
key <AE02> | 0x1F | 3 | 2 | at | 0x10006F2 | 0x1000602 | C-@ | ARABIC-INDIC DIGIT TWO; ARABIC FOOTNOTE MARKER | |
key <AE03> | 0x20 | 4 | 3 | numbersign | 0x10006F3 | 0x1000601 | ARABIC-INDIC DIGIT THREE; SIGN SANAH | ||
key <AE04> | 0x21 | 5 | 4 | dollar | 0x10006F4 | 0x1000600 | ARABIC-INDIC DIGIT FOUR; ARABIC NUMBER SIGN | ||
key <AE05> | 0x22 | 6 | 5 | percent | 0x10006F5 | 0x100060F | ARABIC-INDIC DIGIT FIVE; SIGN MISRA | ||
key <AE06> | 0x23 | 7 | 6 | asciicircum | 0x10006F6 | 0x100060E | C-^ | ARABIC-INDIC DIGIT SIX; ARABIC POETIC VERSE SIGN | |
key <AE07> | 0x24 | 8 | 7 | ampersand | 0x10006F7 | 0x1000614 | ARABIC-INDIC DIGIT SEVEN; SIGN TAKHALLUS | ||
key <AE08> | 0x25 | 9 | 8 | asterisk | 0x10006F8 | 0x1000612 | ARABIC-INDIC DIGIT EIGHT; SIGN RAHMATULLAH ALAYHE | ||
key <AE09> | 0x26 | 10 | 9 | parenleft | 0x10006F9 | 0x1000611 | ARABIC-INDIC DIGIT NINE; SIGN ALAYHE ASSALLAM | ||
key <AE10> | 0x27 | 11 | 0 | parenright | 0x10006F0 | 0x1000613 | ARABIC-INDIC DIGIT ZERO; SIGN RADI ALLAHOU ANHU | ||
key <AE11> | 0x2D | 12 | minus | underscore | minus | 0x1000610 | C-_ | SALLALLAHOU; SIGN ALAYHE WASSALLAM | |
key <AE12> | 0x2E | 13 | equal | plus | equal | plus | |||
key <BKSP> | 0x2A | 15 | backspace | delete | |||||
key <TAB> | 0x2B | 16 | tab | back tab | |||||
key <AD01> | 0x14 | 17 | q | Q | 0x1000642 | 0x1000652 | C-Q | QAF; SUKUN | |
key <AD02> | 0x1A | 18 | w | W | 0x1000648 | 0x1000651 | C-W | FATHATAN; SHADDA | |
key <AD03> | 0x08 | 19 | e | E | 0x1000639 | 0x1000670 | C-E | AIN; SUPERSCRIPT ALEF | |
key <AD04> | 0x15 | 20 | r | R | 0x1000631 | 0x1000691 | C-R | REH; RREH | |
key <AD05> | 0x17 | 21 | t | T | 0x100062A | 0x1000679 | C-T | TEH; TTEH | |
key <AD06> | 0x1C | 22 | y | Y | 0x10006D2 | 0x100064E | C-Y | YEH BARREE; FATHA | |
key <AD07> | 0x18 | 23 | u | U | 0x1000621 | 0x1000626 | C-U | HAMZA; YEH WITH HAMZA ABOVE | |
key <AD08> | 0x0C | 24 | i | I | 0x10006CC | 0x1000650 | C-I | FARSI YEH; KASRA | |
key <AD09> | 0x12 | 25 | o | O | 0x10006C1 | 0x10006C3 | C-O | HEH GOAL; TEH MARBUTA GOAL | |
key <AD10> | 0x13 | 26 | p | P | 0x100067E | 0x100064F | C-P | PEH; DAMMA | |
key <AD11> | 0x2F | 27 | [ | { | 0x100FDFD | 0x100FDFA | C-[ | BISMILLAH AR-RAHMAN AR-RAHEEM; SALLALLAHOU ALAYHE WASALLAM | |
key <AD12> | 0x30 | 28 | ] | } | 0x100FDF2 | 0x100FDFB | C-] | ALLAH ISOLATED FORM; JALLAJALALOUHOU | |
key <CAPS> | 0xE0 | 58 | control | ||||||
key <AC01> | 0x04 | 31 | a | A | 0x1000627 | 0x1000622 | C-A | ALEF; ALEF WITH MADDA ABOVE | |
key <AC02> | 0x16 | 32 | s | S | 0x1000633 | 0x1000635 | C-S | SEEN; SAD | |
key <AC03> | 0x07 | 33 | d | D | 0x100062F | 0x1000688 | C-D | DAL; DDAL | |
key <AC04> | 0x09 | 34 | f | F | 0x1000641 | C-F | FEH | ||
key <AC05> | 0x0A | 35 | g | G | 0x10006AF | 0x100063A | C-G | GAF; GHAIN | |
key <AC06> | 0x0B | 36 | h | H | 0x100062D | 0x10006BE | C-H | HAH; HEH DOACHASHMEE | |
key <AC07> | 0x0D | 37 | j | J | 0x100062C | 0x1000636 | C-J | JEEM; DAD | |
key <AC08> | 0x0E | 38 | k | K | 0x10006A9 | 0x100062E | C-K | KEHEH; KHAH | |
key <AC09> | 0x0F | 39 | l | L | 0x1000644 | 0x1000656 | C-L | LAM; SUBSCRIPT ALEF | |
key <AC10> | 0x33 | 40 | semicolon | colon | 0x100061B | colon | |||
key <AC11> | 0x34 | 41 | apostrophe | quotedbl | apostrophe | quotedbl | |||
key <BKSL> | 0x31 | 42 | backslash | bar | backslash | bar | C-\ | ||
key <RTRN> | 0x28 | 43 | enter | insert | |||||
key <LFSH> | 0xE1 | 44 | left shift | ||||||
key <AB01> | 0x1D | 46 | z | Z | 0x1000632 | 0x1000630 | C-Z | ZAIN; THAL | |
key <AB02> | 0x1B | 47 | x | X | 0x1000634 | 0x1000698 | C-X | SHEEN; JEH | |
key <AB03> | 0x06 | 48 | c | C | 0x1000686 | 0x100062B | C-C | TCHEH; THEH | |
key <AB04> | 0x19 | 49 | v | V | 0x1000637 | 0x1000638 | C-V | TAH; ZAH | |
key <AB05> | 0x05 | 50 | b | B | 0x1000628 | C-B | BEH | ||
key <AB06> | 0x11 | 51 | n | N | 0x1000646 | 0x10006BA | C-N | NOON; NOON GHUNNA | |
key <AB07> | 0x10 | 52 | m | M | 0x1000645 | 0x1000658 | C-M | MEEM; MARK NOON GHUNNA | |
key <AB08> | 0x36 | 53 | comma | less | 0x100060C | 0x1000657 | ARABIC COMMA; INVERTED DAMMA | ||
key <AB09> | 0x37 | 54 | period | greater | 0x10006D4 | 0x100066B | ARABIC FULL STOP; DECIMAL SEPARATOR | ||
key <AB10> | 0x38 | 55 | slash | question | slash | 0x100061F | ARABIC QUESTION MARK | ||
key <RTSH> | 0xE5 | 57 | right shift | ||||||
key <UP> | 0x52 | 83 | up arrow | page up | |||||
key <LSGT> | 0x73 | 56 | ISO_Next_Group | ISO_Prev_Group | ISO_Next_Group | ISO_Prev_Group | HK_04 | ||
0xE1 | 59 | fn | |||||||
0x5B | 127 | XK_Grab_L | |||||||
key <LALT> | 0xE2 | 60 | alt | ||||||
key <SPCE> | 0x2C | 61 | space | XK_ViewSource | |||||
key <RALT> | 0xE6 | 62 | alt gr | ||||||
0x5C | 128 | XK_Grab_R | HK_03 | ||||||
key <LEFT> | 0x50 | 79 | left arrow | home | |||||
key <DOWN> | 0x51 | 84 | down arrow | page down | |||||
key <RGHT> | 0x4F | 89 | right arrow | end |
OLPC section of the XKB symbol file
To use the XKB Urdu layout along with US layout, you may need to edit /etc/X11/xorg.conf. This will make "us" the first and "pk" a second layout:
XkbLayout "us,pk" XkbVariant "olpc2,olpc"
partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Walter Bender <walter@laptop.org> include "pk(ara)" // Keys '~' - '=' key <TLDE> { [ 0x1000654, 0x100064B ] }; key <AE01> { [ 0x10006F1, 0x1000603 ] }; key <AE02> { [ 0x10006F2, 0x1000602 ] }; key <AE03> { [ 0x10006F3, 0x1000601 ] }; key <AE04> { [ 0x10006F4, 0x1000600 ] }; key <AE05> { [ 0x10006F5, 0x100060F ] }; key <AE06> { [ 0x10006F6, 0x100060E ] }; key <AE07> { [ 0x10006F7, 0x1000614 ] }; key <AE08> { [ 0x10006F8, 0x1000612 ] }; key <AE09> { [ 0x10006F9, 0x1000611 ] }; key <AE10> { [ 0x10006F0, 0x1000613 ] }; key <AE11> { [ minus, 0x1000610 ] }; key <AE12> { [ equal, plus ] }; //Keys 'Q' - ']' key <AD01> { [ 0x1000642, 0x1000652 ] }; key <AD02> { [ 0x1000648, 0x1000651 ] }; key <AD03> { [ 0x1000639, 0x1000670 ] }; key <AD04> { [ 0x1000631, 0x1000691 ] }; key <AD05> { [ 0x100062A, 0x1000679 ] }; key <AD06> { [ 0x10006D2, 0x100064E ] }; key <AD07> { [ 0x1000621, 0x1000626 ] }; key <AD08> { [ 0x10006CC, 0x1000650 ] }; key <AD09> { [ 0x10006C1, 0x10006C3 ] }; key <AD10> { [ 0x100067E, 0x100064F ] }; key <AD12> { [ 0x100FDFD, 0x100FDFA ] }; key <AD11> { [ 0x100FDF2, 0x100FDFB ] }; // Keys 'A' - ''' key <AC01> { [ 0x1000627, 0x1000622 ] }; key <AC02> { [ 0x1000633, 0x1000635 ] }; key <AC03> { [ 0x100062F, 0x1000688 ] }; key <AC04> { [ 0x1000641 ] }; //shift key not available key <AC05> { [ 0x10006AF, 0x100063A ] }; key <AC06> { [ 0x100062D, 0x10006BE ] }; key <AC07> { [ 0x100062C, 0x1000636 ] }; key <AC08> { [ 0x10006A9, 0x100062E ] }; key <AC09> { [ 0x1000644, 0x1000656 ] }; key <AC10> { [ 0x100061B, colon ] }; key <AC11> { [ quote, doublequote ] }; key <BKSL> { [ backslash, bar ] }; key <SPCE> { [ space ] }; // Keys: 'Z' - '/' key <AB01> { [ 0x1000632, 0x1000630 ] }; key <AB02> { [ 0x1000634, 0x1000698 ] }; key <AB03> { [ 0x1000686, 0x100062B ] }; key <AB04> { [ 0x1000637, 0x1000638 ] }; key <AB05> { [ 0x1000628 ] }; //shift key unavailable key <AB06> { [ 0x1000646, 0x10006BA ] }; key <AB07> { [ 0x1000645, 0x1000658 ] }; key <AB08> { [ 0x100060C, 0x1000657 ] }; key <AB09> { [ 0x10006D4, 0x100066B ] }; key <AB10> { [ slash, 0x100061F ] }; //language key key <I219> { [ISO_Next_Group , ISO_Prev_Group ] }; };