From e0eb3c4c0dd19a68f14fa81d5fa94f65f19c8674 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Tue, 12 Oct 2021 20:34:54 +0200 Subject: [PATCH] Add support for further layers (some keys still missing scancodes) --- .../sq2lv_layouts.c | 60 ++++- examples/es+fr+us/sq2lv_layouts.c | 176 ++++++++++++--- .../sq2lv_layouts.c | 208 +++++++++++++++--- examples/us/sq2lv_layouts.c | 56 ++++- sq2lv.c | 16 ++ squeek2lvgl.py | 69 +++++- 6 files changed, 509 insertions(+), 76 deletions(-) diff --git a/examples/de-with-custom-shift-keycap/sq2lv_layouts.c b/examples/de-with-custom-shift-keycap/sq2lv_layouts.c index c23fe10..69444b2 100644 --- a/examples/de-with-custom-shift-keycap/sq2lv_layouts.c +++ b/examples/de-with-custom-shift-keycap/sq2lv_layouts.c @@ -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, diff --git a/examples/es+fr+us/sq2lv_layouts.c b/examples/es+fr+us/sq2lv_layouts.c index 18e590e..5b4fad4 100644 --- a/examples/es+fr+us/sq2lv_layouts.c +++ b/examples/es+fr+us/sq2lv_layouts.c @@ -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 } }; diff --git a/examples/us-terminal-with-scancodes/sq2lv_layouts.c b/examples/us-terminal-with-scancodes/sq2lv_layouts.c index 0249a9e..8cb62bc 100644 --- a/examples/us-terminal-with-scancodes/sq2lv_layouts.c +++ b/examples/us-terminal-with-scancodes/sq2lv_layouts.c @@ -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 }; diff --git a/examples/us/sq2lv_layouts.c b/examples/us/sq2lv_layouts.c index 89b9d30..4f36594 100644 --- a/examples/us/sq2lv_layouts.c +++ b/examples/us/sq2lv_layouts.c @@ -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 } }; diff --git a/sq2lv.c b/sq2lv.c index def04fe..298011b 100644 --- a/sq2lv.c +++ b/sq2lv.c @@ -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; } diff --git a/squeek2lvgl.py b/squeek2lvgl.py index 9f1c1cf..c3a6eb3 100644 --- a/squeek2lvgl.py +++ b/squeek2lvgl.py @@ -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