OLPC Urdu Keyboard

From OLPC
Revision as of 03:41, 10 October 2007 by Walter (talk | contribs)
Jump to: navigation, search
  This page is monitored by the OLPC team.


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

Urdu
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 0x100064d 0x100064b
key <AE01> 0x1E 2 1 exclam 0x10006F1 0x1000021
key <AE02> 0x1F 3 2 at 0x10006F2 0x1000600 C-@
key <AE03> 0x20 4 3 numbersign 0x10006F3 0x100002f
key <AE04> 0x21 5 4 dollar 0x10006F4 0x1000626
key <AE05> 0x22 6 5 percent 0x10006F5 0x100060F
key <AE06> 0x23 7 6 asciicircum 0x10006F6 0x1000610 C-^
key <AE07> 0x24 8 7 ampersand 0x10006F7 0x1000654
key <AE08> 0x25 9 8 asterisk 0x10006F8 0x100064c
key <AE09> 0x26 10 9 parenleft 0x10006F9 0x1000029
key <AE10> 0x27 11 0 parenright 0x10006F0 0x1000028
key <AE11> 0x2D 12 minus underscore 0x1000623 0x1000651 C-_
key <AE12> 0x2E 13 equal plus 0x1000624 0x1000622
key <BKSP> 0x2A 15 backspace delete
key <TAB> 0x2B 16 tab back tab
key <AD01> 0x14 17 q Q Greek_omega Greek_OMEGA C-Q
key <AD02> 0x1A 18 w W oslash Oslash C-W
key <AD03> 0x08 19 e E œ Œ C-E
key <AD04> 0x15 20 r R 0x1000327 0x1000327 C-R combining cedilla
key <AD05> 0x17 21 t T 0x100032E 0x100032E C-T combining breve below
key <AD06> 0x1C 22 y Y 0x1000325 0x1000325 C-Y combining ring below
key <AD07> 0x18 23 u U 0x100032D 0x100032D C-U combining circumflex below
key <AD08> 0x0C 24 i I 0x100032C 0x100032C C-I combining caron below
key <AD09> 0x12 25 o O 0x1000323 0x1000323 C-O combining dot below
key <AD10> 0x13 26 p P 0x1000304 0x1000304 C-P combining diaeresis below
key <AD11> 0x2F 27 [ { 0x1000331 0x1000331 C-[ combining macron below
key <AD12> 0x30 28 ] } 0x1000330 0x1000330 C-] combining tilde below
key <CAPS> 0xE0 58 control
key <AC01> 0x04 31 a A æ Æ C-A
key <AC02> 0x16 32 s S ssharp ssharp C-S
key <AC03> 0x07 33 d D eth ETH C-D
key <AC04> 0x09 34 f F thorn THORN C-F
key <AC05> 0x0A 35 g G sterling sterling C-G
key <AC06> 0x0B 36 h H Eurosign Eurosign C-H
key <AC07> 0x0D 37 j J C-J
key <AC08> 0x0E 38 k K C-K
key <AC09> 0x0F 39 l L C-L
key <AC10> 0x33 40 semicolon colon masculine ordfeminine
key <AC11> 0x34 41 apostrophe quotedbl currency currency
key <BKSL> 0x31 42 backslash bar section section C-\
key <RTRN> 0x28 43 enter insert
key <LFSH> 0xE1 44 left shift
key <AB01> 0x1D 46 z Z C-Z
key <AB02> 0x1B 47 x X C-X
key <AB03> 0x06 48 c C ccedilla Ccedilla C-C
key <AB04> 0x19 49 v V C-V
key <AB05> 0x05 50 b B C-B
key <AB06> 0x11 51 n N ntilde Ntilde C-N
key <AB07> 0x10 52 m M mu mu C-M
key <AB08> 0x36 53 comma less guillemontleft guillemontleft
key <AB09> 0x37 54 period greater guillemontright guillemontright
key <AB10> 0x38 55 slash question questiondown questiondown
key <RTSH> 0xE5 57 right shift
key <UP> 0x52 83 up arrow page up
key <LSGT> 0x73 56 multiply division 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
// based on a keyboard map from an 'xkb/symbols/ur' file
// Contact: Nadir Durrani
// E-mail : aquadurrani@hotmail.com
// $XFree86$
// olpc mods

partial default alphanumeric_keys
xkb_symbols "basic" {
   name[Group1]= "Arabic";

// NOTES:
//
// there is also combined shadda diacritis in AltGr position of simple
// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan
// should a third state be added to Group2 ?
//

   key <TLDE> {  [     0x100064d  ,       0x100064b      ]     };
   key <AE01> {  [     0x10006F1  ,       0x1000021      ]     };
   key <AE02> {  [     0x10006F2  ,       0x1000003      ]     };
   key <AE03> {  [     0x10006F3  ,       0x100002f      ]     };
   key <AE04> {  [     0x10006F4  ,       0x1000626      ]     };
   key <AE05> {  [     0x10006F5  ,       0x1000003      ]     };
   key <AE06> {  [     0x10006F6  ,       0x10006d6      ]     };
   key <AE07> {  [     0x10006F7  ,       0x1000654      ]     };
   key <AE08> {  [     0x10006F8  ,       0x100064c      ]     };
   key <AE09> {  [     0x10006F9  ,       0x1000029      ]     };
   key <AE10> {  [     0x10006F0  ,       0x1000028      ]     };
   key <AE11> {  [     0x1000623  ,       0x1000651      ]     };
   key <AE12> {  [     0x1000624  ,       0x1000622      ]     };
   key <AD01> {  [     0x1000642  ,       0x1000652      ]     };
   key <AD02> {  [     0x1000648  ,       0x10000a3      ]     };
   key <AD03> {  [     0x1000639  ,       0x10000a5      ]     };
   key <AD04> {  [     0x1000631  ,       0x1000691      ]     };
   key <AD05> {  [     0x100062a  ,       0x1000679      ]     };
   key <AD06> {  [     0x10006d2  ,       0x1000601      ]     };
   key <AD07> {  [     0x1000621  ,       0x100060c      ]     };
   key <AD08> {  [     0x10006cc  ,       0x1000670      ]     };
   key <AD09> {  [     0x10006c1  ,       0x10006c3      ]     };
   key <AD10> {  [     0x100067e  ,       0x100064f      ]     };
   key <AD11> {  [     0x100005d  ,       0x1000670      ]     };
   key <AD12> {  [     0x100005b  ,       0x1000670      ]     };

   key <AC01> {  [     0x1000627  ,       0x1000653      ]     };
   key <AC02> {  [     0x1000633  ,       0x1000635      ]     };
   key <AC03> {  [     0x100062f  ,       0x1000688      ]     };
   key <AC04> {  [     0x1000641  ,       0x1000003      ]     };
   key <AC05> {  [     0x10006af  ,       0x100063a      ]     };
   key <AC06> {  [     0x10006be  ,       0x100062d      ]     };
   key <AC07> {  [     0x100062c  ,       0x1000636      ]     };
   key <AC08> {  [     0x10006a9  ,       0x100062e      ]     };
   key <AC09> {  [     0x1000644  ,       0x1000613      ]     };
   key <AC10> {  [     0x100061b  ,       0x100003a      ]     };
   key <AC11> {  [     0x1000670  ,       0x1000022       ]     };
   key <BKSL> {  [     0x100060e ,        0x1000614      ]     };

   key <LSGT> {  [            bar ,       brokenbar      ]     };
   key <AB01> {  [     0x1000632  ,       0x1000630      ]     };
   key <AB02> {  [     0x1000634  ,       0x1000698      ]     };
   key <AB03> {  [     0x1000686  ,       0x100062b      ]     };
   key <AB04> {  [     0x1000637  ,       0x1000638      ]     };
   key <AB05> {  [     0x1000628  ,       0x1000612      ]     };
   key <AB06> {  [     0x1000646  ,       0x10006ba      ]     };
   key <AB07> {  [     0x1000645  ,       0x1000003      ]     };
   key <AB08> {  [     0x100060c  ,       0x1000650      ]     };
   key <AB09> {  [     0x10006d4  ,       0x100064e      ]     };
   key <AB10> {  [     0x1000003  ,       0x100061f      ]     };

   // End alphanumeric section
};

partial alphanumeric_keys
xkb_symbols "qwerty" {
   include "pc/ar(basic)"
};

partial alphanumeric_keys
xkb_symbols "azerty" {
   include "pc/ar(basic)"

   // the north african arabic keyboard differs from the middle east one
   // by the numeric row; it follows French keyboard style
   //
   // PROBLEM: some chars are inaccessible: ! @ # $ % ^ *
   // should they go elsewhere? replace " ' that are now in double ?
   // also, dead_circumflex and dead_diaeresis from French keyboard
   // as well as ugrave are missing, which questions the utility of the
   // other accentuated latin letters. Maybe this is useful only with
   // a French keyboard in Group1 ? Then, shouldn't Group1 be filled ?

   key <AE01> {  [       ampersand,               1      ]       };
   key <AE02> {  [          eacute,               2      ]       };
   key <AE03> {  [        quotedbl,               3      ]       };
   key <AE04> {  [      apostrophe,               4      ]       };
   key <AE05> {  [       parenleft,               5      ]       };
   key <AE06> {  [           minus,               6      ]       };
   key <AE07> {  [          egrave,               7      ]       };
   key <AE08> {  [      underscore,               8      ]       };
   key <AE09> {  [        ccedilla,               9      ]       };
   key <AE10> {  [          agrave,               0      ]       };
   key <AE11> {  [      parenright,          degree      ]       };
};


partial alphanumeric_keys
xkb_symbols "digits" {
   include "pc/ar(basic)"

   // use arabic script digits

   key <AE01> {  [       0x1000661,          exclam      ]       };
   key <AE02> {  [       0x1000662,              at      ]       };
   key <AE03> {  [       0x1000663,      numbersign      ]       };
   key <AE04> {  [       0x1000664,          dollar      ]       };
   key <AE05> {  [       0x1000665,         percent      ]       };
   key <AE06> {  [       0x1000666,     asciicircum      ]       };
   key <AE07> {  [       0x1000667,       ampersand      ]       };
   key <AE08> {  [       0x1000668,        asterisk      ]       };
   key <AE09> {  [       0x1000669,       parenleft      ]       };
   key <AE10> {  [       0x1000660,      parenright      ]       };
};

partial alphanumeric_keys
xkb_symbols "qwerty_digits" {
   include "pc/ar(digits)"
};

partial alphanumeric_keys
xkb_symbols "azerty_digits" {
   include "pc/ar(azerty)"
      key <AE01> {  [       ampersand,       0x1000661      ]       };
   key <AE02> {  [          eacute,       0x1000662      ]       };
   key <AE03> {  [        quotedbl,       0x1000663      ]       };
   key <AE04> {  [      apostrophe,       0x1000664      ]       };
   key <AE05> {  [       parenleft,       0x1000665      ]       };
   key <AE06> {  [           minus,       0x1000666      ]       };
   key <AE07> {  [          egrave,       0x1000667      ]       };
   key <AE08> {  [      underscore,       0x1000668      ]       };
   key <AE09> {  [        ccedilla,       0x1000669      ]       };
   key <AE10> {  [          agrave,       0x1000660      ]       };
};

partial alphanumeric_keys
xkb_symbols "olpc" {
  name[Group1]= "Arabic OLPC-Urdu"; 

   include "ur(basic)"

   key <AE02> {  [     0x10006F2  ,       0x1000600      ]     };
   key <AE05> {  [     0x10006F5  ,       0x100060F      ]     };
   key <AE06> {  [     0x10006F6  ,       0x1000610      ]     };
 
   key <AD01> {  [     0x1000642  ,       0x10006E1      ]     };
   key <AD02> {  [     0x1000648  ,       0x100FDFA      ]     };
   key <AD03> {  [     0x1000639  ,       0x1000611      ]     };
   // [] swapped due to keyboard misprint
   key <AD11> {  [     0x100005B  ,       0x1000603      ]     };
   key <AD12> {  [     0x100005D  ,       0x100060E      ]     };

   key <AC04> {  [     0x1000641  ,       0x1000656      ]     };
   key <AC09> {  [     0x1000644  ,       0x1000612      ]     };
   key <AC11> {  [     0x1000027  ,       0x1000022      ]     };
   key <BKSL> {  [     0x1000602  ,       0x1000614      ]     };

   key <AB05> {  [     0x1000628  ,       0x1000613      ]     };
   key <AB07> {  [     0x1000645  ,       0x1000658      ]     };
   key <AB10> {  [     0x1000615  ,       0x100061F      ]     };

   //language key
   key <AB11> {  [ISO_Next_Group  ,  ISO_Prev_Group      ]     };
};

Pakistan URDU
row key unmodified shift alt gr alt gr shift ctrl ctrl shift fn comment
1 (top) 131 esc HK_01 esc view src
130 ??? HK_00 camera microphone
112 F1 view mesh analog 1
132 HK_02 analog 2
113 F2 view friends analog 3
137 HK_07 analog 4
114 F3 view home analog 5
138 HK_08 analog 6
115 F4 view activity analog 7
120 F5 analog 8
139 HK_09 analog 9
121 F6 analog 10
140 HK_10 analog 11
122 F7 analog 12
141 HK_11 analog 13
123 F8 analog 14
116 F9 volume down analog 15
142 HK_12 analog 16
117 F10 analog 17
143 HK_13 analog 18
118 F11 analog 19
144 HK_14 analog 20
119 F12 volume up analog 21
135 ??? HK_05 chat/corkboard
136 ??? HK_06 frame
2 1 ` ~
2 1 ! 1 ! F1
3 2 @ 2 @ C-@ F2
4 3 # 3 # F3
5 4 $ 4 $ F4
6 5 % 5 % F5 U+20AC (EURO)
7 6 ^ 6 £ C-^ F6
8 7 & 7 F7
9 8 * 8 * F8
10 9 ( 9 ( F9
11 0 ) 0 ) F10
12 ـ _ ـ _ C-_ F11 U+0640 (TATWEEL)
13 = + = + F12
3 15 backspace backspace/delete (U+007F)
16 tab back tab C-tab C-tab
17 q Q ط ظ C-Q C-Q U+0637 (TAH) U+0638 (ZAH)
18 w W ص ض C-W C-W U+0635 (SAD) U+0636 (DAD)
19 e E ھ ذ C-E C-E U+06BE (HEH DOACHASHMEE) U+0630 (THAL)
20 r R د ڈ C-R C-R U+062F (DAL) U+0688 (DDAL)
21 t T ٹ ث C-T C-T U+0679 (TTEH) U+062B (THET)
22 y Y پ ّ C-Y C-Y U+067E (PEH) U+0651 (SHADDA)
23 u U ت ۃ C-U C-U U+062A (TEH ) U+06C3 (THE MARBUTA GOAL)
24 i I ب ِ C-I C-I U+0628 (BEH) U+FE7A (KASRA)
25 o O ج چ C-O C-O U+062C (JEEM) U+0686 (TCHEH)
26 p P ح خ C-P C-P U+062D (HAH) U+062E (KHAH)
27 [ { ] } C-] C-]
28 ] } [ { C-[ C-[
4 58 control
31 a A م ژ C-A C-A U+0645 (MEEM) U+0698 (JEH)
32 s S و ز C-S C-S U+0648 (WAW) U+0632 (ZAIN)
33 d D ر ڑ C-D C-D U+0631 (REH) U+0691 (RREH)
34 f F ن ں C-F C-F U+0646 (NOON) U+06BA (NOON GHUNNA)
35 g G ل ۂ C-G C-G U+0644 (LAM) U+06C2 (HEH GOAL w/ HAMZA ABOVE)
36 h H ه ء C-H C-H U+06C1 (HEH GOAL) U+0621 (HAMZA)
37 j J ا آ C-J C-J U+0627 (ALEF) U+FE81 (ALEF w/ MADDA Above)
38 k K ک گ C-K C-K U+06A9 (KEHEH) U+06AF (GAF)
39 l L ي C-L C-L U+0649 (ALEF MAKSURA) U+064A (YEH)
40 ; : ؛ : U+061B (ARABIC SEMICOLON)
41 ' '
29 \ C-\ C-\
43 enter
5 44 left shift
46 z Z ق ZWJ C-Z C-Z U+0642 (QAF) U+200D (Zero width Joiner)
47 x X ف ZWNJ C-X C-X U+0641 (FEH) U+200C (Zero width non-Joiner)
48 c C ے ۓ C-C C-C U+06D2 (YEH BARREE) U+06D3 (YEH BARREE w/ HAMZA ABOVE)
49 v V س LRM C-V C-V U+0634 (SHEEN) U+200E (Left-to-Right Mark)
50 b B ش C-B C-B U+0633 (SEEN) U+0624 (WAW W/ HAMZA ABOVE)
51 n N غ ئ C-N C-N U+063A (GHAIN) U+0626 (YEH w/ HAMZA Above)
52 m M ع RLM C-M C-M U+0639(AIN) U+200F (Right-to-Left Mark)
53 , > ، > U+060C (ARABIC COMMA)
54 . < ۔ < U+06D4 (FULL STOP)
55 / ? / ؟ U+061F (Arabic Question Mark)
57 right shift insert
83 up arrow page up
134 AB/ﺃب HK_04 language key
6 (bottom) 59 fn
unassigned left grab
60 alt
61 space unassigned keyboard light
62 alt gr
133 right grab HK_03
79 left arrow home
84 down arrow page down
89 right arrow end