~ruther/qmk_firmware

6720e9c58c3a239ff0de4be1ff2ad075a0b2c248 — Joel Challis 1 year, 2 months ago aea414f
`qmk new-keyboard` - detach community layout when selecting "none of the above" (#20405)

1 files changed, 14 insertions(+), 4 deletions(-)

M lib/python/qmk/cli/new/keyboard.py
M lib/python/qmk/cli/new/keyboard.py => lib/python/qmk/cli/new/keyboard.py +14 -4
@@ 74,6 74,10 @@ def replace_placeholders(src, dest, tokens):
    dest.write_text(content)


def replace_string(src, token, value):
    src.write_text(src.read_text().replace(token, value))


def augment_community_info(src, dest):
    """Splice in any additional data into info.json
    """


@@ 218,6 222,11 @@ def new_keyboard(cli):
    else:
        bootloader = select_default_bootloader(mcu)

    detach_layout = False
    if default_layout == 'none of the above':
        default_layout = "ortho_4x4"
        detach_layout = True

    tokens = {  # Comment here is to force multiline formatting
        'YEAR': str(date.today().year),
        'KEYBOARD': kb_name,


@@ 233,10 242,6 @@ def new_keyboard(cli):
        for key, value in tokens.items():
            cli.echo(f"    {key.ljust(10)}:   {value}")

    # TODO: detach community layout and rename to just "LAYOUT"
    if default_layout == 'none of the above':
        default_layout = "ortho_4x4"

    # begin with making the deepest folder in the tree
    keymaps_path = keyboard(kb_name) / 'keymaps/'
    keymaps_path.mkdir(parents=True)


@@ 253,6 258,11 @@ def new_keyboard(cli):
    community_info = Path(COMMUNITY / f'{default_layout}/info.json')
    augment_community_info(community_info, keyboard(kb_name) / 'keyboard.json')

    # detach community layout and rename to just "LAYOUT"
    if detach_layout:
        replace_string(keyboard(kb_name) / 'keyboard.json', 'LAYOUT_ortho_4x4', 'LAYOUT')
        replace_string(keymaps_path / 'default/keymap.c', 'LAYOUT_ortho_4x4', 'LAYOUT')

    cli.log.info(f'{{fg_green}}Created a new keyboard called {{fg_cyan}}{kb_name}{{fg_green}}.{{fg_reset}}')
    cli.log.info(f"Build Command: {{fg_yellow}}qmk compile -kb {kb_name} -km default{{fg_reset}}.")
    cli.log.info(f'Project Location: {{fg_cyan}}{QMK_FIRMWARE}/{keyboard(kb_name)}{{fg_reset}},')

Do not follow this link