diff options
Diffstat (limited to 'lib/python/qmk/converter.py')
-rw-r--r-- | lib/python/qmk/converter.py | 33 |
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 |