// based on a keyboard map from an 'xkb/symbols/ur' file
// Contact: Nadir Durrani
// E-mail : aquadurrani@hotmail.com
// $XFree86$

partial default alphanumeric_keys
xkb_symbols "basic" {
   name[Group1]= "Arabic";

// NOTES:
//
// there is also combined shadda diacritis in AltGr position of simple
// diacritics fatha, fathatan, damma, dammatan, kasra and kasratan
// should a third state be added to Group2 ?
//

   key <TLDE> {  [     0x100064d  ,       0x100064b      ]     };
   key <AE01> {  [     0x10006F1  ,       0x1000021      ]     };
   key <AE02> {  [     0x10006F2  ,       0x1000003      ]     };
   key <AE03> {  [     0x10006F3  ,       0x100002f      ]     };
   key <AE04> {  [     0x10006F4  ,       0x1000626      ]     };
   key <AE05> {  [     0x10006F5  ,       0x1000003      ]     };
   key <AE06> {  [     0x10006F6  ,       0x10006d6      ]     };
   key <AE07> {  [     0x10006F7  ,       0x1000654      ]     };
   key <AE08> {  [     0x10006F8  ,       0x100064c      ]     };
   key <AE09> {  [     0x10006F9  ,       0x1000029      ]     };
   key <AE10> {  [     0x10006F0  ,       0x1000028      ]     };
   key <AE11> {  [     0x1000623  ,       0x1000651      ]     };
   key <AE12> {  [     0x1000624  ,       0x1000622      ]     };
   key <AD01> {  [     0x1000642  ,       0x1000652      ]     };
   key <AD02> {  [     0x1000648  ,       0x10000a3      ]     };
   key <AD03> {  [     0x1000639  ,       0x10000a5      ]     };
   key <AD04> {  [     0x1000631  ,       0x1000691      ]     };
   key <AD05> {  [     0x100062a  ,       0x1000679      ]     };
   key <AD06> {  [     0x10006d2  ,       0x1000601      ]     };
   key <AD07> {  [     0x1000621  ,       0x100060c      ]     };
   key <AD08> {  [     0x10006cc  ,       0x1000670      ]     };
   key <AD09> {  [     0x10006c1  ,       0x10006c3      ]     };
   key <AD10> {  [     0x100067e  ,       0x100064f      ]     };
   key <AD11> {  [     0x100005d  ,       0x1000670      ]     };
   key <AD12> {  [     0x100005b  ,       0x1000670      ]     };

   key <AC01> {  [     0x1000627  ,       0x1000653      ]     };
   key <AC02> {  [     0x1000633  ,       0x1000635      ]     };
   key <AC03> {  [     0x100062f  ,       0x1000688      ]     };
   key <AC04> {  [     0x1000641  ,       0x1000003      ]     };
   key <AC05> {  [     0x10006af  ,       0x100063a      ]     };
   key <AC06> {  [     0x10006be  ,       0x100062d      ]     };
   key <AC07> {  [     0x100062c  ,       0x1000636      ]     };
   key <AC08> {  [     0x10006a9  ,       0x100062e      ]     };
   key <AC09> {  [     0x1000644  ,       0x1000613      ]     };
   key <AC10> {  [     0x100061b  ,       0x100003a      ]     };
   key <AC11> {  [     0x1000670  ,       0x1000022       ]     };
   key <BKSL> {  [     0x100060e ,        0x1000614      ]     };

   key <LSGT> {  [            bar ,       brokenbar      ]     };
   key <AB01> {  [     0x1000632  ,       0x1000630      ]     };
   key <AB02> {  [     0x1000634  ,       0x1000698      ]     };
   key <AB03> {  [     0x1000686  ,       0x100062b      ]     };
   key <AB04> {  [     0x1000637  ,       0x1000638      ]     };
   key <AB05> {  [     0x1000628  ,       0x1000612      ]     };
   key <AB06> {  [     0x1000646  ,       0x10006ba      ]     };
   key <AB07> {  [     0x1000645  ,       0x1000003      ]     };
   key <AB08> {  [     0x100060c  ,       0x1000650      ]     };
   key <AB09> {  [     0x10006d4  ,       0x100064e      ]     };
   key <AB10> {  [     0x1000003  ,       0x100061f      ]     };

   // End alphanumeric section
};

partial alphanumeric_keys
xkb_symbols "qwerty" {
   include "pc/ar(basic)"
};

partial alphanumeric_keys
xkb_symbols "azerty" {
   include "pc/ar(basic)"

   // the north african arabic keyboard differs from the middle east one
   // by the numeric row; it follows French keyboard style
   //
   // PROBLEM: some chars are inaccessible: ! @ # $ % ^ *
   // should they go elsewhere? replace " ' that are now in double ?
   // also, dead_circumflex and dead_diaeresis from French keyboard
   // as well as ugrave are missing, which questions the utility of the
   // other accentuated latin letters. Maybe this is useful only with
   // a French keyboard in Group1 ? Then, shouldn't Group1 be filled ?

   key <AE01> {  [       ampersand,               1      ]       };
   key <AE02> {  [          eacute,               2      ]       };
   key <AE03> {  [        quotedbl,               3      ]       };
   key <AE04> {  [      apostrophe,               4      ]       };
   key <AE05> {  [       parenleft,               5      ]       };
   key <AE06> {  [           minus,               6      ]       };
   key <AE07> {  [          egrave,               7      ]       };
   key <AE08> {  [      underscore,               8      ]       };
   key <AE09> {  [        ccedilla,               9      ]       };
   key <AE10> {  [          agrave,               0      ]       };
   key <AE11> {  [      parenright,          degree      ]       };
};

partial alphanumeric_keys
xkb_symbols "digits" {
   include "pc/ar(basic)"

   // use arabic script digits

   key <AE01> {  [       0x1000661,          exclam      ]       };
   key <AE02> {  [       0x1000662,              at      ]       };
   key <AE03> {  [       0x1000663,      numbersign      ]       };
   key <AE04> {  [       0x1000664,          dollar      ]       };
   key <AE05> {  [       0x1000665,         percent      ]       };
   key <AE06> {  [       0x1000666,     asciicircum      ]       };
   key <AE07> {  [       0x1000667,       ampersand      ]       };
   key <AE08> {  [       0x1000668,        asterisk      ]       };
   key <AE09> {  [       0x1000669,       parenleft      ]       };
   key <AE10> {  [       0x1000660,      parenright      ]       };
};

partial alphanumeric_keys
xkb_symbols "qwerty_digits" {
   include "pc/ar(digits)"
};

partial alphanumeric_keys
xkb_symbols "azerty_digits" {
   include "pc/ar(azerty)"
      key <AE01> {  [       ampersand,       0x1000661      ]       };
   key <AE02> {  [          eacute,       0x1000662      ]       };
   key <AE03> {  [        quotedbl,       0x1000663      ]       };
   key <AE04> {  [      apostrophe,       0x1000664      ]       };
   key <AE05> {  [       parenleft,       0x1000665      ]       };
   key <AE06> {  [           minus,       0x1000666      ]       };
   key <AE07> {  [          egrave,       0x1000667      ]       };
   key <AE08> {  [      underscore,       0x1000668      ]       };
   key <AE09> {  [        ccedilla,       0x1000669      ]       };
   key <AE10> {  [          agrave,       0x1000660      ]       };
};
