Firmware for HexBoard MIDI controller
makeLayout: support outputting constants for (WIP) qmk firmware
Zach DeCook 2023-11-10
parent 3d7ac14 · commit d3b6355
-rwxr-xr-xmakeLayout.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/makeLayout.py b/makeLayout.py
index 282625c..0138817 100755
--- a/makeLayout.py
+++ b/makeLayout.py
@@ -22,8 +22,32 @@ def makeLayout(starting, across, downleft):
a[row].append(ref+downleft)
return a
+def print_qmk(layout):
+ # Mapping to QMK constants
+ start = ["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"]
+ start = ["MI_"+x for x in start]
+ arr = start.copy()
+ for n in range(1,6):
+ arr += [x+str(n) for x in start]
+ row = 0
+ print("LAYOUT_inorder(")
+ for Row in layout:
+ if row%2 == 0:
+ n = int(row/2)+1
+ print(f"_______, ", end='')
+ else:
+ print(" ", end='')
+ for entry in Row:
+ print(arr[entry] if entry < len(arr) else 'KC_NO', end=', ')
+ print()
+ row = row + 1
+ print(" ),")
+
if __name__ == '__main__':
layout = makeLayout(int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]))
+ if len(sys.argv)==5:
+ print_qmk(layout)
+ exit()
#print(layout)
row = 0
for Row in layout: