summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/schemas/keyboard.jsonschema5
-rw-r--r--keyboards/sendyyeah/75pixels/info.json28
-rw-r--r--lib/python/qmk/cli/lint.py7
-rw-r--r--lib/python/qmk/info.py17
4 files changed, 23 insertions, 34 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index dc5592220b..fd60920578 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -145,7 +145,10 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "label": {"type": "string"},
+ "label": {
+ "type": "string",
+ "pattern": "^[^\\n]*$"
+ },
"matrix": {
"type": "array",
"minItems": 2,
diff --git a/keyboards/sendyyeah/75pixels/info.json b/keyboards/sendyyeah/75pixels/info.json
index 193beb6532..6fb65c1d88 100644
--- a/keyboards/sendyyeah/75pixels/info.json
+++ b/keyboards/sendyyeah/75pixels/info.json
@@ -31,10 +31,10 @@
{"label": "I", "x": 8, "y": 1},
{"label": "O", "x": 9, "y": 1},
{"label": "P", "x": 10, "y": 1},
- {"label": "|\n\\", "x": 11, "y": 1},
- {"label": "7\nHome", "x": 12, "y": 1},
- {"label": "8\nUp", "x": 13, "y": 1},
- {"label": "9\nPgUp", "x": 14, "y": 1},
+ {"label": "|", "x": 11, "y": 1},
+ {"label": "7", "x": 12, "y": 1},
+ {"label": "8", "x": 13, "y": 1},
+ {"label": "9", "x": 14, "y": 1},
{"label": "Caps", "x": 0, "y": 2},
{"label": "A", "x": 1, "y": 2},
{"label": "S", "x": 2, "y": 2},
@@ -47,9 +47,9 @@
{"label": "L", "x": 9, "y": 2},
{"label": ":", "x": 10, "y": 2},
{"label": "Enter", "x": 11, "y": 2},
- {"label": "4\nLeft", "x": 12, "y": 2},
+ {"label": "4", "x": 12, "y": 2},
{"label": "5", "x": 13, "y": 2},
- {"label": "6\nRight", "x": 14, "y": 2},
+ {"label": "6", "x": 14, "y": 2},
{"label": "Shift", "x": 0, "y": 3},
{"label": "Z", "x": 1, "y": 3},
{"label": "X", "x": 2, "y": 3},
@@ -58,13 +58,13 @@
{"label": "B", "x": 5, "y": 3},
{"label": "N", "x": 6, "y": 3},
{"label": "M", "x": 7, "y": 3},
- {"label": "<\n,", "x": 8, "y": 3},
- {"label": ">\n.", "x": 9, "y": 3},
- {"label": "?\n/", "x": 10, "y": 3},
+ {"label": "<", "x": 8, "y": 3},
+ {"label": ">", "x": 9, "y": 3},
+ {"label": "?", "x": 10, "y": 3},
{"label": "Shift", "x": 11, "y": 3},
- {"label": "1\nEnd", "x": 12, "y": 3},
- {"label": "2\nDown", "x": 13, "y": 3},
- {"label": "3\nPgDn", "x": 14, "y": 3},
+ {"label": "1", "x": 12, "y": 3},
+ {"label": "2", "x": 13, "y": 3},
+ {"label": "3", "x": 14, "y": 3},
{"label": "Ctrl", "x": 0, "y": 4},
{"label": "Win", "x": 1, "y": 4},
{"label": "Alt", "x": 2, "y": 4},
@@ -77,8 +77,8 @@
{"label": "Win", "x": 9, "y": 4},
{"label": "Menu", "x": 10, "y": 4},
{"label": "Ctrl", "x": 11, "y": 4},
- {"label": "0\nIns", "x": 12, "y": 4},
- {"label": ".\nDel", "x": 13, "y": 4},
+ {"label": "0", "x": 12, "y": 4},
+ {"label": ".", "x": 13, "y": 4},
{"label": "Enter", "x": 14, "y": 4}
]
}
diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py
index af057b4110..96593ed69b 100644
--- a/lib/python/qmk/cli/lint.py
+++ b/lib/python/qmk/cli/lint.py
@@ -116,13 +116,6 @@ def lint(cli):
if not keymap_check(kb, cli.config.lint.keymap):
ok = False
- # Check if all non-data driven macros exist in <keyboard.h>
- for layout, data in keyboard_info['layouts'].items():
- # Matrix data should be a list with exactly two integers: [0, 1]
- if not data['c_macro'] and not all('matrix' in key_data.keys() or len(key_data) == 2 or all(isinstance(n, int) for n in key_data) for key_data in data['layout']):
- cli.log.error(f'{kb}: "{layout}" has no "matrix" definition in either "info.json" or "<keyboard>.h"!')
- ok = False
-
# Report status
if not ok:
failed.append(kb)
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index 6ff9cba45b..23761d71b7 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -26,13 +26,6 @@ def _valid_community_layout(layout):
return (Path('layouts/default') / layout).exists()
-def _remove_newlines_from_labels(layouts):
- for layout_name, layout_json in layouts.items():
- for key in layout_json['layout']:
- if '\n' in key['label']:
- key['label'] = key['label'].split('\n')[0]
-
-
def info_json(keyboard):
"""Generate the info.json data for a specific keyboard.
"""
@@ -111,9 +104,6 @@ def info_json(keyboard):
# Check that the reported matrix size is consistent with the actual matrix size
_check_matrix(info_data)
- # Remove newline characters from layout labels
- _remove_newlines_from_labels(layouts)
-
return info_data
@@ -807,8 +797,11 @@ def merge_info_jsons(keyboard, info_data):
for new_key, existing_key in zip(layout['layout'], info_data['layouts'][layout_name]['layout']):
existing_key.update(new_key)
else:
- layout['c_macro'] = False
- info_data['layouts'][layout_name] = layout
+ if not all('matrix' in key_data.keys() for key_data in layout['layout']):
+ _log_error(info_data, f'Layout "{layout_name}" has no "matrix" definition in either "info.json" or "<keyboard>.h"!')
+ else:
+ layout['c_macro'] = False
+ info_data['layouts'][layout_name] = layout
# Update info_data with the new data
if 'layouts' in new_info_data: