mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-03 23:02:34 +01:00 
			
		
		
		
	* feat(build): added script for compiling with docker easily * chore: bring my own build with docker to master * chore: delete a file that does not make sense anymore * feat: first redox for danielo * chore: basic compatibility between redox and my space * refactor: removed some old stuff * feat: added go coding symbols * feat: name control_k and alt_j * chore: reduce combo term * feat: improved first layer of redox * feat: add configurations to the redox * feat: make alt tab more portable * feat: small improvements to redox layout * feat: added leader * refactor: move leader defs to my userspace config * chore: movement modified * feat: more predefined keys and a a new combo * feat: redox alt tab functionality * refactor: move alt_tab processing to a separate file * refactor: early return * refactor: move process record to a separate file * format leader function * chore: backspace on digits layer * feat: add extra combo * feat: added more combos * implement guard proposed by @drashna Co-Authored-By: Drashna Jaelre <drashna@live.com> * chore: include @drashna placeholder suggestion Co-Authored-By: Drashna Jaelre <drashna@live.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "danielo515.h"
 | 
						|
#include "alt_tab.h"
 | 
						|
 | 
						|
bool                       altPressed = false;
 | 
						|
__attribute__((weak)) void alt_tab_activated(void){};
 | 
						|
__attribute__((weak)) void alt_tab_deactivated(void){};
 | 
						|
extern bool                onMac;
 | 
						|
 | 
						|
// =============== ALT_TAB single key handling
 | 
						|
bool process_alt_tab(uint16_t keycode, keyrecord_t *record) {
 | 
						|
    switch (keycode) {
 | 
						|
        case ALT_TAB:
 | 
						|
            if (!record->event.pressed) {
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
            if (altPressed) {
 | 
						|
                tap_code(KC_TAB);
 | 
						|
            } else {
 | 
						|
                altPressed = true;
 | 
						|
                onMac ? register_code(KC_LGUI) : register_code(KC_LALT);
 | 
						|
                tap_code(KC_TAB);
 | 
						|
                alt_tab_activated();
 | 
						|
            }
 | 
						|
        // avoid alt releasing if the key is of movement
 | 
						|
        case KC_RIGHT ... KC_UP:
 | 
						|
            if (altPressed) {
 | 
						|
                return true;  // yes QMK, do your stuff
 | 
						|
            }
 | 
						|
    }
 | 
						|
    // Reset sticky alt tab when any other key is pressed
 | 
						|
    if (altPressed) {
 | 
						|
        onMac ? unregister_code(KC_LGUI) : unregister_code(KC_LALT);
 | 
						|
        altPressed = false;
 | 
						|
        alt_tab_deactivated();
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
    return true;
 | 
						|
};
 |