summaryrefslogtreecommitdiff
path: root/lib/python/qmk/converter.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python/qmk/converter.py')
-rw-r--r--lib/python/qmk/converter.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/python/qmk/converter.py b/lib/python/qmk/converter.py
new file mode 100644
index 0000000000..bbd3531317
--- /dev/null
+++ b/lib/python/qmk/converter.py
@@ -0,0 +1,33 @@
+"""Functions to convert to and from QMK formats
+"""
+from collections import OrderedDict
+
+
+def kle2qmk(kle):
+ """Convert a KLE layout to QMK's layout format.
+ """
+ layout = []
+
+ for row in kle:
+ for key in row:
+ if key['decal']:
+ continue
+
+ qmk_key = OrderedDict(
+ label="",
+ x=key['column'],
+ y=key['row'],
+ )
+
+ if key['width'] != 1:
+ qmk_key['w'] = key['width']
+ if key['height'] != 1:
+ qmk_key['h'] = key['height']
+ if 'name' in key and key['name']:
+ qmk_key['label'] = key['name'].split('\n', 1)[0]
+ else:
+ del (qmk_key['label'])
+
+ layout.append(qmk_key)
+
+ return layout