Add Alt-Tab, Cmd-Tab, and Ctl-Tab Macros to TouchCursor layer, swap LGUI and LSFT
This commit is contained in:
		
							parent
							
								
									abc3cd4d72
								
							
						
					
					
						commit
						fdd89e7f0d
					
				
					 2 changed files with 43 additions and 8 deletions
				
			
		| 
						 | 
					@ -24,6 +24,7 @@ extern keymap_config_t keymap_config;
 | 
				
			||||||
#define _MOUSE 7
 | 
					#define _MOUSE 7
 | 
				
			||||||
#define _ADJUST 16
 | 
					#define _ADJUST 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Keycodes
 | 
				
			||||||
enum planck_keycodes {
 | 
					enum planck_keycodes {
 | 
				
			||||||
  QWERTY = SAFE_RANGE,
 | 
					  QWERTY = SAFE_RANGE,
 | 
				
			||||||
  COLEMAK,
 | 
					  COLEMAK,
 | 
				
			||||||
| 
						 | 
					@ -35,16 +36,25 @@ enum planck_keycodes {
 | 
				
			||||||
  EXT_PLV
 | 
					  EXT_PLV
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum macro_keycodes {
 | 
				
			||||||
 | 
					  KC_ALT_TAB,
 | 
				
			||||||
 | 
					  KC_CMD_TAB,
 | 
				
			||||||
 | 
					  KC_CTL_TAB,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Fillers to make layering more clear
 | 
					// Fillers to make layering more clear
 | 
				
			||||||
#define _______ KC_TRNS
 | 
					#define _______ KC_TRNS
 | 
				
			||||||
#define XXXXXXX KC_NO
 | 
					#define XXXXXXX KC_NO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Custom macros
 | 
					// Custom macros
 | 
				
			||||||
#define CTL_ESC     CTL_T(KC_ESC)               // Tap for Esc, hold for Ctrl
 | 
					#define CTL_ESC     CTL_T(KC_ESC)               // Tap for Esc, hold for Ctrl
 | 
				
			||||||
#define LT_TC       LT(_TOUCHCURSOR, KC_SPC)    // L-ayer T-ap T-ouch C-ursor
 | 
					 | 
				
			||||||
//                  ^-- Requires KC_TRNS / _______ for the trigger key in the destination layer
 | 
					 | 
				
			||||||
#define SFT_ENT     SFT_T(KC_ENT)               // Tap for Enter, hold for Shift
 | 
					#define SFT_ENT     SFT_T(KC_ENT)               // Tap for Enter, hold for Shift
 | 
				
			||||||
 | 
					// Requires KC_TRNS/_______ for the trigger key in the destination layer
 | 
				
			||||||
 | 
					#define LT_TC       LT(_TOUCHCURSOR, KC_SPC)    // L-ayer T-ap T-ouch C-ursor.
 | 
				
			||||||
#define LT_ML       LT(_MOUSE, KC_A)            // L-ayer T-ap M-ouse C-ursor (on A)
 | 
					#define LT_ML       LT(_MOUSE, KC_A)            // L-ayer T-ap M-ouse C-ursor (on A)
 | 
				
			||||||
 | 
					#define ALT_TAB     M(KC_ALT_TAB)               // Macro for Alt-Tab
 | 
				
			||||||
 | 
					#define CMD_TAB     M(KC_CMD_TAB)               // Macro for Cmd-Tab
 | 
				
			||||||
 | 
					#define CTL_TAB     M(KC_CTL_TAB)               // Macro for Ctl-Tab
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -140,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
 | 
					/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
 | 
				
			||||||
 * ,-----------------------------------------------------------------------------------.
 | 
					 * ,-----------------------------------------------------------------------------------.
 | 
				
			||||||
 * |      |      |      |Shift | GUI  |  ~   |Insert| Home |  Up  | End  | Bksp |      |
 | 
					 * |AltTab|CmdTab|CtlTab| GUI  |Shift |  ~   |Insert| Home |  Up  | End  | Bksp |      |
 | 
				
			||||||
 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
					 * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
				
			||||||
 * |      | Alt  |Space |      | Find |Again | PgUp | Left | Down |Right |      |      |
 | 
					 * |      | Alt  |Space |      | Find |Again | PgUp | Left | Down |Right |      |      |
 | 
				
			||||||
 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
					 * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
				
			||||||
| 
						 | 
					@ -154,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[_TOUCHCURSOR] = {
 | 
					[_TOUCHCURSOR] = {
 | 
				
			||||||
  {_______, _______, _______, KC_LSFT, KC_LGUI, KC_TILD, KC_INS,  KC_HOME, KC_UP,   KC_END,  KC_BSPC, _______},
 | 
					  {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS,  KC_HOME, KC_UP,   KC_END,  KC_BSPC, _______},
 | 
				
			||||||
  {_______, KC_LALT, KC_SPC,  _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______},
 | 
					  {_______, KC_LALT, KC_SPC,  _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______},
 | 
				
			||||||
  {_______, KC_UNDO, KC_CUT,  KC_COPY, KC_PASTE,KC_GRV,  KC_PGDN, KC_DEL,  _______, _______, _______, _______},
 | 
					  {_______, KC_UNDO, KC_CUT,  KC_COPY, KC_PASTE,KC_GRV,  KC_PGDN, KC_DEL,  _______, _______, _______, _______},
 | 
				
			||||||
  {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
					  {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 | 
				
			||||||
| 
						 | 
					@ -330,6 +340,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
				
			||||||
  return true;
 | 
					  return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Macro definition
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    switch (id) {
 | 
				
			||||||
 | 
					      case KC_ALT_TAB:
 | 
				
			||||||
 | 
					        return (record->event.pressed ? MACRO( D(LALT),  D(TAB), END ) : MACRO( U(TAB), END ));
 | 
				
			||||||
 | 
					      case KC_CMD_TAB:
 | 
				
			||||||
 | 
					        return (record->event.pressed ? MACRO( D(LGUI),  D(TAB), END ) : MACRO( U(TAB), END ));
 | 
				
			||||||
 | 
					      case KC_CTL_TAB:
 | 
				
			||||||
 | 
					        return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END ));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return MACRO_NONE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void matrix_init_user(void) {
 | 
					void matrix_init_user(void) {
 | 
				
			||||||
    #ifdef AUDIO_ENABLE
 | 
					    #ifdef AUDIO_ENABLE
 | 
				
			||||||
        startup_user();
 | 
					        startup_user();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,6 +9,11 @@ changes from the default mappings.
 | 
				
			||||||
I also decided to change all calls to `persistant_default_layer_set()` to
 | 
					I also decided to change all calls to `persistant_default_layer_set()` to
 | 
				
			||||||
`default_layer_set()` since this is my personal perference.
 | 
					`default_layer_set()` since this is my personal perference.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Macros
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					#define ALT_TAB     M(KC_ALT_TAB)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Base Layers (Qwerty/Colemak/Dvorak)
 | 
					## Base Layers (Qwerty/Colemak/Dvorak)
 | 
				
			||||||
These base layers are mostly the same as the default mappings. The interesting
 | 
					These base layers are mostly the same as the default mappings. The interesting
 | 
				
			||||||
changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit
 | 
					changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit
 | 
				
			||||||
| 
						 | 
					@ -72,12 +77,15 @@ are represented below. My personalizations include all of the keys shown for
 | 
				
			||||||
the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
 | 
					the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key
 | 
				
			||||||
from the base layers) readily accessible from the home row allows quick word
 | 
					from the base layers) readily accessible from the home row allows quick word
 | 
				
			||||||
jumps and highlighting when used in conjunction with the arrow keys. The
 | 
					jumps and highlighting when used in conjunction with the arrow keys. The
 | 
				
			||||||
`KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` keycodes have
 | 
					`AltTab` macro is not only useful under Windows, but also under Mac when used
 | 
				
			||||||
been mapped but they don't seem to work on Mac. Presumably they'll work under
 | 
					with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch).
 | 
				
			||||||
Windows.
 | 
					The `CmdTab` and `CtlTab` sequences are duplicated for easy access while in
 | 
				
			||||||
 | 
					this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN`
 | 
				
			||||||
 | 
					keycodes have been mapped but they don't seem to work on Mac. Presumably
 | 
				
			||||||
 | 
					they'll work under Windows.
 | 
				
			||||||
``` 
 | 
					``` 
 | 
				
			||||||
  ,-----------------------------------------------------------------------------------.
 | 
					  ,-----------------------------------------------------------------------------------.
 | 
				
			||||||
  |      |      |      |Shift | GUI  |  ~   |Insert| Home |  Up  | End  | Bksp |      |
 | 
					  |AltTab|CmdTab|CtlTab|  GUI |Shift |  ~   |Insert| Home |  Up  | End  | Bksp |      |
 | 
				
			||||||
  |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
					  |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
				
			||||||
  |      | Alt  |Space |      | Find |Again | PgUp | Left | Down |Right |      |      |
 | 
					  |      | Alt  |Space |      | Find |Again | PgUp | Left | Down |Right |      |      |
 | 
				
			||||||
  |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
					  |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue