forked from mirrors/qmk_userspace
		
	Adds a way to separate tab from AUTO_SHIFT_SPECIAL. (#20996)
This commit is contained in:
		
					parent
					
						
							
								e43080788e
							
						
					
				
			
			
				commit
				
					
						e9ff66d8ad
					
				
			
		
					 3 changed files with 58 additions and 7 deletions
				
			
		| 
						 | 
					@ -133,7 +133,17 @@ groups in the below fallback switch.
 | 
				
			||||||
### NO_AUTO_SHIFT_SPECIAL (simple define)
 | 
					### NO_AUTO_SHIFT_SPECIAL (simple define)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Do not Auto Shift special keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
 | 
					Do not Auto Shift special keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
 | 
				
			||||||
and /?
 | 
					/?, and the KC_TAB.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### NO_AUTO_SHIFT_TAB (simple define)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Do not Auto Shift KC_TAB but leave Auto Shift enabled for the other special
 | 
				
			||||||
 | 
					characters.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### NO_AUTO_SHIFT_SYMBOLS (simple define)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Do not Auto Shift symbol keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
 | 
				
			||||||
 | 
					and /?.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### NO_AUTO_SHIFT_NUMERIC (simple define)
 | 
					### NO_AUTO_SHIFT_NUMERIC (simple define)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -143,9 +153,13 @@ Do not Auto Shift numeric keys, zero through nine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Do not Auto Shift alpha characters, which include A through Z.
 | 
					Do not Auto Shift alpha characters, which include A through Z.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### AUTO_SHIFT_ENTER (simple define)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Auto Shift the enter key.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Auto Shift Per Key
 | 
					### Auto Shift Per Key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are functions that allows you to determine which keys shold be autoshifted, much like the tap-hold keys.
 | 
					There are functions that allows you to determine which keys should be autoshifted, much like the tap-hold keys.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The first of these, used to simply add a key to Auto Shift, is `get_custom_auto_shifted_key`:
 | 
					The first of these, used to simply add a key to Auto Shift, is `get_custom_auto_shifted_key`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -172,9 +186,15 @@ bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
 | 
				
			||||||
        case KC_1 ... KC_0:
 | 
					        case KC_1 ... KC_0:
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef NO_AUTO_SHIFT_SPECIAL
 | 
					#    ifndef NO_AUTO_SHIFT_SPECIAL
 | 
				
			||||||
 | 
					#    ifndef NO_AUTO_SHIFT_TAB
 | 
				
			||||||
        case KC_TAB:
 | 
					        case KC_TAB:
 | 
				
			||||||
        case KC_MINUS ... KC_SLASH:
 | 
					#    endif
 | 
				
			||||||
        case KC_NONUS_BACKSLASH:
 | 
					#    ifndef NO_AUTO_SHIFT_SYMBOLS
 | 
				
			||||||
 | 
					        case AUTO_SHIFT_SYMBOLS:
 | 
				
			||||||
 | 
					#    endif
 | 
				
			||||||
 | 
					#    endif
 | 
				
			||||||
 | 
					#    ifdef AUTO_SHIFT_ENTER
 | 
				
			||||||
 | 
					        case KC_ENT:
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -192,6 +212,25 @@ Enables keyrepeat.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded.
 | 
					Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### AUTO_SHIFT_ALPHA (predefined key group)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A predefined group of keys representing A through Z.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### AUTO_SHIFT_NUMERIC (predefined key group)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A predefined group of keys representing 0 through 9. Note, these are defined as
 | 
				
			||||||
 | 
					1 through 0 since that is the order they normally appear in.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### AUTO_SHIFT_SYMBOLS (predefined key group)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A predefined group of keys representing symbolic characters which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
 | 
				
			||||||
 | 
					and /?.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### AUTO_SHIFT_SPECIAL (predefined key group)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A predefined group of keys that combines AUTO_SHIFT_SYMBOLS and KC_TAB.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Custom Shifted Values
 | 
					## Custom Shifted Values
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Especially on small keyboards, the default shifted value for many keys is not
 | 
					Especially on small keyboards, the default shifted value for many keys is not
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,7 +75,15 @@ __attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *r
 | 
				
			||||||
        case AUTO_SHIFT_NUMERIC:
 | 
					        case AUTO_SHIFT_NUMERIC:
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef NO_AUTO_SHIFT_SPECIAL
 | 
					#    ifndef NO_AUTO_SHIFT_SPECIAL
 | 
				
			||||||
        case AUTO_SHIFT_SPECIAL:
 | 
					#        ifndef NO_AUTO_SHIFT_TAB
 | 
				
			||||||
 | 
					        case KC_TAB:
 | 
				
			||||||
 | 
					#        endif
 | 
				
			||||||
 | 
					#        ifndef NO_AUTO_SHIFT_SYMBOLS
 | 
				
			||||||
 | 
					        case AUTO_SHIFT_SYMBOLS:
 | 
				
			||||||
 | 
					#        endif
 | 
				
			||||||
 | 
					#    endif
 | 
				
			||||||
 | 
					#    ifdef AUTO_SHIFT_ENTER
 | 
				
			||||||
 | 
					        case KC_ENT:
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,10 +28,14 @@
 | 
				
			||||||
// clang-format off
 | 
					// clang-format off
 | 
				
			||||||
#define AUTO_SHIFT_ALPHA KC_A ... KC_Z
 | 
					#define AUTO_SHIFT_ALPHA KC_A ... KC_Z
 | 
				
			||||||
#define AUTO_SHIFT_NUMERIC KC_1 ... KC_0
 | 
					#define AUTO_SHIFT_NUMERIC KC_1 ... KC_0
 | 
				
			||||||
 | 
					#define AUTO_SHIFT_SYMBOLS          \
 | 
				
			||||||
 | 
					             KC_MINUS ... KC_SLASH: \
 | 
				
			||||||
 | 
					        case KC_NONUS_BACKSLASH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Kept to avoid breaking existing keymaps.
 | 
				
			||||||
#define AUTO_SHIFT_SPECIAL          \
 | 
					#define AUTO_SHIFT_SPECIAL          \
 | 
				
			||||||
             KC_TAB:                \
 | 
					             KC_TAB:                \
 | 
				
			||||||
        case KC_MINUS ... KC_SLASH: \
 | 
					        case AUTO_SHIFT_SYMBOLS
 | 
				
			||||||
        case KC_NONUS_BACKSLASH
 | 
					 | 
				
			||||||
// clang-format on
 | 
					// clang-format on
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool process_auto_shift(uint16_t keycode, keyrecord_t *record);
 | 
					bool process_auto_shift(uint16_t keycode, keyrecord_t *record);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue