Add modifiers
This commit is contained in:
parent
5f10b71d79
commit
f578456d47
5 changed files with 74 additions and 6 deletions
|
|
@ -31,6 +31,12 @@ static const lv_btnmatrix_ctrl_t attributes_lower_terminal_us[] = { \
|
|||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_lower_terminal_us = 2;
|
||||
|
||||
static const int modifier_idxs_lower_terminal_us[] = { \
|
||||
0, 1 \
|
||||
};
|
||||
|
||||
static const int num_switchers_lower_terminal_us = 2;
|
||||
|
||||
static const int switcher_idxs_lower_terminal_us[] = { \
|
||||
|
|
@ -87,6 +93,12 @@ static const lv_btnmatrix_ctrl_t attributes_upper_terminal_us[] = { \
|
|||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_upper_terminal_us = 2;
|
||||
|
||||
static const int modifier_idxs_upper_terminal_us[] = { \
|
||||
0, 1 \
|
||||
};
|
||||
|
||||
static const int num_switchers_upper_terminal_us = 2;
|
||||
|
||||
static const int switcher_idxs_upper_terminal_us[] = { \
|
||||
|
|
@ -143,6 +155,12 @@ static const lv_btnmatrix_ctrl_t attributes_numbers_terminal_us[] = { \
|
|||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_numbers_terminal_us = 2;
|
||||
|
||||
static const int modifier_idxs_numbers_terminal_us[] = { \
|
||||
0, 1 \
|
||||
};
|
||||
|
||||
static const int num_switchers_numbers_terminal_us = 1;
|
||||
|
||||
static const int switcher_idxs_numbers_terminal_us[] = { \
|
||||
|
|
@ -188,6 +206,8 @@ static const sq2lv_layer_t layers_terminal_us[] = {
|
|||
.num_keys = num_keys_lower_terminal_us,
|
||||
.keycaps = keycaps_lower_terminal_us,
|
||||
.attributes = attributes_lower_terminal_us,
|
||||
.num_modifiers = num_modifiers_lower_terminal_us,
|
||||
.modifier_idxs = modifier_idxs_lower_terminal_us,
|
||||
.num_switchers = num_switchers_lower_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_lower_terminal_us,
|
||||
.switcher_dests = switcher_dests_lower_terminal_us,
|
||||
|
|
@ -200,6 +220,8 @@ static const sq2lv_layer_t layers_terminal_us[] = {
|
|||
.num_keys = num_keys_upper_terminal_us,
|
||||
.keycaps = keycaps_upper_terminal_us,
|
||||
.attributes = attributes_upper_terminal_us,
|
||||
.num_modifiers = num_modifiers_upper_terminal_us,
|
||||
.modifier_idxs = modifier_idxs_upper_terminal_us,
|
||||
.num_switchers = num_switchers_upper_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_upper_terminal_us,
|
||||
.switcher_dests = switcher_dests_upper_terminal_us,
|
||||
|
|
@ -212,6 +234,8 @@ static const sq2lv_layer_t layers_terminal_us[] = {
|
|||
.num_keys = num_keys_numbers_terminal_us,
|
||||
.keycaps = keycaps_numbers_terminal_us,
|
||||
.attributes = attributes_numbers_terminal_us,
|
||||
.num_modifiers = num_modifiers_numbers_terminal_us,
|
||||
.modifier_idxs = modifier_idxs_numbers_terminal_us,
|
||||
.num_switchers = num_switchers_numbers_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_numbers_terminal_us,
|
||||
.switcher_dests = switcher_dests_numbers_terminal_us,
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@ typedef struct {
|
|||
const char ** const keycaps;
|
||||
/* Button matrix attributes */
|
||||
const lv_btnmatrix_ctrl_t * const attributes;
|
||||
/* Number of modifier keys */
|
||||
const int num_modifiers;
|
||||
/* Button indexes of modifier keys */
|
||||
const int * const modifier_idxs;
|
||||
/* Number of buttons that trigger a layer switch */
|
||||
const int num_switchers;
|
||||
/* Button indexes that trigger a layer switch */
|
||||
|
|
|
|||
|
|
@ -28,6 +28,12 @@ static const lv_btnmatrix_ctrl_t attributes_lower_us[] = { \
|
|||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, 2, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_lower_us = 0;
|
||||
|
||||
static const int modifier_idxs_lower_us[] = { \
|
||||
\
|
||||
};
|
||||
|
||||
static const int num_switchers_lower_us = 2;
|
||||
|
||||
static const int switcher_idxs_lower_us[] = { \
|
||||
|
|
@ -56,6 +62,12 @@ static const lv_btnmatrix_ctrl_t attributes_upper_us[] = { \
|
|||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, 2, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_upper_us = 0;
|
||||
|
||||
static const int modifier_idxs_upper_us[] = { \
|
||||
\
|
||||
};
|
||||
|
||||
static const int num_switchers_upper_us = 2;
|
||||
|
||||
static const int switcher_idxs_upper_us[] = { \
|
||||
|
|
@ -84,6 +96,12 @@ static const lv_btnmatrix_ctrl_t attributes_numbers_us[] = { \
|
|||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, 2, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_numbers_us = 0;
|
||||
|
||||
static const int modifier_idxs_numbers_us[] = { \
|
||||
\
|
||||
};
|
||||
|
||||
static const int num_switchers_numbers_us = 1;
|
||||
|
||||
static const int switcher_idxs_numbers_us[] = { \
|
||||
|
|
@ -103,6 +121,8 @@ static const sq2lv_layer_t layers_us[] = {
|
|||
.num_keys = num_keys_lower_us,
|
||||
.keycaps = keycaps_lower_us,
|
||||
.attributes = attributes_lower_us,
|
||||
.num_modifiers = num_modifiers_lower_us,
|
||||
.modifier_idxs = modifier_idxs_lower_us,
|
||||
.num_switchers = num_switchers_lower_us,
|
||||
.switcher_idxs = switcher_idxs_lower_us,
|
||||
.switcher_dests = switcher_dests_lower_us
|
||||
|
|
@ -111,6 +131,8 @@ static const sq2lv_layer_t layers_us[] = {
|
|||
.num_keys = num_keys_upper_us,
|
||||
.keycaps = keycaps_upper_us,
|
||||
.attributes = attributes_upper_us,
|
||||
.num_modifiers = num_modifiers_upper_us,
|
||||
.modifier_idxs = modifier_idxs_upper_us,
|
||||
.num_switchers = num_switchers_upper_us,
|
||||
.switcher_idxs = switcher_idxs_upper_us,
|
||||
.switcher_dests = switcher_dests_upper_us
|
||||
|
|
@ -119,6 +141,8 @@ static const sq2lv_layer_t layers_us[] = {
|
|||
.num_keys = num_keys_numbers_us,
|
||||
.keycaps = keycaps_numbers_us,
|
||||
.attributes = attributes_numbers_us,
|
||||
.num_modifiers = num_modifiers_numbers_us,
|
||||
.modifier_idxs = modifier_idxs_numbers_us,
|
||||
.num_switchers = num_switchers_numbers_us,
|
||||
.switcher_idxs = switcher_idxs_numbers_us,
|
||||
.switcher_dests = switcher_dests_numbers_us
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@ typedef struct {
|
|||
const char ** const keycaps;
|
||||
/* Button matrix attributes */
|
||||
const lv_btnmatrix_ctrl_t * const attributes;
|
||||
/* Number of modifier keys */
|
||||
const int num_modifiers;
|
||||
/* Button indexes of modifier keys */
|
||||
const int * const modifier_idxs;
|
||||
/* Number of buttons that trigger a layer switch */
|
||||
const int num_switchers;
|
||||
/* Button indexes that trigger a layer switch */
|
||||
|
|
|
|||
|
|
@ -478,9 +478,9 @@ def keycap_to_scancodes(keycap):
|
|||
return scancodes_for_keycap[keycap]
|
||||
|
||||
|
||||
def get_keycaps_attrs_switchers_scancodes(args, layout_id, view_id, data_views, data_buttons):
|
||||
"""Return keycaps, LVGL button attributes, layer switching key indexes, layer switching key
|
||||
destinations and scancodes for a view
|
||||
def get_keycaps_attrs_modifiers_switchers_scancodes(args, layout_id, view_id, data_views, data_buttons):
|
||||
"""Return keycaps, LVGL button attributes, modifier key indexes, layer switching key indexes,
|
||||
layer switching key destinations and scancodes for a view
|
||||
|
||||
args -- Commandline arguments
|
||||
layout_id -- ID of the layout
|
||||
|
|
@ -490,6 +490,7 @@ def get_keycaps_attrs_switchers_scancodes(args, layout_id, view_id, data_views,
|
|||
"""
|
||||
keycaps = []
|
||||
attrs = []
|
||||
modifier_idxs = []
|
||||
switcher_idxs = []
|
||||
switcher_dests = []
|
||||
scancodes = []
|
||||
|
|
@ -522,6 +523,9 @@ def get_keycaps_attrs_switchers_scancodes(args, layout_id, view_id, data_views,
|
|||
keycaps_in_row.append(keycap_to_c_value(keycap))
|
||||
attrs_in_row.append(key_to_attributes(key, data_buttons))
|
||||
|
||||
if key in data_buttons and 'modifier' in data_buttons[key]:
|
||||
modifier_idxs.append(idx)
|
||||
|
||||
if key in data_buttons and 'action' in data_buttons[key]:
|
||||
action = data_buttons[key]['action']
|
||||
dest = None
|
||||
|
|
@ -546,7 +550,7 @@ def get_keycaps_attrs_switchers_scancodes(args, layout_id, view_id, data_views,
|
|||
attrs.append(attrs_in_row)
|
||||
scancodes.append(scancodes_in_row)
|
||||
|
||||
return keycaps, attrs, switcher_idxs, switcher_dests, scancodes
|
||||
return keycaps, attrs, modifier_idxs, switcher_idxs, switcher_dests, scancodes
|
||||
|
||||
|
||||
def flatten_scancodes(scancodes):
|
||||
|
|
@ -635,7 +639,7 @@ if __name__ == '__main__':
|
|||
c_builder.add_subsection_comment(f'Layer: {layer_name} - generated from {view_id}')
|
||||
c_builder.add_line()
|
||||
|
||||
keycaps, attrs, switcher_idxs, switcher_dests, scancodes = get_keycaps_attrs_switchers_scancodes(
|
||||
keycaps, attrs, modifier_idxs, switcher_idxs, switcher_dests, scancodes = get_keycaps_attrs_modifiers_switchers_scancodes(
|
||||
args, layout_id, view_id, data_views, data_buttons)
|
||||
|
||||
for dest in switcher_dests:
|
||||
|
|
@ -650,6 +654,10 @@ if __name__ == '__main__':
|
|||
c_builder.add_array(True, 'const lv_btnmatrix_ctrl_t', f'attributes_{layer_identifier}', attrs, '', '')
|
||||
c_builder.add_line()
|
||||
|
||||
c_builder.add_line(f'static const int num_modifiers_{layer_identifier} = {len(modifier_idxs)};')
|
||||
c_builder.add_line()
|
||||
c_builder.add_flat_array(True, 'const int', f'modifier_idxs_{layer_identifier}', modifier_idxs, '')
|
||||
c_builder.add_line()
|
||||
|
||||
c_builder.add_line(f'static const int num_switchers_{layer_identifier} = {len(switcher_idxs)};')
|
||||
c_builder.add_line()
|
||||
|
|
@ -681,7 +689,7 @@ if __name__ == '__main__':
|
|||
c_builder.add_line(f'static const sq2lv_layer_t layers_{layout_identifier}[] = ' + '{')
|
||||
for i, identifier in enumerate(layer_identifiers):
|
||||
c_builder.add_line(' {')
|
||||
fields = ['num_keys', 'keycaps', 'attributes', 'num_switchers', 'switcher_idxs', 'switcher_dests']
|
||||
fields = ['num_keys', 'keycaps', 'attributes', 'num_modifiers', 'modifier_idxs', 'num_switchers', 'switcher_idxs', 'switcher_dests']
|
||||
if args.generate_scancodes:
|
||||
fields += ['num_scancodes', 'scancodes', 'scancode_idxs', 'scancode_nums']
|
||||
for k, field in enumerate(fields):
|
||||
|
|
@ -711,6 +719,10 @@ if __name__ == '__main__':
|
|||
h_builder.add_line(' const char ** const keycaps;')
|
||||
h_builder.add_line(' /* Button matrix attributes */')
|
||||
h_builder.add_line(' const lv_btnmatrix_ctrl_t * const attributes;')
|
||||
h_builder.add_line(' /* Number of modifier keys */')
|
||||
h_builder.add_line(' const int num_modifiers;')
|
||||
h_builder.add_line(' /* Button indexes of modifier keys */')
|
||||
h_builder.add_line(' const int * const modifier_idxs;')
|
||||
h_builder.add_line(' /* Number of buttons that trigger a layer switch */')
|
||||
h_builder.add_line(' const int num_switchers;')
|
||||
h_builder.add_line(' /* Button indexes that trigger a layer switch */')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue