massive patch from OLPC
[xorg/xkeyboard-config] / symbols / ara
1 // $XKeyboardConfig$
2
3 // based on a keyboard map from an 'xkb/symbols/ar' file
4
5 partial default alphanumeric_keys 
6 xkb_symbols "basic" {
7     name[Group1]= "Arabic";
8
9 // NOTES:
10 //
11 // there is also combined shadda diacritis in AltGr position of simple
12 // diacritics fatha, fathatan, damma, dammatan, kasra and kasratan
13 // should a third state be added to Group2 ?
14 //
15
16     key <TLDE> {  [     Arabic_thal,      Arabic_shadda   ]     };
17     key <AE01> {  [               1,          exclam      ]     };
18     key <AE02> {  [               2,              at      ]     };
19     key <AE03> {  [               3,      numbersign      ]     };
20     key <AE04> {  [               4,          dollar      ]     };
21     key <AE05> {  [               5,         percent      ]     };
22     key <AE06> {  [               6,     asciicircum      ]     };
23     key <AE07> {  [               7,       ampersand      ]     };
24     key <AE08> {  [               8,        asterisk      ]     };
25     key <AE09> {  [               9,      parenright      ]     };
26     key <AE10> {  [               0,       parenleft      ]     };
27     key <AE11> {  [           minus,      underscore      ]     };
28     key <AE12> {  [           equal,            plus      ]     };
29                                                 
30     key <AD01> {  [      Arabic_dad,     Arabic_fatha     ]     };
31     key <AD02> {  [      Arabic_sad,     Arabic_fathatan  ]     };
32     key <AD03> {  [     Arabic_theh,     Arabic_damma     ]     };
33     key <AD04> {  [      Arabic_qaf,     Arabic_dammatan  ]     };
34     key <AD05> {  [      Arabic_feh,       0x100fef9      ]     };
35     key <AD06> {  [   Arabic_ghain, Arabic_hamzaunderalef ]     };
36     key <AD07> {  [      Arabic_ain,         grave        ]     };
37     key <AD08> {  [       Arabic_ha,        division      ]     };
38     key <AD09> {  [     Arabic_khah,       multiply       ]     };
39     key <AD10> {  [      Arabic_hah,    Arabic_semicolon  ]     };
40     key <AD11> {  [     Arabic_jeem,        less          ]     };
41     key <AD12> {  [      Arabic_dal,        greater       ]     };
42
43     key <AC01> {  [    Arabic_sheen,   Arabic_kasra       ]     };
44     key <AC02> {  [     Arabic_seen,   Arabic_kasratan    ]     };
45     key <AC03> {  [      Arabic_yeh,       bracketright   ]     };
46     key <AC04> {  [      Arabic_beh,       bracketleft    ]     };
47     key <AC05> {  [      Arabic_lam,       0x100fef7      ]     };
48     key <AC06> {  [     Arabic_alef,   Arabic_hamzaonalef ]     };
49     key <AC07> {  [      Arabic_teh,      Arabic_tatweel  ]     };
50     key <AC08> {  [     Arabic_noon,      Arabic_comma    ]     };
51     key <AC09> {  [     Arabic_meem,         slash        ]     };
52     key <AC10> {  [      Arabic_kaf,           colon      ]     };
53     key <AC11> {  [      Arabic_tah,        quotedbl      ]     };
54
55     key <LSGT> {  [             bar,      brokenbar       ]     };
56     key <AB01> {  [Arabic_hamzaonyeh,    asciitilde       ]     };
57     key <AB02> {  [    Arabic_hamza,      Arabic_sukun    ]     };
58     key <AB03> {  [Arabic_hamzaonwaw,      braceright     ]     };
59     key <AB04> {  [       Arabic_ra,       braceleft      ]     };
60     key <AB05> {  [       0x100fefb,      0x100fef5       ]     };
61     key <AB06> {  [Arabic_alefmaksura, Arabic_maddaonalef ]     };
62     key <AB07> {  [Arabic_tehmarbuta,    apostrophe       ]     };
63     key <AB08> {  [      Arabic_waw,         comma        ]     };
64     key <AB09> {  [     Arabic_zain,         period       ]     };
65     key <AB10> {  [      Arabic_zah, Arabic_question_mark ]     };
66
67     // End alphanumeric section
68 };
69
70 partial alphanumeric_keys
71 xkb_symbols "qwerty" {
72     include "ara(basic)"
73     name[Group1]= "Arabic - qwerty";
74 };
75
76 partial alphanumeric_keys
77 xkb_symbols "azerty" {
78     include "ara(basic)"
79     name[Group1]= "Arabic - azerty";
80
81         // the north african arabic keyboard differs from the middle east one
82         // by the numeric row; it follows French keyboard style
83         //
84         // PROBLEM: some chars are inaccessible: ! @ # $ % ^ *
85         // should they go elsewhere? replace " ' that are now in double ?
86         // also, dead_circumflex and dead_diaeresis from French keyboard
87         // as well as ugrave are missing, which questions the utility of the
88         // other accentuated latin letters. Maybe this is useful only with
89         // a French keyboard in Group1 ? Then, shouldn't Group1 be filled ?
90
91     key <AE01> {  [       ampersand,               1      ]       };
92     key <AE02> {  [          eacute,               2      ]       };
93     key <AE03> {  [        quotedbl,               3      ]       };
94     key <AE04> {  [      apostrophe,               4      ]       };
95     key <AE05> {  [       parenleft,               5      ]       };
96     key <AE06> {  [           minus,               6      ]       };
97     key <AE07> {  [          egrave,               7      ]       };
98     key <AE08> {  [      underscore,               8      ]       };
99     key <AE09> {  [        ccedilla,               9      ]       };
100     key <AE10> {  [          agrave,               0      ]       };
101     key <AE11> {  [      parenright,          degree      ]       };
102 };
103
104 partial alphanumeric_keys
105 xkb_symbols "digits" {
106     include "ara(basic)"
107     name[Group1]= "Arabic - digits";
108
109         // use arabic script digits
110
111     key <AE01> {  [       0x1000661,          exclam      ]       };
112     key <AE02> {  [       0x1000662,              at      ]       };
113     key <AE03> {  [       0x1000663,      numbersign      ]       };
114     key <AE04> {  [       0x1000664,          dollar      ]       };
115     key <AE05> {  [       0x1000665,  Arabic_percent      ]       };
116     key <AE06> {  [       0x1000666,     asciicircum      ]       };
117     key <AE07> {  [       0x1000667,       ampersand      ]       };
118     key <AE08> {  [       0x1000668,        asterisk      ]       };
119     key <AE09> {  [       0x1000669,      parenright      ]       };
120     key <AE10> {  [       0x1000660,       parenleft      ]       };
121 };
122
123 partial alphanumeric_keys
124 xkb_symbols "qwerty_digits" {
125     include "ara(digits)"
126     name[Group1]= "Arabic - qwerty/digits";
127 };
128
129 partial alphanumeric_keys
130 xkb_symbols "azerty_digits" {
131     include "ara(azerty)"
132     name[Group1]= "Arabic - azerty/digits";
133         
134     key <AE01> {  [       ampersand,       0x1000661      ]       };
135     key <AE02> {  [          eacute,       0x1000662      ]       };
136     key <AE03> {  [        quotedbl,       0x1000663      ]       };
137     key <AE04> {  [      apostrophe,       0x1000664      ]       };
138     key <AE05> {  [       parenleft,       0x1000665      ]       };
139     key <AE06> {  [           minus,       0x1000666      ]       };
140     key <AE07> {  [          egrave,       0x1000667      ]       };
141     key <AE08> {  [      underscore,       0x1000668      ]       };
142     key <AE09> {  [        ccedilla,       0x1000669      ]       };
143     key <AE10> {  [          agrave,       0x1000660      ]       };
144 };
145
146 // Arabic keyboard using Buckwalter transliteration
147 // http://www.qamus.org/transliteration.htm
148 // Martin Vidner
149
150 // symbol names: see /usr/X11R6/include/X11/keysymdef.h (XFree86-devel.rpm)
151
152 partial alphanumeric_keys 
153 xkb_symbols "buckwalter" {
154     name[Group1]= "Arabic - Buckwalter";
155
156     // ARABIC LETTER SUPERSCRIPT ALEF
157     key <TLDE> {  [       0x1000670,  Arabic_shadda       ]       };
158
159     // Arabic_0 .. Arabic_9 do not work in Kate,
160     // Unicode never seems to work worse.
161     key <AE01> {  [       0x1000661,   VoidSymbol         ]       };
162     key <AE02> {  [       0x1000662,   VoidSymbol         ]       };
163     key <AE03> {  [       0x1000663,   VoidSymbol         ]       };
164     key <AE04> {  [       0x1000664,   Arabic_sheen       ]       };
165     key <AE05> {  [       0x1000665,   Arabic_percent     ]       };
166     key <AE06> {  [       0x1000666,   VoidSymbol         ]       };
167     key <AE07> {  [       0x1000667,   Arabic_hamzaonwaw  ]       };
168     key <AE08> {  [       0x1000668,   Arabic_thal        ]       };
169     // ORNATE LEFT PARENTHESIS
170     key <AE09> {  [       0x1000669,   0x100fd3e          ]       };
171     // ORNATE RIGHT PARENTHESIS
172     key <AE10> {  [       0x1000660,   0x100fd3f          ]       };
173     key <AE11> {  [       minus,       Arabic_tatweel     ]       };
174     key <AE12> {  [       equal,       plus               ]       };
175                                                 
176     key <AD01> {  [      Arabic_qaf,   VoidSymbol         ]       };
177     key <AD02> {  [      Arabic_waw,   Arabic_hamzaonwaw  ]       };
178     key <AD03> {  [      VoidSymbol,   Arabic_ain         ]       };
179     key <AD04> {  [      Arabic_ra,    VoidSymbol         ]       };
180     key <AD05> {  [      Arabic_teh,   Arabic_tah         ]       };
181     key <AD06> {  [      Arabic_yeh,   Arabic_alefmaksura ]       };
182     key <AD07> {  [      Arabic_damma, VoidSymbol         ]       };
183     key <AD08> {  [      Arabic_kasra, Arabic_hamzaunderalef ]    };
184     key <AD09> {  [      Arabic_sukun, Arabic_hamzaonalef ]       };
185     key <AD10> {  [      Arabic_tehmarbuta, VoidSymbol    ]       };
186     // ARABIC LETTER ALEF WASLA
187     key <AD11> {  [      VoidSymbol,   0x1000671          ]       };
188     key <AD12> {  [      VoidSymbol,   Arabic_hamzaonyeh  ]       };
189
190     key <AC01> {  [    Arabic_fatha,   Arabic_alef        ]       };
191     key <AC02> {  [    Arabic_seen,    Arabic_sad         ]       };
192     key <AC03> {  [    Arabic_dal,     Arabic_dad         ]       };
193     key <AC04> {  [    Arabic_feh,     Arabic_fathatan    ]       };
194     key <AC05> {  [    Arabic_ghain,   VoidSymbol         ]       };
195     key <AC06> {  [    Arabic_ha,      Arabic_hah         ]       };
196     key <AC07> {  [    Arabic_jeem,    VoidSymbol         ]       };
197     key <AC08> {  [    Arabic_kaf,     Arabic_kasratan    ]       };
198     key <AC09> {  [    Arabic_lam,     VoidSymbol         ]       };
199     key <AC10> {  [    Arabic_semicolon, VoidSymbol       ]       };
200     key <AC11> {  [    Arabic_hamza,   VoidSymbol         ]       };
201
202     key <BKSL> {  [      VoidSymbol,   Arabic_maddaonalef ]     };
203
204 //    key <LSGT> {  [             bar,      brokenbar     ]     };
205
206     key <AB01> {  [    Arabic_zain,    Arabic_zah         ]       };
207     key <AB02> {  [    Arabic_khah,    VoidSymbol         ]       };
208     key <AB03> {  [    VoidSymbol,     VoidSymbol         ]       };
209     key <AB04> {  [    Arabic_theh,    VoidSymbol         ]       };
210     key <AB05> {  [    Arabic_beh,     VoidSymbol         ]       };
211     key <AB06> {  [    Arabic_noon,    Arabic_dammatan    ]       };
212     key <AB07> {  [    Arabic_meem,    VoidSymbol         ]       };
213     key <AB08> {  [    Arabic_comma,   Arabic_hamzaunderalef ]    };
214     // ARABIC FULL STOP (Urdu)
215     key <AB09> {  [    0x10006d4,      Arabic_hamzaonalef ]       };
216     key <AB10> {  [    VoidSymbol,     Arabic_question_mark ]     };
217
218     // End alphanumeric section
219 };
220
221 partial alphanumeric_keys
222 xkb_symbols "olpc" {
223
224     include "ara(basic)"
225
226     // As part of the olpc design some changes were made to the Arabic
227     // keyboard design. Major changes are:
228     //
229     //  * Removed the lam-alef single character. Poeple type as they
230     //    pronounce, and lam-alef is just a visual formatting of the
231     //    sequence and is not often used on the keyboard. It is
232     //    similar to the Allah single character, which is also not on
233     //    the keyboard.
234     //  * Moved the following keys:
235     //     o Thal from TLDE to AB05: Due to space limitation on the
236     //       keybaord, but also accessibility
237     //     o Shadda from TLDE to AD05
238     //  * Placed currency letters on number keys and moved the ^ and &
239     //    characters to lower keys (This change is worth revisiting
240     //    before end of test period)
241
242     key <TLDE> {  [           grave,      asciitilde  ] };
243
244     key <AE01> {  [       0x1000661,          exclam  ] };
245     key <AE02> {  [       0x1000662,              at  ] };
246     key <AE03> {  [       0x1000663,      numbersign  ] };
247     key <AE04> {  [       0x1000664,          dollar  ] };
248     key <AE05> {  [       0x1000665,         percent  ] };
249     key <AE06> {  [       0x1000666,        sterling  ] };
250     key <AE07> {  [       0x1000667,        EuroSign  ] };
251     key <AE08> {  [       0x1000668,        asterisk  ] };
252     key <AE09> {  [       0x1000669,       parenleft  ] };
253     key <AE10> {  [       0x1000660,      parenright  ] };
254
255     key <AD05> {  [      Arabic_feh,   Arabic_shadda  ] };
256
257     key <AD08> {  [      Arabic_heh,        division  ] };
258     key <AD11> {  [     Arabic_jeem                   ] };
259     key <AD12> {  [      Arabic_dal                   ] };
260
261     key <AC01> {  [    Arabic_sheen,            less  ] };
262     key <AC02> {  [     Arabic_seen,         greater  ] };
263     key <AC05> {  [      Arabic_lam,       ampersand  ] };
264     key <AC10> {  [      Arabic_kaf                   ] };
265     key <AC11> {  [      Arabic_tah                   ] };
266
267     key <BKSL> {  [       backslash,             bar  ] };
268
269
270     // REH isolated form?
271     key <AB04> {  [       Arabic_ra,  Arabic_kasratan ] };
272     key <AB05> {  [     Arabic_thal,      asciicircum ] };
273     // Language key
274     key <I219> {  [  ISO_Next_Group,   ISO_Prev_Group ] };
275 };