about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZach DeCook <zachdecook@librem.one>2023-11-10 15:52:50 -0500
committerZach DeCook <zachdecook@librem.one>2023-11-10 15:52:50 -0500
commitd3b6355b049192c55189b2839f59ad7077c4fd1b (patch)
treeadc1f1ebc81afbe881937fd9dc6fd49434166fad
parent3d7ac14900f023a255ab476a4334fbbab58a3f51 (diff)
downloadHexBoard-d3b6355b049192c55189b2839f59ad7077c4fd1b.tar.gz
makeLayout: support outputting constants for (WIP) qmk firmware
-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: