This takes the last, reserved bit there, but doesn't necessitate a revision to the magic number because it doesn't alter byte order. Add reference to NKRO virtual dip-switch to documentation.yuk86
@@ -151,6 +151,7 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be | |||
- Disable Gui(`Left Gui`) | |||
- Swap Grave and Escape(`Grave`) | |||
- Swap BackSlash and BackSpace(`Back Slash`) | |||
- Enable NKRO on boot(`N`) | |||
#### Default Layer | |||
- Set Default Layer to 0(`0`) |
@@ -5,6 +5,7 @@ | |||
#include "bootloader.h" | |||
#include "debug.h" | |||
#include "keymap.h" | |||
#include "host.h" | |||
#include "action_layer.h" | |||
#include "eeconfig.h" | |||
#include "bootmagic.h" | |||
@@ -76,8 +77,15 @@ void bootmagic(void) | |||
if (bootmagic_scan_keycode(BOOTMAGIC_KEY_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); | |||
#ifdef NKRO_ENABLE | |||
keyboard_nkro = keymap_config.nkro; | |||
#endif | |||
/* default layer */ | |||
uint8_t default_layer = 0; | |||
if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_0)) { default_layer |= (1<<0); } |
@@ -60,6 +60,9 @@ | |||
#ifndef BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE | |||
#define BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE KC_BSLASH | |||
#endif | |||
#ifndef BOOTMAGIC_HOST_NKRO | |||
#define BOOTMAGIC_HOST_NKRO KC_N | |||
#endif | |||
/* |
@@ -151,6 +151,7 @@ static void print_eeconfig(void) | |||
print(".no_gui: "); print_dec(kc.no_gui); 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(".nkro: "); print_dec(kc.nkro); print("\n"); | |||
#ifdef BACKLIGHT_ENABLE | |||
backlight_config_t bc; |
@@ -47,6 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
#define EECONFIG_KEYMAP_NO_GUI (1<<4) | |||
#define EECONFIG_KEYMAP_SWAP_GRAVE_ESC (1<<5) | |||
#define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6) | |||
#define EECONFIG_KEYMAP_NKRO (1<<7) | |||
bool eeconfig_is_enabled(void); |
@@ -35,7 +35,7 @@ typedef union { | |||
bool no_gui:1; | |||
bool swap_grave_esc:1; | |||
bool swap_backslash_backspace:1; | |||
bool reserved:1; | |||
bool nkro:1; | |||
}; | |||
} keymap_config_t; | |||
keymap_config_t keymap_config; |