default partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "Arabic";
key.type[Group1]="FOUR_LEVEL";
key <TLDE> {[ Arabic_thal, Arabic_shadda, Arabic_percent, U0609 ]}; // ذ ◌ّ ٪ ؉
key <AE01> {[ 1, exclam, Arabic_1, any ]}; // 1 ! ١
key <AE02> {[ 2, at, Arabic_2, any ]}; // 2 @ ٢
key <AE03> {[ 3, numbersign, Arabic_3, any ]}; // 3 # ٣
key <AE04> {[ 4, dollar, Arabic_4, any ]}; // 4 $ ٤
key <AE05> {[ 5, percent, Arabic_5, U2030 ]}; // 5 % ٥ ‰
key <AE06> {[ 6, asciicircum, Arabic_6, any ]}; // 6 ^ ٦
key <AE07> {[ 7, ampersand, Arabic_7, any ]}; // 7 & ٧
key <AE08> {[ 8, asterisk, Arabic_8, any ]}; // 8 * ٨
key <AE09> {[ 9, parenright, Arabic_9, any ]}; // 9 ) ٩
key <AE10> {[ 0, parenleft, Arabic_0, any ]}; // 0 ( ٠
key <AE11> {[ minus, underscore, endash, U2011 ]}; // - _ – Non-Breaking-Hyphen
key <AE12> {[ equal, plus, notequal, U2248 ]}; // = + ≠ ≈
key <AD01> {[ Arabic_dad, Arabic_fatha, any, U2066 ]}; // ض ◌َ LEFT‑TO‑RIGHT ISOLATE
key <AD02> {[ Arabic_sad, Arabic_fathatan, any, U2067 ]}; // ص ◌ً RIGHT‑TO‑LEFT ISOLATE
key <AD03> {[ Arabic_theh, Arabic_damma, any, U2068 ]}; // ث ◌ُ FIRST STRONG ISOLATE
key <AD04> {[ Arabic_qaf, Arabic_dammatan, any, U2069 ]}; // ق ◌ٌ POP DIRECTIONAL ISOLATE
key <AD05> {[ Arabic_feh, UFEF9, Arabic_veh, any ]}; // ف ﻹ ڤ
key <AD06> {[ Arabic_ghain,Arabic_hamzaunderalef, any, U202A ]}; // غ إ LEFT-TO-RIGHT-EMBEDDING
key <AD07> {[ Arabic_ain, grave, any, U202B ]}; // ع ` RIGHT-TO-LEFT EMBEDDING
key <AD08> {[ Arabic_ha, division, any, U202C ]}; // ه ÷ POP DIRECTIONAL FORMATTING
key <AD09> {[ Arabic_khah, multiply, any, any ]}; // خ ×
key <AD10> {[ Arabic_hah, Arabic_semicolon, any, U200E ]}; // ح ؛ LEFT-TO-RIGHT MARK
key <AD11> {[ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ج < چ RIGHT-TO-LEFT MARK
key <AD12> {[ Arabic_dal, greater, any, U061C ]}; // د > ARABIC LETTER MARK
key <AC01> {[ Arabic_sheen, Arabic_kasra, any, any ]}; // ش ◌ِ
key <AC02> {[ Arabic_seen, Arabic_kasratan, any, any ]}; // س ◌ٍ
key <AC03> {[ Arabic_yeh, bracketright, any, any ]}; // ي ]
key <AC04> {[ Arabic_beh, bracketleft, Arabic_peh, any ]}; // ب [ پ
key <AC05> {[ Arabic_lam, UFEF7, any, any ]}; // ل ﻷ
key <AC06> {[ Arabic_alef, Arabic_hamzaonalef, U0671, any ]}; // ا أ ٱ
key <AC07> {[ Arabic_teh, Arabic_tatweel, any, any ]}; // ت ـ
key <AC08> {[ Arabic_noon, Arabic_comma, U066B, any ]}; // ن ، ٫
key <AC09> {[ Arabic_meem, slash, any, any ]}; // م /
key <AC10> {[ Arabic_kaf, colon, Arabic_gaf, any ]}; // ك : گ
key <AC11> {[ Arabic_tah, quotedbl, U27E9, U200D ]}; // ط " ⟩ ZWJ
key <BKSL> {[ backslash, bar, U27E8, U202F ]}; // \ | ⟨ NNBSP
key <LSGT> {[ bar, ellipsis, brokenbar, any ]}; // | … ¦
key <AB01> {[Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ئ ~ » ›
key <AB02> {[ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ء ◌ْ « ‹
key <AB03> {[Arabic_hamzaonwaw, braceright, any, any ]}; // ؤ }
key <AB04> {[ Arabic_ra, braceleft, any, any ]}; // ر {
key <AB05> {[ UFEFB, UFEF5, any, any ]}; // ﻻ ﻵ
key <AB06> {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, any ]}; // ى آ ◌ٰ
key <AB07> {[Arabic_tehmarbuta, apostrophe, any, any ]}; // ة '
key <AB08> {[ Arabic_waw, comma, U066C, any ]}; // و , ٬
key <AB09> {[ Arabic_zain, period, Arabic_jeh, any ]}; // ز . ژ
key <AB10> {[ Arabic_zah, Arabic_question_mark, U066D, U200C ]}; // ظ ؟ ٭ ZWNJ
include "level3(ralt_switch)"
};
// Replaces the Western numeral signs with Arabic-script digits on the keypad,
// pushing the Western digits to the third level accessible by the right Alt key.
// Additionally, the fourth level gives the Persian digits.
hidden partial keypad_keys
xkb_symbols "digits_KP" {
key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD";
key <KP7> {[ KP_Home, Arabic_7, 7, Farsi_7 ]};
key <KP8> {[ KP_Up, Arabic_8, 8, Farsi_8 ]};
key <KP9> {[ KP_Prior, Arabic_9, 9, Farsi_9 ]};
key <KP4> {[ KP_Left, Arabic_4, 4, Farsi_4 ]};
key <KP5> {[ KP_Begin, Arabic_5, 5, Farsi_5 ]};
key <KP6> {[ KP_Right, Arabic_6, 6, Farsi_6 ]};
key <KP1> {[ KP_End, Arabic_1, 1, Farsi_1 ]};
key <KP2> {[ KP_Down, Arabic_2, 2, Farsi_2 ]};
key <KP3> {[ KP_Next, Arabic_3, 3, Farsi_3 ]};
key <KP0> {[ KP_Insert, Arabic_0, 0, Farsi_0 ]};
include "kpdl(momayyezoss)"
};
// Replaces the Western numeral signs with Arabic-script digits on the numeric row,
// pushing the Western digits to the third level accessible by the right Alt key.
partial alphanumeric_keys
xkb_symbols "digits" {
include "ara(basic)"
name[Group1]= "Arabic (Eastern Arabic numerals)";
key <TLDE> {[Arabic_thal, Arabic_shadda, percent, U2030 ]};
key <AE01> {[ Arabic_1, exclam, 1, any ]};
key <AE02> {[ Arabic_2, at, 2, any ]};
key <AE03> {[ Arabic_3, numbersign, 3, any ]};
key <AE04> {[ Arabic_4, dollar, 4, any ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, U0609 ]};
key <AE06> {[ Arabic_6, asciicircum, 6, any ]};
key <AE07> {[ Arabic_7, ampersand, 7, any ]};
key <AE08> {[ Arabic_8, asterisk, 8, any ]};
key <AE09> {[ Arabic_9, parenright, 9, any ]};
key <AE10> {[ Arabic_0, parenleft, 0, any ]};
include "ara(digits_KP)"
};
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 characters are inaccessible: ! @ # $ % ^ *
// Should they go elsewhere? Replacing " ' that are now doubled?
// 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 "azerty_digits" {
include "ara(azerty)"
name[Group1]= "Arabic (AZERTY, Eastern Arabic numerals)";
key <AE01> {[ ampersand, Arabic_1, 1, any ]};
key <AE02> {[ eacute, Arabic_2, 2, any ]};
key <AE03> {[ quotedbl, Arabic_3, 3, any ]};
key <AE04> {[ apostrophe, Arabic_4, 4, any ]};
key <AE05> {[ parenleft, Arabic_5, 5, any ]};
key <AE06> {[ minus, Arabic_6, 6, any ]};
key <AE07> {[ egrave, Arabic_7, 7, any ]};
key <AE08> {[ underscore, Arabic_8, 8, any ]};
key <AE09> {[ ccedilla, Arabic_9, 9, any ]};
key <AE10> {[ agrave, Arabic_0, 0, any ]};
};
// Arabic layout for the Buckwalter transliteration scheme,
// adding I, O, and W as aliases for <, >, and &.
// See http://www.qamus.org/transliteration.htm.
// Originally by Martin Vidner, 2006.
partial alphanumeric_keys
xkb_symbols "buckwalter" {
name[Group1]= "Arabic (Buckwalter)";
key <TLDE> {[ Arabic_superscript_alef, Arabic_shadda ]};
key <AE01> {[ Arabic_1, none ]};
key <AE02> {[ Arabic_2, none ]};
key <AE03> {[ Arabic_3, none ]};
key <AE04> {[ Arabic_4, Arabic_sheen ]};
key <AE05> {[ Arabic_5, Arabic_percent ]};
key <AE06> {[ Arabic_6, none ]};
key <AE07> {[ Arabic_7, Arabic_hamzaonwaw ]};
key <AE08> {[ Arabic_8, Arabic_thal ]};
key <AE09> {[ Arabic_9, UFD3E ]}; // ﴾ (ornate left parenthesis)
key <AE10> {[ Arabic_0, UFD3F ]}; // ﴿ (ornate right parenthesis)
key <AE11> {[ minus, Arabic_tatweel ]};
key <AE12> {[ equal, plus ]};
key <AD01> {[ Arabic_qaf, none ]};
key <AD02> {[ Arabic_waw, Arabic_hamzaonwaw ]};
key <AD03> {[ none, Arabic_ain ]};
key <AD04> {[ Arabic_ra, none ]};
key <AD05> {[ Arabic_teh, Arabic_tah ]};
key <AD06> {[ Arabic_yeh, Arabic_alefmaksura ]};
key <AD07> {[ Arabic_damma, none ]};
key <AD08> {[ Arabic_kasra, Arabic_hamzaunderalef ]};
key <AD09> {[ Arabic_sukun, Arabic_hamzaonalef ]};
key <AD10> {[ Arabic_tehmarbuta,none ]};
key <AD11> {[ none, U0671 ]}; // ٱ (Alef wasla)
key <AD12> {[ none, 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, none ]};
key <AC06> {[ Arabic_ha, Arabic_hah ]};
key <AC07> {[ Arabic_jeem, none ]};
key <AC08> {[ Arabic_kaf, Arabic_kasratan ]};
key <AC09> {[ Arabic_lam, none ]};
key <AC10> {[ Arabic_semicolon, none ]};
key <AC11> {[ Arabic_hamza, none ]};
key <BKSL> {[ none, Arabic_maddaonalef ]};
key <AB01> {[ Arabic_zain, Arabic_zah ]};
key <AB02> {[ Arabic_khah, none ]};
key <AB03> {[ none, none ]};
key <AB04> {[ Arabic_theh, none ]};
key <AB05> {[ Arabic_beh, none ]};
key <AB06> {[ Arabic_noon, Arabic_dammatan ]};
key <AB07> {[ Arabic_meem, none ]};
key <AB08> {[ Arabic_comma, Arabic_hamzaunderalef ]};
key <AB09> {[ Arabic_fullstop, Arabic_hamzaonalef ]};
key <AB10> {[ none, Arabic_question_mark ]};
};
partial alphanumeric_keys
xkb_symbols "olpc" {
include "ara(basic)"
name[Group1]= "Arabic (OLPC)";
// This OLPC layout comprises the following changes in comparison to the default Arabic one:
// ‣ Arabic and European digits are swapped (which entails swapping of the percent and permille signs).
// ‣ Lām-ʾalif is eliminated. People type as they pronounce, and lam-alef is just a visual formatting of the
// sequence and thus arguably not used on the keyboard. This frees four slots which are used for the following three changes.
// ‣ The <TLDE> characters move:
// • Thal from <TLDE> to <AB05>
// • Shadda from <TLDE> to <AD05>
// ‣ £ and € obtain the <AE06> and <AE07> keys, the ^ and & signs previously occupying them take seat at <AB05> and <AC05>.
// ‣ The <TLDE> key gets grave ` and asciitilde ~ as on English keyboards.
// ‣ In sum the grave and asciitilde are present twice, as their erstwhile places are not removed.
// ‣ The braces }{ take the place of the less-than and greater-than >< signs,
// but these the place of kasra and kasratan which establish themselves in the braces’ former steads.
// ‣ The … character on <BKSL> is replaced by |, because OLPC laptops have no <LSGT> key installed where the bar is else placed.
key <TLDE> {[ grave, asciitilde, percent, permille ]};
key <AE01> {[ Arabic_1, exclam, 1 ]};
key <AE02> {[ Arabic_2, at, 2 ]};
key <AE03> {[ Arabic_3, numbersign, 3 ]};
key <AE04> {[ Arabic_4, dollar, 4 ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, U0609 ]};
key <AE06> {[ Arabic_6, sterling, 6 ]};
key <AE07> {[ Arabic_7, EuroSign, 7 ]};
key <AE08> {[ Arabic_8, asterisk, 8 ]};
key <AE09> {[ Arabic_9, parenright, 9 ]};
key <AE10> {[ Arabic_0, parenleft, 0 ]};
key <AD05> {[ Arabic_feh, Arabic_shadda ]};
key <AD11> {[ Arabic_jeem, braceright ]};
key <AD12> {[ Arabic_dal, braceleft ]};
key <AC01> {[ Arabic_sheen, greater ]};
key <AC02> {[ Arabic_seen, less ]};
key <AC05> {[ Arabic_lam, ampersand ]};
key <BKSL> {[ backslash, bar ]};
key <AB03> {[ Arabic_hamzaonwaw, Arabic_kasra ]};
key <AB04> {[ Arabic_ra, Arabic_kasratan ]};
key <AB05> {[ Arabic_thal, asciicircum ]};
include "group(olpc)"
};
partial alphanumeric_keys
xkb_symbols "mac" {
// This layout is compatible with macbooks.
include "ara(digits)"
name[Group1]= "Arabic (Macintosh)";
key <TLDE> {[ Arabic_tatweel, none ]};
key <AE11> {[ minus, underscore ]};
key <AE12> {[ equal, plus ]};
key <AD03> {[ Arabic_theh, Arabic_kasra ]};
key <AD04> {[ Arabic_qaf, Arabic_kasratan ]};
key <AD05> {[ Arabic_feh, Arabic_damma ]};
key <AD06> {[ Arabic_ghain, Arabic_dammatan ]};
key <AD07> {[ Arabic_ain, Arabic_sukun ]};
key <AD08> {[ Arabic_ha, Arabic_shadda ]};
key <AD09> {[ Arabic_khah, bracketright ]};
key <AD10> {[ Arabic_hah, bracketleft ]};
key <AD11> {[ Arabic_jeem, braceright ]};
key <AD12> {[Arabic_tehmarbuta, braceleft ]};
key <AC01> {[ Arabic_sheen, guillemotright ]};
key <AC02> {[ Arabic_seen, guillemotleft ]};
key <AC03> {[ Arabic_yeh, Arabic_alefmaksura ]};
key <AC04> {[ Arabic_beh, 0x1000670 ]};
key <AC05> {[ Arabic_lam, none ]};
key <AC06> {[ Arabic_alef, Arabic_maddaonalef ]};
key <AC07> {[ Arabic_teh, 0x1000671 ]};
key <AC08> {[ Arabic_noon, none ]};
key <AC09> {[ Arabic_meem, none ]};
key <AC10> {[ Arabic_kaf, colon ]};
key <AC11> {[ Arabic_semicolon, quotedbl ]};
key <BKSL> {[ backslash, bar ]};
key <LSGT> {[ Arabic_tatweel, none ]};
key <AB01> {[ Arabic_zah, none ]};
key <AB02> {[ Arabic_tah, none ]};
key <AB03> {[ Arabic_thal, Arabic_hamzaonyeh ]};
key <AB04> {[ Arabic_dal, Arabic_hamza ]};
key <AB05> {[ Arabic_zain, Arabic_hamzaonalef ]};
key <AB06> {[ Arabic_ra, Arabic_hamzaunderalef ]};
key <AB07> {[ Arabic_waw, Arabic_hamzaonwaw ]};
key <AB08> {[ Arabic_comma, greater ]};
key <AB09> {[ period, less ]};
key <AB10> {[ slash, Arabic_question_mark ]};
};
// Macintosh Arabic QWERTY layout
// https://github.com/unicode-org/cldr/blob/main/keyboards/osx/ar-t-k0-osx-qwerty.xml
// LSGT is modified to match TLDE rather than having ^C on all levels
//
// NOTE: The original layout has a dead hamza on <BKSL>.
//
// TODO: Replace none with dead_hamza. This keysym is being implemented in
// https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/78
// and the compose sequences in
// https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/218
partial alphanumeric_keys
xkb_symbols "mac-phonetic" {
name[Group1]= "Arabic (Macintosh, phonetic)";
key <TLDE> {[ Arabic_tatweel, Arabic_tatweel, greater, less ]};
key <AE01> {[ Arabic_1, exclam, Arabic_hamzaunderalef, exclam, 1 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE02> {[ Arabic_2, Arabic_hamza, U274A, U274A, 2 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE03> {[ Arabic_3, Arabic_hamzaonalef, numbersign, numbersign, 3 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE04> {[ Arabic_4, Arabic_maddaonalef, dollar, EuroSign, 4 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE05> {[ Arabic_5, Arabic_hamzaunderalef, Arabic_percent, Arabic_percent, 5 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE06> {[ Arabic_6, Arabic_hamzaonyeh, ampersand, ampersand, 6 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE07> {[ Arabic_7, Arabic_hamzaonwaw, asciicircum, asciicircum, 7 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE08> {[ Arabic_8, Arabic_alefmaksura, asterisk, asterisk, 8 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE09> {[ Arabic_9, parenright, parenright, parenright, 9 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE10> {[ Arabic_0, parenleft, parenleft, parenleft, 0 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" };
key <AE11> {[ minus, underscore, underscore, underscore ]};
key <AE12> {[ equal, plus, plus, plus ]};
key <AD01> {[ Arabic_qaf, Arabic_veh, Arabic_veh, Arabic_gaf ]};
key <AD02> {[ Arabic_sheen, Arabic_shadda, Arabic_shadda, Arabic_shadda ]};
key <AD03> {[ Arabic_ain, Arabic_ghain, Arabic_farsi_yeh, none ]};
key <AD04> {[ Arabic_ra, Arabic_zain, Arabic_ghain, Arabic_rreh ]};
key <AD05> {[ Arabic_teh, Arabic_theh, Arabic_tah, Arabic_tehmarbuta ]};
key <AD06> {[ Arabic_tah, Arabic_zah, Arabic_theh, Arabic_alefmaksura ]};
key <AD07> {[ Arabic_waw, Arabic_yeh_baree, Arabic_damma, Arabic_dammatan ]};
key <AD08> {[ Arabic_yeh, Arabic_alefmaksura, Arabic_kasra, Arabic_kasratan ]};
key <AD09> {[ Arabic_ha, Arabic_tehmarbuta, Arabic_sukun, U06D5 ]};
key <AD10> {[ Arabic_tehmarbuta, Arabic_teh, Arabic_shadda, Arabic_peh ]};
key <AD11> {[ Arabic_theh, braceright, bracketright, braceright ]};
key <AD12> {[ Arabic_zah, braceleft, bracketleft, braceleft ]};
key <BKSL> {[ none, Arabic_hamzaunderalef, Arabic_hamzaonalef, Arabic_maddaonalef ]};
key <AC01> {[ Arabic_alef, Arabic_maddaonalef, Arabic_fatha, Arabic_fathatan ]};
key <AC02> {[ Arabic_seen, Arabic_sheen, Arabic_sad, Arabic_shadda ]};
key <AC03> {[ Arabic_dal, Arabic_thal, Arabic_dad, Arabic_ddal ]};
key <AC04> {[ Arabic_feh, Arabic_qaf, Arabic_veh, Arabic_veh ]};
key <AC05> {[ Arabic_ghain, Arabic_ain, Arabic_ain, Arabic_gaf ]};
key <AC06> {[ Arabic_hah, Arabic_khah, Arabic_ha, Arabic_tcheh ]};
key <AC07> {[ Arabic_jeem, Arabic_tcheh, Arabic_khah, Arabic_jeh ]};
key <AC08> {[ Arabic_kaf, Arabic_gaf, Arabic_khah, Arabic_keheh ]};
key <AC09> {[ Arabic_lam, U274A, none, none ]};
key <AC10> {[ Arabic_semicolon, colon, none, none ]};
key <AC11> {[ apostrophe, quotedbl, U0671, none ]};
key <LSGT> {[ Arabic_tatweel, Arabic_tatweel, greater, less ]};
key <AB01> {[ Arabic_zain, Arabic_jeh, Arabic_zah, Arabic_jeh ]};
key <AB02> {[ Arabic_khah, Arabic_hah, Arabic_hah, none ]};
key <AB03> {[ Arabic_sad, Arabic_dad, Arabic_theh, Arabic_tcheh ]};
key <AB04> {[ Arabic_thal, Arabic_dal, Arabic_zah, Arabic_veh ]};
key <AB05> {[ Arabic_beh, Arabic_peh, Arabic_peh, Arabic_tteh ]};
key <AB06> {[ Arabic_noon, Arabic_theh, none, Arabic_noon_ghunna ]};
key <AB07> {[ Arabic_meem, Arabic_maddaonalef, Arabic_maddaonalef, Arabic_maddaonalef ]};
key <AB08> {[ Arabic_comma, greater, guillemotright, U274A ]};
key <AB09> {[ period, less, guillemotleft, none ]};
key <AB10> {[ backslash, Arabic_question_mark, slash, backslash ]};
key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
include "level3(ralt_switch)"
};
// EXTRAS:
partial alphanumeric_keys
xkb_symbols "sun_type6" {
include "sun_vndr/ara(sun_type6)"
};
partial alphanumeric_keys
xkb_symbols "basic_ext" {
name[Group1]= "Arabic (Arabic numerals, extensions in the 4th level)";
key.type[Group1]="FOUR_LEVEL";
key <TLDE> {[ Arabic_thal, Arabic_shadda, Arabic_percent, Arabic_ddal ]}; // ذ ◌ّ ٪ ڈ
key <AE01> {[ 1, exclam, Arabic_1, Farsi_1 ]}; // 1 ! ١ ۱
key <AE02> {[ 2, at, Arabic_2, Farsi_2 ]}; // 2 @ ٢ ۲
key <AE03> {[ 3, numbersign, Arabic_3, Farsi_3 ]}; // 3 # ٣ ۳
key <AE04> {[ 4, dollar, Arabic_4, Farsi_4 ]}; // 4 $ ٤ ۴
key <AE05> {[ 5, percent, Arabic_5, Farsi_5 ]}; // 5 % ٥ ۵
key <AE06> {[ 6, Farsi_yeh, Arabic_6, Farsi_6 ]}; // 6 ی ٦ ۶
key <AE07> {[ 7, ampersand, Arabic_7, Farsi_7 ]}; // 7 & ٧ ۷
key <AE08> {[ 8, asterisk, Arabic_8, Farsi_8 ]}; // 8 * ٨ ۸
key <AE09> {[ 9, parenright, Arabic_9, Farsi_9 ]}; // 9 ) ٩ ۹
key <AE10> {[ 0, parenleft, Arabic_0, Farsi_0 ]}; // 0 ( ٠ ۰
key <AE11> {[ minus, underscore, endash, U2011 ]}; // - _ – Non-Breaking-Hyphen
key <AE12> {[ equal, plus, notequal, U2248 ]}; // = + ≠ ≈
key <AD01> {[ Arabic_dad, Arabic_fatha, U0689, U2066 ]}; // ض ◌َ ډ LEFT‑TO‑RIGHT ISOLATE
key <AD02> {[ Arabic_sad, Arabic_fathatan, U06D5, U2067 ]}; // ص ◌ً ە RIGHT‑TO‑LEFT ISOLATE
key <AD03> {[ Arabic_theh, Arabic_damma, U067F, U2068 ]}; // ث ◌ُ ٿ FIRST STRONG ISOLATE
key <AD04> {[ Arabic_qaf, Arabic_dammatan, U06A6, U2069 ]}; // ق ◌ٌ ڦ POP DIRECTIONAL ISOLATE
key <AD05> {[ Arabic_feh, UFEF9, Arabic_veh, U068D ]}; // ف ﻹ ڤ ڍ
key <AD06> {[ Arabic_ghain,Arabic_hamzaunderalef, U0685, U202A ]}; // غ إ څ LEFT-TO-RIGHT-EMBEDDING
key <AD07> {[ Arabic_ain, Arabic_rreh, Arabic_heh_goal, U202B ]}; // ع ڑ ہ RIGHT-TO-LEFT EMBEDDING
key <AD08> {[ Arabic_ha, division, Arabic_heh_doachashmee, U202C ]}; // ه ÷ ھ POP DIRECTIONAL FORMATTING
key <AD09> {[ Arabic_khah, multiply, U0681, U0687 ]}; // خ × ځ ڇ
key <AD10> {[ Arabic_hah, Arabic_semicolon, U0683, U200E ]}; // ح ؛ ڃ LEFT-TO-RIGHT MARK
key <AD11> {[ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ج < چ RIGHT-TO-LEFT MARK
key <AD12> {[ Arabic_dal, greater, U0684, U061C ]}; // د > ڄ ARABIC LETTER MARK
key <AC01> {[ Arabic_sheen, Arabic_kasra, U06C6, U06C9 ]}; // ش ◌ِ ۆ ۉ
key <AC02> {[ Arabic_seen, Arabic_kasratan, U067C, U0680 ]}; // س ◌ٍ ټ ڀ
key <AC03> {[ Arabic_yeh, bracketright, U06D0, U06CD ]}; // ي ] ې ۍ
key <AC04> {[ Arabic_beh, bracketleft, Arabic_peh, U067B ]}; // ب [ پ ٻ
key <AC05> {[ Arabic_lam, UFEF7, U076A, U0658 ]}; // ل ﻷ ݪ ٘◌
key <AC06> {[ Arabic_alef, Arabic_hamzaonalef, U0671, Arabic_noon_ghunna ]}; // ا أ ٱ ں
key <AC07> {[ Arabic_teh, Arabic_tatweel, U067D, U067A ]}; // ت ـ ٽ ٺ
key <AC08> {[ Arabic_noon, Arabic_comma, U066B, U06BB ]}; // ن ، ٫ ڻ
key <AC09> {[ Arabic_meem, slash, U06B3, U06B1 ]}; // م / ڳ ڱ
key <AC10> {[ Arabic_kaf, colon, Arabic_gaf, Arabic_keheh ]}; // ك : گ ک
key <AC11> {[ Arabic_tah, quotedbl, U27E9, U200D ]}; // ط " ⟩ ZWJ
key <BKSL> {[ backslash, bar, U27E8, U202F ]}; // \ | ⟨ NNBSP
key <LSGT> {[ bar, ellipsis, U06C0, U0620 ]}; // | … ۀ ؠ
key <AB01> {[Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ئ ~ » ›
key <AB02> {[ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ء ◌ْ « ‹
key <AB03> {[Arabic_hamzaonwaw, braceright, U06C7, U0677 ]}; // ؤ } ۇ ٷ
key <AB04> {[ Arabic_ra, braceleft, U0693, U0699 ]}; // ر { ړ ڙ
key <AB05> {[ UFEFB, UFEF5, U06AB, U06AD ]}; // ﻻ ﻵ ګ ڭ
key <AB06> {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, Arabic_yeh_baree ]}; // ى آ ◌ٰ ے
key <AB07> {[Arabic_tehmarbuta, apostrophe, Arabic_fullstop, U06AA ]}; // ة ' ۔ ڪ
key <AB08> {[ Arabic_waw, comma, U066C, U06CB ]}; // و , ٬ ۋ
key <AB09> {[ Arabic_zain, period, Arabic_jeh, U0696 ]}; // ز . ژ ږ
key <AB10> {[ Arabic_zah, Arabic_question_mark, Arabic_tteh, U200C ]}; // ظ ؟ ٹ ZWNJ
include "level3(ralt_switch)"
};
// Replaces the Western numeral signs with Arabic-script digits on the numeric row,
// pushing the Western digits to the third level accessible by the right alt key.
// The alternative numeral glyphs used in some languages that employ the Arabic script
// are featured in the fourth layer.
partial alphanumeric_keys
xkb_symbols "basic_ext_digits" {
include "ara(basic_ext)"
name[Group1]= "Arabic (Eastern Arabic numerals, extensions in the 4th level)";
key <TLDE> {[Arabic_thal, Arabic_shadda, percent, Arabic_ddal ]};
key <AE01> {[ Arabic_1, exclam, 1, Farsi_1 ]};
key <AE02> {[ Arabic_2, at, 2, Farsi_2 ]};
key <AE03> {[ Arabic_3, numbersign, 3, Farsi_3 ]};
key <AE04> {[ Arabic_4, dollar, 4, Farsi_4 ]};
key <AE05> {[ Arabic_5, Arabic_percent, 5, Farsi_5 ]};
key <AE06> {[ Arabic_6, Farsi_yeh, 6, Farsi_6 ]};
key <AE07> {[ Arabic_7, ampersand, 7, Farsi_7 ]};
key <AE08> {[ Arabic_8, asterisk, 8, Farsi_8 ]};
key <AE09> {[ Arabic_9, parenright, 9, Farsi_9 ]};
key <AE10> {[ Arabic_0, parenleft, 0, Farsi_0 ]};
include "ara(digits_KP)"
};
// An Ergonomic implementation of the basic Arabic keyboard (PC). Brings all letters to the middle 30 keys.
xkb_symbols "ergoarabic" {
include "ara(basic)"
name[Group1]= "Arabic (ErgoArabic)";
key <TLDE> {[ grave, asciitilde, any, any ]};
key <AD01> {[ Arabic_dal, Arabic_thal, any, U2066 ]};
key <AD02> {[ Arabic_sad, Arabic_dad, any, U2067 ]};
key <AD05> {[ Arabic_feh, Arabic_shadda, Arabic_veh, any ]};
key <AD06> {[ Arabic_hamza, Arabic_hamzaunderalef, any, U202A ]};
key <AD07> {[ Arabic_ain, Arabic_ghain, any, U202B ]};
key <AD08> {[ Arabic_ha, division, any, U202C ]};
key <AD09> {[ Arabic_waw, Arabic_hamzaonwaw, any, any ]};
key <AD10> {[ Arabic_tehmarbuta, Arabic_semicolon, any, U200E ]};
key <AD11> {[ bracketright, braceright, any, U200F ]};
key <AD12> {[ bracketleft, braceleft, any, U061C ]};
key <AC03> {[ Arabic_yeh, Arabic_fatha, any, any ]};
key <AC04> {[ Arabic_beh, Arabic_fathatan, Arabic_peh, any ]};
key <AC05> {[ Arabic_lam, Arabic_maddaonalef,Arabic_superscript_alef, any ]};
key <AC07> {[ Arabic_teh, Arabic_tatweel, any, any ]};
key <AC08> {[ Arabic_noon, multiply, U066B, any ]};
key <AC09> {[ Arabic_meem, comma, any, any ]};
key <AC10> {[ Arabic_kaf, colon, Arabic_gaf, any ]};
key <AC11> {[ apostrophe, quotedbl, U27E9, U200D ]};
key <BKSL> {[ backslash, bar, U27E8, U202F ]};
key <AB01> {[ Arabic_hamzaonyeh, any, U203A, any ]};
key <AB02> {[Arabic_alefmaksura, Arabic_sukun, U2039, any ]};
key <AB03> {[ Arabic_tah, Arabic_zah, any, any ]};
key <AB04> {[ Arabic_ra, Arabic_zain, Arabic_jeh, any ]};
key <AB05> {[ Arabic_khah, ellipsis, any, any ]};
key <AB06> {[ Arabic_hah, guillemotright, any, any ]};
key <AB07> {[ Arabic_jeem, guillemotleft, Arabic_tcheh, any ]};
key <AB08> {[ Arabic_comma, greater, any, any ]};
key <AB09> {[ period, less, any, any ]};
key <AB10> {[ slash, Arabic_question_mark, U066D, U200C ]};
};
|