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 000000000..bbd353131 --- /dev/null +++ b/lib/python/qmk/converter.py | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | """Functions to convert to and from QMK formats | ||
| 2 | """ | ||
| 3 | from collections import OrderedDict | ||
| 4 | |||
| 5 | |||
| 6 | def kle2qmk(kle): | ||
| 7 | """Convert a KLE layout to QMK's layout format. | ||
| 8 | """ | ||
| 9 | layout = [] | ||
| 10 | |||
| 11 | for row in kle: | ||
| 12 | for key in row: | ||
| 13 | if key['decal']: | ||
| 14 | continue | ||
| 15 | |||
| 16 | qmk_key = OrderedDict( | ||
| 17 | label="", | ||
| 18 | x=key['column'], | ||
| 19 | y=key['row'], | ||
| 20 | ) | ||
| 21 | |||
| 22 | if key['width'] != 1: | ||
| 23 | qmk_key['w'] = key['width'] | ||
| 24 | if key['height'] != 1: | ||
| 25 | qmk_key['h'] = key['height'] | ||
| 26 | if 'name' in key and key['name']: | ||
| 27 | qmk_key['label'] = key['name'].split('\n', 1)[0] | ||
| 28 | else: | ||
| 29 | del (qmk_key['label']) | ||
| 30 | |||
| 31 | layout.append(qmk_key) | ||
| 32 | |||
| 33 | return layout | ||
