added BS_TOGG so BS_SWAP and BS_NORM can be on a single key (#18837)

Co-authored-by: Selene ToyKeeper <git@toykeeper.net>
This commit is contained in:
Selene ToyKeeper 2022-10-24 23:02:21 -06:00 committed by GitHub
parent a80b886751
commit e863c431f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 0 deletions

View file

@ -404,6 +404,7 @@ See also: [Magic Keycodes](keycodes_magic.md)
|`MAGIC_UNSWAP_GRAVE_ESC` |`GE_NORM`|Unswap <code>&#96;</code> and Escape | |`MAGIC_UNSWAP_GRAVE_ESC` |`GE_NORM`|Unswap <code>&#96;</code> and Escape |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` |`BS_SWAP`|Swap `\` and Backspace | |`MAGIC_SWAP_BACKSLASH_BACKSPACE` |`BS_SWAP`|Swap `\` and Backspace |
|`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|`BS_NORM`|Unswap `\` and Backspace | |`MAGIC_UNSWAP_BACKSLASH_BACKSPACE`|`BS_NORM`|Unswap `\` and Backspace |
|`MAGIC_TOGGLE_BACKSLASH_BACKSPACE`|`BS_TOGG`|Toggle `\` and Backspace swap state |
|`MAGIC_HOST_NKRO` |`NK_ON` |Enable N-key rollover | |`MAGIC_HOST_NKRO` |`NK_ON` |Enable N-key rollover |
|`MAGIC_UNHOST_NKRO` |`NK_OFF` |Disable N-key rollover | |`MAGIC_UNHOST_NKRO` |`NK_OFF` |Disable N-key rollover |
|`MAGIC_TOGGLE_NKRO` |`NK_TOGG`|Toggle N-key rollover | |`MAGIC_TOGGLE_NKRO` |`NK_TOGG`|Toggle N-key rollover |

View file

@ -45,6 +45,7 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) {
case MAGIC_SWAP_LCTL_LGUI ... MAGIC_EE_HANDS_RIGHT: case MAGIC_SWAP_LCTL_LGUI ... MAGIC_EE_HANDS_RIGHT:
case MAGIC_TOGGLE_GUI: case MAGIC_TOGGLE_GUI:
case MAGIC_TOGGLE_CONTROL_CAPSLOCK: case MAGIC_TOGGLE_CONTROL_CAPSLOCK:
case MAGIC_TOGGLE_BACKSLASH_BACKSPACE:
case MAGIC_SWAP_ESCAPE_CAPSLOCK ... MAGIC_TOGGLE_ESCAPE_CAPSLOCK: case MAGIC_SWAP_ESCAPE_CAPSLOCK ... MAGIC_TOGGLE_ESCAPE_CAPSLOCK:
/* keymap config */ /* keymap config */
keymap_config.raw = eeconfig_read_keymap(); keymap_config.raw = eeconfig_read_keymap();
@ -163,6 +164,9 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) {
} }
#endif #endif
break; break;
case MAGIC_TOGGLE_BACKSLASH_BACKSPACE:
keymap_config.swap_backslash_backspace = !keymap_config.swap_backslash_backspace;
break;
case MAGIC_TOGGLE_NKRO: case MAGIC_TOGGLE_NKRO:
clear_keyboard(); // clear first buffer to prevent stuck keys clear_keyboard(); // clear first buffer to prevent stuck keys
keymap_config.nkro = !keymap_config.nkro; keymap_config.nkro = !keymap_config.nkro;

View file

@ -615,6 +615,8 @@ enum quantum_keycodes {
AUTOCORRECT_OFF, AUTOCORRECT_OFF,
AUTOCORRECT_TOGGLE, AUTOCORRECT_TOGGLE,
MAGIC_TOGGLE_BACKSLASH_BACKSPACE,
// Start of custom keycode range for keyboards and keymaps - always leave at the end // Start of custom keycode range for keyboards and keymaps - always leave at the end
SAFE_RANGE SAFE_RANGE
}; };
@ -731,6 +733,7 @@ enum quantum_keycodes {
#define BS_SWAP MAGIC_SWAP_BACKSLASH_BACKSPACE #define BS_SWAP MAGIC_SWAP_BACKSLASH_BACKSPACE
#define BS_NORM MAGIC_UNSWAP_BACKSLASH_BACKSPACE #define BS_NORM MAGIC_UNSWAP_BACKSLASH_BACKSPACE
#define BS_TOGG MAGIC_TOGGLE_BACKSLASH_BACKSPACE
#define NK_ON MAGIC_HOST_NKRO #define NK_ON MAGIC_HOST_NKRO
#define NK_OFF MAGIC_UNHOST_NKRO #define NK_OFF MAGIC_UNHOST_NKRO