3 // based on a keyboard map from an 'xkb/symbols/ar' file
5 partial default alphanumeric_keys
7 name[Group1]= "Arabic";
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 ?
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, parenleft ] };
26 key <AE10> { [ 0, parenright ] };
27 key <AE11> { [ minus, underscore ] };
28 key <AE12> { [ equal, plus ] };
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, braceleft ] };
41 key <AD12> { [ Arabic_dal, braceright ] };
43 key <AC01> { [ Arabic_sheen, backslash ] };
44 key <AC02> { [ Arabic_seen, S ] };
45 key <AC03> { [ Arabic_yeh, bracketleft ] };
46 key <AC04> { [ Arabic_beh, bracketright ] };
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 key <BKSL> { [ less, greater ] };
56 key <LSGT> { [ bar, brokenbar ] };
57 key <AB01> { [Arabic_hamzaonyeh, asciitilde ] };
58 key <AB02> { [ Arabic_hamza, Arabic_sukun ] };
59 key <AB03> { [Arabic_hamzaonwaw, Arabic_kasra ] };
60 key <AB04> { [ Arabic_ra, Arabic_kasratan ] };
61 key <AB05> { [ 0x100fefb, 0x100fef5 ] };
62 key <AB06> { [Arabic_alefmaksura, Arabic_maddaonalef ] };
63 key <AB07> { [Arabic_tehmarbuta, apostrophe ] };
64 key <AB08> { [ Arabic_waw, comma ] };
65 key <AB09> { [ Arabic_zain, period ] };
66 key <AB10> { [ Arabic_zah, Arabic_question_mark ] };
68 // End alphanumeric section
71 partial alphanumeric_keys
72 xkb_symbols "qwerty" {
74 name[Group1]= "Arabic - qwerty";
77 partial alphanumeric_keys
78 xkb_symbols "azerty" {
80 name[Group1]= "Arabic - azerty";
82 // the north african arabic keyboard differs from the middle east one
83 // by the numeric row; it follows French keyboard style
85 // PROBLEM: some chars are inaccessible: ! @ # $ % ^ *
86 // should they go elsewhere? replace " ' that are now in double ?
87 // also, dead_circumflex and dead_diaeresis from French keyboard
88 // as well as ugrave are missing, which questions the utility of the
89 // other accentuated latin letters. Maybe this is useful only with
90 // a French keyboard in Group1 ? Then, shouldn't Group1 be filled ?
92 key <AE01> { [ ampersand, 1 ] };
93 key <AE02> { [ eacute, 2 ] };
94 key <AE03> { [ quotedbl, 3 ] };
95 key <AE04> { [ apostrophe, 4 ] };
96 key <AE05> { [ parenleft, 5 ] };
97 key <AE06> { [ minus, 6 ] };
98 key <AE07> { [ egrave, 7 ] };
99 key <AE08> { [ underscore, 8 ] };
100 key <AE09> { [ ccedilla, 9 ] };
101 key <AE10> { [ agrave, 0 ] };
102 key <AE11> { [ parenright, degree ] };
105 partial alphanumeric_keys
106 xkb_symbols "digits" {
108 name[Group1]= "Arabic - digits";
110 // use arabic script digits
112 key <AE01> { [ 0x1000661, exclam ] };
113 key <AE02> { [ 0x1000662, at ] };
114 key <AE03> { [ 0x1000663, numbersign ] };
115 key <AE04> { [ 0x1000664, dollar ] };
116 key <AE05> { [ 0x1000665, percent ] };
117 key <AE06> { [ 0x1000666, asciicircum ] };
118 key <AE07> { [ 0x1000667, ampersand ] };
119 key <AE08> { [ 0x1000668, asterisk ] };
120 key <AE09> { [ 0x1000669, parenleft ] };
121 key <AE10> { [ 0x1000660, parenright ] };
124 partial alphanumeric_keys
125 xkb_symbols "qwerty_digits" {
126 include "ara(digits)"
127 name[Group1]= "Arabic - qwerty/digits";
130 partial alphanumeric_keys
131 xkb_symbols "azerty_digits" {
132 include "ara(azerty)"
133 name[Group1]= "Arabic - azerty/digits";
135 key <AE01> { [ ampersand, 0x1000661 ] };
136 key <AE02> { [ eacute, 0x1000662 ] };
137 key <AE03> { [ quotedbl, 0x1000663 ] };
138 key <AE04> { [ apostrophe, 0x1000664 ] };
139 key <AE05> { [ parenleft, 0x1000665 ] };
140 key <AE06> { [ minus, 0x1000666 ] };
141 key <AE07> { [ egrave, 0x1000667 ] };
142 key <AE08> { [ underscore, 0x1000668 ] };
143 key <AE09> { [ ccedilla, 0x1000669 ] };
144 key <AE10> { [ agrave, 0x1000660 ] };
147 // Arabic keyboard using Buckwalter transliteration
148 // http://www.qamus.org/transliteration.htm
151 // symbol names: see /usr/X11R6/include/X11/keysymdef.h (XFree86-devel.rpm)
153 partial alphanumeric_keys
154 xkb_symbols "buckwalter" {
155 name[Group1]= "Arabic - Buckwalter";
157 // ARABIC LETTER SUPERSCRIPT ALEF
158 key <TLDE> { [ 0x1000670, Arabic_shadda ] };
160 // Arabic_0 .. Arabic_9 do not work in Kate,
161 // Unicode never seems to work worse.
162 key <AE01> { [ 0x1000661, VoidSymbol ] };
163 key <AE02> { [ 0x1000662, VoidSymbol ] };
164 key <AE03> { [ 0x1000663, VoidSymbol ] };
165 key <AE04> { [ 0x1000664, Arabic_sheen ] };
166 key <AE05> { [ 0x1000665, Arabic_percent ] };
167 key <AE06> { [ 0x1000666, VoidSymbol ] };
168 key <AE07> { [ 0x1000667, Arabic_hamzaonwaw ] };
169 key <AE08> { [ 0x1000668, Arabic_thal ] };
170 // ORNATE LEFT PARENTHESIS
171 key <AE09> { [ 0x1000669, 0x100fd3e ] };
172 // ORNATE RIGHT PARENTHESIS
173 key <AE10> { [ 0x1000660, 0x100fd3f ] };
174 key <AE11> { [ minus, Arabic_tatweel ] };
175 key <AE12> { [ equal, plus ] };
177 key <AD01> { [ Arabic_qaf, VoidSymbol ] };
178 key <AD02> { [ Arabic_waw, Arabic_hamzaonwaw ] };
179 key <AD03> { [ VoidSymbol, Arabic_ain ] };
180 key <AD04> { [ Arabic_ra, VoidSymbol ] };
181 key <AD05> { [ Arabic_teh, Arabic_tah ] };
182 key <AD06> { [ Arabic_yeh, Arabic_alefmaksura ] };
183 key <AD07> { [ Arabic_damma, VoidSymbol ] };
184 key <AD08> { [ Arabic_kasra, Arabic_hamzaunderalef ] };
185 key <AD09> { [ Arabic_sukun, Arabic_hamzaonalef ] };
186 key <AD10> { [ Arabic_tehmarbuta, VoidSymbol ] };
187 // ARABIC LETTER ALEF WASLA
188 key <AD11> { [ VoidSymbol, 0x1000671 ] };
189 key <AD12> { [ VoidSymbol, Arabic_hamzaonyeh ] };
191 key <AC01> { [ Arabic_fatha, Arabic_alef ] };
192 key <AC02> { [ Arabic_seen, Arabic_sad ] };
193 key <AC03> { [ Arabic_dal, Arabic_dad ] };
194 key <AC04> { [ Arabic_feh, Arabic_fathatan ] };
195 key <AC05> { [ Arabic_ghain, VoidSymbol ] };
196 key <AC06> { [ Arabic_ha, Arabic_hah ] };
197 key <AC07> { [ Arabic_jeem, VoidSymbol ] };
198 key <AC08> { [ Arabic_kaf, Arabic_kasratan ] };
199 key <AC09> { [ Arabic_lam, VoidSymbol ] };
200 key <AC10> { [ Arabic_semicolon, VoidSymbol ] };
201 key <AC11> { [ Arabic_hamza, VoidSymbol ] };
203 key <BKSL> { [ VoidSymbol, Arabic_maddaonalef ] };
205 // key <LSGT> { [ bar, brokenbar ] };
207 key <AB01> { [ Arabic_zain, Arabic_zah ] };
208 key <AB02> { [ Arabic_khah, VoidSymbol ] };
209 key <AB03> { [ VoidSymbol, VoidSymbol ] };
210 key <AB04> { [ Arabic_theh, VoidSymbol ] };
211 key <AB05> { [ Arabic_beh, VoidSymbol ] };
212 key <AB06> { [ Arabic_noon, Arabic_dammatan ] };
213 key <AB07> { [ Arabic_meem, VoidSymbol ] };
214 key <AB08> { [ Arabic_comma, Arabic_hamzaunderalef ] };
215 // ARABIC FULL STOP (Urdu)
216 key <AB09> { [ 0x10006d4, Arabic_hamzaonalef ] };
217 key <AB10> { [ VoidSymbol, Arabic_question_mark ] };
219 // End alphanumeric section