aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Christoph Ebersbach <jceb@e-jc.de>2019-05-08 20:04:32 +0200
committerDrashna Jaelre <drashna@live.com>2019-05-08 11:04:32 -0700
commitaa65cd7a905370ab36f37a3562d3f53387fcae92 (patch)
tree5b16a59c2f3859d3a301b3c9798f290067bdce19
parent86532fa8d34e9395fe1b41fd22eaaf9a2ecd0e8e (diff)
downloadqmk_firmware-aa65cd7a905370ab36f37a3562d3f53387fcae92.tar.gz
qmk_firmware-aa65cd7a905370ab36f37a3562d3f53387fcae92.zip
[Keymap] Signum3.0 Generate printable keymap (#5818)
* Externalize generation of visual text keymap * Generate keymap in Asciidoc format for further processing * Remove artifacts from a2x call
-rwxr-xr-xkeyboards/signum/3_0/elitec/keymaps/default/generate_km.py59
-rw-r--r--keyboards/signum/3_0/elitec/keymaps/default/keymap.c21
2 files changed, 59 insertions, 21 deletions
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py b/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py
index 9517a2f1f..cfa8edf57 100755
--- a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py
+++ b/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py
@@ -56,7 +56,29 @@ def toLgd(s):
56 return _translate(s)[1] 56 return _translate(s)[1]
57 57
58 58
59def writeKeymap(f_template, f_keymap, columns, rows): 59def quoteC(text):
60 yield "/*"
61 for line in text:
62 yield " * " + line
63 yield " */\n"
64
65
66def getKeymapText(id, layer, columns, rows):
67 keymap = []
68 keymap.append("Layer %d" % id)
69 keymap.append("------------------------------------------------- -------------------------------------------------")
70 keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[:12])))
71 keymap.append("------------------------------------------------- -------------------------------------------------")
72 keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[12:24])))
73 keymap.append("------------------------------------------------- -------------------------------------------------")
74 keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[24:36])))
75 keymap.append("-----------------------------------------------------------------------------------------------------------------")
76 keymap.append(" {0} {1} {2} |{3}|{4}|{5}|{6}|{7}|{8}| {9} {10} {11}".format(*map(toLgd, layer[36:48])).rstrip())
77 keymap.append(" -------------------------------------------------")
78 return keymap
79
80
81def writeKeymap(f_template, f_keymap, layers, columns, rows):
60 doCopy = False 82 doCopy = False
61 83
62 for line in f_template: 84 for line in f_template:
@@ -78,19 +100,9 @@ def writeKeymap(f_template, f_keymap, columns, rows):
78 f_keymap.write(u"\t[{0}] = {1}, // {2}\n".format(k, v, chr(int(v, 0)))) 100 f_keymap.write(u"\t[{0}] = {1}, // {2}\n".format(k, v, chr(int(v, 0))))
79 elif line.startswith("//<keymaps/>"): 101 elif line.startswith("//<keymaps/>"):
80 doCopy = False 102 doCopy = False
81 for layer, L in enumerate(layout.layers): 103 for layer, L in enumerate(layers):
82 r_counter = rows 104 r_counter = rows
83 f_keymap.write("/* Layer %d\n" % layer) 105 f_keymap.write('\n'.join(quoteC(getKeymapText(layer, L, columns, rows))))
84 f_keymap.write(" * ------------------------------------------------- -------------------------------------------------\n")
85 f_keymap.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(*map(toLgd, L[:12])))
86 f_keymap.write(" * ------------------------------------------------- -------------------------------------------------\n")
87 f_keymap.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(*map(toLgd, L[12:24])))
88 f_keymap.write(" * ------------------------------------------------- -------------------------------------------------\n")
89 f_keymap.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(*map(toLgd, L[24:36])))
90 f_keymap.write(" * -----------------------------------------------------------------------------------------------------------------\n")
91 f_keymap.write(" * {0} {1} {2} |{3}|{4}|{5}|{6}|{7}|{8}| {9} {10} {11}".format(*map(toLgd, L[36:48])).rstrip()+"\n")
92 f_keymap.write(" * -------------------------------------------------\n")
93 f_keymap.write(" */\n")
94 106
95 l_code = '\tLAYOUT_ortho_4x12(\n' 107 l_code = '\tLAYOUT_ortho_4x12(\n'
96 for r in range(r_counter): 108 for r in range(r_counter):
@@ -123,6 +135,20 @@ def getKeymapJSON(keyboard, keymap, layout, layers):
123 }, sort_keys=True, indent=4) 135 }, sort_keys=True, indent=4)
124 136
125 137
138def getKeymapAsciidoc(title, layers, columns, rows):
139 yield '= ' + title
140 yield ''
141 for id, layer in enumerate(layers):
142 keymap = getKeymapText(id, layer, columns, rows)
143 if len(keymap):
144 yield '.' + keymap[0]
145 yield '--------------------------'
146 for line in keymap[1:]:
147 yield ' ' + line
148 yield '--------------------------'
149 yield ''
150
151
126def layersToKC(layers): 152def layersToKC(layers):
127 return [list(map(toKC, layer)) for layer in layers] 153 return [list(map(toKC, layer)) for layer in layers]
128 154
@@ -147,7 +173,7 @@ def pathToKeyboard(path):
147if __name__ == "__main__": 173if __name__ == "__main__":
148 with open("km_template.txt", mode="r") as f_template: 174 with open("km_template.txt", mode="r") as f_template:
149 with open("keymap.c", mode="w", encoding='utf-8') as f_keymap: 175 with open("keymap.c", mode="w", encoding='utf-8') as f_keymap:
150 writeKeymap(f_template, f_keymap, columns=12, rows=4) 176 writeKeymap(f_template, f_keymap, layout.layers, columns=12, rows=4)
151 177
152 abspath = os.path.dirname(os.path.abspath(__file__)) 178 abspath = os.path.dirname(os.path.abspath(__file__))
153 keyboard = list(reversed(list(pathToKeyboard(abspath)))) 179 keyboard = list(reversed(list(pathToKeyboard(abspath))))
@@ -161,3 +187,8 @@ if __name__ == "__main__":
161 keyboard_layout, 187 keyboard_layout,
162 layersToKC(layout.layers)) 188 layersToKC(layout.layers))
163 ) 189 )
190
191 with open("keymap.adoc", mode="w") as f_keymapasciidoc:
192 f_keymapasciidoc.write('\n'.join(getKeymapAsciidoc('Signum 3.0 %s_%s' % ('_'.join(keyboard), keymap), layout.layers, columns=12, rows=4)))
193 print("Run the following command to generate a PDF from the keymap")
194 print("a2x -f pdf --xsltproc-opts '--stringparam page.orientation landscape --stringparam body.font.master 12' --fop -v keymap.adoc")
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c b/keyboards/signum/3_0/elitec/keymaps/default/keymap.c
index bd6254524..511be8c0d 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c
+++ b/keyboards/signum/3_0/elitec/keymaps/default/keymap.c
@@ -623,7 +623,8 @@ const uint32_t PROGMEM unicode_map[] = {
623 623
624const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 624const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
625 625
626/* Layer 0 626/*
627 * Layer 0
627 * ------------------------------------------------- ------------------------------------------------- 628 * ------------------------------------------------- -------------------------------------------------
628 * | Tab | q | w | e | r | t | | y | u | i | o | p | [ | 629 * | Tab | q | w | e | r | t | | y | u | i | o | p | [ |
629 * ------------------------------------------------- ------------------------------------------------- 630 * ------------------------------------------------- -------------------------------------------------
@@ -641,7 +642,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
641 KC_LCTL, KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, KC_RALT, KC_RCTL 642 KC_LCTL, KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, KC_RALT, KC_RCTL
642 ), 643 ),
643 644
644/* Layer 1 645/*
646 * Layer 1
645 * ------------------------------------------------- ------------------------------------------------- 647 * ------------------------------------------------- -------------------------------------------------
646 * | Tab | q | w | f | p | g | | j | l | u | y | ; | [ | 648 * | Tab | q | w | f | p | g | | j | l | u | y | ; | [ |
647 * ------------------------------------------------- ------------------------------------------------- 649 * ------------------------------------------------- -------------------------------------------------
@@ -659,7 +661,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
659 KC_LCTL, KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, KC_RALT, KC_RCTL 661 KC_LCTL, KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, KC_RALT, KC_RCTL
660 ), 662 ),
661 663
662/* Layer 2 664/*
665 * Layer 2
663 * ------------------------------------------------- ------------------------------------------------- 666 * ------------------------------------------------- -------------------------------------------------
664 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ] | 667 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ] |
665 * ------------------------------------------------- ------------------------------------------------- 668 * ------------------------------------------------- -------------------------------------------------
@@ -677,7 +680,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
677 TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_BSPC, KC_0, KC_TRNS, KC_TRNS, KC_TRNS 680 TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_BSPC, KC_0, KC_TRNS, KC_TRNS, KC_TRNS
678 ), 681 ),
679 682
680/* Layer 3 683/*
684 * Layer 3
681 * ------------------------------------------------- ------------------------------------------------- 685 * ------------------------------------------------- -------------------------------------------------
682 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | XXX | 686 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | XXX |
683 * ------------------------------------------------- ------------------------------------------------- 687 * ------------------------------------------------- -------------------------------------------------
@@ -695,7 +699,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
695 TG(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 699 TG(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
696 ), 700 ),
697 701
698/* Layer 4 702/*
703 * Layer 4
699 * ------------------------------------------------- ------------------------------------------------- 704 * ------------------------------------------------- -------------------------------------------------
700 * | Esc | Esc | Tab x | Tab n |CPg Dn |CPg Dn | |Pg Down| Home |^ Arrow|Insert |SInsert| Esc | 705 * | Esc | Esc | Tab x | Tab n |CPg Dn |CPg Dn | |Pg Down| Home |^ Arrow|Insert |SInsert| Esc |
701 * ------------------------------------------------- ------------------------------------------------- 706 * ------------------------------------------------- -------------------------------------------------
@@ -713,7 +718,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
713 TG(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 718 TG(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
714 ), 719 ),
715 720
716/* Layer 5 721/*
722 * Layer 5
717 * ------------------------------------------------- ------------------------------------------------- 723 * ------------------------------------------------- -------------------------------------------------
718 * | | XXX |play/ps| Vol + | Vol + | XXX | | XXX | XXX | XXX | XXX |_reset | Power | 724 * | | XXX |play/ps| Vol + | Vol + | XXX | | XXX | XXX | XXX | XXX |_reset | Power |
719 * ------------------------------------------------- ------------------------------------------------- 725 * ------------------------------------------------- -------------------------------------------------
@@ -731,7 +737,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
731 TG(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 737 TG(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
732 ), 738 ),
733 739
734/* Layer 6 740/*
741 * Layer 6
735 * ------------------------------------------------- ------------------------------------------------- 742 * ------------------------------------------------- -------------------------------------------------
736 * | | acc1 | XXX | XXX | XXX | XXX | |^ Wheel|< Wheel|^ Mouse|> Wheel| XXX | XXX | 743 * | | acc1 | XXX | XXX | XXX | XXX | |^ Wheel|< Wheel|^ Mouse|> Wheel| XXX | XXX |
737 * ------------------------------------------------- ------------------------------------------------- 744 * ------------------------------------------------- -------------------------------------------------