mirror of
https://github.com/qmk/qmk_userspace.git
synced 2026-07-27 20:01:55 -04:00
Feels good man
This commit is contained in:
parent
e868713021
commit
204f9e724e
9 changed files with 131 additions and 70 deletions
|
|
@ -6,7 +6,6 @@
|
|||
/// @brief Custom keycodes.
|
||||
enum CustomKeycodes {
|
||||
WIN_SWAP = SAFE_RANGE, // custom alt-tabbing
|
||||
PH_P, // placeholder key that passes through to P when Ctrl is held
|
||||
};
|
||||
|
||||
#define TD_CLS TD(TD_CAD_LOCK_SLEEP)
|
||||
|
|
@ -21,12 +20,10 @@ enum CustomKeycodes {
|
|||
#define ZOOM_IN C(KC_EQL)
|
||||
#define ZOOM_OUT C(KC_MINS)
|
||||
|
||||
#define SFT_BSPC SFT_T(KC_BSPC)
|
||||
|
||||
// layers
|
||||
#define SYM_ENT LT(_SYM, KC_ENT)
|
||||
#define NUM MO(_NUM)
|
||||
#define SYM_BSPC LT(_SYM, KC_BSPC)
|
||||
#define NAV_TAB LT(_NAV, KC_TAB)
|
||||
#define NUM_SPC LT(_NUM, KC_SPC)
|
||||
#define FN_LAUNCH LT(_FUNC, LAUNCH)
|
||||
#define FN_ESC LT(_FUNC, KC_ESC)
|
||||
#define ARROW MO(_SH_ARROW)
|
||||
|
|
|
|||
|
|
@ -2,11 +2,41 @@
|
|||
#include "../alias.h"
|
||||
#include "../layers/layers.h"
|
||||
|
||||
uint16_t get_combo_term(uint16_t combo_index, combo_t* combo) {
|
||||
switch (combo_index) {
|
||||
case NumCombo:
|
||||
return 75; // make a larger window for triggering the combo
|
||||
break;
|
||||
}
|
||||
return COMBO_TERM;
|
||||
}
|
||||
|
||||
bool process_combo_key_release(
|
||||
uint16_t combo_index, combo_t* combo, uint8_t key_index, uint16_t keycode
|
||||
) {
|
||||
switch (combo_index) {
|
||||
case NumCombo:
|
||||
// whenever one of the layer keys is released, turn off that layer (this will
|
||||
// automatically turn off the NUM layer because of the layer_state_set_user() callback)
|
||||
switch (keycode) {
|
||||
case SYM_BSPC:
|
||||
layer_off(_SYM);
|
||||
break;
|
||||
case NAV_TAB:
|
||||
layer_off(_NAV);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool process_combo_key_repress(
|
||||
uint16_t combo_index, combo_t* combo, uint8_t key_index, uint16_t keycode
|
||||
) {
|
||||
switch (combo_index) {
|
||||
case WinSwapCombo:
|
||||
// implement the tab left and tab right part of alt-tab
|
||||
switch (keycode) {
|
||||
case TAB_LEFT:
|
||||
tap_code16(S(KC_TAB));
|
||||
|
|
|
|||
|
|
@ -3,5 +3,6 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum Combos {
|
||||
NumCombo,
|
||||
WinSwapCombo,
|
||||
};
|
||||
};
|
||||
|
|
@ -4,14 +4,14 @@
|
|||
|
||||
// tap-hold
|
||||
#define QUICK_TAP_TERM_PER_KEY
|
||||
// #define HOLD_ON_OTHER_KEY_PRESS
|
||||
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
|
||||
#define PERMISSIVE_HOLD_PER_KEY
|
||||
#define HOLD_ON_OTHER_KEY_PRESS
|
||||
// #define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
|
||||
// #define PERMISSIVE_HOLD_PER_KEY
|
||||
|
||||
// combos
|
||||
// #define COMBO_PROCESS_KEY_RELEASE
|
||||
#define COMBO_PROCESS_KEY_RELEASE
|
||||
#define COMBO_PROCESS_KEY_REPRESS
|
||||
// #define COMBO_TERM_PER_COMBO
|
||||
#define COMBO_TERM_PER_COMBO
|
||||
|
||||
#define CAPS_WORD_IDLE_TIMEOUT 0
|
||||
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_NO,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, TD_CLS, GAME, KC_N, KC_M, KC_COMM, KC_DOT, KC_SCLN, KC_NO,
|
||||
KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, TD_CLS, GAME, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_LAUNCH, NAV_TAB, NUM_SPC, SFT_BSPC, SYM_ENT, ARROW
|
||||
FN_LAUNCH, NAV_TAB, KC_SPC, OS_LSFT, SYM_BSPC, ARROW
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
|
|
@ -33,21 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAME), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_ESC, KC_I, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
[_NUM] = LAYOUT(
|
||||
//┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐ ┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_SLSH, KC_E, KC_ASTR, KC_MINS, KC_PLUS, KC_CIRC, KC_NO, KC_NO, KC_LPRN, KC_RPRN, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DOT, QK_BOOT, KC_NO, KC_COLN, KC_COMM, KC_DOT, KC_SCLN, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_LAUNCH, NAV_TAB, NUM_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
FN_ESC, KC_I, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
|
|
@ -57,11 +43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_BSLS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_PLUS, OS_RSFT, OS_RCTL, OS_RALT, OS_RGUI, KC_TRNS,
|
||||
KC_TRNS, KC_BSLS, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_GRV, OS_LSFT, OS_LCTL, OS_LALT, OS_LGUI, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_CAPS, KC_PIPE, KC_LCBR, KC_RCBR, KC_UNDS, KC_GRV, TD_CLS, QK_BOOT, KC_TILD, KC_QUES, KC_LABK, KC_RABK, KC_SLSH, KC_TRNS,
|
||||
KC_CAPS, KC_PIPE, KC_LCBR, KC_RCBR, KC_UNDS, KC_PLUS, TD_CLS, QK_BOOT, KC_TILD, KC_COLN, KC_LABK, KC_RABK, KC_SCLN, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_LAUNCH, NAV_TAB, NUM_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
FN_LAUNCH, NAV_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
|
|
@ -69,13 +55,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
//┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐ ┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_ESC, KC_NO, TAB_LEFT, TAB_RIGHT, LAUNCH, KC_NO, KC_HOME, KC_UP, KC_END, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_ESC, LAUNCH, TAB_LEFT, TAB_RIGHT, C(KC_Y), KC_NO, KC_HOME, KC_UP, KC_END, KC_SCLN, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, OS_LGUI, OS_LALT, OS_LCTL, OS_LSFT, CW_TOGG, COMPOSE, KC_LEFT, KC_DOWN, KC_RGHT, KC_SLSH, KC_TRNS,
|
||||
KC_TRNS, OS_LGUI, OS_LALT, OS_LCTL, OS_LSFT, CW_TOGG, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), C(KC_Y), TD_CLS, QK_BOOT, KC_F2, KC_CAPS, KC_COMM, KC_DOT, KC_SCLN, KC_TRNS,
|
||||
KC_TRNS, C(KC_Z), C(KC_X), C(KC_C), KC_SPC, C(KC_V), TD_CLS, QK_BOOT, COMPOSE, KC_F2, KC_COMM, KC_DOT, KC_DEL, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_LAUNCH, NAV_TAB, NUM_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
FN_LAUNCH, NAV_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
[_NUM] = LAYOUT(
|
||||
//┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐ ┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_SLSH, KC_E, KC_ASTR, KC_MINS, KC_PLUS, KC_CIRC, KC_NO, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_DOT, QK_BOOT, KC_SCLN, KC_COLN, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_LAUNCH, NAV_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_BRID, KC_BRIU, KC_WBAK, KC_WFWD, KC_MUTE, TD_CLS, QK_BOOT, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_LAUNCH, NAV_TAB, NUM_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
FN_LAUNCH, NAV_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
|
|
@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TD_CLS, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
FN_LAUNCH, NAV_TAB, NUM_SPC, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
FN_LAUNCH, NAV_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
|
|
@ -115,10 +115,11 @@ tap_dance_action_t tap_dance_actions[] = {
|
|||
[TD_GAMER_MODE] = ACTION_TAP_DANCE_FN(enter_gamer_mode),
|
||||
};
|
||||
|
||||
// const uint16_t PROGMEM num_layer_combo[] = {NAV_SPC, SYM_ENT, COMBO_END};
|
||||
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};
|
||||
|
||||
combo_t key_combos[] = {
|
||||
[NumCombo] = COMBO(num_layer_combo, NUM),
|
||||
[WinSwapCombo] = COMBO(win_swap_combo, WIN_SWAP),
|
||||
};
|
||||
|
||||
|
|
@ -127,10 +128,27 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
|
||||
switch (keycode) {
|
||||
// allow NAV and SYM to override each other
|
||||
case SYM_ENT:
|
||||
case SYM_BSPC:
|
||||
if (!record->tap.count) {
|
||||
// if NAV is on, turn it off when SYM is turned on, then restore it when SYM is
|
||||
// turned off
|
||||
// if we're NUM-latched, don't interfere with the states
|
||||
if (NAV_is_on) {
|
||||
record->event.pressed ? layer_off(_NAV) : layer_on(_NAV);
|
||||
record->event.pressed && !NUM_latched ? layer_off(_NAV) : layer_on(_NAV);
|
||||
}
|
||||
} else {
|
||||
// backspace -> obliterate line
|
||||
if (record->event.pressed) {
|
||||
uint8_t mods = get_mods();
|
||||
if ((mods | get_oneshot_mods()) & OBLITERATE_TRIGGER_MODS) {
|
||||
tap_code(DUMMY_MOD_NEUTRALIZER_KEYCODE);
|
||||
unregister_mods(OBLITERATE_TRIGGER_MODS);
|
||||
clear_oneshot_mods();
|
||||
tap_code16(S(KC_HOME));
|
||||
register_code(KC_BSPC);
|
||||
set_mods(mods);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -159,23 +177,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
}
|
||||
break;
|
||||
|
||||
case SFT_BSPC: // obliterate line backwards
|
||||
if (record->tap.count && record->event.pressed) {
|
||||
uint8_t mods = get_mods();
|
||||
if ((mods | get_oneshot_mods()) & OBLITERATE_TRIGGER_MODS) {
|
||||
tap_code(DUMMY_MOD_NEUTRALIZER_KEYCODE);
|
||||
unregister_mods(OBLITERATE_TRIGGER_MODS);
|
||||
clear_oneshot_mods();
|
||||
tap_code16(S(KC_HOME));
|
||||
register_code(KC_BSPC);
|
||||
set_mods(mods);
|
||||
return false;
|
||||
}
|
||||
case KC_SPC:
|
||||
if (get_highest_layer(layer_state) == _GAME) {
|
||||
return true; // return early
|
||||
}
|
||||
break;
|
||||
|
||||
case NUM_SPC: // menu shortcut
|
||||
if (record->tap.count && record->event.pressed) {
|
||||
// have to implement this here instead of as a key override because it was acting
|
||||
// weird with layers as a key override
|
||||
if (record->event.pressed) {
|
||||
uint8_t mods = get_mods();
|
||||
if ((mods | get_oneshot_mods()) & MOD_MASK_CTRL) {
|
||||
del_mods(MOD_MASK_CTRL);
|
||||
|
|
@ -232,6 +240,7 @@ const key_override_t GRV_NOSHIFT = ko_make_basic(MOD_MASK_SHIFT, KC_GRV, KC_GRV)
|
|||
// this globally defines all key overrides to be used
|
||||
const key_override_t* key_overrides[] = {
|
||||
&Q_TO_KILL,
|
||||
|
||||
// blocking formatting with this line
|
||||
&DEL_TO_OBLITERATE,
|
||||
|
||||
|
|
|
|||
24
keyboards/keebio/iris_lm/keymaps/drew/layers/layers.c
Normal file
24
keyboards/keebio/iris_lm/keymaps/drew/layers/layers.c
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#include "./layers.h"
|
||||
|
||||
bool NUM_latched = false;
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
// NUM latching
|
||||
if (NUM_latched) {
|
||||
if (IS_LAYER_ON_STATE(state, _SYM) && IS_LAYER_ON_STATE(state, _NAV)) {
|
||||
state |= 1 << _NUM; // turn on NUM
|
||||
} else {
|
||||
// if both NAV and SYM are off, de-latch NUM
|
||||
if (!IS_LAYER_ON_STATE(state, _SYM) && !IS_LAYER_ON_STATE(state, _NAV)) {
|
||||
NUM_latched = false;
|
||||
}
|
||||
// since both layers aren't held, turn off NUM
|
||||
state &= ~(1 << _NUM);
|
||||
}
|
||||
} else if (IS_LAYER_ON_STATE(state, _NUM)) {
|
||||
NUM_latched = true;
|
||||
state |= 1 << _NAV | 1 << _SYM; // turn on NAV and SYM too
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
|
@ -6,10 +6,11 @@
|
|||
enum {
|
||||
_BASE,
|
||||
_GAME,
|
||||
_NUM,
|
||||
_SYM,
|
||||
_NAV,
|
||||
_NUM,
|
||||
_FUNC,
|
||||
_SH_ARROW,
|
||||
};
|
||||
|
||||
extern bool NUM_latched;
|
||||
|
|
@ -2,6 +2,7 @@ BOOTLOADER = stm32-dfu
|
|||
|
||||
SRC += caps_word/caps_word.c
|
||||
SRC += tap_dance/tap_dance.c
|
||||
SRC += layers/layers.c
|
||||
SRC += combos/combos.c
|
||||
SRC += taphold/taphold_options.c
|
||||
SRC += utils/utils.c
|
||||
|
|
|
|||
|
|
@ -6,29 +6,27 @@
|
|||
uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case NAV_TAB:
|
||||
case NUM_SPC:
|
||||
case SFT_BSPC:
|
||||
case SYM_ENT:
|
||||
case SYM_BSPC:
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
return QUICK_TAP_TERM;
|
||||
}
|
||||
|
||||
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case NUM_SPC:
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
// bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t* record) {
|
||||
// switch (keycode) {
|
||||
// case NUM_SPC:
|
||||
// return false;
|
||||
// break;
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
|
||||
bool get_permissive_hold(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case NUM_SPC:
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// bool get_permissive_hold(uint16_t keycode, keyrecord_t* record) {
|
||||
// switch (keycode) {
|
||||
// case NUM_SPC:
|
||||
// return true;
|
||||
// break;
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
Loading…
Reference in a new issue