Add Persian layout

This commit is contained in:
mzeinali 2022-04-20 15:59:52 +04:30 committed by Maarten van Gompel
parent 35ac0d1d72
commit b77f0582fc
3 changed files with 1546 additions and 11 deletions

View File

@ -23,7 +23,8 @@ struct clr_scheme scheme1 = {
/* layers is an ordered list of layouts, used to cycle through */
static enum layout_id layers[] = {
Full, // First layout is the default layout on startup
Special, Emoji, Simple, SimpleGrid, Nav, Dialer, Cyrillic, Arabic, Georgian,
Special, Emoji, Simple, SimpleGrid, Nav,
Dialer, Cyrillic, Arabic, Georgian, Persian,
NumLayouts // signals the last item, may not be omitted
};

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,7 @@ enum layout_id {
Cyrillic,
Arabic,
Georgian,
Persian,
Emoji,
Nav,
Landscape,
@ -67,14 +68,14 @@ enum layout_id {
};
static struct key keys_full[], keys_special[], keys_simple[], keys_simplegrid[],
keys_cyrillic[], keys_arabic[], keys_georgian[], keys_emoji[], keys_nav[],
keys_landscape[], keys_compose_a[], keys_compose_e[], keys_compose_y[],
keys_compose_u[], keys_compose_i[], keys_compose_o[], keys_compose_w[],
keys_compose_r[], keys_compose_t[], keys_compose_p[], keys_compose_s[],
keys_compose_d[], keys_compose_f[], keys_compose_g[], keys_compose_h[],
keys_compose_j[], keys_compose_k[], keys_compose_l[], keys_compose_z[],
keys_compose_x[], keys_compose_c[], keys_compose_v[], keys_compose_b[],
keys_compose_n[], keys_compose_m[], keys_compose_math[],
keys_cyrillic[], keys_arabic[], keys_georgian[], keys_persian[], keys_emoji[],
keys_nav[], keys_landscape[], keys_compose_a[], keys_compose_e[],
keys_compose_y[], keys_compose_u[], keys_compose_i[], keys_compose_o[],
keys_compose_w[], keys_compose_r[], keys_compose_t[], keys_compose_p[],
keys_compose_s[], keys_compose_d[], keys_compose_f[], keys_compose_g[],
keys_compose_h[], keys_compose_j[], keys_compose_k[], keys_compose_l[],
keys_compose_z[], keys_compose_x[], keys_compose_c[], keys_compose_v[],
keys_compose_b[], keys_compose_n[], keys_compose_m[], keys_compose_math[],
keys_compose_punctuation[], keys_compose_bracket[], keys_compose_cyr_i[],
keys_compose_cyr_j[], keys_compose_cyr_e[], keys_compose_cyr_u[],
keys_compose_cyr_l[], keys_compose_cyr_n[], keys_compose_cyr_tse[],
@ -91,6 +92,7 @@ static struct layout layouts[NumLayouts] = {
[Dialer] = {keys_dialer, "latin", "dialer"},
[Arabic] = {keys_arabic, "arabic", "arabic"},
[Georgian] = {keys_georgian, "georgian", "georgian"},
[Persian] = {keys_persian, "persian", "persian"},
[Emoji] = {keys_emoji, "latin", "emoji"},
[Nav] = {keys_nav, "latin", "nav"},
[Landscape] = {keys_landscape, "latin", "landscape"},
@ -611,6 +613,73 @@ static struct key keys_georgian[] = {
{"", "", 0.0, Last},
};
static struct key keys_persian[] = {
{"۱", "|", 1.0, Code, KEY_1},
{"۲", "٬", 1.0, Code, KEY_2},
{"۳", "#", 1.0, Code, KEY_3},
{"۴", "", 1.0, Code, KEY_4},
{"۵", "٪", 1.0, Code, KEY_5},
{"۶", "×", 1.0, Code, KEY_6},
{"۷", "/", 1.0, Code, KEY_7},
{"۸", "*", 1.0, Code, KEY_8},
{"۹", ")", 1.0, Code, KEY_9},
{"۰", "(", 1.0, Code, KEY_0},
{"-", "_", 1.0, Code, KEY_MINUS},
{"=", "+", 1.0, Code, KEY_EQUAL},
{"", "", 0.0, EndRow},
{"ض", "ﹿ", 1.0, Code, KEY_Q},
{"ص", "ـٌ", 1.0, Code, KEY_W},
{"ث", "ـٍ", 1.0, Code, KEY_E},
{"ق", "ـً", 1.0, Code, KEY_R},
{"ف", "ـُ", 1.0, Code, KEY_T},
{"غ", "ـِ", 1.0, Code, KEY_Y},
{"ع", "ـَ", 1.0, Code, KEY_U},
{"ه", "", 1.0, Code, KEY_I},
{"خ", "]", 1.0, Code, KEY_O},
{"ح", "[", 1.0, Code, KEY_P},
{"ج", "\}", 1.0, Code, KEY_LEFTBRACE},
{"چ", "\{", 1.0, Code, KEY_RIGHTBRACE},
{"", "", 0.0, EndRow},
{"ش", "ؤ", 1.0, Code, KEY_A},
{"س", "ئ", 1.0, Code, KEY_S},
{"ی", "ي", 1.0, Code, KEY_D},
{"ب", "إ", 1.0, Code, KEY_F},
{"ل", "أ", 1.0, Code, KEY_G},
{"ا", "آ", 1.0, Code, KEY_H},
{"ت", "ة", 1.0, Code, KEY_J},
{"ن", "»", 1.0, Code, KEY_K},
{"م", "«", 1.0, Code, KEY_L},
{"ک", ":", 1.0, Code, KEY_SEMICOLON},
{"گ", "؛", 1.0, Code, KEY_APOSTROPHE},
{"", "", 0.0, EndRow},
{"", "", 1.5, Mod, Shift, .scheme = 1},
{"ظ", "ك", 1.0, Code, KEY_Z},
{"ط", "ـٓ", 1.0, Code, KEY_X},
{"ژ", ">", 1.0, Code, KEY_BACKSLASH},
{"ز", "<", 1.0, Code, KEY_C},
{"ر", "ـٰ", 1.0, Code, KEY_V},
{"ذ", "", 1.0, Code, KEY_B},
{"د", "ـٔ", 1.0, Code, KEY_N},
{"پ", "ء", 1.0, Code, KEY_M},
{"و", "\\", 1.0, Code, KEY_COMMA},
{"", "", 1.5, Code, KEY_BACKSPACE, .scheme = 1},
{"", "", 0.0, EndRow},
{"Abc", "Abc", 1.0, NextLayer, .scheme = 1},
{"Cmp", "Cmp", 1.0, Compose, .scheme = 1},
{".", "،", 1.0, Code, KEY_DOT},
{"", "", 4.0, Code, KEY_SPACE},
{"", "", 1.0, Code, KEY_GRAVE},
{"؟", "!", 1.0, Code, KEY_SLASH},
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme = 1},
/* end of layout */
{"", "", 0.0, Last},
};
static struct key keys_compose_a[] = {
{"à", "À", 1.0, Copy, 0x00E0, 0, 0x00C0},
{"á", "Á", 1.0, Copy, 0x00E1, 0, 0x00C1},