[Docs] Adding Alt↯Tab example macro (#5616)
This commit is contained in:
		
							parent
							
								
									02b74d521b
								
							
						
					
					
						commit
						e7e13ebdd7
					
				
					 1 changed files with 46 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -195,6 +195,49 @@ This will clear all mods currently pressed.
 | 
			
		|||
 | 
			
		||||
This will clear all keys besides the mods currently pressed.
 | 
			
		||||
 | 
			
		||||
## Advanced Example: 
 | 
			
		||||
 | 
			
		||||
### Super ALT↯TAB
 | 
			
		||||
 | 
			
		||||
This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows. 
 | 
			
		||||
 | 
			
		||||
```c
 | 
			
		||||
bool is_alt_tab_active = false;    # ADD this near the begining of keymap.c
 | 
			
		||||
uint16_t alt_tab_timer = 0;        # we will be using them soon.
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {             # Make sure have the awesome keycode ready
 | 
			
		||||
  ALT_TAB = SAFE_RANGE,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  switch (keycode) {               # This will do most of the grunt work with the keycodes.
 | 
			
		||||
    case ALT_TAB:
 | 
			
		||||
      if (record->event.pressed) {
 | 
			
		||||
        if (!is_alt_tab_active) {
 | 
			
		||||
          is_alt_tab_active = true;
 | 
			
		||||
          register_code(KC_LALT);
 | 
			
		||||
        } 
 | 
			
		||||
        alt_tab_timer = timer_read();
 | 
			
		||||
        register_code(KC_TAB);
 | 
			
		||||
      } else {
 | 
			
		||||
        unregister_code(KC_TAB);
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_user(void) {     # The very important timer. 
 | 
			
		||||
  if (is_alt_tab_active) {
 | 
			
		||||
    if (timer_elapsed(alt_tab_timer) > 1000) {
 | 
			
		||||
      unregister_code16(LALT(KC_TAB));
 | 
			
		||||
      is_alt_tab_active = false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
##  **(DEPRECATED)** The Old Way: `MACRO()` & `action_get_macro`
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -273,7 +316,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Advanced Example: Single-Key Copy/Paste
 | 
			
		||||
## Advanced Example: 
 | 
			
		||||
 | 
			
		||||
### Single-Key Copy/Paste
 | 
			
		||||
 | 
			
		||||
This example defines a macro which sends `Ctrl-C` when pressed down, and `Ctrl-V` when released.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue