mirror of
https://github.com/jjsullivan5196/wvkbd.git
synced 2025-03-13 02:42:47 +01:00
added cyrillic compose layers and made compose work with non-code keys
This commit is contained in:
parent
e3f414536e
commit
8abc3326df
42
keyboard.h
42
keyboard.h
@ -180,6 +180,19 @@ kbd_unpress_key(struct kbd *kb, uint32_t time) {
|
|||||||
|
|
||||||
void
|
void
|
||||||
kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) {
|
kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) {
|
||||||
|
if ((compose == 1) && (k->type != Compose) && (k->type != Mod) && (k->layout)) {
|
||||||
|
compose++;
|
||||||
|
fprintf(stderr,"showing compose %d\n", compose);
|
||||||
|
if ((!kb->prevlayout) || (strcmp(kb->prevlayout->keymap_name, kb->layout->keymap_name) != 0)) {
|
||||||
|
create_and_upload_keymap(kb->layout->keymap_name, 0, 0);
|
||||||
|
}
|
||||||
|
kb->prevlayout = kb->layout;
|
||||||
|
kb->layout = k->layout;
|
||||||
|
kbd_draw_layout(kb);
|
||||||
|
kb->surf->dirty = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (k->type) {
|
switch (k->type) {
|
||||||
case Code:
|
case Code:
|
||||||
if (k->code_mod) {
|
if (k->code_mod) {
|
||||||
@ -191,28 +204,13 @@ kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) {
|
|||||||
} else {
|
} else {
|
||||||
zwp_virtual_keyboard_v1_modifiers(kb->vkbd, kb->mods, 0, 0, 0);
|
zwp_virtual_keyboard_v1_modifiers(kb->vkbd, kb->mods, 0, 0, 0);
|
||||||
}
|
}
|
||||||
if (compose == 1) {
|
kb->last_press = k;
|
||||||
if (k->layout) {
|
kbd_draw_key(kb, k, true);
|
||||||
compose++;
|
zwp_virtual_keyboard_v1_key(kb->vkbd, time, kb->last_press->code,
|
||||||
if (compose) {
|
WL_KEYBOARD_KEY_STATE_PRESSED);
|
||||||
fprintf(stderr,"showing compose %d\n", compose);
|
if (compose) {
|
||||||
}
|
fprintf(stderr,"pressing composed key\n");
|
||||||
if ((!kb->prevlayout) || (strcmp(kb->prevlayout->keymap_name, kb->layout->keymap_name) != 0)) {
|
compose++;
|
||||||
create_and_upload_keymap(kb->layout->keymap_name, 0, 0);
|
|
||||||
}
|
|
||||||
kb->prevlayout = kb->layout;
|
|
||||||
kb->layout = k->layout;
|
|
||||||
kbd_draw_layout(kb);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
kb->last_press = k;
|
|
||||||
kbd_draw_key(kb, k, true);
|
|
||||||
zwp_virtual_keyboard_v1_key(kb->vkbd, time, kb->last_press->code,
|
|
||||||
WL_KEYBOARD_KEY_STATE_PRESSED);
|
|
||||||
if (compose) {
|
|
||||||
fprintf(stderr,"pressing composed key\n");
|
|
||||||
compose++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Mod:
|
case Mod:
|
||||||
|
240
layout.mobile.h
240
layout.mobile.h
@ -48,6 +48,16 @@ enum layout_names {
|
|||||||
ComposeB,
|
ComposeB,
|
||||||
ComposeN,
|
ComposeN,
|
||||||
ComposeM,
|
ComposeM,
|
||||||
|
ComposeCyrI,
|
||||||
|
ComposeCyrJ,
|
||||||
|
ComposeCyrE,
|
||||||
|
ComposeCyrU,
|
||||||
|
ComposeCyrL,
|
||||||
|
ComposeCyrN,
|
||||||
|
ComposeCyrTse,
|
||||||
|
ComposeCyrChe,
|
||||||
|
ComposeCyrG,
|
||||||
|
ComposeCyrK,
|
||||||
NumLayouts,
|
NumLayouts,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -77,7 +87,17 @@ static struct key keys_full[], keys_special[], keys_simple[], keys_cyrillic[],
|
|||||||
keys_compose_v[],
|
keys_compose_v[],
|
||||||
keys_compose_b[],
|
keys_compose_b[],
|
||||||
keys_compose_n[],
|
keys_compose_n[],
|
||||||
keys_compose_m[];
|
keys_compose_m[],
|
||||||
|
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[],
|
||||||
|
keys_compose_cyr_che[],
|
||||||
|
keys_compose_cyr_g[],
|
||||||
|
keys_compose_cyr_k[];
|
||||||
|
|
||||||
static struct layout layouts[NumLayouts] = {
|
static struct layout layouts[NumLayouts] = {
|
||||||
[Full] = {keys_full, 0, "latin"}, //third parameter is the keymap name
|
[Full] = {keys_full, 0, "latin"}, //third parameter is the keymap name
|
||||||
@ -110,6 +130,16 @@ static struct layout layouts[NumLayouts] = {
|
|||||||
[ComposeB] = {keys_compose_b, 0, "latin"},
|
[ComposeB] = {keys_compose_b, 0, "latin"},
|
||||||
[ComposeN] = {keys_compose_n, 0, "latin"},
|
[ComposeN] = {keys_compose_n, 0, "latin"},
|
||||||
[ComposeM] = {keys_compose_m, 0, "latin"},
|
[ComposeM] = {keys_compose_m, 0, "latin"},
|
||||||
|
[ComposeCyrI] = {keys_compose_cyr_i, 0, "cyrillic"},
|
||||||
|
[ComposeCyrJ] = {keys_compose_cyr_j, 0, "cyrillic"},
|
||||||
|
[ComposeCyrE] = {keys_compose_cyr_e, 0, "cyrillic"},
|
||||||
|
[ComposeCyrU] = {keys_compose_cyr_u, 0, "cyrillic"},
|
||||||
|
[ComposeCyrL] = {keys_compose_cyr_l, 0, "cyrillic"},
|
||||||
|
[ComposeCyrN] = {keys_compose_cyr_n, 0, "cyrillic"},
|
||||||
|
[ComposeCyrTse] = {keys_compose_cyr_tse, 0, "cyrillic"},
|
||||||
|
[ComposeCyrChe] = {keys_compose_cyr_che, 0, "cyrillic"},
|
||||||
|
[ComposeCyrG] = {keys_compose_cyr_g, 0, "cyrillic"},
|
||||||
|
[ComposeCyrK] = {keys_compose_cyr_k, 0, "cyrillic"},
|
||||||
};
|
};
|
||||||
|
|
||||||
const enum layout_names DefaultLayout = Full;
|
const enum layout_names DefaultLayout = Full;
|
||||||
@ -363,17 +393,17 @@ static struct key keys_cyrillic[] = {
|
|||||||
{"9", "(", 1.0, Code, KEY_9},
|
{"9", "(", 1.0, Code, KEY_9},
|
||||||
{"0", ")", 1.0, Code, KEY_0},
|
{"0", ")", 1.0, Code, KEY_0},
|
||||||
{"ю", "Ю", 1.0, Code, KEY_DOT},
|
{"ю", "Ю", 1.0, Code, KEY_DOT},
|
||||||
{"э", "Э", 1.0, Code, KEY_APOSTROPHE},
|
{"э", "Э", 1.0, Code, KEY_APOSTROPHE, &layouts[ComposeCyrE]},
|
||||||
{"ё", "Ё", 1.0, Code, KEY_GRAVE},
|
{"ё", "Ё", 1.0, Code, KEY_GRAVE, &layouts[ComposeCyrE]},
|
||||||
{"", "", 0.0, EndRow},
|
{"", "", 0.0, EndRow},
|
||||||
|
|
||||||
{"й", "Й", 1.0, Code, KEY_Q},
|
{"й", "Й", 1.0, Code, KEY_Q, &layouts[ComposeCyrJ]},
|
||||||
{"ц", "Ц", 1.0, Code, KEY_W},
|
{"ц", "Ц", 1.0, Code, KEY_W, &layouts[ComposeCyrTse]},
|
||||||
{"у", "У", 1.0, Code, KEY_E},
|
{"у", "У", 1.0, Code, KEY_E},
|
||||||
{"к", "К", 1.0, Code, KEY_R},
|
{"к", "К", 1.0, Code, KEY_R, &layouts[ComposeCyrK]},
|
||||||
{"е", "Е", 1.0, Code, KEY_T},
|
{"е", "Е", 1.0, Code, KEY_T, &layouts[ComposeCyrE]},
|
||||||
{"н", "Н", 1.0, Code, KEY_Y},
|
{"н", "Н", 1.0, Code, KEY_Y},
|
||||||
{"г", "Г", 1.0, Code, KEY_U},
|
{"г", "Г", 1.0, Code, KEY_U, &layouts[ComposeCyrG]},
|
||||||
{"ш", "ш", 1.0, Code, KEY_I},
|
{"ш", "ш", 1.0, Code, KEY_I},
|
||||||
{"щ", "щ", 1.0, Code, KEY_O},
|
{"щ", "щ", 1.0, Code, KEY_O},
|
||||||
{"з", "з", 1.0, Code, KEY_P},
|
{"з", "з", 1.0, Code, KEY_P},
|
||||||
@ -382,23 +412,23 @@ static struct key keys_cyrillic[] = {
|
|||||||
{"", "", 0.0, EndRow},
|
{"", "", 0.0, EndRow},
|
||||||
|
|
||||||
{"ф", "Ф", 1.0, Code, KEY_A},
|
{"ф", "Ф", 1.0, Code, KEY_A},
|
||||||
{"ы", "Ы", 1.0, Code, KEY_S},
|
{"ы", "Ы", 1.0, Code, KEY_S, &layouts[ComposeCyrI]},
|
||||||
{"в", "В", 1.0, Code, KEY_D},
|
{"в", "В", 1.0, Code, KEY_D},
|
||||||
{"а", "А", 1.0, Code, KEY_F},
|
{"а", "А", 1.0, Code, KEY_F},
|
||||||
{"п", "П", 1.0, Code, KEY_G},
|
{"п", "П", 1.0, Code, KEY_G},
|
||||||
{"р", "Р", 1.0, Code, KEY_H},
|
{"р", "Р", 1.0, Code, KEY_H},
|
||||||
{"о", "О", 1.0, Code, KEY_J},
|
{"о", "О", 1.0, Code, KEY_J},
|
||||||
{"л", "Л", 1.0, Code, KEY_K},
|
{"л", "Л", 1.0, Code, KEY_K, &layouts[ComposeCyrL]},
|
||||||
{"д", "Д", 1.0, Code, KEY_L},
|
{"д", "Д", 1.0, Code, KEY_L},
|
||||||
{"ж", "Ж", 1.0, Code, KEY_SEMICOLON},
|
{"ж", "Ж", 1.0, Code, KEY_SEMICOLON},
|
||||||
{"", "", 0.0, EndRow},
|
{"", "", 0.0, EndRow},
|
||||||
|
|
||||||
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
{"я", "Я", 1.0, Code, KEY_Z},
|
{"я", "Я", 1.0, Code, KEY_Z},
|
||||||
{"ч", "Ч", 1.0, Code, KEY_X},
|
{"ч", "Ч", 1.0, Code, KEY_X, &layouts[ComposeCyrChe]},
|
||||||
{"c", "С", 1.0, Code, KEY_C},
|
{"c", "С", 1.0, Code, KEY_C},
|
||||||
{"м", "М", 1.0, Code, KEY_V},
|
{"м", "М", 1.0, Code, KEY_V},
|
||||||
{"и", "И", 1.0, Code, KEY_B},
|
{"и", "И", 1.0, Code, KEY_B, &layouts[ComposeCyrI]},
|
||||||
{"т", "Т", 1.0, Code, KEY_N},
|
{"т", "Т", 1.0, Code, KEY_N},
|
||||||
{"ь", "Ь", 1.0, Code, KEY_M},
|
{"ь", "Ь", 1.0, Code, KEY_M},
|
||||||
{"б", "Б", 1.0, Code, KEY_COMMA},
|
{"б", "Б", 1.0, Code, KEY_COMMA},
|
||||||
@ -407,7 +437,7 @@ static struct key keys_cyrillic[] = {
|
|||||||
{"", "", 0.0, EndRow},
|
{"", "", 0.0, EndRow},
|
||||||
|
|
||||||
{"Abc", "Abc", 1.0, Layout, 0, &layouts[(DefaultLayout == Cyrillic) ? Full : DefaultLayout] , .scheme=1},
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[(DefaultLayout == Cyrillic) ? Full : DefaultLayout] , .scheme=1},
|
||||||
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
{"Cmp", "Cmp", 1.0, Compose, .scheme=1},
|
||||||
{",", "'", 1.0, Code, KEY_EQUAL},
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
{"", "", 4.0, Code, KEY_SPACE},
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
{".", "?", 1.0, Code, KEY_SLASH},
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
@ -1021,3 +1051,187 @@ static struct key keys_compose_m[] = {
|
|||||||
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
{"", "", 0.0, Last},
|
{"", "", 0.0, Last},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_i[] = {
|
||||||
|
{"і", "І", 1.0, Copy, 0x0456, 0, 0x0406},
|
||||||
|
{"ї", "Ї", 1.0, Copy, 0x0457, 0, 0x0407},
|
||||||
|
{"", "", 8.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_j[] = {
|
||||||
|
{"ј", "Ј", 1.0, Copy, 0x0458, 0, 0x0408},
|
||||||
|
{"", "", 9.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_e[] = {
|
||||||
|
{"є", "Є", 1.0, Copy, 0x0454, 0, 0x0404},
|
||||||
|
{"", "", 9.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_u[] = {
|
||||||
|
{"ў", "Ў", 1.0, Copy, 0x045E, 0, 0x040E},
|
||||||
|
{"", "", 9.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_l[] = {
|
||||||
|
{"љ", "Љ", 1.0, Copy, 0x0459, 0, 0x0409},
|
||||||
|
{"", "", 9.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_n[] = {
|
||||||
|
{"њ", "Њ", 1.0, Copy, 0x045A, 0, 0x040A},
|
||||||
|
{"", "", 9.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_che[] = {
|
||||||
|
{"ћ", "Ћ", 1.0, Copy, 0x045B, 0, 0x040B},
|
||||||
|
{"ђ", "Ђ", 1.0, Copy, 0x0452, 0, 0x0402},
|
||||||
|
{"", "", 8.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_tse[] = {
|
||||||
|
{"џ", "Џ", 1.0, Copy, 0x045F, 0, 0x040F},
|
||||||
|
{"ѕ", "Ѕ", 1.0, Copy, 0x0455, 0, 0x0405},
|
||||||
|
{"", "", 8.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_g[] = {
|
||||||
|
{"ѓ", "Ѓ", 1.0, Copy, 0x0453, 0, 0x0403},
|
||||||
|
{"", "", 9.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct key keys_compose_cyr_k[] = {
|
||||||
|
{"ќ", "Ќ", 1.0, Copy, 0x0453, 0, 0x040C},
|
||||||
|
{"", "", 9.0, Pad },
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"⇧", "⇧", 1.5, Mod, Shift, .scheme=1},
|
||||||
|
{"", "", 7, Pad},
|
||||||
|
{"⌫", "⌫", 1.5, Code, KEY_BACKSPACE, .scheme=1},
|
||||||
|
{"", "", 0.0, EndRow},
|
||||||
|
{"Abc", "Abc", 1.0, Layout, 0, &layouts[Cyrillic], .scheme=1},
|
||||||
|
{"Ctr", "Ctr", 1.0, Mod, Ctrl, .scheme=1},
|
||||||
|
{",", "'", 1.0, Code, KEY_EQUAL},
|
||||||
|
{"", "", 4.0, Code, KEY_SPACE},
|
||||||
|
{".", "?", 1.0, Code, KEY_SLASH},
|
||||||
|
{"Enter", "Enter", 2.0, Code, KEY_ENTER, .scheme=1},
|
||||||
|
{"", "", 0.0, Last},
|
||||||
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user