From f1ddb3df0d4deee45eb304e125ca2df7c624c3d3 Mon Sep 17 00:00:00 2001 From: Kawamashi Date: Sun, 27 Apr 2025 17:48:52 +0200 Subject: [PATCH] Avant fusion --- .../rev1/base/keymaps/Kawamashi/clever_keys.c | 24 ++++++++++++++----- .../keymaps/Kawamashi/features/odk_layer.c | 20 ++++++++-------- .../keymaps/Kawamashi/features/odk_layer.h | 2 +- .../Kawamashi/features/tap_hold_utilities.c | 3 +++ .../base/keymaps/Kawamashi/features_conf.c | 7 +++--- .../rev1/base/keymaps/Kawamashi/keymap.c | 12 +++++----- .../rev1/base/keymaps/Kawamashi/keymap.h | 9 +++---- 7 files changed, 46 insertions(+), 31 deletions(-) diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/clever_keys.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/clever_keys.c index 6d88fef3..9d400cba 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/clever_keys.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/clever_keys.c @@ -128,10 +128,20 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) { bkspc_countdown = 0; return replace_ongoing_key(FG_I, next_keycode, record); - case FG_T: + case FG_EACU: + bkspc_countdown = 0; + return replace_ongoing_key(FG_I, next_keycode, record); + + case FG_VIRG: + // éa SFB + bkspc_countdown = 0; + return replace_ongoing_key(FG_A, next_keycode, record); + + case FG_S: invoke_key(FG_I, record); case FG_I: - return finish_word((uint16_t[]) {FG_O, FG_N}, 2, next_keycode, record); + return finish_word((uint16_t[]) {FG_O, FG_T}, 2, next_keycode, record); + //return finish_word((uint16_t[]) {FG_O, FG_N}, 2, next_keycode, record); case FG_C: return finish_word((uint16_t[]) {FG_APOS, FG_E, FG_S, FG_T}, 4, next_keycode, record); @@ -146,8 +156,10 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) { // "avec" return finish_word((uint16_t[]) {FG_V, FG_E, FG_C}, 3, next_keycode, record); - case FG_S: - return finish_word((uint16_t[]) {FG_U, FG_R}, 2, next_keycode, record); + case FG_N: + // sc SFB + bkspc_countdown = 0; + return replace_ongoing_key(FG_L, next_keycode, record); case FG_B: process_word((uint16_t[]) {FG_O, FG_N, FG_J}, 3, record); @@ -232,13 +244,13 @@ void get_clever_keycode(uint16_t* next_keycode, keyrecord_t* record) { } break; - case FG_O: +/* case FG_O: if (prev_keycode == FG_U && recent[RECENT_SIZE - 2] != FG_Q) { // "uo" -> "un" bkspc_countdown = 0; return replace_ongoing_key(FG_N, next_keycode, record); } - break; + break; */ case OU_GRV: layer_off(_ODK); diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.c index b5677448..c3384017 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.c @@ -16,7 +16,7 @@ #include "odk_layer.h" - static uint16_t odk_keycode = KC_NO; +//static uint16_t odk_keycode = KC_NO; bool process_odk_layer(uint16_t keycode, keyrecord_t *record) { @@ -39,9 +39,9 @@ bool process_odk_layer(uint16_t keycode, keyrecord_t *record) { del_oneshot_mods(MOD_MASK_SHIFT); unregister_mods(MOD_MASK_SHIFT); } - layer_on(_ODK); + /*layer_on(_ODK); odk_keycode = KC_NO; - return false; + return false; */ } else if (keycode == FG_ODK) { // Special behaviour of FR_ODK when shifted @@ -56,7 +56,7 @@ bool process_odk_layer(uint16_t keycode, keyrecord_t *record) { return true; } else if (IS_LAYER_ON(_ODK)) { - if (odk_keycode == KC_NO) { odk_keycode = keycode; } + //if (odk_keycode == KC_NO) { odk_keycode = keycode; } //if (!IS_QK_USER(keycode)) { odk_keycode = keycode; } switch (keycode) { @@ -95,10 +95,10 @@ bool process_odk_layer(uint16_t keycode, keyrecord_t *record) { is_shifted = false; } //exit_odk = true; - } else { - odk_keycode = KC_NO; +/* } else { + odk_keycode = KC_NO; */ } - } else { // On release +/* } else { // On release switch (keycode) { case OS_ODK: case FG_ODK: @@ -109,14 +109,14 @@ bool process_odk_layer(uint16_t keycode, keyrecord_t *record) { layer_off(_ODK); odk_keycode = KC_NO; } - } + } */ } return true; } -void odk_layer_exit_check(uint16_t keycode) { +/* void odk_layer_exit_check(uint16_t keycode) { if (keycode == odk_keycode) { layer_off(_ODK); odk_keycode = KC_NO; } -} \ No newline at end of file +} */ \ No newline at end of file diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.h b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.h index 4c67b006..e20064af 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.h +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/odk_layer.h @@ -25,7 +25,7 @@ extern "C" { #endif bool process_odk_layer(uint16_t keycode, keyrecord_t *record); -void odk_layer_exit_check(uint16_t keycode); +//void odk_layer_exit_check(uint16_t keycode); #ifdef __cplusplus } diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/tap_hold_utilities.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/tap_hold_utilities.c index 7987baab..71d72847 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/tap_hold_utilities.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/tap_hold_utilities.c @@ -81,6 +81,9 @@ bool process_custom_tap_hold(uint16_t keycode, keyrecord_t *record) { case SFT_T(COPY): return process_tap_hold(C(FG_C), record); + case LT_NUMWORD: + return process_numword(NUMWORD, record); + case LT_REPT: repeat_key_invoke(&record->event); return false; diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c index 4cb0e1c5..9fef1ea9 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c @@ -63,7 +63,7 @@ uint16_t tap_hold_extractor(uint16_t keycode) { bool caps_word_press_user(uint16_t keycode) { // Caps Word shouldn't be applied with Alt-gr - // Managing underscore on alt gr + E/T. + // Managing underscore and slash on alt gr + E/T. // Underscore and slash must continue Caps Word, without shifting. if ((get_mods() & MOD_BIT(KC_ALGR))) { switch (keycode) { @@ -96,10 +96,9 @@ bool caps_word_press_user(uint16_t keycode) { } } - // - // Keycodes that continue Caps Word, with shift applied. - if (isLetter(keycode)) { + // @ must be shifted, bc of CleverKeys using it. + if (isLetter(keycode) || isSendStringMacro(keycode) || keycode == FG_AROB) { add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key. return true; } diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c index 1b61c765..942cdbaf 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c @@ -115,7 +115,7 @@ void post_process_record_user(uint16_t keycode, keyrecord_t* record) { //if (os4a_layer != 0 && exit_os4a_layer) { os4a_layer_off(os4a_layer); } os4a_layer_exit_check(); numword_exit_check(); - odk_layer_exit_check(keycode); + //odk_layer_exit_check(keycode); end_CK(record); } @@ -223,10 +223,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' */ [_NUMBERS] = LAYOUT( - _______, _______, FG_ASTX, FG_EGAL, KC_7, FG_PERC, S(FG_ACIR), _______, FG_PLUS, FG_MOIN, _______, _______, - _______, KC_4, KC_3, KC_2, MT_1, _______, FG_CARN, MT_SLSH, KC_6, KC_7, KC_8, _______, - _______, _______, _______, _______, KC_5, _______, _______, _______, _______, _______, _______, KC_9, KC_6, _______, FG_ODK, _______, - _______, _______, KC_PDOT, KC_0 , NUMWORD, LT_REPT, KC_SPC, _______, _______, _______ + _______, _______, FG_MOIN, FG_PLUS, KC_7, S(FG_ACIR), FG_PERC, _______, FG_EGAL, FG_ASTX, _______, _______, + _______, KC_4, KC_3, KC_2, MT_1, FG_CARN, _______, MT_SLSH, KC_6, KC_7, KC_8, _______, + _______, _______, _______, _______, KC_5, _______, _______, _______, _______, _______, _______, KC_9, KC_6, _______, FG_ODK, _______, + _______, _______, KC_PDOT, KC_0 , LT_NUMWORD, LT_REPT, KC_SPC, _______, _______, _______ ), @@ -247,7 +247,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ODK] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OU_GRV, _______, _______, FG_3PTS, _______, _______, FG_J, FG_D, FG_AROB, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, FG_CCED, _______, FG_K, CNL_ODK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, FG_K, CNL_ODK, _______, _______, _______, _______, _______, FG_ECIR, _______, _______, _______, _______, _______ ), diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h index 77df1e78..8217975e 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h @@ -68,22 +68,23 @@ enum custom_keycodes { OS_RALT, OS_LALT, OS_WIN, - OS_ODK, + //OS_ODK, CNL_ODK }; // Layer taps #define LT_SPC ALGR_T(KC_SPC) #define LT_E ALGR_T(FG_E) -#define LT_REPT LT(_NUMBERS, KC_0) -#define LT_MGC LT(_SHORTNAV, KC_0) +#define LT_REPT LT(_NUMBERS, KC_1) +#define LT_MGC LT(_SHORTNAV, KC_1) #define OS_FA OSL(_FUNCAPPS) #define TT_FA TT(_FUNCAPPS) #define TG_APOD TG(_APOS_DR) #define MT_SLSH SFT_T(FG_SLSH) #define MT_1 SFT_T(KC_1) +#define LT_NUMWORD LT(_SHORTNAV, NUMWORD) #define E_CIRC S(FG_0) -//#define OS_ODK OSL(_ODK) +#define OS_ODK OSL(_ODK) // One shot mods #define L_OS4A LSFT_T(OS4A)