ara revision 9184b9c8
1default  partial alphanumeric_keys
2xkb_symbols "basic" {
3    name[Group1]= "Arabic";
4
5// NOTES:
6//
7// There is also a combined shadda diacritic in the AltGr position of the
8// simple diacritics fatha, fathatan, damma, dammatan, kasra and kasratan. (??)
9// Should a third state be added to Group2?
10
11    key <TLDE> {  [     Arabic_thal,   Arabic_shadda      ]     };
12    key <AE01> {  [               1,          exclam      ]     };
13    key <AE02> {  [               2,              at      ]     };
14    key <AE03> {  [               3,      numbersign      ]     };
15    key <AE04> {  [               4,          dollar      ]     };
16    key <AE05> {  [               5,         percent      ]     };
17    key <AE06> {  [               6,     asciicircum      ]     };
18    key <AE07> {  [               7,       ampersand      ]     };
19    key <AE08> {  [               8,        asterisk      ]     };
20    key <AE09> {  [               9,      parenright      ]     };
21    key <AE10> {  [               0,       parenleft      ]     };
22    key <AE11> {  [           minus,      underscore      ]     };
23    key <AE12> {  [           equal,            plus      ]     };
24
25    key <AD01> {  [      Arabic_dad,     Arabic_fatha     ]     };
26    key <AD02> {  [      Arabic_sad,  Arabic_fathatan     ]     };
27    key <AD03> {  [     Arabic_theh,     Arabic_damma     ]     };
28    key <AD04> {  [      Arabic_qaf,  Arabic_dammatan     ]     };
29    key <AD05> {  [      Arabic_feh,        0x100fef9,      0x10006a4   ]     };
30    key <AD06> {  [    Arabic_ghain, Arabic_hamzaunderalef]     };
31    key <AD07> {  [      Arabic_ain,            grave     ]     };
32    key <AD08> {  [       Arabic_ha,         division     ]     };
33    key <AD09> {  [     Arabic_khah,         multiply     ]     };
34    key <AD10> {  [      Arabic_hah, Arabic_semicolon     ]     };
35    key <AD11> {  [     Arabic_jeem,             less,      0x1000686   ]     };
36    key <AD12> {  [      Arabic_dal,          greater     ]     };
37
38    key <AC01> {  [    Arabic_sheen,     Arabic_kasra     ]     };
39    key <AC02> {  [     Arabic_seen,  Arabic_kasratan     ]     };
40    key <AC03> {  [      Arabic_yeh,     bracketright     ]     };
41    key <AC04> {  [      Arabic_beh,      bracketleft,      0x100067e   ]     };
42    key <AC05> {  [      Arabic_lam,        0x100fef7     ]     };
43    // ARABIC LETTER ALEF WASLA on AltGr
44    key <AC06> {  [     Arabic_alef, Arabic_hamzaonalef,    0x1000671   ]     };
45    key <AC07> {  [      Arabic_teh,   Arabic_tatweel     ]     };
46    key <AC08> {  [     Arabic_noon,     Arabic_comma     ]     };
47    key <AC09> {  [     Arabic_meem,            slash     ]     };
48    key <AC10> {  [      Arabic_kaf,            colon,      0x10006af   ]     };
49    key <AC11> {  [      Arabic_tah,         quotedbl     ]     };
50
51    key <LSGT> {  [             bar,        brokenbar     ]     };
52    key <AB01> {  [Arabic_hamzaonyeh,      asciitilde,      guillemotright ]};
53    key <AB02> {  [    Arabic_hamza,     Arabic_sukun,      guillemotleft ]};
54    key <AB03> {  [Arabic_hamzaonwaw,      braceright     ]     };
55    key <AB04> {  [       Arabic_ra,        braceleft     ]     };
56    key <AB05> {  [       0x100fefb,        0x100fef5     ]     };
57    // ARABIC LETTER SUPERSCRIPT ALEF on AltGr
58    key <AB06> {  [Arabic_alefmaksura, Arabic_maddaonalef,  0x1000670 ]     };
59    key <AB07> {  [Arabic_tehmarbuta,      apostrophe     ]     };
60    key <AB08> {  [      Arabic_waw,            comma     ]     };
61    key <AB09> {  [     Arabic_zain,           period     ]     };
62    key <AB10> {  [      Arabic_zah, Arabic_question_mark ]     };
63};
64
65partial alphanumeric_keys
66xkb_symbols "qwerty" {
67    include "ara(basic)"
68    name[Group1]= "Arabic (QWERTY)";
69};
70
71partial alphanumeric_keys
72xkb_symbols "azerty" {
73    include "ara(basic)"
74    name[Group1]= "Arabic (AZERTY)";
75
76	// The North African Arabic keyboard differs from the Middle East one
77	// by the numeric row; it follows French keyboard style.
78	//
79	// PROBLEM: some characters are inaccessible: ! @ # $ % ^ *
80	// Should they go elsewhere?  Replacing " ' that are now doubled?
81	// Also, dead_circumflex and dead_diaeresis from French keyboard
82	// as well as ugrave are missing, which questions the utility of the
83	// other accentuated Latin letters. Maybe this is useful only with
84	// a French keyboard in Group1? Then, shouldn't Group1 be filled?
85
86    key <AE01> {  [       ampersand,               1      ]       };
87    key <AE02> {  [          eacute,               2      ]       };
88    key <AE03> {  [        quotedbl,               3      ]       };
89    key <AE04> {  [      apostrophe,               4      ]       };
90    key <AE05> {  [       parenleft,               5      ]       };
91    key <AE06> {  [           minus,               6      ]       };
92    key <AE07> {  [          egrave,               7      ]       };
93    key <AE08> {  [      underscore,               8      ]       };
94    key <AE09> {  [        ccedilla,               9      ]       };
95    key <AE10> {  [          agrave,               0      ]       };
96    key <AE11> {  [      parenright,          degree      ]       };
97};
98
99partial hidden alphanumeric_keys
100xkb_symbols "digits_KP" {
101
102    // Use Arabic-script digits on the keypad.
103
104    key <KP7>  {  [   KP_Home,       0x1000667 ] };
105    key <KP8>  {  [     KP_Up,       0x1000668 ] };
106    key <KP9>  {  [  KP_Prior,       0x1000669 ] };
107
108    key <KP4>  {  [   KP_Left,       0x1000664 ] };
109    key <KP5>  {  [  KP_Begin,       0x1000665 ] };
110    key <KP6>  {  [  KP_Right,       0x1000666 ] };
111
112    key <KP1>  {  [    KP_End,       0x1000661 ] };
113    key <KP2>  {  [   KP_Down,       0x1000662 ] };
114    key <KP3>  {  [   KP_Next,       0x1000663 ] };
115
116    key <KP0>  {  [ KP_Insert,       0x1000660 ] };
117};
118
119partial alphanumeric_keys
120xkb_symbols "digits" {
121    include "ara(basic)"
122    name[Group1]= "Arabic (digits)";
123
124    // Use Arabic-script digits on the numeric row.
125
126    key <AE01> {  [       0x1000661,          exclam      ]       };
127    key <AE02> {  [       0x1000662,              at      ]       };
128    key <AE03> {  [       0x1000663,      numbersign      ]       };
129    key <AE04> {  [       0x1000664,          dollar      ]       };
130    key <AE05> {  [       0x1000665,  Arabic_percent      ]       };
131    key <AE06> {  [       0x1000666,     asciicircum      ]       };
132    key <AE07> {  [       0x1000667,       ampersand      ]       };
133    key <AE08> {  [       0x1000668,        asterisk      ]       };
134    key <AE09> {  [       0x1000669,      parenright      ]       };
135    key <AE10> {  [       0x1000660,       parenleft      ]       };
136
137    include "ara(digits_KP)"
138};
139
140partial alphanumeric_keys
141xkb_symbols "qwerty_digits" {
142    include "ara(digits)"
143    name[Group1]= "Arabic (qwerty/digits)";
144};
145
146partial alphanumeric_keys
147xkb_symbols "azerty_digits" {
148    include "ara(azerty)"
149    name[Group1]= "Arabic (AZERTY/digits)";
150
151    key <AE01> {  [       ampersand,       0x1000661      ]       };
152    key <AE02> {  [          eacute,       0x1000662      ]       };
153    key <AE03> {  [        quotedbl,       0x1000663      ]       };
154    key <AE04> {  [      apostrophe,       0x1000664      ]       };
155    key <AE05> {  [       parenleft,       0x1000665      ]       };
156    key <AE06> {  [           minus,       0x1000666      ]       };
157    key <AE07> {  [          egrave,       0x1000667      ]       };
158    key <AE08> {  [      underscore,       0x1000668      ]       };
159    key <AE09> {  [        ccedilla,       0x1000669      ]       };
160    key <AE10> {  [          agrave,       0x1000660      ]       };
161};
162
163// Arabic keyboard using Buckwalter transliteration
164// http://www.qamus.org/transliteration.htm
165// Martin Vidner
166
167partial alphanumeric_keys
168xkb_symbols "buckwalter" {
169    name[Group1]= "Arabic (Buckwalter)";
170
171    // ARABIC LETTER SUPERSCRIPT ALEF
172    key <TLDE> {  [       0x1000670,  Arabic_shadda       ]       };
173
174    // Arabic_0 .. Arabic_9 do not work in Kate,
175    // Unicode never seems to work worse.
176    key <AE01> {  [       0x1000661,   VoidSymbol         ]       };
177    key <AE02> {  [       0x1000662,   VoidSymbol         ]       };
178    key <AE03> {  [       0x1000663,   VoidSymbol         ]       };
179    key <AE04> {  [       0x1000664,   Arabic_sheen       ]       };
180    key <AE05> {  [       0x1000665,   Arabic_percent     ]       };
181    key <AE06> {  [       0x1000666,   VoidSymbol         ]       };
182    key <AE07> {  [       0x1000667,   Arabic_hamzaonwaw  ]       };
183    key <AE08> {  [       0x1000668,   Arabic_thal        ]       };
184    // ORNATE LEFT PARENTHESIS
185    key <AE09> {  [       0x1000669,   0x100fd3e          ]       };
186    // ORNATE RIGHT PARENTHESIS
187    key <AE10> {  [       0x1000660,   0x100fd3f          ]       };
188    key <AE11> {  [       minus,       Arabic_tatweel     ]       };
189    key <AE12> {  [       equal,       plus               ]       };
190
191    key <AD01> {  [      Arabic_qaf,   VoidSymbol         ]       };
192    key <AD02> {  [      Arabic_waw,   Arabic_hamzaonwaw  ]       };
193    key <AD03> {  [      VoidSymbol,   Arabic_ain         ]       };
194    key <AD04> {  [      Arabic_ra,    VoidSymbol         ]       };
195    key <AD05> {  [      Arabic_teh,   Arabic_tah         ]       };
196    key <AD06> {  [      Arabic_yeh,   Arabic_alefmaksura ]       };
197    key <AD07> {  [      Arabic_damma, VoidSymbol         ]       };
198    key <AD08> {  [      Arabic_kasra, Arabic_hamzaunderalef ]    };
199    key <AD09> {  [      Arabic_sukun, Arabic_hamzaonalef ]       };
200    key <AD10> {  [      Arabic_tehmarbuta, VoidSymbol    ]       };
201    // ARABIC LETTER ALEF WASLA
202    key <AD11> {  [      VoidSymbol,   0x1000671          ]       };
203    key <AD12> {  [      VoidSymbol,   Arabic_hamzaonyeh  ]       };
204
205    key <AC01> {  [    Arabic_fatha,   Arabic_alef        ]       };
206    key <AC02> {  [    Arabic_seen,    Arabic_sad         ]       };
207    key <AC03> {  [    Arabic_dal,     Arabic_dad         ]       };
208    key <AC04> {  [    Arabic_feh,     Arabic_fathatan    ]       };
209    key <AC05> {  [    Arabic_ghain,   VoidSymbol         ]       };
210    key <AC06> {  [    Arabic_ha,      Arabic_hah         ]       };
211    key <AC07> {  [    Arabic_jeem,    VoidSymbol         ]       };
212    key <AC08> {  [    Arabic_kaf,     Arabic_kasratan    ]       };
213    key <AC09> {  [    Arabic_lam,     VoidSymbol         ]       };
214    key <AC10> {  [    Arabic_semicolon, VoidSymbol       ]       };
215    key <AC11> {  [    Arabic_hamza,   VoidSymbol         ]       };
216
217    key <BKSL> {  [    VoidSymbol,     Arabic_maddaonalef ]       };
218
219    key <AB01> {  [    Arabic_zain,    Arabic_zah         ]       };
220    key <AB02> {  [    Arabic_khah,    VoidSymbol         ]       };
221    key <AB03> {  [    VoidSymbol,     VoidSymbol         ]       };
222    key <AB04> {  [    Arabic_theh,    VoidSymbol         ]       };
223    key <AB05> {  [    Arabic_beh,     VoidSymbol         ]       };
224    key <AB06> {  [    Arabic_noon,    Arabic_dammatan    ]       };
225    key <AB07> {  [    Arabic_meem,    VoidSymbol         ]       };
226    key <AB08> {  [    Arabic_comma,   Arabic_hamzaunderalef ]    };
227    // ARABIC FULL STOP (Urdu)
228    key <AB09> {  [    0x10006d4,      Arabic_hamzaonalef ]       };
229    key <AB10> {  [    VoidSymbol,     Arabic_question_mark ]     };
230};
231
232partial alphanumeric_keys
233xkb_symbols "olpc" {
234
235    include "ara(basic)"
236
237    // As part of the OLPC design, some changes were made to the Arabic
238    // keyboard design. Major changes are:
239    //
240    //  * Removed the lam-alef single character. People type as they
241    //    pronounce, and lam-alef is just a visual formatting of the
242    //    sequence and is not often used on the keyboard. It is
243    //    similar to the Allah single character, which is also not on
244    //    the keyboard.
245    //  * Moved the following keys:
246    //     o Thal from TLDE to AB05: due to space limitation on the
247    //       keyboard, but also accessibility.
248    //     o Shadda from TLDE to AD05.
249    //  * Placed currency letters on number keys and moved the ^ and &
250    //    characters to lower keys. (This change is worth revisiting
251    //    before end of test period).
252
253    key <TLDE> {  [           grave,      asciitilde  ] };
254
255    key <AE01> {  [       0x1000661,          exclam  ] };
256    key <AE02> {  [       0x1000662,              at  ] };
257    key <AE03> {  [       0x1000663,      numbersign  ] };
258    key <AE04> {  [       0x1000664,          dollar  ] };
259    key <AE05> {  [       0x1000665,  Arabic_percent  ] };
260    key <AE06> {  [       0x1000666,        sterling  ] };
261    key <AE07> {  [       0x1000667,        EuroSign  ] };
262    key <AE08> {  [       0x1000668,        asterisk  ] };
263    key <AE09> {  [       0x1000669,      parenright  ] };
264    key <AE10> {  [       0x1000660,       parenleft  ] };
265
266    key <AD05> {  [      Arabic_feh,   Arabic_shadda  ] };
267
268    key <AD08> {  [      Arabic_heh,        division  ] };
269    key <AD11> {  [     Arabic_jeem,      braceright  ] };
270    key <AD12> {  [      Arabic_dal,       braceleft  ] };
271
272    key <AC01> {  [    Arabic_sheen,         greater  ] };
273    key <AC02> {  [     Arabic_seen,            less  ] };
274    key <AC05> {  [      Arabic_lam,       ampersand  ] };
275    key <AC10> {  [      Arabic_kaf                   ] };
276    key <AC11> {  [      Arabic_tah                   ] };
277
278    key <BKSL> {  [       backslash,             bar  ] };
279
280    // REH isolated form?
281    key <AB03> {  [ Arabic_hamzaonwaw,   Arabic_kasra ] };
282    key <AB04> {  [       Arabic_ra,  Arabic_kasratan ] };
283    key <AB05> {  [     Arabic_thal,      asciicircum ] };
284
285    include "group(olpc)"
286};
287
288partial alphanumeric_keys
289xkb_symbols "mac" {
290    
291    //This is a layout that is compatible with macbooks
292
293    include "ara(digits)"
294    name[Group1]= "Arabic (Macintosh)";
295    
296    key <AE11> {  [            minus,      underscore      ]     };
297    key <AE12> {  [            equal,            plus      ]     };
298    
299    key <TLDE> {  [   Arabic_tatweel,     VoidSymbol       ]	 };
300    key <AD03> {  [      Arabic_theh,     Arabic_kasra     ]     };
301    key <AD04> {  [       Arabic_qaf,     Arabic_kasratan  ]     };
302    key <AD05> {  [       Arabic_feh,     Arabic_damma     ]     };
303    key <AD06> {  [     Arabic_ghain,     Arabic_dammatan  ]     };
304    key <AD07> {  [       Arabic_ain,     Arabic_sukun     ]     };
305    key <AD08> {  [        Arabic_ha,     Arabic_shadda    ]     };
306    key <AD09> {  [      Arabic_khah,     bracketright     ]     };
307    key <AD10> {  [       Arabic_hah,     bracketleft      ]     };
308    key <AD11> {  [      Arabic_jeem,     braceright        ]     };
309    key <AD12> {  [Arabic_tehmarbuta,     braceleft       ]     };
310    
311    key <AC01> {  [    Arabic_sheen,     guillemotright     ]     };
312    key <AC02> {  [     Arabic_seen,     guillemotleft    ]     };
313    key <AC03> {  [      Arabic_yeh,     Arabic_alefmaksura]     };
314    key <AC04> {  [      Arabic_beh,     0x1000670         ]     };
315    key <AC05> {  [      Arabic_lam,     VoidSymbol        ]     };
316    key <AC06> {  [     Arabic_alef,   Arabic_maddaonalef  ]     };
317    key <AC07> {  [      Arabic_teh,     0x1000671         ]     };
318    key <AC08> {  [     Arabic_noon,     VoidSymbol        ]     };
319    key <AC09> {  [     Arabic_meem,     VoidSymbol        ]     };
320    key <AC10> {  [      Arabic_kaf,            colon      ]     };
321    key <AC11> {  [      Arabic_semicolon,      quotedbl   ]     };
322    
323    key <BKSL> {  [       backslash,             bar       ]     };
324    
325    key <LSGT> {  [   Arabic_tatweel,     VoidSymbol               ]     };
326    key <AB01> {  [       Arabic_zah,     VoidSymbol               ]     };
327    key <AB02> {  [       Arabic_tah,     VoidSymbol               ]     };
328    key <AB03> {  [      Arabic_thal,     Arabic_hamzaonyeh        ]     };
329    key <AB04> {  [       Arabic_dal,     Arabic_hamza             ]     };
330    key <AB05> {  [      Arabic_zain,     Arabic_hamzaonalef       ]     };
331    key <AB06> {  [        Arabic_ra,     Arabic_hamzaunderalef    ]     };
332    key <AB07> {  [       Arabic_waw,     Arabic_hamzaonwaw        ]     };
333    key <AB08> {  [     Arabic_comma,     greater                     ]     };
334    key <AB09> {  [           period,     less                  ]     };
335    key <AB10> {  [            slash,     Arabic_question_mark     ]     };
336    
337};
338
339// EXTRAS:
340
341partial alphanumeric_keys
342	xkb_symbols "sun_type6" {
343	include "sun_vndr/ara(sun_type6)"
344};
345