diff options
| author | Jan Christoph Ebersbach <jceb@e-jc.de> | 2019-05-08 20:04:32 +0200 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2019-05-08 11:04:32 -0700 |
| commit | aa65cd7a905370ab36f37a3562d3f53387fcae92 (patch) | |
| tree | 5b16a59c2f3859d3a301b3c9798f290067bdce19 | |
| parent | 86532fa8d34e9395fe1b41fd22eaaf9a2ecd0e8e (diff) | |
| download | qmk_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-x | keyboards/signum/3_0/elitec/keymaps/default/generate_km.py | 59 | ||||
| -rw-r--r-- | keyboards/signum/3_0/elitec/keymaps/default/keymap.c | 21 |
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 | ||
| 59 | def writeKeymap(f_template, f_keymap, columns, rows): | 59 | def quoteC(text): |
| 60 | yield "/*" | ||
| 61 | for line in text: | ||
| 62 | yield " * " + line | ||
| 63 | yield " */\n" | ||
| 64 | |||
| 65 | |||
| 66 | def 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 | |||
| 81 | def 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 | ||
| 138 | def 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 | |||
| 126 | def layersToKC(layers): | 152 | def 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): | |||
| 147 | if __name__ == "__main__": | 173 | if __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 | ||
| 624 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 624 | const 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 | * ------------------------------------------------- ------------------------------------------------- |
