|
|
|
@ -27,10 +27,6 @@ static void do_code16 (uint16_t code, void (*f) (uint8_t)) { |
|
|
|
|
f(KC_RGUI); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifdef NKRO_ENABLE |
|
|
|
|
extern bool keyboard_nkro; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
void register_code16 (uint16_t code) { |
|
|
|
|
do_code16 (code, register_code); |
|
|
|
|
register_code (code); |
|
|
|
@ -203,7 +199,7 @@ bool process_record_quantum(keyrecord_t *record) { |
|
|
|
|
return false; |
|
|
|
|
break; |
|
|
|
|
#endif |
|
|
|
|
case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_UNSWAP_ALT_GUI: |
|
|
|
|
case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_TOGGLE_NKRO: |
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
// MAGIC actions (BOOTMAGIC without the boot)
|
|
|
|
|
if (!eeconfig_is_enabled()) { |
|
|
|
@ -211,57 +207,73 @@ bool process_record_quantum(keyrecord_t *record) { |
|
|
|
|
} |
|
|
|
|
/* keymap config */ |
|
|
|
|
keymap_config.raw = eeconfig_read_keymap(); |
|
|
|
|
if (keycode == MAGIC_SWAP_CONTROL_CAPSLOCK) { |
|
|
|
|
keymap_config.swap_control_capslock = 1; |
|
|
|
|
} else if (keycode == MAGIC_CAPSLOCK_TO_CONTROL) { |
|
|
|
|
keymap_config.capslock_to_control = 1; |
|
|
|
|
} else if (keycode == MAGIC_SWAP_LALT_LGUI) { |
|
|
|
|
keymap_config.swap_lalt_lgui = 1; |
|
|
|
|
} else if (keycode == MAGIC_SWAP_RALT_RGUI) { |
|
|
|
|
keymap_config.swap_ralt_rgui = 1; |
|
|
|
|
} else if (keycode == MAGIC_NO_GUI) { |
|
|
|
|
keymap_config.no_gui = 1; |
|
|
|
|
} else if (keycode == MAGIC_SWAP_GRAVE_ESC) { |
|
|
|
|
keymap_config.swap_grave_esc = 1; |
|
|
|
|
} else if (keycode == MAGIC_SWAP_BACKSLASH_BACKSPACE) { |
|
|
|
|
keymap_config.swap_backslash_backspace = 1; |
|
|
|
|
} else if (keycode == MAGIC_HOST_NKRO) { |
|
|
|
|
keymap_config.nkro = 1; |
|
|
|
|
|
|
|
|
|
#ifdef NKRO_ENABLE |
|
|
|
|
clear_keyboard(); // clear to prevent stuck keys
|
|
|
|
|
keyboard_nkro = keymap_config.nkro; |
|
|
|
|
#endif |
|
|
|
|
} else if (keycode == MAGIC_SWAP_ALT_GUI) { |
|
|
|
|
keymap_config.swap_lalt_lgui = 1; |
|
|
|
|
keymap_config.swap_ralt_rgui = 1; |
|
|
|
|
} |
|
|
|
|
/* UNs */ |
|
|
|
|
else if (keycode == MAGIC_UNSWAP_CONTROL_CAPSLOCK) { |
|
|
|
|
keymap_config.swap_control_capslock = 0; |
|
|
|
|
} else if (keycode == MAGIC_UNCAPSLOCK_TO_CONTROL) { |
|
|
|
|
keymap_config.capslock_to_control = 0; |
|
|
|
|
} else if (keycode == MAGIC_UNSWAP_LALT_LGUI) { |
|
|
|
|
keymap_config.swap_lalt_lgui = 0; |
|
|
|
|
} else if (keycode == MAGIC_UNSWAP_RALT_RGUI) { |
|
|
|
|
keymap_config.swap_ralt_rgui = 0; |
|
|
|
|
} else if (keycode == MAGIC_UNNO_GUI) { |
|
|
|
|
keymap_config.no_gui = 0; |
|
|
|
|
} else if (keycode == MAGIC_UNSWAP_GRAVE_ESC) { |
|
|
|
|
keymap_config.swap_grave_esc = 0; |
|
|
|
|
} else if (keycode == MAGIC_UNSWAP_BACKSLASH_BACKSPACE) { |
|
|
|
|
keymap_config.swap_backslash_backspace = 0; |
|
|
|
|
} else if (keycode == MAGIC_UNHOST_NKRO) { |
|
|
|
|
keymap_config.nkro = 0; |
|
|
|
|
#ifdef NKRO_ENABLE |
|
|
|
|
clear_keyboard(); // clear to prevent stuck keys
|
|
|
|
|
keyboard_nkro = keymap_config.nkro; |
|
|
|
|
#endif |
|
|
|
|
} else if (keycode == MAGIC_UNSWAP_ALT_GUI) { |
|
|
|
|
keymap_config.swap_lalt_lgui = 0; |
|
|
|
|
keymap_config.swap_ralt_rgui = 0; |
|
|
|
|
switch (keycode) |
|
|
|
|
{ |
|
|
|
|
case MAGIC_SWAP_CONTROL_CAPSLOCK: |
|
|
|
|
keymap_config.swap_control_capslock = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_CAPSLOCK_TO_CONTROL: |
|
|
|
|
keymap_config.capslock_to_control = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_SWAP_LALT_LGUI: |
|
|
|
|
keymap_config.swap_lalt_lgui = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_SWAP_RALT_RGUI: |
|
|
|
|
keymap_config.swap_ralt_rgui = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_NO_GUI: |
|
|
|
|
keymap_config.no_gui = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_SWAP_GRAVE_ESC: |
|
|
|
|
keymap_config.swap_grave_esc = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_SWAP_BACKSLASH_BACKSPACE: |
|
|
|
|
keymap_config.swap_backslash_backspace = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_HOST_NKRO: |
|
|
|
|
keymap_config.nkro = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_SWAP_ALT_GUI: |
|
|
|
|
keymap_config.swap_lalt_lgui = true; |
|
|
|
|
keymap_config.swap_ralt_rgui = true; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNSWAP_CONTROL_CAPSLOCK: |
|
|
|
|
keymap_config.swap_control_capslock = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNCAPSLOCK_TO_CONTROL: |
|
|
|
|
keymap_config.capslock_to_control = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNSWAP_LALT_LGUI: |
|
|
|
|
keymap_config.swap_lalt_lgui = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNSWAP_RALT_RGUI: |
|
|
|
|
keymap_config.swap_ralt_rgui = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNNO_GUI: |
|
|
|
|
keymap_config.no_gui = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNSWAP_GRAVE_ESC: |
|
|
|
|
keymap_config.swap_grave_esc = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNSWAP_BACKSLASH_BACKSPACE: |
|
|
|
|
keymap_config.swap_backslash_backspace = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNHOST_NKRO: |
|
|
|
|
keymap_config.nkro = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_UNSWAP_ALT_GUI: |
|
|
|
|
keymap_config.swap_lalt_lgui = false; |
|
|
|
|
keymap_config.swap_ralt_rgui = false; |
|
|
|
|
break; |
|
|
|
|
case MAGIC_TOGGLE_NKRO: |
|
|
|
|
keymap_config.nkro = !keymap_config.nkro; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
eeconfig_update_keymap(keymap_config.raw); |
|
|
|
|
clear_keyboard(); // clear to prevent stuck keys
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
@ -284,7 +296,7 @@ bool process_record_quantum(keyrecord_t *record) { |
|
|
|
|
unregister_mods(MOD_BIT(KC_LSFT)); |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
break; |
|
|
|
|
// break;
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case KC_RSPC: { |
|
|
|
@ -306,7 +318,7 @@ bool process_record_quantum(keyrecord_t *record) { |
|
|
|
|
unregister_mods(MOD_BIT(KC_RSFT)); |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
break; |
|
|
|
|
// break;
|
|
|
|
|
} |
|
|
|
|
default: { |
|
|
|
|
shift_interrupted[0] = true; |
|
|
|
|