default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]= "Arabic"; key.type[Group1]="FOUR_LEVEL"; key {[ Arabic_thal, Arabic_shadda, Arabic_percent, U0609 ]}; // ‎ذ‎ ‎◌ّ‎ ‎٪‎ ‎؉‎ key {[ 1, exclam, Arabic_1, any ]}; // 1 ! ١ key {[ 2, at, Arabic_2, any ]}; // 2 @ ٢ key {[ 3, numbersign, Arabic_3, any ]}; // 3 # ٣ key {[ 4, dollar, Arabic_4, any ]}; // 4 $ ٤ key {[ 5, percent, Arabic_5, U2030 ]}; // 5 % ٥ ‰ key {[ 6, asciicircum, Arabic_6, any ]}; // 6 ^ ٦ key {[ 7, ampersand, Arabic_7, any ]}; // 7 & ٧ key {[ 8, asterisk, Arabic_8, any ]}; // 8 * ٨ key {[ 9, parenright, Arabic_9, any ]}; // 9 ) ٩ key {[ 0, parenleft, Arabic_0, any ]}; // 0 ( ٠ key {[ minus, underscore, endash, U2011 ]}; // - _ – Non-Breaking-Hyphen key {[ equal, plus, notequal, U2248 ]}; // = + ≠ ≈ key {[ Arabic_dad, Arabic_fatha, any, U2066 ]}; // ‎ض‎ ‎◌َ LEFT‑TO‑RIGHT ISOLATE key {[ Arabic_sad, Arabic_fathatan, any, U2067 ]}; // ‎ص‎ ‎◌ً RIGHT‑TO‑LEFT ISOLATE key {[ Arabic_theh, Arabic_damma, any, U2068 ]}; // ‎ث‎ ‎◌ُ FIRST STRONG ISOLATE key {[ Arabic_qaf, Arabic_dammatan, any, U2069 ]}; // ‎ق‎ ‎◌ٌ POP DIRECTIONAL ISOLATE key {[ Arabic_feh, UFEF9, Arabic_veh, any ]}; // ‎ف‎ ‎ﻹ ‎ڤ key {[ Arabic_ghain,Arabic_hamzaunderalef, any, U202A ]}; // ‎غ‎ ‎إ‎ LEFT-TO-RIGHT-EMBEDDING key {[ Arabic_ain, grave, any, U202B ]}; // ‎ع‎ ` RIGHT-TO-LEFT EMBEDDING key {[ Arabic_ha, division, any, U202C ]}; // ‎ه‎ ÷ POP DIRECTIONAL FORMATTING key {[ Arabic_khah, multiply, any, any ]}; // ‎خ‎ × key {[ Arabic_hah, Arabic_semicolon, any, U200E ]}; // ‎ح‎ ؛ LEFT-TO-RIGHT MARK key {[ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK key {[ Arabic_dal, greater, any, U061C ]}; // ‎د‎ > ARABIC LETTER MARK key {[ Arabic_sheen, Arabic_kasra, any, any ]}; // ‎ش‎ ‎◌ِ‎ key {[ Arabic_seen, Arabic_kasratan, any, any ]}; // ‎س‎ ‎◌ٍ‎ key {[ Arabic_yeh, bracketright, any, any ]}; // ‎ي‎ ] key {[ Arabic_beh, bracketleft, Arabic_peh, any ]}; // ‎ب‎ [ ‎پ‎ key {[ Arabic_lam, UFEF7, any, any ]}; // ‎ل‎ ‎ﻷ‎ key {[ Arabic_alef, Arabic_hamzaonalef, U0671, any ]}; // ‎ا‎ ‎أ ‎ٱ‎ key {[ Arabic_teh, Arabic_tatweel, any, any ]}; // ‎ت‎ ‎ـ‎ key {[ Arabic_noon, Arabic_comma, U066B, any ]}; // ‎ن‎ ‎،‎ ‎٫‎ key {[ Arabic_meem, slash, any, any ]}; // ‎م‎ / key {[ Arabic_kaf, colon, Arabic_gaf, any ]}; // ‎ك‎ : ‎گ‎ key {[ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ key {[ backslash, bar, U27E8, U202F ]}; // \ | ⟨ NNBSP key {[ bar, ellipsis, brokenbar, any ]}; // | … ¦ key {[Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ » › key {[ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ « ‹ key {[Arabic_hamzaonwaw, braceright, any, any ]}; // ‎ؤ } key {[ Arabic_ra, braceleft, any, any ]}; // ‎ر‎ { key {[ UFEFB, UFEF5, any, any ]}; // ‎ﻻ‎ ‎ﻵ‎ key {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, any ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎ key {[Arabic_tehmarbuta, apostrophe, any, any ]}; // ‎ة‎ ' key {[ Arabic_waw, comma, U066C, any ]}; // ‎و‎ , ‎٬ key {[ Arabic_zain, period, Arabic_jeh, any ]}; // ‎ز‎ . ‎ژ‎ key {[ 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 {[ KP_Home, Arabic_7, 7, Farsi_7 ]}; key {[ KP_Up, Arabic_8, 8, Farsi_8 ]}; key {[ KP_Prior, Arabic_9, 9, Farsi_9 ]}; key {[ KP_Left, Arabic_4, 4, Farsi_4 ]}; key {[ KP_Begin, Arabic_5, 5, Farsi_5 ]}; key {[ KP_Right, Arabic_6, 6, Farsi_6 ]}; key {[ KP_End, Arabic_1, 1, Farsi_1 ]}; key {[ KP_Down, Arabic_2, 2, Farsi_2 ]}; key {[ KP_Next, Arabic_3, 3, Farsi_3 ]}; key {[ 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 {[Arabic_thal, Arabic_shadda, percent, U2030 ]}; key {[ Arabic_1, exclam, 1, any ]}; key {[ Arabic_2, at, 2, any ]}; key {[ Arabic_3, numbersign, 3, any ]}; key {[ Arabic_4, dollar, 4, any ]}; key {[ Arabic_5, Arabic_percent, 5, U0609 ]}; key {[ Arabic_6, asciicircum, 6, any ]}; key {[ Arabic_7, ampersand, 7, any ]}; key {[ Arabic_8, asterisk, 8, any ]}; key {[ Arabic_9, parenright, 9, any ]}; key {[ 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 {[ ampersand, 1 ]}; key {[ eacute, 2 ]}; key {[ quotedbl, 3 ]}; key {[ apostrophe, 4 ]}; key {[ parenleft, 5 ]}; key {[ minus, 6 ]}; key {[ egrave, 7 ]}; key {[ underscore, 8 ]}; key {[ ccedilla, 9 ]}; key {[ agrave, 0 ]}; key {[ parenright, degree ]}; }; partial alphanumeric_keys xkb_symbols "azerty_digits" { include "ara(azerty)" name[Group1]= "Arabic (AZERTY, Eastern Arabic numerals)"; key {[ ampersand, Arabic_1, 1, any ]}; key {[ eacute, Arabic_2, 2, any ]}; key {[ quotedbl, Arabic_3, 3, any ]}; key {[ apostrophe, Arabic_4, 4, any ]}; key {[ parenleft, Arabic_5, 5, any ]}; key {[ minus, Arabic_6, 6, any ]}; key {[ egrave, Arabic_7, 7, any ]}; key {[ underscore, Arabic_8, 8, any ]}; key {[ ccedilla, Arabic_9, 9, any ]}; key {[ 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 {[ Arabic_superscript_alef, Arabic_shadda ]}; key {[ Arabic_1, none ]}; key {[ Arabic_2, none ]}; key {[ Arabic_3, none ]}; key {[ Arabic_4, Arabic_sheen ]}; key {[ Arabic_5, Arabic_percent ]}; key {[ Arabic_6, none ]}; key {[ Arabic_7, Arabic_hamzaonwaw ]}; key {[ Arabic_8, Arabic_thal ]}; key {[ Arabic_9, UFD3E ]}; // ﴾ (ornate left parenthesis) key {[ Arabic_0, UFD3F ]}; // ﴿ (ornate right parenthesis) key {[ minus, Arabic_tatweel ]}; key {[ equal, plus ]}; key {[ Arabic_qaf, none ]}; key {[ Arabic_waw, Arabic_hamzaonwaw ]}; key {[ none, Arabic_ain ]}; key {[ Arabic_ra, none ]}; key {[ Arabic_teh, Arabic_tah ]}; key {[ Arabic_yeh, Arabic_alefmaksura ]}; key {[ Arabic_damma, none ]}; key {[ Arabic_kasra, Arabic_hamzaunderalef ]}; key {[ Arabic_sukun, Arabic_hamzaonalef ]}; key {[ Arabic_tehmarbuta,none ]}; key {[ none, U0671 ]}; // ٱ (Alef wasla) key {[ none, Arabic_hamzaonyeh ]}; key {[ Arabic_fatha, Arabic_alef ]}; key {[ Arabic_seen, Arabic_sad ]}; key {[ Arabic_dal, Arabic_dad ]}; key {[ Arabic_feh, Arabic_fathatan ]}; key {[ Arabic_ghain, none ]}; key {[ Arabic_ha, Arabic_hah ]}; key {[ Arabic_jeem, none ]}; key {[ Arabic_kaf, Arabic_kasratan ]}; key {[ Arabic_lam, none ]}; key {[ Arabic_semicolon, none ]}; key {[ Arabic_hamza, none ]}; key {[ none, Arabic_maddaonalef ]}; key {[ Arabic_zain, Arabic_zah ]}; key {[ Arabic_khah, none ]}; key {[ none, none ]}; key {[ Arabic_theh, none ]}; key {[ Arabic_beh, none ]}; key {[ Arabic_noon, Arabic_dammatan ]}; key {[ Arabic_meem, none ]}; key {[ Arabic_comma, Arabic_hamzaunderalef ]}; key {[ Arabic_fullstop, Arabic_hamzaonalef ]}; key {[ 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 characters move: // • Thal from to // • Shadda from to // ‣ £ and € obtain the and keys, the ^ and & signs previously occupying them take seat at and . // ‣ The 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 is replaced by |, because OLPC laptops have no key installed where the bar is else placed. key {[ grave, asciitilde, percent, permille ]}; key {[ Arabic_1, exclam, 1 ]}; key {[ Arabic_2, at, 2 ]}; key {[ Arabic_3, numbersign, 3 ]}; key {[ Arabic_4, dollar, 4 ]}; key {[ Arabic_5, Arabic_percent, 5, U0609 ]}; key {[ Arabic_6, sterling, 6 ]}; key {[ Arabic_7, EuroSign, 7 ]}; key {[ Arabic_8, asterisk, 8 ]}; key {[ Arabic_9, parenright, 9 ]}; key {[ Arabic_0, parenleft, 0 ]}; key {[ Arabic_feh, Arabic_shadda ]}; key {[ Arabic_jeem, braceright ]}; key {[ Arabic_dal, braceleft ]}; key {[ Arabic_sheen, greater ]}; key {[ Arabic_seen, less ]}; key {[ Arabic_lam, ampersand ]}; key {[ backslash, bar ]}; key {[ Arabic_hamzaonwaw, Arabic_kasra ]}; key {[ Arabic_ra, Arabic_kasratan ]}; key {[ 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 {[ Arabic_tatweel, none ]}; key {[ minus, underscore ]}; key {[ equal, plus ]}; key {[ Arabic_theh, Arabic_kasra ]}; key {[ Arabic_qaf, Arabic_kasratan ]}; key {[ Arabic_feh, Arabic_damma ]}; key {[ Arabic_ghain, Arabic_dammatan ]}; key {[ Arabic_ain, Arabic_sukun ]}; key {[ Arabic_ha, Arabic_shadda ]}; key {[ Arabic_khah, bracketright ]}; key {[ Arabic_hah, bracketleft ]}; key {[ Arabic_jeem, braceright ]}; key {[Arabic_tehmarbuta, braceleft ]}; key {[ Arabic_sheen, guillemotright ]}; key {[ Arabic_seen, guillemotleft ]}; key {[ Arabic_yeh, Arabic_alefmaksura ]}; key {[ Arabic_beh, 0x1000670 ]}; key {[ Arabic_lam, none ]}; key {[ Arabic_alef, Arabic_maddaonalef ]}; key {[ Arabic_teh, 0x1000671 ]}; key {[ Arabic_noon, none ]}; key {[ Arabic_meem, none ]}; key {[ Arabic_kaf, colon ]}; key {[ Arabic_semicolon, quotedbl ]}; key {[ backslash, bar ]}; key {[ Arabic_tatweel, none ]}; key {[ Arabic_zah, none ]}; key {[ Arabic_tah, none ]}; key {[ Arabic_thal, Arabic_hamzaonyeh ]}; key {[ Arabic_dal, Arabic_hamza ]}; key {[ Arabic_zain, Arabic_hamzaonalef ]}; key {[ Arabic_ra, Arabic_hamzaunderalef ]}; key {[ Arabic_waw, Arabic_hamzaonwaw ]}; key {[ Arabic_comma, greater ]}; key {[ period, less ]}; key {[ 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 . // // 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 {[ Arabic_tatweel, Arabic_tatweel, greater, less ]}; key {[ Arabic_1, exclam, Arabic_hamzaunderalef, exclam, 1 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_2, Arabic_hamza, U274A, U274A, 2 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_3, Arabic_hamzaonalef, numbersign, numbersign, 3 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_4, Arabic_maddaonalef, dollar, EuroSign, 4 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_5, Arabic_hamzaunderalef, Arabic_percent, Arabic_percent, 5 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_6, Arabic_hamzaonyeh, ampersand, ampersand, 6 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_7, Arabic_hamzaonwaw, asciicircum, asciicircum, 7 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_8, Arabic_alefmaksura, asterisk, asterisk, 8 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_9, parenright, parenright, parenright, 9 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ Arabic_0, parenleft, parenleft, parenleft, 0 ], type[group1]="FOUR_LEVEL_PLUS_LOCK" }; key {[ minus, underscore, underscore, underscore ]}; key {[ equal, plus, plus, plus ]}; key {[ Arabic_qaf, Arabic_veh, Arabic_veh, Arabic_gaf ]}; key {[ Arabic_sheen, Arabic_shadda, Arabic_shadda, Arabic_shadda ]}; key {[ Arabic_ain, Arabic_ghain, Arabic_farsi_yeh, none ]}; key {[ Arabic_ra, Arabic_zain, Arabic_ghain, Arabic_rreh ]}; key {[ Arabic_teh, Arabic_theh, Arabic_tah, Arabic_tehmarbuta ]}; key {[ Arabic_tah, Arabic_zah, Arabic_theh, Arabic_alefmaksura ]}; key {[ Arabic_waw, Arabic_yeh_baree, Arabic_damma, Arabic_dammatan ]}; key {[ Arabic_yeh, Arabic_alefmaksura, Arabic_kasra, Arabic_kasratan ]}; key {[ Arabic_ha, Arabic_tehmarbuta, Arabic_sukun, U06D5 ]}; key {[ Arabic_tehmarbuta, Arabic_teh, Arabic_shadda, Arabic_peh ]}; key {[ Arabic_theh, braceright, bracketright, braceright ]}; key {[ Arabic_zah, braceleft, bracketleft, braceleft ]}; key {[ none, Arabic_hamzaunderalef, Arabic_hamzaonalef, Arabic_maddaonalef ]}; key {[ Arabic_alef, Arabic_maddaonalef, Arabic_fatha, Arabic_fathatan ]}; key {[ Arabic_seen, Arabic_sheen, Arabic_sad, Arabic_shadda ]}; key {[ Arabic_dal, Arabic_thal, Arabic_dad, Arabic_ddal ]}; key {[ Arabic_feh, Arabic_qaf, Arabic_veh, Arabic_veh ]}; key {[ Arabic_ghain, Arabic_ain, Arabic_ain, Arabic_gaf ]}; key {[ Arabic_hah, Arabic_khah, Arabic_ha, Arabic_tcheh ]}; key {[ Arabic_jeem, Arabic_tcheh, Arabic_khah, Arabic_jeh ]}; key {[ Arabic_kaf, Arabic_gaf, Arabic_khah, Arabic_keheh ]}; key {[ Arabic_lam, U274A, none, none ]}; key {[ Arabic_semicolon, colon, none, none ]}; key {[ apostrophe, quotedbl, U0671, none ]}; key {[ Arabic_tatweel, Arabic_tatweel, greater, less ]}; key {[ Arabic_zain, Arabic_jeh, Arabic_zah, Arabic_jeh ]}; key {[ Arabic_khah, Arabic_hah, Arabic_hah, none ]}; key {[ Arabic_sad, Arabic_dad, Arabic_theh, Arabic_tcheh ]}; key {[ Arabic_thal, Arabic_dal, Arabic_zah, Arabic_veh ]}; key {[ Arabic_beh, Arabic_peh, Arabic_peh, Arabic_tteh ]}; key {[ Arabic_noon, Arabic_theh, none, Arabic_noon_ghunna ]}; key {[ Arabic_meem, Arabic_maddaonalef, Arabic_maddaonalef, Arabic_maddaonalef ]}; key {[ Arabic_comma, greater, guillemotright, U274A ]}; key {[ period, less, guillemotleft, none ]}; key {[ backslash, Arabic_question_mark, slash, backslash ]}; key {[ 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 {[ Arabic_thal, Arabic_shadda, Arabic_percent, Arabic_ddal ]}; // ‎ذ‎ ‎◌ّ‎ ‎٪‎ ‎ڈ‎ key {[ 1, exclam, Arabic_1, Farsi_1 ]}; // 1 ! ١ ۱ key {[ 2, at, Arabic_2, Farsi_2 ]}; // 2 @ ٢ ۲ key {[ 3, numbersign, Arabic_3, Farsi_3 ]}; // 3 # ٣ ۳ key {[ 4, dollar, Arabic_4, Farsi_4 ]}; // 4 $ ٤ ۴ key {[ 5, percent, Arabic_5, Farsi_5 ]}; // 5 % ٥ ۵ key {[ 6, Farsi_yeh, Arabic_6, Farsi_6 ]}; // 6 ‎ی‎ ٦ ۶ key {[ 7, ampersand, Arabic_7, Farsi_7 ]}; // 7 & ٧ ۷ key {[ 8, asterisk, Arabic_8, Farsi_8 ]}; // 8 * ٨ ۸ key {[ 9, parenright, Arabic_9, Farsi_9 ]}; // 9 ) ٩ ۹ key {[ 0, parenleft, Arabic_0, Farsi_0 ]}; // 0 ( ٠ ۰ key {[ minus, underscore, endash, U2011 ]}; // - _ – Non-Breaking-Hyphen key {[ equal, plus, notequal, U2248 ]}; // = + ≠ ≈ key {[ Arabic_dad, Arabic_fatha, U0689, U2066 ]}; // ‎ض‎ ‎◌َ ډ LEFT‑TO‑RIGHT ISOLATE key {[ Arabic_sad, Arabic_fathatan, U06D5, U2067 ]}; // ‎ص‎ ‎◌ً ە RIGHT‑TO‑LEFT ISOLATE key {[ Arabic_theh, Arabic_damma, U067F, U2068 ]}; // ‎ث‎ ‎◌ُ ٿ FIRST STRONG ISOLATE key {[ Arabic_qaf, Arabic_dammatan, U06A6, U2069 ]}; // ‎ق‎ ‎◌ٌ ڦ POP DIRECTIONAL ISOLATE key {[ Arabic_feh, UFEF9, Arabic_veh, U068D ]}; // ‎ف‎ ‎ﻹ ‎ڤ ‎ڍ‎ key {[ Arabic_ghain,Arabic_hamzaunderalef, U0685, U202A ]}; // ‎غ‎ ‎إ‎ ‎څ‎ LEFT-TO-RIGHT-EMBEDDING key {[ Arabic_ain, Arabic_rreh, Arabic_heh_goal, U202B ]}; // ‎ع‎ ‎ڑ‎ ‎ہ‎ RIGHT-TO-LEFT EMBEDDING key {[ Arabic_ha, division, Arabic_heh_doachashmee, U202C ]}; // ‎ه‎ ÷ ‎ھ‎ POP DIRECTIONAL FORMATTING key {[ Arabic_khah, multiply, U0681, U0687 ]}; // ‎خ‎ × ‎ځ‎ ‎ڇ‎ key {[ Arabic_hah, Arabic_semicolon, U0683, U200E ]}; // ‎ح‎ ؛ ‎ڃ‎ LEFT-TO-RIGHT MARK key {[ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK key {[ Arabic_dal, greater, U0684, U061C ]}; // ‎د‎ > ‎ڄ‎ ARABIC LETTER MARK key {[ Arabic_sheen, Arabic_kasra, U06C6, U06C9 ]}; // ‎ش‎ ‎◌ِ‎ ‎ۆ‎ ‎ۉ‎ key {[ Arabic_seen, Arabic_kasratan, U067C, U0680 ]}; // ‎س‎ ‎◌ٍ‎ ‎ټ‎ ‎ڀ‎ key {[ Arabic_yeh, bracketright, U06D0, U06CD ]}; // ‎ي‎ ] ‎ې‎ ‎ۍ‎ key {[ Arabic_beh, bracketleft, Arabic_peh, U067B ]}; // ‎ب‎ [ ‎پ‎ ‎ٻ‎ key {[ Arabic_lam, UFEF7, U076A, U0658 ]}; // ‎ل‎ ‎ﻷ‎ ‎ݪ‎ ٘‎◌‎ key {[ Arabic_alef, Arabic_hamzaonalef, U0671, Arabic_noon_ghunna ]}; // ‎ا‎ ‎أ ‎ٱ‎ ‎ں‎ key {[ Arabic_teh, Arabic_tatweel, U067D, U067A ]}; // ‎ت‎ ‎ـ‎ ‎ٽ‎ ٺ‎ key {[ Arabic_noon, Arabic_comma, U066B, U06BB ]}; // ‎ن‎ ‎،‎ ‎٫‎ ڻ‎ key {[ Arabic_meem, slash, U06B3, U06B1 ]}; // ‎م‎ / ‎ڳ‎ ‎ڱ‎ key {[ Arabic_kaf, colon, Arabic_gaf, Arabic_keheh ]}; // ‎ك‎ : ‎گ‎ ‎ک‎ key {[ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ key {[ backslash, bar, U27E8, U202F ]}; // \ | ⟨ NNBSP key {[ bar, ellipsis, U06C0, U0620 ]}; // | … ‎ۀ‎ ‎ؠ‎ key {[Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ » › key {[ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ « ‹ key {[Arabic_hamzaonwaw, braceright, U06C7, U0677 ]}; // ‎ؤ } ‎ۇ‎ ‎ٷ‎ key {[ Arabic_ra, braceleft, U0693, U0699 ]}; // ‎ر‎ { ‎ړ ‎ڙ‎ key {[ UFEFB, UFEF5, U06AB, U06AD ]}; // ‎ﻻ‎ ‎ﻵ‎ ‎ګ‎ ‎ڭ‎ key {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, Arabic_yeh_baree ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎ ‎ے‎ key {[Arabic_tehmarbuta, apostrophe, Arabic_fullstop, U06AA ]}; // ‎ة‎ ' ۔ ‎ڪ‎ key {[ Arabic_waw, comma, U066C, U06CB ]}; // ‎و‎ , ‎٬‎ ‎ۋ‎ key {[ Arabic_zain, period, Arabic_jeh, U0696 ]}; // ‎ز‎ . ‎ژ‎ ‎ږ‎ key {[ 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 {[Arabic_thal, Arabic_shadda, percent, Arabic_ddal ]}; key {[ Arabic_1, exclam, 1, Farsi_1 ]}; key {[ Arabic_2, at, 2, Farsi_2 ]}; key {[ Arabic_3, numbersign, 3, Farsi_3 ]}; key {[ Arabic_4, dollar, 4, Farsi_4 ]}; key {[ Arabic_5, Arabic_percent, 5, Farsi_5 ]}; key {[ Arabic_6, Farsi_yeh, 6, Farsi_6 ]}; key {[ Arabic_7, ampersand, 7, Farsi_7 ]}; key {[ Arabic_8, asterisk, 8, Farsi_8 ]}; key {[ Arabic_9, parenright, 9, Farsi_9 ]}; key {[ 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 {[ grave, asciitilde, any, any ]}; key {[ Arabic_dal, Arabic_thal, any, U2066 ]}; key {[ Arabic_sad, Arabic_dad, any, U2067 ]}; key {[ Arabic_feh, Arabic_shadda, Arabic_veh, any ]}; key {[ Arabic_hamza, Arabic_hamzaunderalef, any, U202A ]}; key {[ Arabic_ain, Arabic_ghain, any, U202B ]}; key {[ Arabic_ha, division, any, U202C ]}; key {[ Arabic_waw, Arabic_hamzaonwaw, any, any ]}; key {[ Arabic_tehmarbuta, Arabic_semicolon, any, U200E ]}; key {[ bracketright, braceright, any, U200F ]}; key {[ bracketleft, braceleft, any, U061C ]}; key {[ Arabic_yeh, Arabic_fatha, any, any ]}; key {[ Arabic_beh, Arabic_fathatan, Arabic_peh, any ]}; key {[ Arabic_lam, Arabic_maddaonalef,Arabic_superscript_alef, any ]}; key {[ Arabic_teh, Arabic_tatweel, any, any ]}; key {[ Arabic_noon, multiply, U066B, any ]}; key {[ Arabic_meem, comma, any, any ]}; key {[ Arabic_kaf, colon, Arabic_gaf, any ]}; key {[ apostrophe, quotedbl, U27E9, U200D ]}; key {[ backslash, bar, U27E8, U202F ]}; key {[ Arabic_hamzaonyeh, any, U203A, any ]}; key {[Arabic_alefmaksura, Arabic_sukun, U2039, any ]}; key {[ Arabic_tah, Arabic_zah, any, any ]}; key {[ Arabic_ra, Arabic_zain, Arabic_jeh, any ]}; key {[ Arabic_khah, ellipsis, any, any ]}; key {[ Arabic_hah, guillemotright, any, any ]}; key {[ Arabic_jeem, guillemotleft, Arabic_tcheh, any ]}; key {[ Arabic_comma, greater, any, any ]}; key {[ period, less, any, any ]}; key {[ slash, Arabic_question_mark, U066D, U200C ]}; };