// https://github.com/gpuminingir/Farsi-Phonetic-Keyboard-Linux // by @gpuminingir partial alphanumeric_keys xkb_symbols "qwerty" { // Classic Finnish keyboard layout without dead keys and {[]} on asdf + AltG name[Group1]="Persian (QWERTY)"; include "ir(pesq_part_basic)" include "ir(pesq_part_ext)" include "ir(pesq_part_keypad)" include "nbsp(zwnj2nb3nnb4)" include "level3(ralt_switch)" }; hidden partial alphanumeric_keys xkb_symbols "pesq_part_basic" { // Persian digits key { [ Arabic_1, exclam, exclam ] }; // ١ ! ! key { [ Arabic_2, at, at ] }; // ٢ @ @ key { [ Arabic_3, numbersign, numbersign ] }; // ٣ # # key { [ Farsi_4, dollar, dollar ] }; // ۴ $ $ key { [ Farsi_5, percent, percent ] }; // ۵ % % key { [ Farsi_6, asciicircum, asciicircum ] }; // ۶ ^ ^ key { [ Arabic_7, ampersand, ampersand ] }; // ٧ & & key { [ Arabic_8, KP_Multiply, KP_Multiply ] }; // ٨ * * key { [ Arabic_9, Armenian_parenright, Armenian_parenright, Armenian_parenleft ] }; // ٩ ) ) ( key { [ Farsi_0, Armenian_parenleft, Armenian_parenleft ] }; // ۰ ( ( key { [ underbar, KP_Subtract, KP_Subtract ] }; // _ – – key { [ KP_Equal, KP_Add, KP_Add ] }; // = + + // Persian letters and symbols key { [ Arabic_qaf, Arabic_ghain ] }; // ق غ key { [ Arabic_sheen ] }; // ش key { [ Arabic_ain ] }; // ع key { [ Arabic_ra ] }; // ر key { [ Arabic_teh, Arabic_tah ] }; // ت ط key { [ Farsi_yeh ] }; // ى key { [ Arabic_waw ] }; // و key { [ Farsi_yeh ] }; // ى key { [ Arabic_waw ] }; // و key { [ Arabic_peh ] }; // پ key { [ bracketright, braceleft ] }; // ] } { key { [ bracketleft, braceright ] }; // [ { } key { [ Arabic_alef, Arabic_maddaonalef, Arabic_maddaonalef ] }; // ا آ آ key { [ Arabic_seen, Arabic_sad, Arabic_sheen, Arabic_sheen ] }; // س ص ش key { [ Arabic_dal, Arabic_thal ] }; // د ذ ذ key { [ Arabic_feh ] }; // ف key { [ Arabic_gaf, Arabic_ghain ] }; // گ key { [ Arabic_heh, Arabic_hah ] }; // ە ح ه key { [ Arabic_jeem, Arabic_jeh ] }; // ج ژ ژ key { [ Arabic_keheh ] }; // ک key { [ Arabic_lam ] }; // ل key { [ Arabic_semicolon, colon ] }; // ؛ : ։ key { [ Arabic_comma, quotedbl, quotedbl ] }; // ، ” ” key { [ Arabic_zain, Arabic_dad, Arabic_zah, Arabic_zah ] }; // ض ض ز خ key { [ Arabic_khah, Arabic_zah ] }; // ظ خ key { [ Arabic_theh, Arabic_tcheh ] }; // چ ث key { [ Arabic_hamza, Arabic_waw ] }; // و key { [ Arabic_beh ] }; // ب key { [ Arabic_noon ] }; // ن key { [ Arabic_meem ] }; // م key { [ Arabic_comma, rightcaret, leftcaret ] }; // , > < key { [ period, leftcaret, rightcaret ] }; // . < > key { [ slash, Arabic_question_mark, question ] }; // / ? key { [ minus, underscore ] }; key { [ equal, plus, 0x1002212 ] }; key { [ backslash, bar, 0x1002010 ] }; key { [ U02DC, UFDFC, UFDF2 ] }; // ˜ ﷼ ﷲ }; hidden partial alphanumeric_keys xkb_symbols "pesq_part_ext" { // Persian and ASCII digits key { [ Farsi_1, exclam, grave, 1 ] }; key { [ Farsi_2, 0x100066c, at, 2 ] }; key { [ Farsi_3, 0x100066b, numbersign, 3 ] }; key { [ Farsi_4, 0x100fdfc, dollar, 4 ] }; key { [ Farsi_5, 0x100066a, percent, 5 ] }; key { [ Farsi_6, multiply, asciicircum, 6 ] }; key { [ Farsi_7, Arabic_comma, ampersand, 7 ] }; key { [ Farsi_8, asterisk, enfilledcircbullet, 8 ] }; key { [ Farsi_9, parenright, 0x100200e, 9 ] }; key { [ Farsi_0, parenleft, 0x100200f, 0 ] }; }; hidden partial alphanumeric_keys xkb_symbols "pesq_part_keypad" { // Persian digits and Mathematical operators key { [ division, XF86_Ungrab ] }; key { [ multiply, XF86_ClearGrab ] }; key { [ 0x1002212, XF86_Prev_VMode ] }; key { [ plus, XF86_Next_VMode ] }; key { [ KP_Enter ] }; key { [ equal ] }; key { [ KP_Home, Farsi_7 ] }; key { [ KP_Up, Farsi_8 ] }; key { [ KP_Prior, Farsi_9 ] }; key { [ KP_Left, Farsi_4 ] }; key { [ KP_Begin, Farsi_5 ] }; key { [ KP_Right, Farsi_6 ] }; key { [ KP_End, Farsi_1 ] }; key { [ KP_Down, Farsi_2 ] }; key { [ KP_Next, Farsi_3 ] }; key { [ KP_Insert, Farsi_0 ] }; key { [ KP_Delete, 0x100066b ] }; };