mirror of
https://github.com/qmk/qmk_userspace.git
synced 2026-07-29 04:34:19 -04:00
Turned on NKRO
This commit is contained in:
parent
455a63f75d
commit
a5d339e28d
10 changed files with 101 additions and 86 deletions
|
|
@ -6,7 +6,6 @@
|
|||
/// @brief Custom keycodes.
|
||||
enum CustomKeycodes {
|
||||
WIN_SWAP = SAFE_RANGE, // custom alt-tabbing
|
||||
OSO_SHIFT, // makes thumb shift oneshot-only
|
||||
PH_P, // placeholder key that passes through to P when Ctrl is held
|
||||
};
|
||||
|
||||
|
|
@ -25,7 +24,8 @@ enum CustomKeycodes {
|
|||
// layers
|
||||
#define SYM_ENT LT(_SYM, KC_ENT)
|
||||
#define NAV_CANCEL LT(_NAV, KC_NO) // have to implement this functionality
|
||||
#define NUM MO(_NUM)
|
||||
#define NUM_SPC LT(_NUM, KC_SPC)
|
||||
// #define NUM MO(_NUM)
|
||||
#define LAUNCH_NUM LT(_SH_NUM, LAUNCH)
|
||||
#define COMP_ARROW LT(_SH_ARROW, COMPOSE)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,33 +2,33 @@
|
|||
#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;
|
||||
break;
|
||||
}
|
||||
return COMBO_TERM;
|
||||
}
|
||||
// uint16_t get_combo_term(uint16_t combo_index, combo_t *combo) {
|
||||
// switch (combo_index) {
|
||||
// case NumCombo:
|
||||
// return 75;
|
||||
// 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: // release the combo on any releases
|
||||
switch (keycode) {
|
||||
case SYM_ENT:
|
||||
layer_off(_SYM);
|
||||
break;
|
||||
case NAV_CANCEL:
|
||||
layer_off(_NAV);
|
||||
break;
|
||||
}
|
||||
layer_off(_NUM);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// bool process_combo_key_release(
|
||||
// uint16_t combo_index, combo_t* combo, uint8_t key_index, uint16_t keycode
|
||||
// ) {
|
||||
// switch (combo_index) {
|
||||
// case NumCombo: // release the combo on any releases
|
||||
// switch (keycode) {
|
||||
// case SYM_ENT:
|
||||
// layer_off(_SYM);
|
||||
// break;
|
||||
// case NAV_CANCEL:
|
||||
// layer_off(_NAV);
|
||||
// break;
|
||||
// }
|
||||
// layer_off(_NUM);
|
||||
// break;
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
|
||||
bool process_combo_key_repress(
|
||||
uint16_t combo_index, combo_t* combo, uint8_t key_index, uint16_t keycode
|
||||
|
|
|
|||
|
|
@ -3,6 +3,6 @@
|
|||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum Combos {
|
||||
NumCombo,
|
||||
// NumCombo,
|
||||
WinSwapCombo,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,18 +1,21 @@
|
|||
#pragma once
|
||||
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
// tap-
|
||||
// tap-hold
|
||||
#define QUICK_TAP_TERM_PER_KEY
|
||||
#define HOLD_ON_OTHER_KEY_PRESS
|
||||
// #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
|
||||
|
||||
#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_RCTL
|
||||
#define MODS_TO_NEUTRALIZE {MOD_BIT(KC_LALT), MOD_BIT(KC_RALT), MOD_BIT(KC_LGUI), MOD_BIT(KC_RGUI)}
|
||||
|
||||
#define NKRO_DEFAULT_ON true
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
"encoder": false,
|
||||
"extrakey": false,
|
||||
"mousekey": false,
|
||||
"rgb_matrix": true
|
||||
"rgb_matrix": false
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
//┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐ ┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
|
|
@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┐ ┌───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
CW_TOGG, KC_Z, KC_X, KC_C, KC_V, KC_B, TD_CLS, GAME, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_DEL,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
LAUNCH_NUM, NAV_CANCEL, KC_SPC, OSO_SHIFT, SYM_ENT, COMP_ARROW
|
||||
LAUNCH_NUM, NAV_CANCEL, NUM_SPC, OS_LSFT, SYM_ENT, COMP_ARROW
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
|
|
@ -37,9 +37,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
[_NUM] = LAYOUT(
|
||||
//┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐ ┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
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_TRNS, QK_BOOT, KC_NO, KC_COLN, KC_COMM, KC_DOT, KC_SCLN, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
KC_TRNS, NAV_CANCEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
[_SYM] = 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
|
|
@ -53,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
[_NAV] = 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, ZOOM_OUT, ZOOM_IN, TAB_LEFT, TAB_RIGHT, KC_F11, KC_WFWD, KC_HOME, KC_UP, KC_END, PH_P, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
|
|
@ -65,23 +79,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
[_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_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_TRNS, QK_BOOT, KC_NO, KC_COLN, KC_COMM, KC_DOT, KC_SCLN, KC_TRNS,
|
||||
//└───────────┴───────────┴───────────┴─────┬─────┴─────┬─────┴─────┬─────┴────┬──────┘ └─────┬─────┴─────┬─────┴─────┬─────┴─────┬─────┴───────────┴───────────┴───────────┘
|
||||
KC_TRNS, NAV_CANCEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// └───────────┴───────────┴──────────┘ └───────────┴───────────┴───────────┘
|
||||
),
|
||||
|
||||
[_SH_NUM] = LAYOUT( // single-handed numbers
|
||||
//┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐ ┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐
|
||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_SLSH, KC_DOT, KC_COMM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
|
|
@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
[_SH_ARROW] = LAYOUT( // single-handed arrows
|
||||
//┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐ ┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐
|
||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS,
|
||||
//├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤ ├───────────┼───────────┼───────────┼───────────┼───────────┼───────────┤
|
||||
|
|
@ -115,11 +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_CANCEL, SYM_ENT, COMBO_END};
|
||||
// const uint16_t PROGMEM num_layer_combo[] = {NAV_CANCEL, SYM_ENT, 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),
|
||||
// [NumCombo] = COMBO(num_layer_combo, NUM),
|
||||
[WinSwapCombo] = COMBO(win_swap_combo, WIN_SWAP),
|
||||
};
|
||||
|
||||
|
|
@ -168,13 +168,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case OSO_SHIFT: // make thumb shift oneshot-only
|
||||
if (record->event.pressed) {
|
||||
(!get_oneshot_mods() && MOD_BIT(KC_LSFT) ? add_oneshot_mods
|
||||
: del_oneshot_mods)(MOD_BIT(KC_LSFT));
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,26 +1,26 @@
|
|||
#include "./layers.h"
|
||||
|
||||
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
|
||||
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
|
||||
}
|
||||
// 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
|
||||
// }
|
||||
|
||||
// return update_tri_layer_state(state, _SYM, _NAV, _NUM);
|
||||
|
||||
return state;
|
||||
}
|
||||
// return state;
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -6,12 +6,11 @@
|
|||
enum {
|
||||
_BASE,
|
||||
_GAME,
|
||||
_NUM,
|
||||
_SYM,
|
||||
_NAV,
|
||||
_NUM,
|
||||
_SH_NUM,
|
||||
_SH_ARROW,
|
||||
};
|
||||
|
||||
extern bool NUM_latched;
|
||||
|
||||
// extern bool NUM_latched;
|
||||
|
|
|
|||
|
|
@ -17,3 +17,5 @@ CAPS_WORD_ENABLE = yes
|
|||
TAP_DANCE_ENABLE = yes
|
||||
KEY_OVERRIDE_ENABLE = yes
|
||||
COMBO_ENABLE = yes
|
||||
|
||||
NKRO_ENABLE = yes
|
||||
|
|
@ -6,9 +6,27 @@
|
|||
uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t* record) {
|
||||
switch (keycode) {
|
||||
case SYM_ENT: // no repeat tapping for this key
|
||||
case NUM_SPC:
|
||||
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_permissive_hold(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case NUM_SPC:
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Loading…
Reference in a new issue