#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; };