forked from mfulz_github/qmk_firmware
		
	Adding NKRO virtual dip-switch, using existing bit in keymap byte.
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.
This commit is contained in:
		
							parent
							
								
									894a387d1f
								
							
						
					
					
						commit
						e5bafff725
					
				@ -151,6 +151,7 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be
 | 
				
			|||||||
- 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`)
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,7 @@
 | 
				
			|||||||
#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"
 | 
				
			||||||
@ -76,8 +77,15 @@ void bootmagic(void)
 | 
				
			|||||||
    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); }
 | 
				
			||||||
 | 
				
			|||||||
@ -60,6 +60,9 @@
 | 
				
			|||||||
#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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 | 
				
			|||||||
@ -151,6 +151,7 @@ static void print_eeconfig(void)
 | 
				
			|||||||
    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;
 | 
				
			||||||
 | 
				
			|||||||
@ -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_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);
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@ typedef union {
 | 
				
			|||||||
        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;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user