ara revision 0412cded
1154daed1Smrg// based on a keyboard map from an 'xkb/symbols/ar' file
2154daed1Smrg
3154daed1Smrgpartial default alphanumeric_keys 
4154daed1Smrgxkb_symbols "basic" {
5154daed1Smrg    name[Group1]= "Arabic";
6154daed1Smrg
7154daed1Smrg// NOTES:
8154daed1Smrg//
9154daed1Smrg// there is also combined shadda diacritis in AltGr position of simple
10154daed1Smrg// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan
11154daed1Smrg// should a third state be added to Group2 ?
12154daed1Smrg//
13154daed1Smrg
14154daed1Smrg    key <TLDE> {  [     Arabic_thal,      Arabic_shadda   ]	};
15154daed1Smrg    key <AE01> {  [               1,          exclam      ]     };
16154daed1Smrg    key <AE02> {  [               2,              at      ]     };
17154daed1Smrg    key <AE03> {  [               3,      numbersign      ]     };
18154daed1Smrg    key <AE04> {  [               4,          dollar      ]     };
19154daed1Smrg    key <AE05> {  [               5,         percent      ]     };
20154daed1Smrg    key <AE06> {  [               6,     asciicircum      ]     };
21154daed1Smrg    key <AE07> {  [               7,       ampersand      ]     };
22154daed1Smrg    key <AE08> {  [               8,        asterisk      ]     };
23154daed1Smrg    key <AE09> {  [               9,      parenright      ]     };
24154daed1Smrg    key <AE10> {  [               0,       parenleft      ]     };
25154daed1Smrg    key <AE11> {  [           minus,      underscore      ]     };
26154daed1Smrg    key <AE12> {  [           equal,            plus      ]     };
27154daed1Smrg						
28154daed1Smrg    key <AD01> {  [      Arabic_dad,     Arabic_fatha     ]     };
29154daed1Smrg    key <AD02> {  [      Arabic_sad,     Arabic_fathatan  ]     };
30154daed1Smrg    key <AD03> {  [     Arabic_theh,     Arabic_damma     ]     };
31154daed1Smrg    key <AD04> {  [      Arabic_qaf,     Arabic_dammatan  ]     };
32c067fea9Sghen    key <AD05> {  [   Arabic_feh,  0x100fef9, 0x10006a4   ]     };
33154daed1Smrg    key <AD06> {  [   Arabic_ghain, Arabic_hamzaunderalef ]     };
34154daed1Smrg    key <AD07> {  [      Arabic_ain,         grave        ]     };
35154daed1Smrg    key <AD08> {  [       Arabic_ha,        division      ]     };
36154daed1Smrg    key <AD09> {  [     Arabic_khah,       multiply       ]     };
37154daed1Smrg    key <AD10> {  [      Arabic_hah,    Arabic_semicolon  ]     };
38c067fea9Sghen    key <AD11> {  [     Arabic_jeem,   less, 0x1000686    ]     };
39154daed1Smrg    key <AD12> {  [      Arabic_dal,        greater       ]     };
40154daed1Smrg
41154daed1Smrg    key <AC01> {  [    Arabic_sheen,   Arabic_kasra       ]     };
42154daed1Smrg    key <AC02> {  [     Arabic_seen,   Arabic_kasratan    ]     };
43154daed1Smrg    key <AC03> {  [      Arabic_yeh,       bracketright   ]     };
44c067fea9Sghen    key <AC04> {  [   Arabic_beh, bracketleft, 0x100067e  ]     };
45c067fea9Sghen    key <AC05> {  [      Arabic_lam,       0x100fef7      ]     };
46154daed1Smrg    key <AC06> {  [     Arabic_alef,   Arabic_hamzaonalef ]     };
47154daed1Smrg    key <AC07> {  [      Arabic_teh,      Arabic_tatweel  ]     };
48154daed1Smrg    key <AC08> {  [     Arabic_noon,      Arabic_comma    ]     };
49154daed1Smrg    key <AC09> {  [     Arabic_meem,         slash        ]     };
50c067fea9Sghen    key <AC10> {  [      Arabic_kaf,   colon, 0x10006af   ]     };
51154daed1Smrg    key <AC11> {  [      Arabic_tah,        quotedbl      ]     };
52154daed1Smrg
53154daed1Smrg    key <LSGT> {  [             bar,      brokenbar	  ]     };
54c067fea9Sghen    key <AB01> {  [Arabic_hamzaonyeh, asciitilde, guillemotright  ]     };
55c067fea9Sghen    key <AB02> {  [    Arabic_hamza,  Arabic_sukun, guillemotleft ]     };
56154daed1Smrg    key <AB03> {  [Arabic_hamzaonwaw,      braceright     ]     };
57154daed1Smrg    key <AB04> {  [       Arabic_ra,       braceleft      ]     };
58c067fea9Sghen    key <AB05> {  [       0x100fefb,       0x100fef5      ]     };
59154daed1Smrg    key <AB06> {  [Arabic_alefmaksura, Arabic_maddaonalef ]     };
60154daed1Smrg    key <AB07> {  [Arabic_tehmarbuta,    apostrophe       ]     };
61154daed1Smrg    key <AB08> {  [      Arabic_waw,         comma        ]     };
62154daed1Smrg    key <AB09> {  [     Arabic_zain,         period       ]     };
63154daed1Smrg    key <AB10> {  [      Arabic_zah, Arabic_question_mark ]     };
64154daed1Smrg
65154daed1Smrg    // End alphanumeric section
66154daed1Smrg};
67154daed1Smrg
68154daed1Smrgpartial alphanumeric_keys
69154daed1Smrgxkb_symbols "qwerty" {
70154daed1Smrg    include "ara(basic)"
71bfd7cbc1Smrg    name[Group1]= "Arabic (qwerty)";
72154daed1Smrg};
73154daed1Smrg
74154daed1Smrgpartial alphanumeric_keys
75154daed1Smrgxkb_symbols "azerty" {
76154daed1Smrg    include "ara(basic)"
77bfd7cbc1Smrg    name[Group1]= "Arabic (azerty)";
78154daed1Smrg
79154daed1Smrg	// the north african arabic keyboard differs from the middle east one
80154daed1Smrg	// by the numeric row; it follows French keyboard style
81154daed1Smrg	//
82154daed1Smrg	// PROBLEM: some chars are inaccessible: ! @ # $ % ^ *
83154daed1Smrg	// should they go elsewhere? replace " ' that are now in double ?
84154daed1Smrg	// also, dead_circumflex and dead_diaeresis from French keyboard
85154daed1Smrg	// as well as ugrave are missing, which questions the utility of the
86154daed1Smrg	// other accentuated latin letters. Maybe this is useful only with
87154daed1Smrg	// a French keyboard in Group1 ? Then, shouldn't Group1 be filled ?
88154daed1Smrg
89154daed1Smrg    key <AE01> {  [       ampersand,               1      ]       };
90154daed1Smrg    key <AE02> {  [          eacute,               2      ]       };
91154daed1Smrg    key <AE03> {  [        quotedbl,               3      ]       };
92154daed1Smrg    key <AE04> {  [      apostrophe,               4      ]       };
93154daed1Smrg    key <AE05> {  [       parenleft,               5      ]       };
94154daed1Smrg    key <AE06> {  [           minus,               6      ]       };
95154daed1Smrg    key <AE07> {  [          egrave,               7      ]       };
96154daed1Smrg    key <AE08> {  [      underscore,               8      ]       };
97154daed1Smrg    key <AE09> {  [        ccedilla,               9      ]       };
98154daed1Smrg    key <AE10> {  [          agrave,               0      ]       };
99154daed1Smrg    key <AE11> {  [      parenright,          degree      ]       };
100154daed1Smrg};
101154daed1Smrg
102154daed1Smrgpartial alphanumeric_keys
103154daed1Smrgxkb_symbols "digits" {
104154daed1Smrg    include "ara(basic)"
105bfd7cbc1Smrg    name[Group1]= "Arabic (digits)";
106154daed1Smrg
107154daed1Smrg	// use arabic script digits
108154daed1Smrg
109154daed1Smrg    key <AE01> {  [       0x1000661,          exclam      ]       };
110154daed1Smrg    key <AE02> {  [       0x1000662,              at      ]       };
111154daed1Smrg    key <AE03> {  [       0x1000663,      numbersign      ]       };
112154daed1Smrg    key <AE04> {  [       0x1000664,          dollar      ]       };
113154daed1Smrg    key <AE05> {  [       0x1000665,  Arabic_percent      ]       };
114154daed1Smrg    key <AE06> {  [       0x1000666,     asciicircum      ]       };
115154daed1Smrg    key <AE07> {  [       0x1000667,       ampersand      ]       };
116154daed1Smrg    key <AE08> {  [       0x1000668,        asterisk      ]       };
117154daed1Smrg    key <AE09> {  [       0x1000669,      parenright      ]       };
118154daed1Smrg    key <AE10> {  [       0x1000660,       parenleft      ]       };
119154daed1Smrg};
120154daed1Smrg
121154daed1Smrgpartial alphanumeric_keys
122154daed1Smrgxkb_symbols "qwerty_digits" {
123154daed1Smrg    include "ara(digits)"
124bfd7cbc1Smrg    name[Group1]= "Arabic (qwerty/digits)";
125154daed1Smrg};
126154daed1Smrg
127154daed1Smrgpartial alphanumeric_keys
128154daed1Smrgxkb_symbols "azerty_digits" {
129154daed1Smrg    include "ara(azerty)"
130bfd7cbc1Smrg    name[Group1]= "Arabic (azerty/digits)";
131154daed1Smrg	
132154daed1Smrg    key <AE01> {  [       ampersand,       0x1000661      ]       };
133154daed1Smrg    key <AE02> {  [          eacute,       0x1000662      ]       };
134154daed1Smrg    key <AE03> {  [        quotedbl,       0x1000663      ]       };
135154daed1Smrg    key <AE04> {  [      apostrophe,       0x1000664      ]       };
136154daed1Smrg    key <AE05> {  [       parenleft,       0x1000665      ]       };
137154daed1Smrg    key <AE06> {  [           minus,       0x1000666      ]       };
138154daed1Smrg    key <AE07> {  [          egrave,       0x1000667      ]       };
139154daed1Smrg    key <AE08> {  [      underscore,       0x1000668      ]       };
140154daed1Smrg    key <AE09> {  [        ccedilla,       0x1000669      ]       };
141154daed1Smrg    key <AE10> {  [          agrave,       0x1000660      ]       };
142154daed1Smrg};
143154daed1Smrg
144154daed1Smrg// Arabic keyboard using Buckwalter transliteration
145154daed1Smrg// http://www.qamus.org/transliteration.htm
146154daed1Smrg// Martin Vidner
147154daed1Smrg
148154daed1Smrg// symbol names: see /usr/X11R6/include/X11/keysymdef.h (XFree86-devel.rpm)
149154daed1Smrg
150154daed1Smrgpartial alphanumeric_keys 
151154daed1Smrgxkb_symbols "buckwalter" {
152bfd7cbc1Smrg    name[Group1]= "Arabic (Buckwalter)";
153154daed1Smrg
154154daed1Smrg    // ARABIC LETTER SUPERSCRIPT ALEF
155154daed1Smrg    key <TLDE> {  [       0x1000670,  Arabic_shadda       ]       };
156154daed1Smrg
157154daed1Smrg    // Arabic_0 .. Arabic_9 do not work in Kate,
158154daed1Smrg    // Unicode never seems to work worse.
159154daed1Smrg    key <AE01> {  [       0x1000661,   VoidSymbol         ]       };
160154daed1Smrg    key <AE02> {  [       0x1000662,   VoidSymbol         ]       };
161154daed1Smrg    key <AE03> {  [       0x1000663,   VoidSymbol         ]       };
162154daed1Smrg    key <AE04> {  [       0x1000664,   Arabic_sheen       ]       };
163154daed1Smrg    key <AE05> {  [       0x1000665,   Arabic_percent     ]       };
164154daed1Smrg    key <AE06> {  [       0x1000666,   VoidSymbol         ]       };
165154daed1Smrg    key <AE07> {  [       0x1000667,   Arabic_hamzaonwaw  ]       };
166154daed1Smrg    key <AE08> {  [       0x1000668,   Arabic_thal        ]       };
167154daed1Smrg    // ORNATE LEFT PARENTHESIS
168154daed1Smrg    key <AE09> {  [       0x1000669,   0x100fd3e          ]       };
169154daed1Smrg    // ORNATE RIGHT PARENTHESIS
170154daed1Smrg    key <AE10> {  [       0x1000660,   0x100fd3f          ]       };
171154daed1Smrg    key <AE11> {  [       minus,       Arabic_tatweel     ]       };
172154daed1Smrg    key <AE12> {  [       equal,       plus               ]       };
173154daed1Smrg						
174154daed1Smrg    key <AD01> {  [      Arabic_qaf,   VoidSymbol         ]       };
175154daed1Smrg    key <AD02> {  [      Arabic_waw,   Arabic_hamzaonwaw  ]       };
176154daed1Smrg    key <AD03> {  [      VoidSymbol,   Arabic_ain         ]       };
177154daed1Smrg    key <AD04> {  [      Arabic_ra,    VoidSymbol         ]       };
178154daed1Smrg    key <AD05> {  [      Arabic_teh,   Arabic_tah         ]       };
179154daed1Smrg    key <AD06> {  [      Arabic_yeh,   Arabic_alefmaksura ]       };
180154daed1Smrg    key <AD07> {  [      Arabic_damma, VoidSymbol         ]       };
181154daed1Smrg    key <AD08> {  [      Arabic_kasra, Arabic_hamzaunderalef ]    };
182154daed1Smrg    key <AD09> {  [      Arabic_sukun, Arabic_hamzaonalef ]       };
183154daed1Smrg    key <AD10> {  [      Arabic_tehmarbuta, VoidSymbol    ]       };
184154daed1Smrg    // ARABIC LETTER ALEF WASLA
185154daed1Smrg    key <AD11> {  [      VoidSymbol,   0x1000671          ]       };
186154daed1Smrg    key <AD12> {  [      VoidSymbol,   Arabic_hamzaonyeh  ]       };
187154daed1Smrg
188154daed1Smrg    key <AC01> {  [    Arabic_fatha,   Arabic_alef        ]       };
189154daed1Smrg    key <AC02> {  [    Arabic_seen,    Arabic_sad         ]       };
190154daed1Smrg    key <AC03> {  [    Arabic_dal,     Arabic_dad         ]       };
191154daed1Smrg    key <AC04> {  [    Arabic_feh,     Arabic_fathatan    ]       };
192154daed1Smrg    key <AC05> {  [    Arabic_ghain,   VoidSymbol         ]       };
193154daed1Smrg    key <AC06> {  [    Arabic_ha,      Arabic_hah         ]       };
194154daed1Smrg    key <AC07> {  [    Arabic_jeem,    VoidSymbol         ]       };
195154daed1Smrg    key <AC08> {  [    Arabic_kaf,     Arabic_kasratan    ]       };
196154daed1Smrg    key <AC09> {  [    Arabic_lam,     VoidSymbol         ]       };
197154daed1Smrg    key <AC10> {  [    Arabic_semicolon, VoidSymbol       ]       };
198154daed1Smrg    key <AC11> {  [    Arabic_hamza,   VoidSymbol         ]       };
199154daed1Smrg
200154daed1Smrg    key <BKSL> {  [      VoidSymbol,   Arabic_maddaonalef ]     };
201154daed1Smrg
202154daed1Smrg//    key <LSGT> {  [             bar,      brokenbar	  ]     };
203154daed1Smrg
204154daed1Smrg    key <AB01> {  [    Arabic_zain,    Arabic_zah         ]       };
205154daed1Smrg    key <AB02> {  [    Arabic_khah,    VoidSymbol         ]       };
206154daed1Smrg    key <AB03> {  [    VoidSymbol,     VoidSymbol         ]       };
207154daed1Smrg    key <AB04> {  [    Arabic_theh,    VoidSymbol         ]       };
208154daed1Smrg    key <AB05> {  [    Arabic_beh,     VoidSymbol         ]       };
209154daed1Smrg    key <AB06> {  [    Arabic_noon,    Arabic_dammatan    ]       };
210154daed1Smrg    key <AB07> {  [    Arabic_meem,    VoidSymbol         ]       };
211154daed1Smrg    key <AB08> {  [    Arabic_comma,   Arabic_hamzaunderalef ]    };
212154daed1Smrg    // ARABIC FULL STOP (Urdu)
213154daed1Smrg    key <AB09> {  [    0x10006d4,      Arabic_hamzaonalef ]       };
214154daed1Smrg    key <AB10> {  [    VoidSymbol,     Arabic_question_mark ]     };
215154daed1Smrg
216154daed1Smrg    // End alphanumeric section
217154daed1Smrg};
218154daed1Smrg
219154daed1Smrgpartial alphanumeric_keys
220154daed1Smrgxkb_symbols "olpc" {
221154daed1Smrg
222154daed1Smrg    include "ara(basic)"
223154daed1Smrg
224154daed1Smrg    // As part of the olpc design some changes were made to the Arabic
225154daed1Smrg    // keyboard design. Major changes are:
226154daed1Smrg    //
227154daed1Smrg    //  * Removed the lam-alef single character. Poeple type as they
228154daed1Smrg    //    pronounce, and lam-alef is just a visual formatting of the
229154daed1Smrg    //    sequence and is not often used on the keyboard. It is
230154daed1Smrg    //    similar to the Allah single character, which is also not on
231154daed1Smrg    //    the keyboard.
232154daed1Smrg    //  * Moved the following keys:
233154daed1Smrg    //     o Thal from TLDE to AB05: Due to space limitation on the
234154daed1Smrg    //       keybaord, but also accessibility
235154daed1Smrg    //     o Shadda from TLDE to AD05
236154daed1Smrg    //  * Placed currency letters on number keys and moved the ^ and &
237154daed1Smrg    //    characters to lower keys (This change is worth revisiting
238154daed1Smrg    //    before end of test period)
239154daed1Smrg
240154daed1Smrg    key <TLDE> {  [           grave,      asciitilde  ] };
241154daed1Smrg
242154daed1Smrg    key <AE01> {  [       0x1000661,          exclam  ] };
243154daed1Smrg    key <AE02> {  [       0x1000662,              at  ] };
244154daed1Smrg    key <AE03> {  [       0x1000663,      numbersign  ] };
245154daed1Smrg    key <AE04> {  [       0x1000664,          dollar  ] };
246154daed1Smrg    key <AE05> {  [       0x1000665,  Arabic_percent  ] };
247154daed1Smrg    key <AE06> {  [       0x1000666,        sterling  ] };
248154daed1Smrg    key <AE07> {  [       0x1000667,        EuroSign  ] };
249154daed1Smrg    key <AE08> {  [       0x1000668,        asterisk  ] };
250154daed1Smrg    key <AE09> {  [       0x1000669,      parenright  ] };
251154daed1Smrg    key <AE10> {  [       0x1000660,       parenleft  ] };
252154daed1Smrg
253154daed1Smrg    key <AD05> {  [      Arabic_feh,   Arabic_shadda  ] };
254154daed1Smrg
255154daed1Smrg    key <AD08> {  [      Arabic_heh,        division  ] };
256154daed1Smrg    key <AD11> {  [     Arabic_jeem,      braceright  ] };
257154daed1Smrg    key <AD12> {  [      Arabic_dal,       braceleft  ] };
258154daed1Smrg
259154daed1Smrg    key <AC01> {  [    Arabic_sheen,         greater  ] };
260154daed1Smrg    key <AC02> {  [     Arabic_seen,            less  ] };
261154daed1Smrg    key <AC05> {  [      Arabic_lam,       ampersand  ] };
262154daed1Smrg    key <AC10> {  [      Arabic_kaf                   ] };
263154daed1Smrg    key <AC11> {  [      Arabic_tah                   ] };
264154daed1Smrg
265154daed1Smrg    key <BKSL> {  [       backslash,             bar  ] };
266154daed1Smrg
267154daed1Smrg
268154daed1Smrg    // REH isolated form?
269154daed1Smrg    key <AB03> {  [ Arabic_hamzaonwaw,   Arabic_kasra ] };
270154daed1Smrg    key <AB04> {  [       Arabic_ra,  Arabic_kasratan ] };    
271154daed1Smrg    key <AB05> {  [     Arabic_thal,      asciicircum ] };
272154daed1Smrg
273154daed1Smrg    include "group(olpc)"
274154daed1Smrg};
2750412cdedSmrg
2760412cdedSmrg// EXTRAS:
2770412cdedSmrg
2780412cdedSmrgpartial alphanumeric_keys
2790412cdedSmrg	xkb_symbols "sun_type6" {
2800412cdedSmrg	include "sun_vndr/ara(sun_type6)"
2810412cdedSmrg};
282