aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Christoph Ebersbach <jceb@e-jc.de>2019-05-01 06:53:29 +0200
committerDrashna Jaelre <drashna@live.com>2019-04-30 21:53:29 -0700
commit074be4fe5e8a783c0147e6fa57182c1a6b61418d (patch)
treed00b76681e09aab1ecb10bd7d0441391e554e1de
parent670ff2d19f76f4558ccdd317ab362ccfe5e45642 (diff)
downloadqmk_firmware-074be4fe5e8a783c0147e6fa57182c1a6b61418d.tar.gz
qmk_firmware-074be4fe5e8a783c0147e6fa57182c1a6b61418d.zip
[Keyboard] Signum3.0 generate json keymap (#5688)
* Remove dependency on sortedcontainers * Sort dictionary on output * Externalize writing of keymap.c into function - serialize layers into one flat list * Add encoding * Generate JSON keymap in addition to keymap.c * Replace XXXXXX with KC_NO
-rwxr-xr-xkeyboards/signum/3_0/elitec/keymaps/default/generate_km.py126
-rw-r--r--keyboards/signum/3_0/elitec/keymaps/default/keymap.c24
-rw-r--r--keyboards/signum/3_0/elitec/keymaps/default/layout.py60
-rw-r--r--keyboards/signum/3_0/elitec/keymaps/default/readme.md3
4 files changed, 125 insertions, 88 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 05996d06c..9517a2f1f 100755
--- a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py
+++ b/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py
@@ -1,12 +1,11 @@
1#!/usr/bin/env python3 1#!/usr/bin/env python3
2# -*- coding: utf-8 -*- 2# -*- coding: utf-8 -*-
3 3
4import json
4import layout 5import layout
6import os
5import re 7import re
6 8
7# TODO: auto-generate mutex layers
8# TODO: auto-generate update_tri_layer (_state)
9
10 9
11def gen_uc_iter(): 10def gen_uc_iter():
12 length = len(layout.uc_dict) 11 length = len(layout.uc_dict)
@@ -18,7 +17,7 @@ def gen_uc_iter():
18 yield (key, value, True) 17 yield (key, value, True)
19 18
20 19
21def translate(s): 20def _translate(s):
22 if re.match("^[0-9]$", s): 21 if re.match("^[0-9]$", s):
23 return ("KC_{0}".format(s), " {0} ".format(s)) 22 return ("KC_{0}".format(s), " {0} ".format(s))
24 elif re.match("^[a-z]$", s): 23 elif re.match("^[a-z]$", s):
@@ -50,80 +49,115 @@ def translate(s):
50 49
51 50
52def toKC(s): 51def toKC(s):
53 (kc, lgd) = translate(s) 52 return _translate(s)[0]
54 return kc
55 53
56 54
57def toLgd(s): 55def toLgd(s):
58 (kc, lgd) = translate(s) 56 return _translate(s)[1]
59 return lgd
60
61
62if __name__ == "__main__":
63 57
64 template = open("km_template.txt", mode="r")
65 output = open("keymap.c", mode="w", encoding='utf-8')
66 58
59def writeKeymap(f_template, f_keymap, columns, rows):
67 doCopy = False 60 doCopy = False
68 61
69 for line in template: 62 for line in f_template:
70 doCopy = True 63 doCopy = True
71 if line.startswith("//<enum/>"): 64 if line.startswith("//<enum/>"):
72 doCopy = False 65 doCopy = False
73# output.write(str(layout.uc_dict)) 66 # f_keymap.write(str(layout.uc_dict))
74 for k, v, isLast in gen_uc_iter(): 67 for k, v, isLast in gen_uc_iter():
75 if isLast: 68 if isLast:
76 output.write(k + "\n") 69 f_keymap.write(k + "\n")
77 else: 70 else:
78 output.write(k + ",\n") 71 f_keymap.write(k + ",\n")
79 if line.startswith("//<uc_map/>"): 72 elif line.startswith("//<uc_map/>"):
80 doCopy = False 73 doCopy = False
81 for k, v, isLast in gen_uc_iter(): 74 for k, v, isLast in gen_uc_iter():
82 if isLast: 75 if isLast:
83 output.write(u"\t[{0}] = {1} // {2}\n".format(k, v, chr(int(v, 0)))) 76 f_keymap.write(u"\t[{0}] = {1} // {2}\n".format(k, v, chr(int(v, 0))))
84 else: 77 else:
85 output.write(u"\t[{0}] = {1}, // {2}\n".format(k, v, chr(int(v, 0)))) 78 f_keymap.write(u"\t[{0}] = {1}, // {2}\n".format(k, v, chr(int(v, 0))))
86 if line.startswith("//<keymaps/>"): 79 elif line.startswith("//<keymaps/>"):
87 doCopy = False 80 doCopy = False
88 counter = len(layout.layers) 81 for layer, L in enumerate(layout.layers):
89 layer = 0 82 r_counter = rows
90 S = layout.static 83 f_keymap.write("/* Layer %d\n" % layer)
91 for L in layout.layers: 84 f_keymap.write(" * ------------------------------------------------- -------------------------------------------------\n")
92 counter -= 1 85 f_keymap.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(*map(toLgd, L[:12])))
93 r_counter = 4 86 f_keymap.write(" * ------------------------------------------------- -------------------------------------------------\n")
94 output.write("/* Layer %d\n" % layer) 87 f_keymap.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(*map(toLgd, L[12:24])))
95 output.write(" * ------------------------------------------------- -------------------------------------------------\n") 88 f_keymap.write(" * ------------------------------------------------- -------------------------------------------------\n")
96 output.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(toLgd(L[0][0]), toLgd(L[0][1]), toLgd(L[0][2]), toLgd(L[0][3]), toLgd(L[0][4]), toLgd(L[0][5]), toLgd(L[0][6]), toLgd(L[0][7]), toLgd(L[0][8]), toLgd(L[0][9]), toLgd(L[0][10]), toLgd(L[0][11]))) 89 f_keymap.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(*map(toLgd, L[24:36])))
97 output.write(" * ------------------------------------------------- -------------------------------------------------\n") 90 f_keymap.write(" * -----------------------------------------------------------------------------------------------------------------\n")
98 output.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(toLgd(L[1][0]), toLgd(L[1][1]), toLgd(L[1][2]), toLgd(L[1][3]), toLgd(L[1][4]), toLgd(L[1][5]), toLgd(L[1][6]), toLgd(L[1][7]), toLgd(L[1][8]), toLgd(L[1][9]), toLgd(L[1][10]), toLgd(L[1][11]))) 91 f_keymap.write(" * {0} {1} {2} |{3}|{4}|{5}|{6}|{7}|{8}| {9} {10} {11}".format(*map(toLgd, L[36:48])).rstrip()+"\n")
99 output.write(" * ------------------------------------------------- -------------------------------------------------\n") 92 f_keymap.write(" * -------------------------------------------------\n")
100 output.write(" * |{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|\n".format(toLgd(L[2][0]), toLgd(L[2][1]), toLgd(L[2][2]), toLgd(L[2][3]), toLgd(L[2][4]), toLgd(L[2][5]), toLgd(L[2][6]), toLgd(L[2][7]), toLgd(L[2][8]), toLgd(L[2][9]), toLgd(L[2][10]), toLgd(L[2][11]))) 93 f_keymap.write(" */\n")
101 output.write(" * -----------------------------------------------------------------------------------------------------------------\n")
102 output.write(" * {0} {1} {2} |{3}|{4}|{5}|{6}|{7}|{8}| {9} {10} {11}".format(toLgd(L[3][0]), toLgd(L[3][1]), toLgd(L[3][2]), toLgd(L[3][3]), toLgd(L[3][4]), toLgd(L[3][5]), toLgd(L[3][6]), toLgd(L[3][7]), toLgd(L[3][8]), toLgd(L[3][9]), toLgd(L[3][10]), toLgd(L[3][11])).rstrip()+"\n")
103 output.write(" * -------------------------------------------------\n")
104 output.write(" */\n")
105 94
106 l_code = '\tLAYOUT_ortho_4x12(\n' 95 l_code = '\tLAYOUT_ortho_4x12(\n'
107 for r in range(r_counter): 96 for r in range(r_counter):
108 r_counter -= 1 97 r_counter -= 1
109 c_counter = 12 98 c_counter = columns
110 l_code += '\t\t' 99 l_code += '\t\t'
111 for c in range(c_counter): 100 for c in range(c_counter):
112 c_counter -= 1 101 c_counter -= 1
113 if c != 0: 102 if c != 0:
114 l_code += " " 103 l_code += " "
115 l_code += "%s" % toKC(L[r][c]) 104 l_code += "%s" % toKC(L[r*columns + columns-c_counter-1])
116 if r_counter or c_counter: 105 if r_counter or c_counter:
117 l_code += "," 106 l_code += ","
118 l_code += '\n' 107 l_code += '\n'
119 if counter: 108 if layer + 1 != len(layout.layers):
120 l_code += "\t),\n\n" 109 l_code += "\t),\n\n"
121 else: 110 else:
122 l_code += "\t)\n" 111 l_code += "\t)\n"
123 output.write(l_code) 112 f_keymap.write(l_code)
124 layer += 1
125 if doCopy: 113 if doCopy:
126 output.write(line) 114 f_keymap.write(line)
115
116
117def getKeymapJSON(keyboard, keymap, layout, layers):
118 return json.dumps({
119 'keyboard': keyboard,
120 'keymap': keymap,
121 'layout': layout,
122 'layers': layers
123 }, sort_keys=True, indent=4)
124
127 125
128 template.close() 126def layersToKC(layers):
129 output.close() 127 return [list(map(toKC, layer)) for layer in layers]
128
129
130def pathToKeymap(path):
131 head, keymap = os.path.split(path)
132 _, keymapsdir = os.path.split(head)
133 if keymapsdir == 'keymaps':
134 return keymap
135
136
137def pathToKeyboard(path):
138 head, keymap = os.path.split(path)
139 head, keymapsdir = os.path.split(head)
140 if keymapsdir == 'keymaps':
141 head, dir = os.path.split(head)
142 while dir not in ('/', 'keyboards'):
143 yield dir
144 head, dir = os.path.split(head)
145
146
147if __name__ == "__main__":
148 with open("km_template.txt", mode="r") as f_template:
149 with open("keymap.c", mode="w", encoding='utf-8') as f_keymap:
150 writeKeymap(f_template, f_keymap, columns=12, rows=4)
151
152 abspath = os.path.dirname(os.path.abspath(__file__))
153 keyboard = list(reversed(list(pathToKeyboard(abspath))))
154 keymap = pathToKeymap(abspath)
155 keyboard_layout = 'LAYOUT_ortho_4x12'
156 with open("%s_%s.json" % ('_'.join(keyboard), keymap), mode="w") as f_keymapjson:
157 f_keymapjson.write(
158 getKeymapJSON(
159 '/'.join(keyboard),
160 keymap,
161 keyboard_layout,
162 layersToKC(layout.layers))
163 )
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c b/keyboards/signum/3_0/elitec/keymaps/default/keymap.c
index 4b3a9439d..c94890eda 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c
+++ b/keyboards/signum/3_0/elitec/keymaps/default/keymap.c
@@ -672,8 +672,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
672 */ 672 */
673 LAYOUT_ortho_4x12( 673 LAYOUT_ortho_4x12(
674 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, 674 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC,
675 KC_TRNS, DF(0), DF(1), XXXXXXX, XXXXXXX, MO(3), KC_4, KC_4, KC_5, KC_6, KC_MINS, KC_EQL, 675 KC_TRNS, DF(0), DF(1), KC_NO, KC_NO, MO(3), KC_4, KC_4, KC_5, KC_6, KC_MINS, KC_EQL,
676 KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MO(5), KC_1, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, 676 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, MO(5), KC_1, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
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 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
678 ), 678 ),
679 679
@@ -689,9 +689,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
689 * ------------------------------------------------- 689 * -------------------------------------------------
690 */ 690 */
691 LAYOUT_ortho_4x12( 691 LAYOUT_ortho_4x12(
692 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, 692 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
693 KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MO(3), KC_F4, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, 693 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, MO(3), KC_F4, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO,
694 KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F1, KC_F2, KC_F3, XXXXXXX, KC_TRNS, 694 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F1, KC_F2, KC_F3, KC_NO, KC_TRNS,
695 TG(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS 695 TG(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS
696 ), 696 ),
697 697
@@ -709,7 +709,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
709 LAYOUT_ortho_4x12( 709 LAYOUT_ortho_4x12(
710 KC_ESC, KC_ESC, LCTL(KC_W), LCTL(KC_T), CTL_T(KC_PGDN), CTL_T(KC_PGDN), KC_PGDN, KC_HOME, KC_UP, KC_INS, LSFT(KC_INS), KC_ESC, 710 KC_ESC, KC_ESC, LCTL(KC_W), LCTL(KC_T), CTL_T(KC_PGDN), CTL_T(KC_PGDN), KC_PGDN, KC_HOME, KC_UP, KC_INS, LSFT(KC_INS), KC_ESC,
711 KC_TRNS, KC_CAPS, LGUI_T(KC_LEFT), LGUI_T(KC_TAB), LGUI_T(KC_RIGHT), LGUI_T(KC_RIGHT), KC_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_PSCR, 711 KC_TRNS, KC_CAPS, LGUI_T(KC_LEFT), LGUI_T(KC_TAB), LGUI_T(KC_RIGHT), LGUI_T(KC_RIGHT), KC_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_PSCR,
712 KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, CTL_T(KC_PGUP), CTL_T(KC_PGUP), KC_PGUP, XXXXXXX, KC_DOWN, XXXXXXX, KC_APP, KC_TRNS, 712 KC_TRNS, KC_NO, KC_NO, KC_NO, CTL_T(KC_PGUP), CTL_T(KC_PGUP), KC_PGUP, KC_NO, KC_DOWN, KC_NO, KC_APP, KC_TRNS,
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 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
714 ), 714 ),
715 715
@@ -725,9 +725,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
725 * ------------------------------------------------- 725 * -------------------------------------------------
726 */ 726 */
727 LAYOUT_ortho_4x12( 727 LAYOUT_ortho_4x12(
728 KC_TRNS, XXXXXXX, KC_MPLY, KC_VOLU, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, KC_PWR, 728 KC_TRNS, KC_NO, KC_MPLY, KC_VOLU, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_PWR,
729 KC_TRNS, XXXXXXX, KC_MPRV, KC_MUTE, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, 729 KC_TRNS, KC_NO, KC_MPRV, KC_MUTE, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP,
730 KC_TRNS, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLD, MO(5), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 730 KC_TRNS, KC_NO, KC_NO, KC_VOLD, KC_VOLD, MO(5), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
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 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
732 ), 732 ),
733 733
@@ -743,9 +743,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
743 * ------------------------------------------------- 743 * -------------------------------------------------
744 */ 744 */
745 LAYOUT_ortho_4x12( 745 LAYOUT_ortho_4x12(
746 KC_TRNS, KC_ACL1, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, 746 KC_TRNS, KC_ACL1, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, KC_NO, KC_NO,
747 KC_TRNS, KC_ACL2, KC_BTN3, KC_BTN2, KC_BTN1, KC_BTN1, KC_MS_L, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, 747 KC_TRNS, KC_ACL2, KC_BTN3, KC_BTN2, KC_BTN1, KC_BTN1, KC_MS_L, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO,
748 KC_TRNS, KC_ACL0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, KC_MS_D, XXXXXXX, XXXXXXX, KC_TRNS, 748 KC_TRNS, KC_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_MS_D, KC_NO, KC_NO, KC_TRNS,
749 TG(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 749 TG(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
750 ) 750 )
751}; 751};
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/layout.py b/keyboards/signum/3_0/elitec/keymaps/default/layout.py
index 5a796c862..69cc059f1 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/layout.py
+++ b/keyboards/signum/3_0/elitec/keymaps/default/layout.py
@@ -1,3 +1,5 @@
1# -*- coding: utf-8 -*-
2
1# Add all used Unicode symbols to this list. 3# Add all used Unicode symbols to this list.
2# The key (e.g. "SNEK") is used in keymap.c for "enum", "unicode_map" and "keymaps", so it needs to be a valid C variable name. 4# The key (e.g. "SNEK") is used in keymap.c for "enum", "unicode_map" and "keymaps", so it needs to be a valid C variable name.
3# The key is also used in this file to define the layout, so use recognizeable names. 5# The key is also used in this file to define the layout, so use recognizeable names.
@@ -336,7 +338,7 @@ qmk_dict = {
336 # If you find "BAD" in your keymaps, then something went wrong.) 338 # If you find "BAD" in your keymaps, then something went wrong.)
337 "a": "BAD", "A": "BAD", "0": "BAD", 339 "a": "BAD", "A": "BAD", "0": "BAD",
338 # Basic Keycodes 340 # Basic Keycodes
339 "XXX": "XXXXXXX", "": "KC_TRNS", 341 "XXX": "KC_NO", "": "KC_TRNS",
340 "!": "S(KC_1)", "@": "S(KC_2)", "#": "S(KC_3)", "$": "S(KC_4)", "%": "S(KC_5)", 342 "!": "S(KC_1)", "@": "S(KC_2)", "#": "S(KC_3)", "$": "S(KC_4)", "%": "S(KC_5)",
341 "^": "S(KC_6)", "&": "S(KC_7)", "*": "S(KC_8)", "(": "S(KC_9)", ")": "S(KC_0)", 343 "^": "S(KC_6)", "&": "S(KC_7)", "*": "S(KC_8)", "(": "S(KC_9)", ")": "S(KC_0)",
342 "Enter": "KC_ENT", "Esc": "KC_ESC", "BSpace": "KC_BSPC", "Tab": "KC_TAB", 344 "Enter": "KC_ENT", "Esc": "KC_ESC", "BSpace": "KC_BSPC", "Tab": "KC_TAB",
@@ -426,58 +428,58 @@ static = ["NEO", "GREEK", "GREEK", "GREEK", "GREEK", "MOUSE"]
426 428
427# 0 429# 0
428qwerty = [ 430qwerty = [
429 ["Tab", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "["], 431 "Tab", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[",
430 ["LCtrl", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'"], 432 "LCtrl", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'",
431 ["LShift(", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "RShift)"], 433 "LShift(", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "RShift)",
432 ["MO2", "LGui", "LAlt", "TT2", "LT6_SPC", "TT4", "Enter", "Space", "TT2", "RAlt", "RGui", "RCtrl"], 434 "MO2", "LGui", "LAlt", "TT2", "LT6_SPC", "TT4", "Enter", "Space", "TT2", "RAlt", "RGui", "RCtrl",
433 ] 435 ]
434 436
435# 1 437# 1
436colemak = [ 438colemak = [
437 ["Tab", "q", "w", "f", "p", "g", "j", "l", "u", "y", ";", "["], 439 "Tab", "q", "w", "f", "p", "g", "j", "l", "u", "y", ";", "[",
438 ["LCtrl", "a", "r", "s", "t", "d", "h", "n", "e", "i", "o", "'"], 440 "LCtrl", "a", "r", "s", "t", "d", "h", "n", "e", "i", "o", "'",
439 ["LShift(", "z", "x", "c", "v", "b", "k", "m", ",", ".", "/", "RShift)"], 441 "LShift(", "z", "x", "c", "v", "b", "k", "m", ",", ".", "/", "RShift)",
440 ["MO2", "LGui", "LAlt", "TT2", "LT6_SPC", "TT4", "Enter", "Space", "TT2", "RAlt", "RGui", "RCtrl"], 442 "MO2", "LGui", "LAlt", "TT2", "LT6_SPC", "TT4", "Enter", "Space", "TT2", "RAlt", "RGui", "RCtrl",
441 ] 443 ]
442 444
443# 2 445# 2
444numpad = [ 446numpad = [
445 ["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "]"], 447 "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "]",
446 ["", "DF0", "DF1", "XXX", "XXX", "MO3", "4", "4", "5", "6", "-", "="], 448 "", "DF0", "DF1", "XXX", "XXX", "MO3", "4", "4", "5", "6", "-", "=",
447 ["", "XXX", "XXX", "XXX", "XXX", "MO5", "1", "1", "2", "3", "\\", ""], 449 "", "XXX", "XXX", "XXX", "XXX", "MO5", "1", "1", "2", "3", "\\", "",
448 ["TG2", "", "", "", "Del", "", "", "BSpace", "0", "", "", ""], 450 "TG2", "", "", "", "Del", "", "", "BSpace", "0", "", "", "",
449 ] 451 ]
450 452
451# 3 453# 3
452fpad = [ 454fpad = [
453 ["", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "XXX"], 455 "", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "XXX",
454 ["", "XXX", "XXX", "XXX", "XXX", "MO3", "F4", "F4", "F5", "F6", "XXX", "XXX"], 456 "", "XXX", "XXX", "XXX", "XXX", "MO3", "F4", "F4", "F5", "F6", "XXX", "XXX",
455 ["", "XXX", "XXX", "XXX", "XXX", "XXX", "F1", "F1", "F2", "F3", "XXX", ""], 457 "", "XXX", "XXX", "XXX", "XXX", "XXX", "F1", "F1", "F2", "F3", "XXX", "",
456 ["TG3", "", "", "", "", "", "F10", "F11", "F12", "", "", ""], 458 "TG3", "", "", "", "", "", "F10", "F11", "F12", "", "", "",
457 ] 459 ]
458 460
459# 4 461# 4
460movement = [ 462movement = [
461 ["Esc", "Esc", "Tab x", "Tab n", "CPg Dn", "CPg Dn", "Pg Down", "Home", "^ Arrow", "Insert", "SInsert", "Esc"], 463 "Esc", "Esc", "Tab x", "Tab n", "CPg Dn", "CPg Dn", "Pg Down", "Home", "^ Arrow", "Insert", "SInsert", "Esc",
462 ["", "Caps", "< Gui", "Gui Tab", "> Gui", "> Gui", "< Arrow", "< Arrow", "v Arrow", "> Arrow", "End", "Pr Scr"], 464 "", "Caps", "< Gui", "Gui Tab", "> Gui", "> Gui", "< Arrow", "< Arrow", "v Arrow", "> Arrow", "End", "Pr Scr",
463 ["", "XXX", "XXX", "XXX", "CPg Up", "CPg Up", "Pg Up", "XXX", "v Arrow", "XXX", "App", ""], 465 "", "XXX", "XXX", "XXX", "CPg Up", "CPg Up", "Pg Up", "XXX", "v Arrow", "XXX", "App", "",
464 ["TG4", "", "", "", "Del", "", "", "BSpace", "", "", "", ""], 466 "TG4", "", "", "", "Del", "", "", "BSpace", "", "", "", "",
465 ] 467 ]
466 468
467# 5 469# 5
468media = [ 470media = [
469 ["", "XXX", "play/ps", "Vol +", "Vol +", "XXX", "XXX", "XXX", "XXX", "XXX", "_reset", "Power"], 471 "", "XXX", "play/ps", "Vol +", "Vol +", "XXX", "XXX", "XXX", "XXX", "XXX", "_reset", "Power",
470 ["", "XXX", "|<<", "Vol 0", ">>|", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", "Sleep"], 472 "", "XXX", "|<<", "Vol 0", ">>|", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", "Sleep",
471 ["", "XXX", "XXX", "Vol -", "Vol -", "MO5", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX"], 473 "", "XXX", "XXX", "Vol -", "Vol -", "MO5", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX",
472 ["TG5", "", "", "", "", "", "", "", "", "", "", ""], 474 "TG5", "", "", "", "", "", "", "", "", "", "", "",
473 ] 475 ]
474 476
475# 6 477# 6
476mouse = [ 478mouse = [
477 ["", "acc1", "XXX", "XXX", "XXX", "XXX", "^ Wheel", "< Wheel", "^ Mouse", "> Wheel", "XXX", "XXX"], 479 "", "acc1", "XXX", "XXX", "XXX", "XXX", "^ Wheel", "< Wheel", "^ Mouse", "> Wheel", "XXX", "XXX",
478 ["", "acc2", "Mouse 3", "Mouse 2", "Mouse 1", "Mouse 1", "< Mouse", "< Mouse", "v Mouse", "> Mouse", "XXX", "XXX"], 480 "", "acc2", "Mouse 3", "Mouse 2", "Mouse 1", "Mouse 1", "< Mouse", "< Mouse", "v Mouse", "> Mouse", "XXX", "XXX",
479 ["", "acc0", "XXX", "XXX", "XXX", "XXX", "v Wheel", "XXX", "v Mouse", "XXX", "XXX", ""], 481 "", "acc0", "XXX", "XXX", "XXX", "XXX", "v Wheel", "XXX", "v Mouse", "XXX", "XXX", "",
480 ["TG6", "", "", "", "", "", "", "", "", "", "", ""], 482 "TG6", "", "", "", "", "", "", "", "", "", "", "",
481 ] 483 ]
482 484
483layers = [ 485layers = [
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/readme.md b/keyboards/signum/3_0/elitec/keymaps/default/readme.md
index 54db18cd3..be8cc30e8 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/readme.md
+++ b/keyboards/signum/3_0/elitec/keymaps/default/readme.md
@@ -20,4 +20,5 @@ starting point to create your own layouts for the Signum 3.0 with
20 - Attention 2: additional C functions need to be put into 20 - Attention 2: additional C functions need to be put into
21 `km_template.txt` 21 `km_template.txt`
22 22
23Run `./generate_km.py` to regenerate `keymap.c`. 23Run `./generate_km.py` to regenerate `keymap.c` and the JSON keymap
24definition that should be copied to `qmk_configurator/public/keymaps`.