Skip to content

Commit

Permalink
qmk info: account for ISO enter when calculating layout X offset (q…
Browse files Browse the repository at this point in the history
  • Loading branch information
fauxpark authored Apr 4, 2023
1 parent 1dd2d1d commit 81f321d
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion lib/python/qmk/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
"""
Expand All @@ -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}')

Expand Down

0 comments on commit 81f321d

Please sign in to comment.