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