summaryrefslogtreecommitdiffstats
path: root/layouts/community/ortho_4x12/guidoism/generate_c.py
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/community/ortho_4x12/guidoism/generate_c.py')
-rw-r--r--layouts/community/ortho_4x12/guidoism/generate_c.py75
1 files changed, 0 insertions, 75 deletions
diff --git a/layouts/community/ortho_4x12/guidoism/generate_c.py b/layouts/community/ortho_4x12/guidoism/generate_c.py
deleted file mode 100644
index 5bee57608..000000000
--- a/layouts/community/ortho_4x12/guidoism/generate_c.py
+++ /dev/null
@@ -1,75 +0,0 @@
-import itertools
-import json
-import os.path
-import re
-
-KEYMAP_C = """/* {0}
-{1}
-*/
-[{2}] = {3}(
- {4})
-"""
-
-README_MD = """## {0}
-```
-{1}
-```
-"""
-
-base = os.path.dirname(__file__)
-
-layer_names = dict(enumerate(['_QWERTY', '_LOWER', '_RAISE', '_MOVEMENT', '_NUMPAD', '_FUNCTION']))
-layer_name = {('MO(%d)' % i): layer_names.get(i).strip('_') for i in layer_names.keys()}
-
-keys = json.load(open(os.path.join(base, 'keys.json')))
-
-d = json.load(open(os.path.join(base, 'guidoism.json')))
-
-def surround(s, a, b, c):
- return a + b.join(s) + c
-
-def pattern(cell, table):
- return ['─'*cell for i in range(table)]
-
-top = surround(pattern(5, 12), '┌', '┬', '┐')
-mid = surround(pattern(5, 12), '├', '┼', '┤')
-bottom = surround(pattern(5, 12), '└', '┴', '┘')
-
-from more_itertools import chunked, intersperse, interleave_longest
-
-def uni(k):
- return keys.get(k, k).lower().center(5)
-
-def c_layout(i, definition, template):
- c_name = layer_names[i]
- pretty_name = c_name.strip('_').capitalize()
- layout = d['layout']
-
- surround = lambda s: ''.join(interleave_longest(['│']*(len(s)+1), s))
- layer = list(map(uni, definition))
- layer[41] = layer[41].center(11)
- layer = chunked(layer, 12)
- rows = intersperse(mid, map(surround, layer))
- pretty = '\n'.join(itertools.chain([top], rows, [bottom]))
-
- surround = lambda s: ', '.join(s)
- layer = list(map(lambda k: layer_name.get(k, k), definition))
- layer = chunked(layer, 12)
- rows = map(surround, layer)
- c_layer = ',\n '.join(itertools.chain([], rows, []))
-
- return template.format(pretty_name, pretty, c_name, layout, c_layer)
-
-start = '// START_REPLACEMENT\n'
-end = '// END_REPLACEMENT\n'
-replacement = start + ',\n\n'.join(c_layout(i, l, KEYMAP_C) for i, l in enumerate(d['layers'])) + end
-keymap = os.path.join(base, 'keymap.c')
-existing = open(keymap).read()
-r = re.compile(r'// START_REPLACEMENT.*// END_REPLACEMENT', re.DOTALL)
-open(keymap, 'w').write(r.sub(replacement, existing))
-
-replacement = '## Current Configuration\n\n' + '\n\n'.join(c_layout(i, l, README_MD) for i, l in enumerate(d['layers']))
-keymap = os.path.join(base, 'readme.md')
-existing = open(keymap).read()
-r = re.compile(r'## Current Configuration.*', re.DOTALL)
-open(keymap, 'w').write(r.sub(replacement, existing))