/usr/share/X11/xkb/symbols
NameSizeModeActions
digital_vndr/-0755rm
fujitsu_vndr/-0755rm
hp_vndr/-0755rm
jolla_vndr/-0755rm
macintosh_vndr/-0755rm
nec_vndr/-0755rm
nokia_vndr/-0755rm
sgi_vndr/-0755rm
sharp_vndr/-0755rm
sony_vndr/-0755rm
sun_vndr/-0755rm
xfree68_vndr/-0755rm
af233850644editdlrm
al41100644editdlrm
altwin34860644editdlrm
am103480644editdlrm
apl483070644editdlrm
ara336180644editdlrm
at5640644editdlrm
au1790644editdlrm
az37850644editdlrm
ba6800644editdlrm
bd42910644editdlrm
be127920644editdlrm
bg181620644editdlrm
br168200644editdlrm
brai25110644editdlrm
bt45980644editdlrm
bw9810644editdlrm
by20590644editdlrm
ca215200644editdlrm
capslock20000644editdlrm
cd41200644editdlrm
ch82910644editdlrm
cm337940644editdlrm
cn373080644editdlrm
compose23030644editdlrm
ctrl36730644editdlrm
cz241870644editdlrm
de880520644editdlrm
dk25230644editdlrm
dz107700644editdlrm
ee41470644editdlrm
empty1010644editdlrm
epo76320644editdlrm
es102470644editdlrm
et31340644editdlrm
eu53050644editdlrm
eurosign6290644editdlrm
fi243990644editdlrm
fo19900644editdlrm
fr988080644editdlrm
gb91350644editdlrm
ge129810644editdlrm
gh65660644editdlrm
gn23570644editdlrm
gr143380644editdlrm
group119810644editdlrm
hr24930644editdlrm
hu200580644editdlrm
id67080644editdlrm
ie202770644editdlrm
il162560644editdlrm
in948640644editdlrm
inet643460644editdlrm
iq6420644editdlrm
ir124340644editdlrm
is146470644editdlrm
it178610644editdlrm
jp84620644editdlrm
ke21730644editdlrm
keypad237580644editdlrm
kg60800644editdlrm
kh49970644editdlrm
kpdl33980644editdlrm
kr11680644editdlrm
kz164000644editdlrm
la55880644editdlrm
latam142290644editdlrm
latin146370644editdlrm
level365560644editdlrm
level547390644editdlrm
lk82210644editdlrm
lt169250644editdlrm
lv190130644editdlrm
ma125100644editdlrm
mao5940644editdlrm
md51160644editdlrm
me17470644editdlrm
mk30970644editdlrm
ml33290644editdlrm
mm59670644editdlrm
mn42740644editdlrm
mt91300644editdlrm
mv33920644editdlrm
my69910644editdlrm
nbsp44060644editdlrm
ng62700644editdlrm
nl68880644editdlrm
no117760644editdlrm
np68090644editdlrm
olpc9300644editdlrm
parens3890644editdlrm
pc23890644editdlrm
ph759800644editdlrm
pk206610644editdlrm
pl255600644editdlrm
pt128220644editdlrm
ro112630644editdlrm
rs153620644editdlrm
ru669650644editdlrm
rupeesign1310644editdlrm
se170870644editdlrm
shift22400644editdlrm
si6150644editdlrm
sk53280644editdlrm
sn22200644editdlrm
srvr_ctrl23310644editdlrm
sy70770644editdlrm
terminate2000644editdlrm
tg48240644editdlrm
th103960644editdlrm
tj103880644editdlrm
tm13310644editdlrm
tr170250644editdlrm
trans160510644editdlrm
tw33060644editdlrm
typo42760644editdlrm
tz34290644editdlrm
ua160880644editdlrm
us840890644editdlrm
uz41260644editdlrm
vn60350644editdlrm
za21090644editdlrm
Edit: /usr/share/X11/xkb/symbols/ara (33618B)
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, NoSymbol ]}; // 1 ! ١ key { [ 2, at, Arabic_2, NoSymbol ]}; // 2 @ ٢ key { [ 3, numbersign, Arabic_3, NoSymbol ]}; // 3 # ٣ key { [ 4, dollar, Arabic_4, NoSymbol ]}; // 4 $ ٤ key { [ 5, percent, Arabic_5, U2030 ]}; // 5 % ٥ ‰ key { [ 6, asciicircum, Arabic_6, NoSymbol ]}; // 6 ^ ٦ key { [ 7, ampersand, Arabic_7, NoSymbol ]}; // 7 & ٧ key { [ 8, asterisk, Arabic_8, NoSymbol ]}; // 8 * ٨ key { [ 9, parenright, Arabic_9, NoSymbol ]}; // 9 ) ٩ key { [ 0, parenleft, Arabic_0, NoSymbol ]}; // 0 ( ٠ key { [ minus, underscore, endash, U2011 ]}; // - _ – Non-Breaking-Hyphen key { [ equal, plus, notequal, U2248 ]}; // = + ≠ ≈ key { [ Arabic_dad, Arabic_fatha, NoSymbol, U2066 ]}; // ‎ض‎ ‎◌َ LEFT‑TO‑RIGHT ISOLATE key { [ Arabic_sad, Arabic_fathatan, NoSymbol, U2067 ]}; // ‎ص‎ ‎◌ً RIGHT‑TO‑LEFT ISOLATE key { [ Arabic_theh, Arabic_damma, NoSymbol, U2068 ]}; // ‎ث‎ ‎◌ُ FIRST STRONG ISOLATE key { [ Arabic_qaf, Arabic_dammatan, NoSymbol, U2069 ]}; // ‎ق‎ ‎◌ٌ POP DIRECTIONAL ISOLATE key { [ Arabic_feh, UFEF9, Arabic_veh, NoSymbol ]}; // ‎ف‎ ‎ﻹ ‎ڤ key { [ Arabic_ghain,Arabic_hamzaunderalef, NoSymbol, U202A ]}; // ‎غ‎ ‎إ‎ LEFT-TO-RIGHT-EMBEDDING key { [ Arabic_ain, grave, NoSymbol, U202B ]}; // ‎ع‎ ` RIGHT-TO-LEFT EMBEDDING key { [ Arabic_ha, division, NoSymbol, U202C ]}; // ‎ه‎ ÷ POP DIRECTIONAL FORMATTING key { [ Arabic_khah, multiply, NoSymbol, NoSymbol ]}; // ‎خ‎ × key { [ Arabic_hah, Arabic_semicolon, NoSymbol, U200E ]}; // ‎ح‎ ؛ LEFT-TO-RIGHT MARK key { [ Arabic_jeem, less, Arabic_tcheh, U200F ]}; // ‎ج‎ < ‎چ‎ RIGHT-TO-LEFT MARK key { [ Arabic_dal, greater, NoSymbol, U061C ]}; // ‎د‎ > ARABIC LETTER MARK key { [ Arabic_sheen, Arabic_kasra, NoSymbol, NoSymbol ]}; // ‎ش‎ ‎◌ِ‎ key { [ Arabic_seen, Arabic_kasratan, NoSymbol, NoSymbol ]}; // ‎س‎ ‎◌ٍ‎ key { [ Arabic_yeh, bracketright, NoSymbol, NoSymbol ]}; // ‎ي‎ ] key { [ Arabic_beh, bracketleft, Arabic_peh, NoSymbol ]}; // ‎ب‎ [ ‎پ‎ key { [ Arabic_lam, U0FEF7, NoSymbol, NoSymbol ]}; // ‎ل‎ ‎ﻷ‎ key { [ Arabic_alef, Arabic_hamzaonalef, U0671, NoSymbol ]}; // ‎ا‎ ‎أ ‎ٱ‎ key { [ Arabic_teh, Arabic_tatweel, NoSymbol, NoSymbol ]}; // ‎ت‎ ‎ـ‎ key { [ Arabic_noon, Arabic_comma, U066B, NoSymbol ]}; // ‎ن‎ ‎،‎ ‎٫‎ key { [ Arabic_meem, slash, NoSymbol, NoSymbol ]}; // ‎م‎ / key { [ Arabic_kaf, colon, Arabic_gaf, NoSymbol ]}; // ‎ك‎ : ‎گ‎ key { [ Arabic_tah, quotedbl, U27E9, U200D ]}; // ‎ط‎ " ⟩ ZWJ key { [ backslash, ellipsis, U27E8, U202F ]}; // \ … ⟨ NNBSP key { [ bar, brokenbar, NoSymbol, NoSymbol ]}; // | ¦ key { [Arabic_hamzaonyeh, asciitilde, guillemotright, U203A ]}; // ‎ئ‎ ~ » › key { [ Arabic_hamza, Arabic_sukun, guillemotleft, U2039 ]}; // ‎ء‎ ◌ْ « ‹ key { [Arabic_hamzaonwaw, braceright, NoSymbol, NoSymbol ]}; // ‎ؤ } key { [ Arabic_ra, braceleft, NoSymbol, NoSymbol ]}; // ‎ر‎ { key { [ UFEFB, UFEF5, NoSymbol, NoSymbol ]}; // ‎ﻻ‎ ‎ﻵ‎ key {[Arabic_alefmaksura, Arabic_maddaonalef, Arabic_superscript_alef, NoSymbol ]}; // ‎ى‎ ‎آ‎ ‎◌ٰ‎ key { [Arabic_tehmarbuta, apostrophe, NoSymbol, NoSymbol ]}; // ‎ة‎ ' key { [ Arabic_waw, comma, U066C, NoSymbol ]}; // ‎و‎ , ‎٬ key { [ Arabic_zain, period, Arabic_jeh, NoSymbol ]}; // ‎ز‎ . ‎ژ‎ key { [ Arabic_zah, Arabic_question_mark, U066D, U200C ]}; // ‎ظ‎ ‎؟‎ ‎٭‎ ZWNJ include "level3(ralt_switch)" }; // Synonym for the default partial alphanumeric_keys xkb_symbols "qwerty" { include "ara(basic)" name[Group1]= "Arabic (QWERTY)"; }; // 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. // As this set of definitions is unlisted, it is not usable without parallel mapping on the numeric row in the ara(digits) layout which includes it. partial hidden keypad_keys xkb_symbols "digits_KP" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD"; key { [ KP_Home, Arabic_7, 7, NoSymbol ] }; key { [ KP_Up, Arabic_8, 8, NoSymbol ] }; key { [ KP_Prior, Arabic_9, 9, NoSymbol ] }; key { [ KP_Left, Arabic_4, 4, NoSymbol ] }; key { [ KP_Begin, Arabic_5, 5, NoSymbol ] }; key { [ KP_Right, Arabic_6, 6, NoSymbol ] }; key { [ KP_End, Arabic_1, 1, NoSymbol ] }; key { [ KP_Down, Arabic_2, 2, NoSymbol ] }; key { [ KP_Next, Arabic_3, 3, NoSymbol ] }; key { [ KP_Insert, Arabic_0, 0, NoSymbol ] }; 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 (digits)"; key { [Arabic_thal,Arabic_shadda, percent,U2030]}; key { [ Arabic_1, exclam, 1, NoSymbol ] }; key { [ Arabic_2, at, 2, NoSymbol ] }; key { [ Arabic_3, numbersign, 3, NoSymbol ] }; key { [ Arabic_4, dollar, 4, NoSymbol ] }; key { [ Arabic_5, Arabic_percent, 5, U0609 ] }; key { [ Arabic_6, asciicircum, 6, NoSymbol ] }; key { [ Arabic_7, ampersand, 7, NoSymbol ] }; key { [ Arabic_8, asterisk, 8, NoSymbol ] }; key { [ Arabic_9, parenright, 9, NoSymbol ] }; key { [ Arabic_0, parenleft, 0, NoSymbol ] }; include "ara(digits_KP)" }; // Synonym for the layout with the Latin-script and Arabic-script digits switched partial alphanumeric_keys xkb_symbols "qwerty_digits" { include "ara(digits)" name[Group1]= "Arabic (qwerty/digits)"; }; 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/digits)"; key { [ ampersand, Arabic_1, 1, NoSymbol ] }; key { [ eacute, Arabic_2, 2, NoSymbol ] }; key { [ quotedbl, Arabic_3, 3, NoSymbol ] }; key { [ apostrophe, Arabic_4, 4, NoSymbol ] }; key { [ parenleft, Arabic_5, 5, NoSymbol ] }; key { [ minus, Arabic_6, 6, NoSymbol ] }; key { [ egrave, Arabic_7, 7, NoSymbol ] }; key { [ underscore, Arabic_8, 8, NoSymbol ] }; key { [ ccedilla, Arabic_9, 9, NoSymbol ] }; key { [ agrave, Arabic_0, 0, NoSymbol ] }; }; // Arabic keyboard using Buckwalter transliteration // http://www.qamus.org/transliteration.htm // Martin Vidner partial alphanumeric_keys xkb_symbols "buckwalter" { name[Group1]= "Arabic (Buckwalter)"; // ARABIC LETTER SUPERSCRIPT ALEF key { [ 0x1000670, Arabic_shadda ] }; // Arabic_0 .. Arabic_9 do not work in Kate, // Unicode never seems to work worse. key { [ 0x1000661, VoidSymbol ] }; key { [ 0x1000662, VoidSymbol ] }; key { [ 0x1000663, VoidSymbol ] }; key { [ 0x1000664, Arabic_sheen ] }; key { [ 0x1000665, Arabic_percent ] }; key { [ 0x1000666, VoidSymbol ] }; key { [ 0x1000667, Arabic_hamzaonwaw ] }; key { [ 0x1000668, Arabic_thal ] }; // ORNATE LEFT PARENTHESIS key { [ 0x1000669, 0x100fd3e ] }; // ORNATE RIGHT PARENTHESIS key { [ 0x1000660, 0x100fd3f ] }; key { [ minus, Arabic_tatweel ] }; key { [ equal, plus ] }; key { [ Arabic_qaf, VoidSymbol ] }; key { [ Arabic_waw, Arabic_hamzaonwaw ] }; key { [ VoidSymbol, Arabic_ain ] }; key { [ Arabic_ra, VoidSymbol ] }; key { [ Arabic_teh, Arabic_tah ] }; key { [ Arabic_yeh, Arabic_alefmaksura ] }; key { [ Arabic_damma, VoidSymbol ] }; key { [ Arabic_kasra, Arabic_hamzaunderalef ] }; key { [ Arabic_sukun, Arabic_hamzaonalef ] }; key { [ Arabic_tehmarbuta, VoidSymbol ] }; // ARABIC LETTER ALEF WASLA key { [ VoidSymbol, 0x1000671 ] }; key { [ VoidSymbol, 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, VoidSymbol ] }; key { [ Arabic_ha, Arabic_hah ] }; key { [ Arabic_jeem, VoidSymbol ] }; key { [ Arabic_kaf, Arabic_kasratan ] }; key { [ Arabic_lam, VoidSymbol ] }; key { [ Arabic_semicolon, VoidSymbol ] }; key { [ Arabic_hamza, VoidSymbol ] }; key { [ VoidSymbol, Arabic_maddaonalef ] }; key { [ Arabic_zain, Arabic_zah ] }; key { [ Arabic_khah, VoidSymbol ] }; key { [ VoidSymbol, VoidSymbol ] }; key { [ Arabic_theh, VoidSymbol ] }; key { [ Arabic_beh, VoidSymbol ] }; key { [ Arabic_noon, Arabic_dammatan ] }; key { [ Arabic_meem, VoidSymbol ] }; key { [ Arabic_comma, Arabic_hamzaunderalef ] }; // ARABIC FULL STOP (Urdu) key { [ 0x10006d4, Arabic_hamzaonalef ] }; key { [ VoidSymbol, Arabic_question_mark ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { name[Group1]= "Arabic (OLPC)"; include "ara(basic)" // 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, U2030 ] }; 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 is a layout that is compatible with macbooks include "ara(digits)" name[Group1]= "Arabic (Macintosh)"; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ Arabic_tatweel, VoidSymbol ] }; 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, VoidSymbol ] }; key { [ Arabic_alef, Arabic_maddaonalef ] }; key { [ Arabic_teh, 0x1000671 ] }; key { [ Arabic_noon, VoidSymbol ] }; key { [ Arabic_meem, VoidSymbol ] }; key { [ Arabic_kaf, colon ] }; key { [ Arabic_semicolon, quotedbl ] }; key { [ backslash, bar ] }; key { [ Arabic_tatweel, VoidSymbol ] }; key { [ Arabic_zah, VoidSymbol ] }; key { [ Arabic_tah, VoidSymbol ] }; 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 ] }; }; // EXTRAS: partial alphanumeric_keys xkb_symbols "sun_type6" { include "sun_vndr/ara(sun_type6)" }; partial alphanumeric_keys xkb_symbols "basic_ext" { name[Group1]= "Arabic (with extensions for Arabic-written other languages and European digits preferred)"; 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, U0FEF7, 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, ellipsis, U27E8, U202F ]}; // \ … ⟨ NNBSP key { [ bar, brokenbar, 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 keypad, pushing the Western digits to the third level accessible by the right alt key. // As this set of definitions is unlisted, it is not usable without parallel mapping on the numeric row in the ara(basic_ext_digits) layout which includes it. partial hidden keypad_keys xkb_symbols "basic_ext_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. // 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 (with extensions for Arabic-written other languages and Arabic digits preferred)"; 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(basic_ext_digits_KP)" }; // In this layout the Ugaritic characters get the places of the Arabic characters with the matching sound values. partial alphanumeric_keys xkb_symbols "uga" { name[Group1]= "Ugaritic instead of Arabic"; key.type[Group1]="TWO_LEVEL"; key { [ U1038F, NoSymbol ]}; // 𐎏 key { [ 1, exclam ]}; // 1 ! key { [ 2, at ]}; // 2 @ key { [ 3, numbersign ]}; // 3 # key { [ 4, dollar ]}; // 4 $ key { [ 5, percent ]}; // 5 % key { [ 6, asciicircum ]}; // 6 ^ key { [ 7, ampersand ]}; // 7 & key { [ 8, asterisk ]}; // 8 * key { [ 9, parenleft ]}; // 9 ( key { [ 0, parenright ]}; // 0 ) key { [ minus, underscore ]}; // - _ key { [ equal, plus ]}; // = + key { [ U1039D, NoSymbol ]}; // 𐎝 key { [ U10395, NoSymbol ]}; // 𐎕 key { [ U10398, NoSymbol ]}; // 𐎘 key { [ U10396, NoSymbol ]}; // 𐎖 key { [ U10394, NoSymbol ]}; // 𐎔 key { [ U10399, NoSymbol ]}; // 𐎙 key { [ U10393, grave ]}; // 𐎓 ` key { [ U10385, division ]}; // 𐎅 ÷ key { [ U10383, multiply ]}; // 𐎃 × key { [ U10388, semicolon ]}; // 𐎈 ; key { [ U10382, greater ]}; // 𐎂 > key { [ U10384, less ]}; // 𐎄 < key { [ U1038C, U27E8 ]}; // 𐎌 ⟨ key { [ U10392, U27E9 ]}; // 𐎒 ⟩ key { [ U1038A, bracketleft ]}; // 𐎊 [ key { [ U10381, bracketright ]}; // 𐎁 ] key { [ U1038D, NoSymbol ]}; // 𐎍 key { [ U10380, NoSymbol ]}; // 𐎀 key { [ U1039A, NoSymbol ]}; // 𐎚 key { [ U10390, NoSymbol ]}; // 𐎐 key { [ U1038E, slash ]}; // 𐎎 / key { [ U1038B, colon ]}; // 𐎋: key { [ U10389, quotedbl ]}; // 𐎉 " key { [backslash, ellipsis ]}; // \ … key { [ bar, endash ]}; // | – key { [ U1039B, guillemotleft ]}; // 𐎛 « key { [ NoSymbol, guillemotright ]}; // » key { [ U1039C, braceleft ]}; // 𐎜 { key { [ U10397, braceright ]}; // 𐎗 } key { [ U1039F, U2039 ]}; // 𐎟 ‹ key { [ question, U203A ]}; // ? › key { [ U002BC, apostrophe ]}; // ʼ ' key { [ U10386, comma ]}; // 𐎆 , key { [ U10387, period ]}; // 𐎇 . key { [ U10391, periodcentered ]}; // 𐎑 · };