mirror of
https://github.com/qmk/qmk_userspace.git
synced 2026-07-27 11:51:55 -04:00
Trying a tri-layer for the NUM layer
This commit is contained in:
parent
7013065e16
commit
a1df29acd7
2 changed files with 31 additions and 28 deletions
|
|
@ -119,12 +119,12 @@ const uint16_t PROGMEM num_layer_combo[] = {NAV_TAB, SYM_BSPC, COMBO_END};
|
||||||
const uint16_t PROGMEM win_swap_combo[] = {TAB_LEFT, TAB_RIGHT, COMBO_END};
|
const uint16_t PROGMEM win_swap_combo[] = {TAB_LEFT, TAB_RIGHT, COMBO_END};
|
||||||
|
|
||||||
combo_t key_combos[] = {
|
combo_t key_combos[] = {
|
||||||
[NumCombo] = COMBO(num_layer_combo, NUM),
|
// [NumCombo] = COMBO(num_layer_combo, NUM),
|
||||||
[WinSwapCombo] = COMBO(win_swap_combo, WIN_SWAP),
|
[WinSwapCombo] = COMBO(win_swap_combo, WIN_SWAP),
|
||||||
};
|
};
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
static bool NAV_is_on = false;
|
// static bool NAV_is_on = false;
|
||||||
|
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
// allow NAV and SYM to override each other
|
// allow NAV and SYM to override each other
|
||||||
|
|
@ -133,9 +133,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
// if NAV is on, turn it off when SYM is turned on, then restore it when SYM is
|
// if NAV is on, turn it off when SYM is turned on, then restore it when SYM is
|
||||||
// turned off
|
// turned off
|
||||||
// if we're NUM-latched, don't interfere with the states
|
// if we're NUM-latched, don't interfere with the states
|
||||||
if (NAV_is_on) {
|
// if (NAV_is_on) {
|
||||||
record->event.pressed && !NUM_latched ? layer_off(_NAV) : layer_on(_NAV);
|
// record->event.pressed && !NUM_latched ? layer_off(_NAV) : layer_on(_NAV);
|
||||||
}
|
// }
|
||||||
} else {
|
} else {
|
||||||
// backspace -> obliterate line
|
// backspace -> obliterate line
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
|
|
@ -153,11 +153,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NAV_TAB:
|
// case NAV_TAB:
|
||||||
if (!record->tap.count) {
|
// if (!record->tap.count) {
|
||||||
NAV_is_on = record->event.pressed;
|
// NAV_is_on = record->event.pressed;
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
|
|
||||||
case WIN_SWAP: // easy Alt-Tab
|
case WIN_SWAP: // easy Alt-Tab
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
|
|
|
||||||
|
|
@ -3,23 +3,26 @@
|
||||||
bool NUM_latched = false;
|
bool NUM_latched = false;
|
||||||
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
// NUM latching
|
// // NUM latching
|
||||||
if (NUM_latched) {
|
// if (NUM_latched) {
|
||||||
if (IS_LAYER_ON_STATE(state, _SYM) && IS_LAYER_ON_STATE(state, _NAV)) {
|
// if (IS_LAYER_ON_STATE(state, _SYM) && IS_LAYER_ON_STATE(state, _NAV)) {
|
||||||
state |= 1 << _NUM; // turn on NUM
|
// state |= 1 << _NUM; // turn on NUM
|
||||||
} else {
|
// } else {
|
||||||
// if both NAV and SYM are off, de-latch NUM
|
// // if both NAV and SYM are off, de-latch NUM
|
||||||
if (!IS_LAYER_ON_STATE(state, _SYM) && !IS_LAYER_ON_STATE(state, _NAV)) {
|
// if (!IS_LAYER_ON_STATE(state, _SYM) && !IS_LAYER_ON_STATE(state, _NAV)) {
|
||||||
NUM_latched = false;
|
// NUM_latched = false;
|
||||||
}
|
// }
|
||||||
// since both layers aren't held, turn off NUM
|
// // since both layers aren't held, turn off NUM
|
||||||
state &= ~(1 << _NUM);
|
// state &= ~(1 << _NUM);
|
||||||
}
|
// }
|
||||||
} else if (IS_LAYER_ON_STATE(state, _NUM)) {
|
// } else if (IS_LAYER_ON_STATE(state, _NUM)) {
|
||||||
NUM_latched = true;
|
// NUM_latched = true;
|
||||||
// turn on NAV and SYM too, since the layer keys were consumed by the combo activation
|
// // turn on NAV and SYM too, since the layer keys were consumed by the combo activation
|
||||||
state |= 1 << _NAV | 1 << _SYM;
|
// state |= 1 << _NAV | 1 << _SYM;
|
||||||
}
|
// }
|
||||||
|
|
||||||
return state;
|
|
||||||
|
// return state;
|
||||||
|
|
||||||
|
return update_tri_layer_state(state, _SYM, _NAV, _NUM);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue