forked from mirrors/qmk_firmware
wip: support for custom keycodes in json
This commit is contained in:
parent
ac4849df13
commit
0a33ce0659
5 changed files with 33 additions and 4 deletions
|
@ -12,6 +12,12 @@
|
|||
"minLength": 1,
|
||||
"pattern": "^[0-9a-z_]*$"
|
||||
},
|
||||
"keycode": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 250,
|
||||
"pattern": "^[A-Z_][0-9A-Z_()]*$"
|
||||
},
|
||||
"hex_number_2d": {
|
||||
"type": "string",
|
||||
"pattern": "^0x[0-9A-F]{2}$"
|
||||
|
|
|
@ -77,6 +77,10 @@
|
|||
"lto": {"type": "boolean"},
|
||||
}
|
||||
},
|
||||
"custom_keycodes": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "qmk.definitions.v1#/keycode"}
|
||||
},
|
||||
"diode_direction": {
|
||||
"type": "string",
|
||||
"enum": ["COL2ROW", "ROW2COL"]
|
||||
|
|
|
@ -5,6 +5,11 @@
|
|||
"type": "object",
|
||||
"properties": {
|
||||
"author": {"type": "string"},
|
||||
"config": {"$ref": "qmk.keyboard.v1"},
|
||||
"custom_keycodes": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "qmk.definitions.v1#/keycode"}
|
||||
},
|
||||
"keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
|
||||
"keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
|
||||
"layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
|
||||
|
@ -12,13 +17,12 @@
|
|||
"type": "array",
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"}
|
||||
"items": {"$ref": "qmk.definitions.v1#/keycode"}
|
||||
}
|
||||
},
|
||||
"config": {"$ref": "qmk.keyboard.v1"},
|
||||
"notes": {
|
||||
"type": "string",
|
||||
"description": "asdf"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,21 @@ def generate_layouts(cli):
|
|||
cli.log.error('%s: Invalid matrix config.', cli.config.generate_layouts.keyboard)
|
||||
return False
|
||||
|
||||
if 'custom_keycodes' in kb_info_json:
|
||||
layouts_h_lines.append('\n#include "quantum_keycodes.h"')
|
||||
#layouts_h_lines.append('\nenum custom_keycodes {')
|
||||
first = True
|
||||
#for keycode in kb_info_json['custom_keycodes']:
|
||||
# if first:
|
||||
# first = False
|
||||
# layouts_h_lines.append(f'\t{keycode} = SAFE_RANGE,')
|
||||
# else:
|
||||
# layouts_h_lines.append(f'\t{keycode},')
|
||||
#layouts_h_lines.append('\tNEW_SAFE_RANGE')
|
||||
#layouts_h_lines.append('}\n')
|
||||
#layouts_h_lines.append('#undef SAFE_RANGE')
|
||||
#layouts_h_lines.append('#define SAFE_RANGE NEW_SAFE_RANGE')
|
||||
|
||||
for layout_name in kb_info_json['layouts']:
|
||||
if kb_info_json['layouts'][layout_name]['c_macro']:
|
||||
continue
|
||||
|
|
|
@ -358,7 +358,7 @@ $1_CONFIG_FLAGS += $$(patsubst %,-include %,$$($1_CONFIG))
|
|||
endif
|
||||
$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) $$(NOLTO_CFLAGS)
|
||||
$1_CXXFLAGS = $$(ALL_CXXFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS) $$(NOLTO_CFLAGS)
|
||||
$1_ASFLAGS = $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS)
|
||||
$1_ASFLAGS = $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS)
|
||||
|
||||
# Compile: create object files from C source files.
|
||||
$1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)
|
||||
|
|
Loading…
Reference in a new issue