Add support for further layers (some keys still missing scancodes)

This commit is contained in:
Johannes Marbach 2021-10-12 20:34:54 +02:00
parent 07c5eef622
commit e0eb3c4c0d
6 changed files with 509 additions and 76 deletions

View file

@ -42,7 +42,7 @@ static const int switcher_idxs_lower_de[] = { \
};
static const int switcher_dests_lower_de[] = { \
1, 2, 3 \
1, 2, 4 \
};
/* Layer: Uppercase letters - generated from upper */
@ -74,24 +74,24 @@ static const int switcher_idxs_upper_de[] = { \
};
static const int switcher_dests_upper_de[] = { \
0, 2, 3 \
0, 2, 4 \
};
/* Layer: Numbers / symbols - generated from numbers */
static const int num_keys_numbers_de = 36;
static const int num_keys_numbers_de = 37;
static const char * const keycaps_numbers_de[] = { \
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\n", \
"@", "#", "", "%", "&", "-", "_", "+", "(", ")", "\n", \
";", "\"", "'", ":", "=", "<", ">", LV_SYMBOL_BACKSPACE, "\n", \
"*/=", ";", "\"", "'", ":", "=", "<", ">", LV_SYMBOL_BACKSPACE, "\n", \
"abc", "äÄ", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, ",", ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_numbers_de[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
@ -99,14 +99,46 @@ static const int num_modifiers_numbers_de = 0;
static const int * const modifier_idxs_numbers_de = NULL;
static const int num_switchers_numbers_de = 2;
static const int num_switchers_numbers_de = 3;
static const int switcher_idxs_numbers_de[] = { \
28, 29 \
20, 29, 30 \
};
static const int switcher_dests_numbers_de[] = { \
0, 3 \
3, 0, 4 \
};
/* Layer: Symbols - generated from symbols */
static const int num_keys_symbols_de = 37;
static const char * const keycaps_symbols_de[] = { \
"~", "`", "´", "|", "·", "", "µ", "÷", "×", "", "\n", \
"©", "®", "£", "$", "¥", "^", "°", "*", "{", "}", "\n", \
"123", "\\", "/", "§", "π", "τ", "[", "]", LV_SYMBOL_BACKSPACE, "\n", \
"abc", "äÄ", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, ",", ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_symbols_de[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_symbols_de = 0;
static const int * const modifier_idxs_symbols_de = NULL;
static const int num_switchers_symbols_de = 3;
static const int switcher_idxs_symbols_de[] = { \
20, 29, 30 \
};
static const int switcher_dests_symbols_de[] = { \
2, 0, 4 \
};
/* Layer: Special characters - generated from eschars */
@ -143,7 +175,7 @@ static const int switcher_dests_special_de[] = { \
/* Layer array */
static const int num_layers_de = 4;
static const int num_layers_de = 5;
static const sq2lv_layer_t layers_de[] = {
{
@ -176,6 +208,16 @@ static const sq2lv_layer_t layers_de[] = {
.switcher_idxs = switcher_idxs_numbers_de,
.switcher_dests = switcher_dests_numbers_de
},
{
.num_keys = num_keys_symbols_de,
.keycaps = keycaps_symbols_de,
.attributes = attributes_symbols_de,
.num_modifiers = num_modifiers_symbols_de,
.modifier_idxs = modifier_idxs_symbols_de,
.num_switchers = num_switchers_symbols_de,
.switcher_idxs = switcher_idxs_symbols_de,
.switcher_dests = switcher_dests_symbols_de
},
{
.num_keys = num_keys_special_de,
.keycaps = keycaps_special_de,

View file

@ -42,7 +42,7 @@ static const int switcher_idxs_lower_es[] = { \
};
static const int switcher_dests_lower_es[] = { \
1, 2, 3 \
1, 2, 4 \
};
/* Layer: Uppercase letters - generated from upper */
@ -74,24 +74,24 @@ static const int switcher_idxs_upper_es[] = { \
};
static const int switcher_dests_upper_es[] = { \
0, 2, 3 \
0, 2, 4 \
};
/* Layer: Numbers / symbols - generated from numbers */
static const int num_keys_numbers_es = 36;
static const int num_keys_numbers_es = 37;
static const char * const keycaps_numbers_es[] = { \
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\n", \
"@", "#", "", "%", "&", "-", "_", "+", "(", ")", "\n", \
",", "\"", "'", ":", ";", "!", "=", LV_SYMBOL_BACKSPACE, "\n", \
"*/=", ",", "\"", "'", ":", ";", "!", "=", LV_SYMBOL_BACKSPACE, "\n", \
"abc", "áÁ", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, "?", ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_numbers_es[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
@ -99,14 +99,46 @@ static const int num_modifiers_numbers_es = 0;
static const int * const modifier_idxs_numbers_es = NULL;
static const int num_switchers_numbers_es = 2;
static const int num_switchers_numbers_es = 3;
static const int switcher_idxs_numbers_es[] = { \
28, 29 \
20, 29, 30 \
};
static const int switcher_dests_numbers_es[] = { \
0, 3 \
3, 0, 4 \
};
/* Layer: Symbols - generated from symbols */
static const int num_keys_symbols_es = 37;
static const char * const keycaps_symbols_es[] = { \
"~", "`", "|", "·", "", "π", "τ", "÷", "×", "", "\n", \
"©", "®", "£", "$", "¥", "^", "°", "*", "{", "}", "\n", \
"123", "\\", "/", "<", ">", "=", "[", "]", LV_SYMBOL_BACKSPACE, "\n", \
"abc", "áÁ", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, "?", ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_symbols_es[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_symbols_es = 0;
static const int * const modifier_idxs_symbols_es = NULL;
static const int num_switchers_symbols_es = 3;
static const int switcher_idxs_symbols_es[] = { \
20, 29, 30 \
};
static const int switcher_dests_symbols_es[] = { \
2, 0, 4 \
};
/* Layer: Special characters - generated from eschars */
@ -143,7 +175,7 @@ static const int switcher_dests_special_es[] = { \
/* Layer array */
static const int num_layers_es = 4;
static const int num_layers_es = 5;
static const sq2lv_layer_t layers_es[] = {
{
@ -176,6 +208,16 @@ static const sq2lv_layer_t layers_es[] = {
.switcher_idxs = switcher_idxs_numbers_es,
.switcher_dests = switcher_dests_numbers_es
},
{
.num_keys = num_keys_symbols_es,
.keycaps = keycaps_symbols_es,
.attributes = attributes_symbols_es,
.num_modifiers = num_modifiers_symbols_es,
.modifier_idxs = modifier_idxs_symbols_es,
.num_switchers = num_switchers_symbols_es,
.switcher_idxs = switcher_idxs_symbols_es,
.switcher_dests = switcher_dests_symbols_es
},
{
.num_keys = num_keys_special_es,
.keycaps = keycaps_special_es,
@ -224,7 +266,7 @@ static const int switcher_idxs_lower_fr[] = { \
};
static const int switcher_dests_lower_fr[] = { \
1, 2, 3 \
1, 2, 4 \
};
/* Layer: Uppercase letters - generated from upper */
@ -256,24 +298,24 @@ static const int switcher_idxs_upper_fr[] = { \
};
static const int switcher_dests_upper_fr[] = { \
0, 2, 3 \
0, 2, 4 \
};
/* Layer: Numbers / symbols - generated from numbers */
static const int num_keys_numbers_fr = 34;
static const int num_keys_numbers_fr = 35;
static const char * const keycaps_numbers_fr[] = { \
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\n", \
"@", "#", "", "%", "&", "-", "_", "+", "(", ")", "\n", \
",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"*/=", ",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"abc", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, "âÂ", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_numbers_fr[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3 \
};
@ -281,14 +323,46 @@ static const int num_modifiers_numbers_fr = 0;
static const int * const modifier_idxs_numbers_fr = NULL;
static const int num_switchers_numbers_fr = 2;
static const int num_switchers_numbers_fr = 3;
static const int switcher_idxs_numbers_fr[] = { \
28, 32 \
20, 29, 33 \
};
static const int switcher_dests_numbers_fr[] = { \
0, 3 \
3, 0, 4 \
};
/* Layer: Symbols - generated from symbols */
static const int num_keys_symbols_fr = 35;
static const char * const keycaps_symbols_fr[] = { \
"~", "`", "|", "·", "", "π", "τ", "÷", "×", "", "\n", \
"©", "®", "£", "$", "¥", "^", "°", "*", "{", "}", "\n", \
"123", "\\", "/", "<", ">", "=", "[", "]", LV_SYMBOL_BACKSPACE, "\n", \
"abc", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, "âÂ", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_symbols_fr[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_symbols_fr = 0;
static const int * const modifier_idxs_symbols_fr = NULL;
static const int num_switchers_symbols_fr = 3;
static const int switcher_idxs_symbols_fr[] = { \
20, 29, 33 \
};
static const int switcher_dests_symbols_fr[] = { \
2, 0, 4 \
};
/* Layer: Special characters - generated from eschars */
@ -325,7 +399,7 @@ static const int switcher_dests_special_fr[] = { \
/* Layer array */
static const int num_layers_fr = 4;
static const int num_layers_fr = 5;
static const sq2lv_layer_t layers_fr[] = {
{
@ -358,6 +432,16 @@ static const sq2lv_layer_t layers_fr[] = {
.switcher_idxs = switcher_idxs_numbers_fr,
.switcher_dests = switcher_dests_numbers_fr
},
{
.num_keys = num_keys_symbols_fr,
.keycaps = keycaps_symbols_fr,
.attributes = attributes_symbols_fr,
.num_modifiers = num_modifiers_symbols_fr,
.modifier_idxs = modifier_idxs_symbols_fr,
.num_switchers = num_switchers_symbols_fr,
.switcher_idxs = switcher_idxs_symbols_fr,
.switcher_dests = switcher_dests_symbols_fr
},
{
.num_keys = num_keys_special_fr,
.keycaps = keycaps_special_fr,
@ -443,19 +527,19 @@ static const int switcher_dests_upper_us[] = { \
/* Layer: Numbers / symbols - generated from numbers */
static const int num_keys_numbers_us = 34;
static const int num_keys_numbers_us = 35;
static const char * const keycaps_numbers_us[] = { \
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\n", \
"@", "#", "$", "%", "&", "-", "_", "+", "(", ")", "\n", \
",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"*/=", ",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"ABC", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_numbers_us[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
@ -463,19 +547,51 @@ static const int num_modifiers_numbers_us = 0;
static const int * const modifier_idxs_numbers_us = NULL;
static const int num_switchers_numbers_us = 1;
static const int num_switchers_numbers_us = 2;
static const int switcher_idxs_numbers_us[] = { \
28 \
20, 29 \
};
static const int switcher_dests_numbers_us[] = { \
0 \
3, 0 \
};
/* Layer: Symbols - generated from symbols */
static const int num_keys_symbols_us = 35;
static const char * const keycaps_symbols_us[] = { \
"~", "`", "|", "·", "", "π", "τ", "÷", "×", "", "\n", \
"©", "®", "£", "", "¥", "^", "°", "*", "{", "}", "\n", \
"123", "\\", "/", "<", ">", "=", "[", "]", LV_SYMBOL_BACKSPACE, "\n", \
"ABC", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_symbols_us[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_symbols_us = 0;
static const int * const modifier_idxs_symbols_us = NULL;
static const int num_switchers_symbols_us = 2;
static const int switcher_idxs_symbols_us[] = { \
20, 29 \
};
static const int switcher_dests_symbols_us[] = { \
2, 0 \
};
/* Layer array */
static const int num_layers_us = 3;
static const int num_layers_us = 4;
static const sq2lv_layer_t layers_us[] = {
{
@ -507,6 +623,16 @@ static const sq2lv_layer_t layers_us[] = {
.num_switchers = num_switchers_numbers_us,
.switcher_idxs = switcher_idxs_numbers_us,
.switcher_dests = switcher_dests_numbers_us
},
{
.num_keys = num_keys_symbols_us,
.keycaps = keycaps_symbols_us,
.attributes = attributes_symbols_us,
.num_modifiers = num_modifiers_symbols_us,
.modifier_idxs = modifier_idxs_symbols_us,
.num_switchers = num_switchers_symbols_us,
.switcher_idxs = switcher_idxs_symbols_us,
.switcher_dests = switcher_dests_symbols_us
}
};

View file

@ -16,14 +16,14 @@ static const char * const short_name_terminal_us = "terminal/us";
/* Layer: Lowercase letters - generated from base */
static const int num_keys_lower_terminal_us = 37;
static const int num_keys_lower_terminal_us = 38;
static const char * const keycaps_lower_terminal_us[] = { \
"Ctrl", "Alt", LV_SYMBOL_UP, LV_SYMBOL_DOWN, LV_SYMBOL_LEFT, LV_SYMBOL_RIGHT, "\n", \
"q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "\n", \
"a", "s", "d", "f", "g", "h", "j", "k", "l", "\n", \
SQ2LV_SYMBOL_SHIFT, "z", "x", "c", "v", "b", "n", "m", LV_SYMBOL_BACKSPACE, "\n", \
"123", " ", LV_SYMBOL_OK, "" \
"123", " ", ">_", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_lower_terminal_us[] = { \
@ -31,7 +31,7 @@ static const lv_btnmatrix_ctrl_t attributes_lower_terminal_us[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_MOD_INACTIVE | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, 7, SQ2LV_CTRL_NON_CHAR | 3 \
SQ2LV_CTRL_NON_CHAR | 3, 7, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_lower_terminal_us = 2;
@ -40,14 +40,14 @@ static const int modifier_idxs_lower_terminal_us[] = { \
0, 1 \
};
static const int num_switchers_lower_terminal_us = 2;
static const int num_switchers_lower_terminal_us = 3;
static const int switcher_idxs_lower_terminal_us[] = { \
25, 34 \
25, 34, 36 \
};
static const int switcher_dests_lower_terminal_us[] = { \
1, 2 \
1, 2, 4 \
};
static const int num_scancodes_lower_terminal_us = 5;
@ -65,7 +65,7 @@ static const int scancode_idxs_lower_terminal_us[] = { \
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, \
16, 17, 18, 19, 20, 21, 22, 23, 24, \
-1, 25, 26, 27, 28, 29, 30, 31, 32, \
-1, 33, 34 \
-1, 33, -1, 34 \
};
static const int scancode_nums_lower_terminal_us[] = { \
@ -73,19 +73,19 @@ static const int scancode_nums_lower_terminal_us[] = { \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, \
0, 1, 1, 1, 1, 1, 1, 1, 1, \
0, 1, 1 \
0, 1, 0, 1 \
};
/* Layer: Uppercase letters - generated from upper */
static const int num_keys_upper_terminal_us = 37;
static const int num_keys_upper_terminal_us = 38;
static const char * const keycaps_upper_terminal_us[] = { \
"Ctrl", "Alt", "PgUp", "PgDn", "Home", "End", "\n", \
"Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "\n", \
"A", "S", "D", "F", "G", "H", "J", "K", "L", "\n", \
SQ2LV_SYMBOL_SHIFT, "Z", "X", "C", "V", "B", "N", "M", LV_SYMBOL_BACKSPACE, "\n", \
"123", " ", LV_SYMBOL_OK, "" \
"123", " ", ">_", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_upper_terminal_us[] = { \
@ -93,7 +93,7 @@ static const lv_btnmatrix_ctrl_t attributes_upper_terminal_us[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_MOD_ACTIVE | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, 7, SQ2LV_CTRL_NON_CHAR | 3 \
SQ2LV_CTRL_NON_CHAR | 3, 7, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_upper_terminal_us = 2;
@ -102,14 +102,14 @@ static const int modifier_idxs_upper_terminal_us[] = { \
0, 1 \
};
static const int num_switchers_upper_terminal_us = 2;
static const int num_switchers_upper_terminal_us = 3;
static const int switcher_idxs_upper_terminal_us[] = { \
25, 34 \
25, 34, 36 \
};
static const int switcher_dests_upper_terminal_us[] = { \
0, 2 \
0, 2, 4 \
};
static const int num_scancodes_upper_terminal_us = 5;
@ -127,7 +127,7 @@ static const int scancode_idxs_upper_terminal_us[] = { \
6, 8, 10, 12, 14, 16, 18, 20, 22, 24, \
26, 28, 30, 32, 34, 36, 38, 40, 42, \
-1, 44, 46, 48, 50, 52, 54, 56, 58, \
-1, 59, 60 \
-1, 59, -1, 60 \
};
static const int scancode_nums_upper_terminal_us[] = { \
@ -135,18 +135,18 @@ static const int scancode_nums_upper_terminal_us[] = { \
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
2, 2, 2, 2, 2, 2, 2, 2, 2, \
0, 2, 2, 2, 2, 2, 2, 2, 1, \
0, 1, 1 \
0, 1, 0, 1 \
};
/* Layer: Numbers / symbols - generated from numbers */
static const int num_keys_numbers_terminal_us = 38;
static const int num_keys_numbers_terminal_us = 39;
static const char * const keycaps_numbers_terminal_us[] = { \
"Ctrl", "Alt", LV_SYMBOL_UP, LV_SYMBOL_DOWN, LV_SYMBOL_LEFT, LV_SYMBOL_RIGHT, "\n", \
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\n", \
"*", "#", "$", "/", "&", "-", "_", "+", "(", ")", "\n", \
",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"τ=\", ",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"ABC", " ", ".", LV_SYMBOL_OK, "" \
};
@ -154,7 +154,7 @@ static const lv_btnmatrix_ctrl_t attributes_numbers_terminal_us[] = { \
SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, 7, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
@ -164,14 +164,14 @@ static const int modifier_idxs_numbers_terminal_us[] = { \
0, 1 \
};
static const int num_switchers_numbers_terminal_us = 1;
static const int num_switchers_numbers_terminal_us = 2;
static const int switcher_idxs_numbers_terminal_us[] = { \
34 \
26, 35 \
};
static const int switcher_dests_numbers_terminal_us[] = { \
0 \
3, 0 \
};
static const int num_scancodes_numbers_terminal_us = 5;
@ -188,7 +188,7 @@ static const int scancode_idxs_numbers_terminal_us[] = { \
0, 1, 2, 3, 4, 5, \
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, \
16, 18, 20, 22, 23, 25, 26, 28, 30, 32, \
34, 35, 37, 38, 40, 41, 43, 45, \
-1, 34, 35, 37, 38, 40, 41, 43, 45, \
-1, 46, 47, 48 \
};
@ -196,13 +196,137 @@ static const int scancode_nums_numbers_terminal_us[] = { \
1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
2, 2, 2, 1, 2, 1, 2, 2, 2, 2, \
1, 2, 1, 2, 1, 2, 2, 1, \
0, 1, 2, 1, 2, 1, 2, 2, 1, \
0, 1, 1, 1 \
};
/* Layer: Symbols - generated from symbols */
static const int num_keys_symbols_terminal_us = 39;
static const char * const keycaps_symbols_terminal_us[] = { \
"Ctrl", "Alt", LV_SYMBOL_UP, LV_SYMBOL_DOWN, LV_SYMBOL_LEFT, LV_SYMBOL_RIGHT, "\n", \
"~", "`", "|", "·", "", "π", "τ", "÷", "×", "", "\n", \
"©", "®", "£", "", "¥", "^", "°", "@", "{", "}", "\n", \
"123", "\\", "%", "<", ">", "=", "[", "]", LV_SYMBOL_BACKSPACE, "\n", \
"ABC", " ", ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_symbols_terminal_us[] = { \
SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, 7, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_symbols_terminal_us = 2;
static const int modifier_idxs_symbols_terminal_us[] = { \
0, 1 \
};
static const int num_switchers_symbols_terminal_us = 2;
static const int switcher_idxs_symbols_terminal_us[] = { \
26, 35 \
};
static const int switcher_dests_symbols_terminal_us[] = { \
2, 0 \
};
static const int num_scancodes_symbols_terminal_us = 5;
static const int scancodes_symbols_terminal_us[] = { \
KEY_LEFTCTRL, KEY_LEFTALT, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, \
KEY_LEFTSHIFT, KEY_GRAVE, KEY_GRAVE, KEY_LEFTSHIFT, KEY_BACKSLASH, \
KEY_LEFTSHIFT, KEY_6, KEY_LEFTSHIFT, KEY_2, KEY_LEFTSHIFT, KEY_LEFTBRACE, KEY_LEFTSHIFT, KEY_RIGHTBRACE, \
KEY_BACKSLASH, KEY_LEFTSHIFT, KEY_5, KEY_LEFTSHIFT, KEY_COMMA, KEY_LEFTSHIFT, KEY_DOT, KEY_EQUAL, KEY_LEFTBRACE, KEY_RIGHTBRACE, KEY_BACKSPACE, \
KEY_SPACE, KEY_DOT, KEY_ENTER \
};
static const int scancode_idxs_symbols_terminal_us[] = { \
0, 1, 2, 3, 4, 5, \
6, 8, 9, -1, -1, -1, -1, -1, -1, -1, \
-1, -1, -1, -1, -1, 11, -1, 13, 15, 17, \
-1, 19, 20, 22, 24, 26, 27, 28, 29, \
-1, 30, 31, 32 \
};
static const int scancode_nums_symbols_terminal_us[] = { \
1, 1, 1, 1, 1, 1, \
2, 1, 2, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 2, 0, 2, 2, 2, \
0, 1, 2, 2, 2, 1, 1, 1, 1, \
0, 1, 1, 1 \
};
/* Layer: Actions - generated from actions */
static const int num_keys_actions_terminal_us = 30;
static const char * const keycaps_actions_terminal_us[] = { \
"Ctrl", "Alt", "PgUp", "PgDn", "Home", "End", "\n", \
"F1", "F2", "F3", "F4", "F5", "F6", "\n", \
"F7", "F8", "F9", "F10", "F11", "F12", "\n", \
"Esc", "Tab", "Pause", "Insert", "", "Del", "\n", \
"ABC", "Menu", "Break", "", "", "", "" \
};
static const lv_btnmatrix_ctrl_t attributes_actions_terminal_us[] = { \
SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_actions_terminal_us = 2;
static const int modifier_idxs_actions_terminal_us[] = { \
0, 1 \
};
static const int num_switchers_actions_terminal_us = 1;
static const int switcher_idxs_actions_terminal_us[] = { \
24 \
};
static const int switcher_dests_actions_terminal_us[] = { \
0 \
};
static const int num_scancodes_actions_terminal_us = 5;
static const int scancodes_actions_terminal_us[] = { \
KEY_LEFTCTRL, KEY_LEFTALT, KEY_PAGEUP, KEY_PAGEDOWN, KEY_HOME, KEY_END, \
KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, \
KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12, \
KEY_ESC, KEY_TAB, KEY_PAUSE, KEY_INSERT, KEY_UP, KEY_DELETE, \
KEY_COMPOSE, KEY_BREAK, KEY_LEFT, KEY_DOWN, KEY_RIGHT \
};
static const int scancode_idxs_actions_terminal_us[] = { \
0, 1, 2, 3, 4, 5, \
6, 7, 8, 9, 10, 11, \
12, 13, 14, 15, 16, 17, \
18, 19, 20, 21, 22, 23, \
-1, 24, 25, 26, 27, 28 \
};
static const int scancode_nums_actions_terminal_us[] = { \
1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, \
0, 1, 1, 1, 1, 1 \
};
/* Layer array */
static const int num_layers_terminal_us = 3;
static const int num_layers_terminal_us = 5;
static const sq2lv_layer_t layers_terminal_us[] = {
{
@ -246,6 +370,34 @@ static const sq2lv_layer_t layers_terminal_us[] = {
.scancodes = scancodes_numbers_terminal_us,
.scancode_idxs = scancode_idxs_numbers_terminal_us,
.scancode_nums = scancode_nums_numbers_terminal_us
},
{
.num_keys = num_keys_symbols_terminal_us,
.keycaps = keycaps_symbols_terminal_us,
.attributes = attributes_symbols_terminal_us,
.num_modifiers = num_modifiers_symbols_terminal_us,
.modifier_idxs = modifier_idxs_symbols_terminal_us,
.num_switchers = num_switchers_symbols_terminal_us,
.switcher_idxs = switcher_idxs_symbols_terminal_us,
.switcher_dests = switcher_dests_symbols_terminal_us,
.num_scancodes = num_scancodes_symbols_terminal_us,
.scancodes = scancodes_symbols_terminal_us,
.scancode_idxs = scancode_idxs_symbols_terminal_us,
.scancode_nums = scancode_nums_symbols_terminal_us
},
{
.num_keys = num_keys_actions_terminal_us,
.keycaps = keycaps_actions_terminal_us,
.attributes = attributes_actions_terminal_us,
.num_modifiers = num_modifiers_actions_terminal_us,
.modifier_idxs = modifier_idxs_actions_terminal_us,
.num_switchers = num_switchers_actions_terminal_us,
.switcher_idxs = switcher_idxs_actions_terminal_us,
.switcher_dests = switcher_dests_actions_terminal_us,
.num_scancodes = num_scancodes_actions_terminal_us,
.scancodes = scancodes_actions_terminal_us,
.scancode_idxs = scancode_idxs_actions_terminal_us,
.scancode_nums = scancode_nums_actions_terminal_us
}
};
@ -271,7 +423,7 @@ const char * const sq2lv_layout_names =
const char * const sq2lv_layout_short_names =
"terminal/us";
const int sq2lv_num_unique_scancodes = 57;
const int sq2lv_num_unique_scancodes = 80;
const int sq2lv_unique_scancodes[] = {
KEY_LEFTCTRL, KEY_LEFTALT, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_Q, KEY_W, KEY_E, KEY_R,
@ -279,5 +431,7 @@ const int sq2lv_unique_scancodes[] = {
KEY_G, KEY_H, KEY_J, KEY_K, KEY_L, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B,
KEY_N, KEY_M, KEY_BACKSPACE, KEY_SPACE, KEY_ENTER, KEY_PAGEUP, KEY_PAGEDOWN, KEY_HOME, KEY_END, KEY_LEFTSHIFT,
KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0,
KEY_SLASH, KEY_MINUS, KEY_EQUAL, KEY_COMMA, KEY_APOSTROPHE, KEY_SEMICOLON, KEY_DOT
KEY_SLASH, KEY_MINUS, KEY_EQUAL, KEY_COMMA, KEY_APOSTROPHE, KEY_SEMICOLON, KEY_DOT, KEY_GRAVE, KEY_BACKSLASH, KEY_LEFTBRACE,
KEY_RIGHTBRACE, KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_F9,
KEY_F10, KEY_F11, KEY_F12, KEY_ESC, KEY_TAB, KEY_PAUSE, KEY_INSERT, KEY_DELETE, KEY_COMPOSE, KEY_BREAK
};

View file

@ -79,19 +79,19 @@ static const int switcher_dests_upper_us[] = { \
/* Layer: Numbers / symbols - generated from numbers */
static const int num_keys_numbers_us = 34;
static const int num_keys_numbers_us = 35;
static const char * const keycaps_numbers_us[] = { \
"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\n", \
"@", "#", "$", "%", "&", "-", "_", "+", "(", ")", "\n", \
",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"*/=", ",", "\"", "'", ":", ";", "!", "?", LV_SYMBOL_BACKSPACE, "\n", \
"ABC", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_numbers_us[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
@ -99,19 +99,51 @@ static const int num_modifiers_numbers_us = 0;
static const int * const modifier_idxs_numbers_us = NULL;
static const int num_switchers_numbers_us = 1;
static const int num_switchers_numbers_us = 2;
static const int switcher_idxs_numbers_us[] = { \
28 \
20, 29 \
};
static const int switcher_dests_numbers_us[] = { \
0 \
3, 0 \
};
/* Layer: Symbols - generated from symbols */
static const int num_keys_symbols_us = 35;
static const char * const keycaps_symbols_us[] = { \
"~", "`", "|", "·", "", "π", "τ", "÷", "×", "", "\n", \
"©", "®", "£", "", "¥", "^", "°", "*", "{", "}", "\n", \
"123", "\\", "/", "<", ">", "=", "[", "]", LV_SYMBOL_BACKSPACE, "\n", \
"ABC", LV_SYMBOL_LEFT, " ", LV_SYMBOL_RIGHT, ".", LV_SYMBOL_OK, "" \
};
static const lv_btnmatrix_ctrl_t attributes_symbols_us[] = { \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, \
SQ2LV_CTRL_NON_CHAR | 3, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3, \
SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 2, 7, SQ2LV_CTRL_NON_CHAR | 2, LV_BTNMATRIX_CTRL_POPOVER | 2, SQ2LV_CTRL_NON_CHAR | 3 \
};
static const int num_modifiers_symbols_us = 0;
static const int * const modifier_idxs_symbols_us = NULL;
static const int num_switchers_symbols_us = 2;
static const int switcher_idxs_symbols_us[] = { \
20, 29 \
};
static const int switcher_dests_symbols_us[] = { \
2, 0 \
};
/* Layer array */
static const int num_layers_us = 3;
static const int num_layers_us = 4;
static const sq2lv_layer_t layers_us[] = {
{
@ -143,6 +175,16 @@ static const sq2lv_layer_t layers_us[] = {
.num_switchers = num_switchers_numbers_us,
.switcher_idxs = switcher_idxs_numbers_us,
.switcher_dests = switcher_dests_numbers_us
},
{
.num_keys = num_keys_symbols_us,
.keycaps = keycaps_symbols_us,
.attributes = attributes_symbols_us,
.num_modifiers = num_modifiers_symbols_us,
.modifier_idxs = modifier_idxs_symbols_us,
.num_switchers = num_switchers_symbols_us,
.switcher_idxs = switcher_idxs_symbols_us,
.switcher_dests = switcher_dests_symbols_us
}
};

16
sq2lv.c
View file

@ -80,6 +80,14 @@ static lv_keyboard_mode_t layer_index_to_keyboard_mode(int layer_index) {
return LV_KEYBOARD_MODE_SPECIAL;
case 3:
return LV_KEYBOARD_MODE_NUMBER;
case 4:
return LV_KEYBOARD_MODE_USER_1;
case 5:
return LV_KEYBOARD_MODE_USER_2;
case 6:
return LV_KEYBOARD_MODE_USER_3;
case 7:
return LV_KEYBOARD_MODE_USER_4;
default:
return -1;
}
@ -95,6 +103,14 @@ static int keyboard_mode_to_layer_index(lv_keyboard_mode_t keyboard_mode) {
return 2;
case LV_KEYBOARD_MODE_NUMBER:
return 3;
case LV_KEYBOARD_MODE_USER_1:
return 4;
case LV_KEYBOARD_MODE_USER_2:
return 5;
case LV_KEYBOARD_MODE_USER_3:
return 6;
case LV_KEYBOARD_MODE_USER_4:
return 7;
default:
return -1;
}

View file

@ -286,7 +286,9 @@ layer_name_for_view_id = {
'base': 'Lowercase letters',
'upper': 'Uppercase letters',
'numbers': 'Numbers / symbols',
'eschars': 'Special characters'
'eschars': 'Special characters',
'symbols': 'Symbols',
'actions': 'Actions'
}
def view_id_to_layer_name(view_id):
@ -313,9 +315,7 @@ def view_id_to_c_identifier(view_id):
ignored_keys = {
'preferences',
'show_actions',
'show_symbols'
'preferences'
}
def is_key_ignored(key):
@ -492,16 +492,67 @@ scancodes_for_keycap = {
';': ['KEY_SEMICOLON'],
'!': ['KEY_LEFTSHIFT', 'KEY_1'],
'?': ['KEY_LEFTSHIFT', 'KEY_SLASH'],
'.': ['KEY_DOT']
'.': ['KEY_DOT'],
'~': ['KEY_LEFTSHIFT', 'KEY_GRAVE'],
'`': ['KEY_GRAVE'],
'|': ['KEY_LEFTSHIFT', 'KEY_BACKSLASH'],
# '·': [],
# '√': [],
# 'π': [],
# 'τ': [],
# '÷': [],
# '×': [],
# '¶': [],
# '©': [],
# '®': [],
# '£': [],
# '€': [],
# '¥': [],
'\\\\': ['KEY_BACKSLASH'],
'^': ['KEY_LEFTSHIFT', 'KEY_6'],
# '°': [],
'@': ['KEY_LEFTSHIFT', 'KEY_2'],
'{': ['KEY_LEFTSHIFT', 'KEY_LEFTBRACE'],
'}': ['KEY_LEFTSHIFT', 'KEY_RIGHTBRACE'],
'%': ['KEY_LEFTSHIFT', 'KEY_5'],
'<': ['KEY_LEFTSHIFT', 'KEY_COMMA'],
'>': ['KEY_LEFTSHIFT', 'KEY_DOT'],
'=': ['KEY_EQUAL'],
'[': ['KEY_LEFTBRACE'],
']': ['KEY_RIGHTBRACE'],
'F1': ['KEY_F1'],
'F2': ['KEY_F2'],
'F3': ['KEY_F3'],
'F4': ['KEY_F4'],
'F5': ['KEY_F5'],
'F6': ['KEY_F6'],
'F7': ['KEY_F7'],
'F8': ['KEY_F8'],
'F9': ['KEY_F9'],
'F10': ['KEY_F10'],
'F11': ['KEY_F11'],
'F12': ['KEY_F12'],
'Esc': ['KEY_ESC'],
'Tab': ['KEY_TAB'],
'Pause': ['KEY_PAUSE'],
'Insert': ['KEY_INSERT'],
'Del': ['KEY_DELETE'],
'Menu': ['KEY_COMPOSE'],
'Break': ['KEY_BREAK'],
'': ['KEY_UP'],
'': ['KEY_LEFT'],
'': ['KEY_DOWN'],
'': ['KEY_RIGHT']
}
def keycap_to_scancodes(args, keycap):
def keycap_to_scancodes(args, keycap, is_switcher):
"""Return the scancodes needed to produce a keycap
args -- commandline arguments
keycap -- keycap to produce
is_switcher -- whether the key is a layer switcher
"""
if keycap == 'SQ2LV_SYMBOL_SHIFT':
if is_switcher:
return []
if keycap not in scancodes_for_keycap:
warn(f'Cannot determine scancodes for unknown keycap "{keycap}"')
@ -566,6 +617,7 @@ def get_keycaps_attrs_modifiers_switchers_scancodes(args, view_id, data_views, d
is_locked = False
is_lockable = False
is_switcher = False
if key in data_buttons and 'action' in data_buttons[key]:
action = data_buttons[key]['action']
@ -583,11 +635,12 @@ def get_keycaps_attrs_modifiers_switchers_scancodes(args, view_id, data_views, d
if dest:
switcher_idxs.append(idx)
switcher_dests.append(dest)
is_switcher = True
attrs_in_row.append(key_to_attributes(key, is_locked, is_lockable, data_buttons))
if args.generate_scancodes:
scancodes_in_row.append(keycap_to_scancodes(args, keycap))
scancodes_in_row.append(keycap_to_scancodes(args, keycap, is_switcher))
idx += 1