forked from mirrors/qmk_firmware
add support for generating a keymap
This commit is contained in:
parent
88cfd3554a
commit
2040fe3d8a
1 changed files with 21 additions and 17 deletions
|
@ -101,25 +101,29 @@ def kle2json(cli):
|
|||
info_json_file = keyboard_dir / 'info.json'
|
||||
|
||||
json.dump(kb_info_json, info_json_file.open('w'), indent=4, separators=(', ', ': '), sort_keys=False, cls=InfoJSONEncoder)
|
||||
cli.log.info('Wrote file %s', info_json_file)
|
||||
cli.log.info('Wrote file {fg_cyan}%s', info_json_file)
|
||||
|
||||
# Generate and write a keymap
|
||||
keymap = [key.get('label', 'KC_NO') for key in kb_info_json['layouts'][cli.args.layout]['layout']]
|
||||
keymap_json = {
|
||||
'version': 1,
|
||||
'documentation': "This file is a QMK Keymap. You can compile it with `qmk compile` or import it at <https://config.qmk.fm>. It can also be used directly with QMK's source code.",
|
||||
'author': '',
|
||||
'keyboard': kb_info_json['keyboard_name'],
|
||||
'keymap': cli.args.keymap,
|
||||
'layout': cli.args.layout,
|
||||
'layers': [
|
||||
keymap,
|
||||
['KC_TRNS' for key in keymap],
|
||||
],
|
||||
}
|
||||
keymap_path = keyboard_dir / 'keymaps' / cli.args.keymap
|
||||
keymap_path.mkdir(exist_ok=True, parents=True)
|
||||
keymap_file = keymap_path / 'keymap.json'
|
||||
|
||||
json.dump(keymap_json, keymap_file.open('w'), indent=4, separators=(', ', ': '), sort_keys=False)
|
||||
cli.log.info('Wrote file %s', keymap_file)
|
||||
if keymap_path.exists():
|
||||
cli.log.warning('{fg_cyan}%s{fg_reset} already exists, not generating a keymap.', keymap_path)
|
||||
else:
|
||||
keymap = [key.get('label', 'KC_NO') for key in kb_info_json['layouts'][cli.args.layout]['layout']]
|
||||
keymap_json = {
|
||||
'version': 1,
|
||||
'documentation': "This file is a QMK Keymap. You can compile it with `qmk compile` or import it at <https://config.qmk.fm>. It can also be used directly with QMK's source code.",
|
||||
'author': '',
|
||||
'keyboard': kb_info_json['keyboard_name'],
|
||||
'keymap': cli.args.keymap,
|
||||
'layout': cli.args.layout,
|
||||
'layers': [
|
||||
keymap,
|
||||
['KC_TRNS' for key in keymap],
|
||||
],
|
||||
}
|
||||
keymap_path.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
json.dump(keymap_json, keymap_file.open('w'), indent=4, separators=(', ', ': '), sort_keys=False)
|
||||
cli.log.info('Wrote file %s', keymap_file)
|
||||
|
|
Loading…
Reference in a new issue