OLPC Urdu Keyboard

From OLPC
Jump to navigation Jump to 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-MP.png
// 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