// $XConsortium: th /main/3 1996/08/31 12:20:18 kaleb $
// $XFree86: xc/programs/xkbcomp/symbols/ar,v 1.2 2002/01/16 18:20:12 dawes Exp $
partial default alphanumeric_keys 
xkb_symbols "basic" {
    name[Group2]= "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> { [  ], [     Arabic_thal,      Arabic_shadda   ]	};
    key <AE01> { [  ], [               1,          exclam      ]       };
    key <AE02> { [  ], [               2,              at      ]       };
    key <AE03> { [  ], [               3,      numbersign      ]       };
    key <AE04> { [  ], [               4,          dollar      ]       };
    key <AE05> { [  ], [               5,         percent      ]       };
    key <AE06> { [  ], [               6,     asciicircum      ]       };
    key <AE07> { [  ], [               7,       ampersand      ]       };
    key <AE08> { [  ], [               8,        asterisk      ]       };
    key <AE09> { [  ], [               9,       parenleft      ]       };
    key <AE10> { [  ], [               0,      parenright      ]       };
    key <AE11> { [  ], [           minus,      underscore      ]       };
    key <AE12> { [  ], [           equal,            plus      ]       };
						
    key <AD01> { [  ], [      Arabic_dad,     Arabic_fatha     ]       };
    key <AD02> { [  ], [      Arabic_sad,     Arabic_fathatan  ]       };
    key <AD03> { [  ], [     Arabic_theh,     Arabic_damma     ]       };
    key <AD04> { [  ], [      Arabic_qaf,     Arabic_dammatan  ]       };
    key <AD05> { [  ], [      Arabic_feh,       0x100fef9      ]       };
    key <AD06> { [  ], [   Arabic_ghain, Arabic_hamzaunderalef ]       };
    key <AD07> { [  ], [      Arabic_ain,         grave        ]       };
    key <AD08> { [  ], [       Arabic_ha,        division      ]       };
    key <AD09> { [  ], [     Arabic_khah,       multiply       ]       };
    key <AD10> { [  ], [      Arabic_hah,    Arabic_semicolon  ]       };
    key <AD11> { [  ], [     Arabic_jeem,       braceleft      ]       };
    key <AD12> { [  ], [      Arabic_dal,       braceright     ]       };

    key <AC01> { [  ], [    Arabic_sheen,       backslash      ]       };
    key <AC02> { [  ], [     Arabic_seen,               S      ]       };
    key <AC03> { [  ], [      Arabic_yeh,       bracketleft    ]       };
    key <AC04> { [  ], [      Arabic_beh,       bracketright   ]       };
    key <AC05> { [  ], [      Arabic_lam,       0x100fef7      ]       };
    key <AC06> { [  ], [     Arabic_alef,   Arabic_hamzaonalef ]       };
    key <AC07> { [  ], [      Arabic_teh,      Arabic_tatweel  ]       };
    key <AC08> { [  ], [     Arabic_noon,      Arabic_comma    ]       };
    key <AC09> { [  ], [     Arabic_meem,         slash        ]       };
    key <AC10> { [  ], [      Arabic_kaf,           colon      ]       };
    key <AC11> { [  ], [      Arabic_tah,        quotedbl      ]       };
    key <BKSL> { [  ], [            less,         greater      ]       };

    key <LSGT> { [  ], [             bar,      brokenbar	   ]       };
    key <AB01> { [  ], [Arabic_hamzaonyeh,    asciitilde       ]       };
    key <AB02> { [  ], [    Arabic_hamza,      Arabic_sukun    ]       };
    key <AB03> { [  ], [Arabic_hamzaonwaw,     Arabic_kasra    ]       };
    key <AB04> { [  ], [       Arabic_ra,      Arabic_kasratan ]       };
    key <AB05> { [  ], [       0x100fefb,      0x100fef5       ]       };
    key <AB06> { [  ], [Arabic_alefmaksura, Arabic_maddaonalef ]       };
    key <AB07> { [  ], [Arabic_tehmarbuta,    apostrophe       ]       };
    key <AB08> { [  ], [      Arabic_waw,         comma        ]       };
    key <AB09> { [  ], [     Arabic_zain,         period       ]       };
    key <AB10> { [  ], [      Arabic_zah, Arabic_question_mark ]       };

    // End alphanumeric section
    
    // Begin modifier mappings 

    modifier_map Shift  { Shift_L };
    modifier_map Lock   { Caps_Lock, ISO_Lock };
    modifier_map Control{ Control_L };
    modifier_map Mod3   { Mode_switch };
};

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

partial alphanumeric_keys
xkb_symbols "azerty" {
    include "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 "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 "ar(digits)"
};

partial alphanumeric_keys
xkb_symbols "azerty_digits" {
    include "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      ]       };
};

