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 | ||