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