mirror of
https://github.com/qmk/qmk_firmware
synced 2025-01-04 22:13:04 +00:00
Compare commits
7 Commits
6776846fe5
...
7a7a5c517a
Author | SHA1 | Date | |
---|---|---|---|
|
7a7a5c517a | ||
|
d5a0424987 | ||
|
1e6eb5e35c | ||
|
57f89e5388 | ||
|
4d182ec117 | ||
|
53680fa6da | ||
|
90233d3137 |
@ -9,19 +9,15 @@ import qmk.keyboard
|
||||
import qmk.path
|
||||
from qmk.info import info_json
|
||||
from qmk.json_encoders import KeymapJSONEncoder
|
||||
from qmk.commands import parse_configurator_json, dump_lines
|
||||
from qmk.keymap import generate_json, list_keymaps, locate_keymap, parse_keymap_c
|
||||
from qmk.commands import dump_lines
|
||||
from qmk.keymap import generate_json
|
||||
|
||||
|
||||
def _find_via_layout_macro(keyboard):
|
||||
keymap_layout = None
|
||||
if 'via' in list_keymaps(keyboard):
|
||||
keymap_path = locate_keymap(keyboard, 'via')
|
||||
if keymap_path.suffix == '.json':
|
||||
keymap_layout = parse_configurator_json(keymap_path)['layout']
|
||||
else:
|
||||
keymap_layout = parse_keymap_c(keymap_path)['layers'][0]['layout']
|
||||
return keymap_layout
|
||||
def _find_via_layout_macro(keyboard_data):
|
||||
"""Assume layout macro when only 1 is available
|
||||
"""
|
||||
layouts = list(keyboard_data['layouts'].keys())
|
||||
return layouts[0] if len(layouts) == 1 else None
|
||||
|
||||
|
||||
def _convert_macros(via_macros):
|
||||
@ -130,20 +126,16 @@ def via2json(cli):
|
||||
|
||||
This command uses the `qmk.keymap` module to generate a keymap.json from a VIA backup json. The generated keymap is written to stdout, or to a file if -o is provided.
|
||||
"""
|
||||
# Find appropriate layout macro
|
||||
keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(cli.args.keyboard)
|
||||
if not keymap_layout:
|
||||
cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.")
|
||||
return False
|
||||
|
||||
# Load the VIA backup json
|
||||
with cli.args.filename.open('r') as fd:
|
||||
via_backup = json.load(fd)
|
||||
|
||||
# Generate keyboard metadata
|
||||
keyboard_data = info_json(cli.args.keyboard)
|
||||
if not keyboard_data:
|
||||
cli.log.error(f'LAYOUT macro {keymap_layout} is not a valid one for keyboard {cli.args.keyboard}!')
|
||||
|
||||
# Find appropriate layout macro
|
||||
keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(keyboard_data)
|
||||
if not keymap_layout:
|
||||
cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.")
|
||||
return False
|
||||
|
||||
# Get keycode array
|
||||
|
@ -789,8 +789,8 @@ def _extract_led_config(info_data, keyboard):
|
||||
info_data[feature]['layout'] = ret
|
||||
except Exception as e:
|
||||
_log_warning(info_data, f'led_config: {file.name}: {e}')
|
||||
else:
|
||||
_log_warning(info_data, 'led_config: matrix size required to parse g_led_config')
|
||||
else:
|
||||
_log_warning(info_data, 'led_config: matrix size required to parse g_led_config')
|
||||
|
||||
if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None):
|
||||
info_data[feature]['led_count'] = len(info_data[feature]['layout'])
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user