OLPC Urdu Keyboard: Difference between revisions
Line 152: | Line 152: | ||
|key <LFSH> ||0xE1 ||44 ||left shift || || || || || || |
|key <LFSH> ||0xE1 ||44 ||left shift || || || || || || |
||
|- |
|- |
||
|key <AB01> ||0x1D ||46 ||z ||Z || || ||C-Z || || |
|key <AB01> ||0x1D ||46 ||z ||Z ||0x1000632 ||0x1000630 ||C-Z || || |
||
|- |
|- |
||
|key <AB02> ||0x1B ||47 ||x ||X || || ||C-X || || |
|key <AB02> ||0x1B ||47 ||x ||X ||0x1000634 ||0x1000698 ||C-X || || |
||
|- |
|- |
||
|key <AB03> ||0x06 ||48 ||c ||C || |
|key <AB03> ||0x06 ||48 ||c ||C ||0x1000686 ||0x100062b ||C-C || || |
||
|- |
|- |
||
|key <AB04> ||0x19 ||49 ||v ||V || || ||C-V || || |
|key <AB04> ||0x19 ||49 ||v ||V ||0x1000637 ||0x1000638 ||C-V || || |
||
|- |
|- |
||
|key <AB05> ||0x05 ||50 ||b ||B || || ||C-B || || |
|key <AB05> ||0x05 ||50 ||b ||B ||0x1000628 ||0x1000613 ||C-B || || |
||
|- |
|- |
||
|key <AB06> ||0x11 ||51 ||n ||N || |
|key <AB06> ||0x11 ||51 ||n ||N ||0x1000646 ||0x10006ba ||C-N || || |
||
|- |
|- |
||
|key <AB07> ||0x10 ||52 ||m ||M || |
|key <AB07> ||0x10 ||52 ||m ||M ||0x1000645 ||0x1000658 ||C-M || || |
||
|- |
|- |
||
|key <AB08> ||0x36 ||53 ||comma ||less || |
|key <AB08> ||0x36 ||53 ||comma ||less ||0x100060c ||0x1000650 || || || |
||
|- |
|- |
||
|key <AB09> ||0x37 ||54 ||period ||greater || |
|key <AB09> ||0x37 ||54 ||period ||greater ||0x10006d4 ||0x100064e || || || |
||
|- |
|- |
||
|key <AB10> ||0x38 ||55 ||slash ||question || |
|key <AB10> ||0x38 ||55 ||slash ||question ||0x1000615 ||0x100061F || || || |
||
|- |
|- |
||
|key <RTSH> ||0xE5 ||57 ||right shift || || || || || || |
|key <RTSH> ||0xE5 ||57 ||right shift || || || || || || |
||
Line 176: | Line 176: | ||
|key <UP> ||0x52 ||83 ||up arrow || || || || ||page up || |
|key <UP> ||0x52 ||83 ||up arrow || || || || ||page up || |
||
|- |
|- |
||
|key <LSGT> ||0x73 ||56 ||multiply ||division || |
|key <LSGT> ||0x73 ||56 ||multiply ||division ||bar ||brokenbar || ||HK_04 || |
||
|- |
|- |
||
| || || || || || || || || || |
| || || || || || || || || || |
||
Line 199: | Line 199: | ||
|} |
|} |
||
==OLPC section of the XKB symbol file== |
|||
<pre> |
<pre> |
||
// 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 |
partial alphanumeric_keys |
||
xkb_symbols "olpc" { |
xkb_symbols "olpc" { |
||
Line 374: | Line 233: | ||
</pre> |
</pre> |
||
==old== |
|||
{| border="1" |
{| border="1" |
||
|- |
|- |
Revision as of 07:58, 10 October 2007
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
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 | 0x1000642 | 0x10006E1 | C-Q | ||
key <AD02> | 0x1A | 18 | w | W | 0x1000648 | 0x100FDFA | C-W | ||
key <AD03> | 0x08 | 19 | e | E | 0x1000639 | 0x1000611 | C-E | ||
key <AD04> | 0x15 | 20 | r | R | 0x1000631 | 0x1000691 | C-R | ||
key <AD05> | 0x17 | 21 | t | T | 0x100062a | 0x1000679 | C-T | ||
key <AD06> | 0x1C | 22 | y | Y | 0x10006d2 | 0x1000601 | C-Y | ||
key <AD07> | 0x18 | 23 | u | U | 0x1000621 | 0x100060c | C-U | ||
key <AD08> | 0x0C | 24 | i | I | 0x10006cc | 0x1000670 | C-I | ||
key <AD09> | 0x12 | 25 | o | O | 0x10006c1 | 0x10006c3 | C-O | ||
key <AD10> | 0x13 | 26 | p | P | 0x100067e | 0x100064f | C-P | ||
key <AD11> | 0x2F | 27 | [ | { | 0x100005B | 0x1000603 | C-[ | ||
key <AD12> | 0x30 | 28 | ] | } | 0x100005D | 0x100060E | C-] | ||
key <CAPS> | 0xE0 | 58 | control | ||||||
key <AC01> | 0x04 | 31 | a | A | 0x1000627 | 0x1000653 | C-A | ||
key <AC02> | 0x16 | 32 | s | S | 0x1000633 | 0x1000635 | C-S | ||
key <AC03> | 0x07 | 33 | d | D | 0x100062f | 0x1000688 | C-D | ||
key <AC04> | 0x09 | 34 | f | F | 0x1000641 | 0x1000656 | C-F | ||
key <AC05> | 0x0A | 35 | g | G | 0x10006af | 0x100063a | C-G | ||
key <AC06> | 0x0B | 36 | h | H | 0x10006be | 0x100062d | C-H | ||
key <AC07> | 0x0D | 37 | j | J | 0x100062c | 0x1000636 | C-J | ||
key <AC08> | 0x0E | 38 | k | K | 0x10006a9 | 0x100062e | C-K | ||
key <AC09> | 0x0F | 39 | l | L | 0x1000644 | 0x1000612 | C-L | ||
key <AC10> | 0x33 | 40 | semicolon | colon | 0x100061b | 0x100003a | |||
key <AC11> | 0x34 | 41 | apostrophe | quotedbl | 0x1000027 | 0x1000022 | |||
key <BKSL> | 0x31 | 42 | backslash | bar | 0x1000602 | 0x1000614 | C-\ | ||
key <RTRN> | 0x28 | 43 | enter | insert | |||||
key <LFSH> | 0xE1 | 44 | left shift | ||||||
key <AB01> | 0x1D | 46 | z | Z | 0x1000632 | 0x1000630 | C-Z | ||
key <AB02> | 0x1B | 47 | x | X | 0x1000634 | 0x1000698 | C-X | ||
key <AB03> | 0x06 | 48 | c | C | 0x1000686 | 0x100062b | C-C | ||
key <AB04> | 0x19 | 49 | v | V | 0x1000637 | 0x1000638 | C-V | ||
key <AB05> | 0x05 | 50 | b | B | 0x1000628 | 0x1000613 | C-B | ||
key <AB06> | 0x11 | 51 | n | N | 0x1000646 | 0x10006ba | C-N | ||
key <AB07> | 0x10 | 52 | m | M | 0x1000645 | 0x1000658 | C-M | ||
key <AB08> | 0x36 | 53 | comma | less | 0x100060c | 0x1000650 | |||
key <AB09> | 0x37 | 54 | period | greater | 0x10006d4 | 0x100064e | |||
key <AB10> | 0x38 | 55 | slash | question | 0x1000615 | 0x100061F | |||
key <RTSH> | 0xE5 | 57 | right shift | ||||||
key <UP> | 0x52 | 83 | up arrow | page up | |||||
key <LSGT> | 0x73 | 56 | multiply | division | bar | brokenbar | 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
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 ] }; };
old
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 |