From a5d339e28df5394f61d54ec62fb452265afb9e03 Mon Sep 17 00:00:00 2001 From: Drew Whitney Date: Sun, 16 Nov 2025 00:45:42 -0700 Subject: [PATCH] Turned on NKRO --- keyboards/keebio/iris_lm/keymaps/drew/alias.h | 4 +- .../iris_lm/keymaps/drew/combos/combos.c | 52 +++++++++---------- .../iris_lm/keymaps/drew/combos/combos.h | 2 +- .../keebio/iris_lm/keymaps/drew/config.h | 13 +++-- .../keebio/iris_lm/keymaps/drew/keyboard.json | 2 +- .../keebio/iris_lm/keymaps/drew/keymap.c | 51 ++++++++---------- .../iris_lm/keymaps/drew/layers/layers.c | 38 +++++++------- .../iris_lm/keymaps/drew/layers/layers.h | 5 +- .../keebio/iris_lm/keymaps/drew/rules.mk | 2 + .../keymaps/drew/taphold/taphold_options.c | 18 +++++++ 10 files changed, 101 insertions(+), 86 deletions(-) diff --git a/keyboards/keebio/iris_lm/keymaps/drew/alias.h b/keyboards/keebio/iris_lm/keymaps/drew/alias.h index fa2d9d7b..c451ede5 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/alias.h +++ b/keyboards/keebio/iris_lm/keymaps/drew/alias.h @@ -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) diff --git a/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.c b/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.c index 118a5d18..6c481647 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.c +++ b/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.c @@ -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 diff --git a/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.h b/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.h index e69a27af..e505c067 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.h +++ b/keyboards/keebio/iris_lm/keymaps/drew/combos/combos.h @@ -3,6 +3,6 @@ #include QMK_KEYBOARD_H enum Combos { - NumCombo, + // NumCombo, WinSwapCombo, }; diff --git a/keyboards/keebio/iris_lm/keymaps/drew/config.h b/keyboards/keebio/iris_lm/keymaps/drew/config.h index 2c7bfee3..8456e71a 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/config.h +++ b/keyboards/keebio/iris_lm/keymaps/drew/config.h @@ -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 \ No newline at end of file diff --git a/keyboards/keebio/iris_lm/keymaps/drew/keyboard.json b/keyboards/keebio/iris_lm/keymaps/drew/keyboard.json index 34a3ab59..c965343f 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/keyboard.json +++ b/keyboards/keebio/iris_lm/keymaps/drew/keyboard.json @@ -7,7 +7,7 @@ "encoder": false, "extrakey": false, "mousekey": false, - "rgb_matrix": true + "rgb_matrix": false }, "encoder": { "rotary": [ diff --git a/keyboards/keebio/iris_lm/keymaps/drew/keymap.c b/keyboards/keebio/iris_lm/keymaps/drew/keymap.c index f63ab075..0580877a 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/keymap.c +++ b/keyboards/keebio/iris_lm/keymaps/drew/keymap.c @@ -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; } diff --git a/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.c b/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.c index c3cef4f5..c02c0629 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.c +++ b/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.c @@ -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; +// } diff --git a/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.h b/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.h index e1d28993..377b48b2 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.h +++ b/keyboards/keebio/iris_lm/keymaps/drew/layers/layers.h @@ -6,12 +6,11 @@ enum { _BASE, _GAME, + _NUM, _SYM, _NAV, - _NUM, _SH_NUM, _SH_ARROW, }; -extern bool NUM_latched; - +// extern bool NUM_latched; diff --git a/keyboards/keebio/iris_lm/keymaps/drew/rules.mk b/keyboards/keebio/iris_lm/keymaps/drew/rules.mk index 0f8187c5..d7ac4e93 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/rules.mk +++ b/keyboards/keebio/iris_lm/keymaps/drew/rules.mk @@ -17,3 +17,5 @@ CAPS_WORD_ENABLE = yes TAP_DANCE_ENABLE = yes KEY_OVERRIDE_ENABLE = yes COMBO_ENABLE = yes + +NKRO_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keebio/iris_lm/keymaps/drew/taphold/taphold_options.c b/keyboards/keebio/iris_lm/keymaps/drew/taphold/taphold_options.c index 62dc6637..0db267c7 100644 --- a/keyboards/keebio/iris_lm/keymaps/drew/taphold/taphold_options.c +++ b/keyboards/keebio/iris_lm/keymaps/drew/taphold/taphold_options.c @@ -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; +} \ No newline at end of file