Adding NKRO virtual dip-switch, using existing bit in keymap byte.tags/v1.9
- Disable Gui(`Left Gui`) | - Disable Gui(`Left Gui`) | ||||
- Swap Grave and Escape(`Grave`) | - Swap Grave and Escape(`Grave`) | ||||
- Swap BackSlash and BackSpace(`Back Slash`) | - Swap BackSlash and BackSpace(`Back Slash`) | ||||
- Enable NKRO on boot(`N`) | |||||
#### Default Layer | #### Default Layer | ||||
- Set Default Layer to 0(`0`) | - Set Default Layer to 0(`0`) |
#include "bootloader.h" | #include "bootloader.h" | ||||
#include "debug.h" | #include "debug.h" | ||||
#include "keymap.h" | #include "keymap.h" | ||||
#include "host.h" | |||||
#include "action_layer.h" | #include "action_layer.h" | ||||
#include "eeconfig.h" | #include "eeconfig.h" | ||||
#include "bootmagic.h" | #include "bootmagic.h" | ||||
if (bootmagic_scan_keycode(BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE)) { | if (bootmagic_scan_keycode(BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE)) { | ||||
keymap_config.swap_backslash_backspace = !keymap_config.swap_backslash_backspace; | keymap_config.swap_backslash_backspace = !keymap_config.swap_backslash_backspace; | ||||
} | } | ||||
if (bootmagic_scan_keycode(BOOTMAGIC_HOST_NKRO)) { | |||||
keymap_config.nkro = !keymap_config.nkro; | |||||
} | |||||
eeconfig_write_keymap(keymap_config.raw); | eeconfig_write_keymap(keymap_config.raw); | ||||
#ifdef NKRO_ENABLE | |||||
keyboard_nkro = keymap_config.nkro; | |||||
#endif | |||||
/* default layer */ | /* default layer */ | ||||
uint8_t default_layer = 0; | uint8_t default_layer = 0; | ||||
if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_0)) { default_layer |= (1<<0); } | if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_0)) { default_layer |= (1<<0); } |
#ifndef BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE | #ifndef BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE | ||||
#define BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE KC_BSLASH | #define BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE KC_BSLASH | ||||
#endif | #endif | ||||
#ifndef BOOTMAGIC_HOST_NKRO | |||||
#define BOOTMAGIC_HOST_NKRO KC_N | |||||
#endif | |||||
/* | /* |
print(".no_gui: "); print_dec(kc.no_gui); print("\n"); | print(".no_gui: "); print_dec(kc.no_gui); print("\n"); | ||||
print(".swap_grave_esc: "); print_dec(kc.swap_grave_esc); print("\n"); | print(".swap_grave_esc: "); print_dec(kc.swap_grave_esc); print("\n"); | ||||
print(".swap_backslash_backspace: "); print_dec(kc.swap_backslash_backspace); print("\n"); | print(".swap_backslash_backspace: "); print_dec(kc.swap_backslash_backspace); print("\n"); | ||||
print(".nkro: "); print_dec(kc.nkro); print("\n"); | |||||
#ifdef BACKLIGHT_ENABLE | #ifdef BACKLIGHT_ENABLE | ||||
backlight_config_t bc; | backlight_config_t bc; |
#define EECONFIG_KEYMAP_NO_GUI (1<<4) | #define EECONFIG_KEYMAP_NO_GUI (1<<4) | ||||
#define EECONFIG_KEYMAP_SWAP_GRAVE_ESC (1<<5) | #define EECONFIG_KEYMAP_SWAP_GRAVE_ESC (1<<5) | ||||
#define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6) | #define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6) | ||||
#define EECONFIG_KEYMAP_NKRO (1<<7) | |||||
bool eeconfig_is_enabled(void); | bool eeconfig_is_enabled(void); |
bool no_gui:1; | bool no_gui:1; | ||||
bool swap_grave_esc:1; | bool swap_grave_esc:1; | ||||
bool swap_backslash_backspace:1; | bool swap_backslash_backspace:1; | ||||
bool reserved:1; | |||||
bool nkro:1; | |||||
}; | }; | ||||
} keymap_config_t; | } keymap_config_t; | ||||
keymap_config_t keymap_config; | keymap_config_t keymap_config; |