|
|
@ -27,40 +27,38 @@ __INCLUDES__ |
|
|
|
* edit it directly. |
|
|
|
*/ |
|
|
|
__KEYCODE_OUTPUT_GOES_HERE__ |
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
__KEYMAP_GOES_HERE__ |
|
|
|
}; |
|
|
|
|
|
|
|
#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) |
|
|
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { |
|
|
|
__ENCODER_MAP_GOES_HERE__ |
|
|
|
}; |
|
|
|
#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) |
|
|
|
|
|
|
|
__MACRO_OUTPUT_GOES_HERE__ |
|
|
|
|
|
|
|
#ifdef OTHER_KEYMAP_C |
|
|
|
#if __has_include_next(OTHER_KEYMAP_C) |
|
|
|
#include_next OTHER_KEYMAP_C |
|
|
|
#endif // __has_include_next(OTHER_KEYMAP_C) |
|
|
|
#endif // OTHER_KEYMAP_C |
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
def _generate_keymap_table(keymap_json): |
|
|
|
lines = [] |
|
|
|
lines = ['const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {'] |
|
|
|
for layer_num, layer in enumerate(keymap_json['layers']): |
|
|
|
if layer_num != 0: |
|
|
|
lines[-1] = lines[-1] + ',' |
|
|
|
layer = map(_strip_any, layer) |
|
|
|
layer_keys = ', '.join(layer) |
|
|
|
lines.append('\t[%s] = %s(%s)' % (layer_num, keymap_json['layout'], layer_keys)) |
|
|
|
lines.append('};') |
|
|
|
return lines |
|
|
|
|
|
|
|
|
|
|
|
def _generate_encodermap_table(keymap_json): |
|
|
|
lines = [] |
|
|
|
lines = ['#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)', 'const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {'] |
|
|
|
for layer_num, layer in enumerate(keymap_json['encoders']): |
|
|
|
if layer_num != 0: |
|
|
|
lines[-1] = lines[-1] + ',' |
|
|
|
encoder_keycode_txt = ', '.join([f'ENCODER_CCW_CW({_strip_any(e["ccw"])}, {_strip_any(e["cw"])})' for e in layer]) |
|
|
|
lines.append('\t[%s] = {%s}' % (layer_num, encoder_keycode_txt)) |
|
|
|
lines.extend(['};', '#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)']) |
|
|
|
return lines |
|
|
|
|
|
|
|
|
|
|
@ -329,8 +327,11 @@ def generate_c(keymap_json): |
|
|
|
A sequence of strings containing macros to implement for this keyboard. |
|
|
|
""" |
|
|
|
new_keymap = template_c(keymap_json['keyboard']) |
|
|
|
layer_txt = _generate_keymap_table(keymap_json) |
|
|
|
keymap = '\n'.join(layer_txt) |
|
|
|
|
|
|
|
keymap = '' |
|
|
|
if 'layers' in keymap_json and keymap_json['layers'] is not None: |
|
|
|
layer_txt = _generate_keymap_table(keymap_json) |
|
|
|
keymap = '\n'.join(layer_txt) |
|
|
|
new_keymap = new_keymap.replace('__KEYMAP_GOES_HERE__', keymap) |
|
|
|
|
|
|
|
encodermap = '' |
|
|
|