M docs/keycodes_magic.md => docs/keycodes_magic.md +1 -0
@@ 24,6 24,7 @@
|`MAGIC_TOGGLE_ALT_GUI` |`AG_TOGG`|Toggle Alt and GUI swap on both sides |
|`MAGIC_NO_GUI` |`GUI_OFF`|Disable the GUI keys |
|`MAGIC_UNNO_GUI` |`GUI_ON` |Enable the GUI keys |
+|`MAGIC_TOGGLE_GUI` |`GUI_TOG`|Toggles the status of the GUI keys |
|`MAGIC_SWAP_GRAVE_ESC` |`GE_SWAP`|Swap <code>`</code> and Escape |
|`MAGIC_UNSWAP_GRAVE_ESC` |`GE_NORM`|Unswap <code>`</code> and Escape |
|`MAGIC_SWAP_BACKSLASH_BACKSPACE` |`BS_SWAP`|Swap `\` and Backspace |
M quantum/process_keycode/process_magic.c => quantum/process_keycode/process_magic.c +3 -0
@@ 164,6 164,9 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) {
case MAGIC_EE_HANDS_RIGHT:
eeconfig_update_handedness(false);
break;
+ case MAGIC_TOGGLE_GUI:
+ keymap_config.no_gui = !keymap_config.no_gui;
+ break;
}
eeconfig_update_keymap(keymap_config.raw);
M quantum/quantum_keycodes.h => quantum/quantum_keycodes.h +4 -0
@@ 521,6 521,9 @@ enum quantum_keycodes {
KEY_OVERRIDE_ON,
KEY_OVERRIDE_OFF,
+ // Additional magic key
+ MAGIC_TOGGLE_GUI,
+
// Start of custom keycode range for keyboards and keymaps - always leave at the end
SAFE_RANGE
};
@@ 694,6 697,7 @@ enum quantum_keycodes {
#define GUI_OFF MAGIC_NO_GUI
#define GUI_ON MAGIC_UNNO_GUI
+#define GUI_TOG MAGIC_TOGGLE_GUI
#define GE_SWAP MAGIC_SWAP_GRAVE_ESC
#define GE_NORM MAGIC_UNSWAP_GRAVE_ESC