forked from forks/qmk_firmware
32d03eef90
* 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;
|
|
};
|