[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Patch to remove presentation forms from Arabic xkeyboard layout



This patch is against the latest XKeyboardConfig 1.1 , as your system
might be using an older package, I'm attaching the Arabic layout file.
Copy it to /usr/share/X11/xkb/symbols/ara (it might differ according to
your setup), then restart X.

On Thu, Jan 03, 2008 at 11:09:37AM +0400, OMLX wrote:
> Thank you Mr. Khaled  for the great work. I want to know how to apply
> this patches for my system ? I am using CentOS 5 (like RedHat 5).
> Thank you
> 
> On 1/2/08, Khaled Hosny <khaledhosny at eglug dot org> wrote:
> > I just submitted a patch[1] that removes the various Lam-Alef presentation
> > forms from Arabic keyboard layout, this should temporally fix the
> > well-known lam-alef problem[2]. To avoid confusing the user, the b,
> > shoft-b, shitf-g and shift-t keys in the Arabic keyboard (should produce
> > لا, لآ, لأ and لإ respectively) will now produce nothing.
> >
> > 1. https://bugs.freedesktop.org/show_bug.cgi?id=13894
> > 2. https://bugs.freedesktop.org/show_bug.cgi?id=8195
> >
> > --
> >  Khaled
> >
> 
> 
> -- 
> 
> my blog
> 
> http://omlx.tadwen.com
> _______________________________________________
> Developer mailing list
> Developer at arabeyes dot org
> http://lists.arabeyes.org/mailman/listinfo/developer
-- 
 Khaled
// $XKeyboardConfig: xkeyboard-config/symbols/ara,v 1.7 2007-08-07 15:17:56 svu Exp $

// based on a keyboard map from an 'xkb/symbols/ar' file

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> {  [     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,      parenright      ]     };
    key <AE10> {  [               0,       parenleft      ]     };
    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,       VoidSymbol     ]     };
    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,        less          ]     };
    key <AD12> {  [      Arabic_dal,        greater       ]     };

    key <AC01> {  [    Arabic_sheen,   Arabic_kasra       ]     };
    key <AC02> {  [     Arabic_seen,   Arabic_kasratan    ]     };
    key <AC03> {  [      Arabic_yeh,       bracketright   ]     };
    key <AC04> {  [      Arabic_beh,       bracketleft    ]     };
    key <AC05> {  [      Arabic_lam,       VoidSymbol     ]     };
    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 <LSGT> {  [             bar,      brokenbar	  ]     };
    key <AB01> {  [Arabic_hamzaonyeh,    asciitilde       ]     };
    key <AB02> {  [    Arabic_hamza,      Arabic_sukun    ]     };
    key <AB03> {  [Arabic_hamzaonwaw,      braceright     ]     };
    key <AB04> {  [       Arabic_ra,       braceleft      ]     };
    key <AB05> {  [       VoidSymbol,      VoidSymbol     ]     };
    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
};

partial alphanumeric_keys
xkb_symbols "qwerty" {
    include "ara(basic)"
    name[Group1]= "Arabic - qwerty";
};

partial alphanumeric_keys
xkb_symbols "azerty" {
    include "ara(basic)"
    name[Group1]= "Arabic - azerty";

	// 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 "ara(basic)"
    name[Group1]= "Arabic - digits";

	// use arabic script digits

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

partial alphanumeric_keys
xkb_symbols "qwerty_digits" {
    include "ara(digits)"
    name[Group1]= "Arabic - qwerty/digits";
};

partial alphanumeric_keys
xkb_symbols "azerty_digits" {
    include "ara(azerty)"
    name[Group1]= "Arabic - azerty/digits";
	
    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      ]       };
};

// Arabic keyboard using Buckwalter transliteration
// http://www.qamus.org/transliteration.htm
// Martin Vidner

// symbol names: see /usr/X11R6/include/X11/keysymdef.h (XFree86-devel.rpm)

partial alphanumeric_keys 
xkb_symbols "buckwalter" {
    name[Group1]= "Arabic - Buckwalter";

    // ARABIC LETTER SUPERSCRIPT ALEF
    key <TLDE> {  [       0x1000670,  Arabic_shadda       ]       };

    // Arabic_0 .. Arabic_9 do not work in Kate,
    // Unicode never seems to work worse.
    key <AE01> {  [       0x1000661,   VoidSymbol         ]       };
    key <AE02> {  [       0x1000662,   VoidSymbol         ]       };
    key <AE03> {  [       0x1000663,   VoidSymbol         ]       };
    key <AE04> {  [       0x1000664,   Arabic_sheen       ]       };
    key <AE05> {  [       0x1000665,   Arabic_percent     ]       };
    key <AE06> {  [       0x1000666,   VoidSymbol         ]       };
    key <AE07> {  [       0x1000667,   Arabic_hamzaonwaw  ]       };
    key <AE08> {  [       0x1000668,   Arabic_thal        ]       };
    // ORNATE LEFT PARENTHESIS
    key <AE09> {  [       0x1000669,   0x100fd3e          ]       };
    // ORNATE RIGHT PARENTHESIS
    key <AE10> {  [       0x1000660,   0x100fd3f          ]       };
    key <AE11> {  [       minus,       Arabic_tatweel     ]       };
    key <AE12> {  [       equal,       plus               ]       };
						
    key <AD01> {  [      Arabic_qaf,   VoidSymbol         ]       };
    key <AD02> {  [      Arabic_waw,   Arabic_hamzaonwaw  ]       };
    key <AD03> {  [      VoidSymbol,   Arabic_ain         ]       };
    key <AD04> {  [      Arabic_ra,    VoidSymbol         ]       };
    key <AD05> {  [      Arabic_teh,   Arabic_tah         ]       };
    key <AD06> {  [      Arabic_yeh,   Arabic_alefmaksura ]       };
    key <AD07> {  [      Arabic_damma, VoidSymbol         ]       };
    key <AD08> {  [      Arabic_kasra, Arabic_hamzaunderalef ]    };
    key <AD09> {  [      Arabic_sukun, Arabic_hamzaonalef ]       };
    key <AD10> {  [      Arabic_tehmarbuta, VoidSymbol    ]       };
    // ARABIC LETTER ALEF WASLA
    key <AD11> {  [      VoidSymbol,   0x1000671          ]       };
    key <AD12> {  [      VoidSymbol,   Arabic_hamzaonyeh  ]       };

    key <AC01> {  [    Arabic_fatha,   Arabic_alef        ]       };
    key <AC02> {  [    Arabic_seen,    Arabic_sad         ]       };
    key <AC03> {  [    Arabic_dal,     Arabic_dad         ]       };
    key <AC04> {  [    Arabic_feh,     Arabic_fathatan    ]       };
    key <AC05> {  [    Arabic_ghain,   VoidSymbol         ]       };
    key <AC06> {  [    Arabic_ha,      Arabic_hah         ]       };
    key <AC07> {  [    Arabic_jeem,    VoidSymbol         ]       };
    key <AC08> {  [    Arabic_kaf,     Arabic_kasratan    ]       };
    key <AC09> {  [    Arabic_lam,     VoidSymbol         ]       };
    key <AC10> {  [    Arabic_semicolon, VoidSymbol       ]       };
    key <AC11> {  [    Arabic_hamza,   VoidSymbol         ]       };

    key <BKSL> {  [      VoidSymbol,   Arabic_maddaonalef ]     };

//    key <LSGT> {  [             bar,      brokenbar	  ]     };

    key <AB01> {  [    Arabic_zain,    Arabic_zah         ]       };
    key <AB02> {  [    Arabic_khah,    VoidSymbol         ]       };
    key <AB03> {  [    VoidSymbol,     VoidSymbol         ]       };
    key <AB04> {  [    Arabic_theh,    VoidSymbol         ]       };
    key <AB05> {  [    Arabic_beh,     VoidSymbol         ]       };
    key <AB06> {  [    Arabic_noon,    Arabic_dammatan    ]       };
    key <AB07> {  [    Arabic_meem,    VoidSymbol         ]       };
    key <AB08> {  [    Arabic_comma,   Arabic_hamzaunderalef ]    };
    // ARABIC FULL STOP (Urdu)
    key <AB09> {  [    0x10006d4,      Arabic_hamzaonalef ]       };
    key <AB10> {  [    VoidSymbol,     Arabic_question_mark ]     };

    // End alphanumeric section
};

Attachment: signature.asc
Description: Digital signature