diff options
author | Ryan <fauxpark@gmail.com> | 2023-03-10 07:27:04 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-09 20:27:04 +0000 |
commit | 76fb534269367be40be1333c78c9fdf7c9b3de09 (patch) | |
tree | 08345c3b3d7bf4a4e628bcdf8f26273f38499bdb | |
parent | 65f380c768fef5cb664201c16eec9e92c579db47 (diff) |
`qmk info`: add warning when layout is offset (#20070)
-rw-r--r-- | lib/python/qmk/info.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 152e6ce7b6..b7ee055eef 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -71,6 +71,16 @@ def _validate(keyboard, info_data): if len(layouts) == 0 or all(not layout.get('json_layout', False) for layout in layouts.values()): _log_error(info_data, 'No LAYOUTs defined! Need at least one layout defined in info.json.') + # 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']]) + if offset_x > 0: + _log_warning(info_data, f'Layout "{layout_name}" is offset on X axis by {offset_x}') + + offset_y = min([k['y'] for k in layout_data['layout']]) + if offset_y > 0: + _log_warning(info_data, f'Layout "{layout_name}" is offset on Y axis by {offset_y}') + # Providing only LAYOUT_all "because I define my layouts in a 3rd party tool" if len(layouts) == 1 and 'LAYOUT_all' in layouts: _log_warning(info_data, '"LAYOUT_all" should be "LAYOUT" unless additional layouts are provided.') |