~ruther/qmk_firmware

81f321d3318d4df0c442d11073a837984d4a8dbc — Ryan 2 years ago 1dd2d1d
`qmk info`: account for ISO enter when calculating layout X offset (#20325)

1 files changed, 6 insertions(+), 1 deletions(-)

M lib/python/qmk/info.py
M lib/python/qmk/info.py => lib/python/qmk/info.py +6 -1
@@ 50,6 50,11 @@ def _valid_community_layout(layout):
    return (Path('layouts/default') / layout).exists()


def _get_key_left_position(key):
    # Special case for ISO enter
    return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x']


def _additional_validation(keyboard, info_data):
    """Non schema checks
    """


@@ 64,7 69,7 @@ def _additional_validation(keyboard, info_data):

    # Warn if physical positions are offset (at least one key should be at x=0, and at least one key at y=0)
    for layout_name, layout_data in layouts.items():
        offset_x = min([k['x'] for k in layout_data['layout']])
        offset_x = min([_get_key_left_position(k) for k in layout_data['layout']])
        if offset_x > 0:
            _log_warning(info_data, f'Layout "{layout_name}" is offset on X axis by {offset_x}')