diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/clever_keys.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/clever_keys.c index f8ec9123..5cbaad9a 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/clever_keys.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/clever_keys.c @@ -7,7 +7,7 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) { uint16_t prev_keycode = recent[RECENT_SIZE - 1]; const uint8_t mods = get_mods(); - const bool isCaps = is_caps_lock_on() || is_caps_word_on(); + //const bool isCaps = is_caps_lock_on() || is_caps_word_on(); if (isLetter(next_keycode) || next_keycode == E_CIRC) { switch (prev_keycode) { @@ -195,7 +195,8 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) { break; case FR_A: - if (prev_keycode == FR_O && !isCaps) { + //if (prev_keycode == FR_O && !isCaps) { + if (prev_keycode == FR_O) { // "oa" -> "oi" clear_recent_keys(); // To prevent infinite loop return replace_next_key(FR_I, record); @@ -203,7 +204,8 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) { break; case FR_I: - if (prev_keycode == FR_O && !isCaps && recent[RECENT_SIZE - 3] != FR_Q) { + //if (prev_keycode == FR_O && !isCaps && recent[RECENT_SIZE - 3] != FR_Q) { + if (prev_keycode == FR_O && recent[RECENT_SIZE - 3] != FR_Q) { // "oi" -> "oa", for "keyboard" clear_recent_keys(); // To prevent infinite loop return replace_next_key(FR_A, record); @@ -243,6 +245,15 @@ bool clever_key_finder(uint16_t next_keycode, keyrecord_t* record) { case I_TREM: return process_accent(FR_TREM, FR_I, record); + + case CIRC: + return process_accent(FR_ACIR, KC_SPC, record); + + case TILDE: + return process_accent(FR_TILD, KC_SPC, record); + + case GRAVE: + return process_accent(FR_GRV, KC_SPC, record); } return false; // Process next keycode normally diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/macros.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/macros.c index 7d45d5c6..2c522c10 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/macros.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/macros.c @@ -35,7 +35,7 @@ bool process_macros(uint16_t keycode, keyrecord_t *record) { case _BASE: tap_code(KC_F13); return false; - case _SYMNUM: + case _SYMBOLS: tap_code(KC_F14); return false; case _SHORTNAV: diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c index 5ba71fa3..344b37a5 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c @@ -28,13 +28,13 @@ bool is_num_word_enabled(void) { void enable_num_word(void) { //if (is_num_word_on) return; is_num_word_on = true; - layer_on(_SYMNUM); + layer_on(_NUMBERS); } void disable_num_word(void) { //if (!is_num_word_on) return; is_num_word_on = false; - layer_off(_SYMNUM); + layer_off(_NUMBERS); exit_num_word = false; } @@ -53,20 +53,22 @@ bool should_terminate_num_word(uint16_t keycode, const keyrecord_t *record) { // Keycodes which should not disable num word mode. // Numpad keycodes -/* case KC_P1 ... KC_P0: - case KC_PDOT: - case FR_SLSH: */ + case KC_P1 ... KC_P0: + case KC_PDOT: + case FR_VIRG: + case FR_MOIN: + case FR_ASTX: + case FR_PLUS: + case FR_SLSH: + case FR_ACIR: + case FR_CARN: // Misc case KC_BSPC: case NUMWORD: // For the combo NUMWORD to work -/* case FR_MOIN: +/* case FR_EGAL: - case FR_ACIR: - case FR_VIRG: - case FR_ASTX: - case FR_PLUS: case FR_BSLS: // Misc @@ -79,7 +81,7 @@ bool should_terminate_num_word(uint16_t keycode, const keyrecord_t *record) { return false; */ } - if (!on_left_hand(record->event.key)) { return false; } + //if (!on_left_hand(record->event.key)) { return false; } return true; } 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 e05b5d54..71d4c023 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c @@ -70,7 +70,7 @@ const custom_altgr_key_t custom_altgr_keys[] = { //{FR_I, FR_LDAQ}, //{FR_T, FR_RDAQ}, {FR_J, FR_CURR}, - {FR_H, FR_HASH}, + //{FR_H, FR_HASH}, {FR_Q, FR_SECT}, {KC_KP_8, FR_INFN}, {FR_F, FR_DEG} @@ -95,6 +95,7 @@ bool os4a_layer_changer(uint16_t keycode) { case OS_FA: case NUMWORD: case TT_FA: + case OS_SN: return true; default: return false; @@ -143,6 +144,7 @@ bool is_oneshot_ignored_key(uint16_t keycode) { case OS_LALT: case OS_WIN: case OS_FA: + case OS_SN: case NUMWORD: case TT_FA: return true; diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c index 22b115f4..bf372e4e 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c @@ -237,7 +237,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, FR_AGRV, FR_B, FR_EACU, FR_POIN, FR_MOIN, FR_ACIR, FR_V, FR_L, FR_M, FR_X, FR_W, KC_ENT, ALT_T(FR_O), SFT_T(FR_U), ALGR_T(FR_A), LCTL_T(FR_I), FR_J, FR_G, RCTL_T(FR_T), ALGR_T(FR_S), RSFT_T(FR_N), ALT_T(FR_R), FR_F, LT_TAB, FR_Q, FR_Y, FR_EGRV, LWIN_T(FR_P), FR_DQUO, KC_BSPC, KC_END, KC_HOME, KC_DEL, FR_K, RWIN_T(FR_D), FR_Z, FR_H, FR_C, LT_CCED, - TG(_SYMNUM), KC_SPC, OSM(MOD_LSFT), LT(_SYMNUM,FR_E), LT_VIRG, LT_APOS, LT(_SYMNUM,KC_SPC), OSM(MOD_RSFT), KC_RGUI, KC_MUTE + TG(_SYMBOLS), KC_SPC, OSM(MOD_LSFT), LT(_SYMBOLS,FR_E), LT_VIRG, LT_APOS, LT(_SYMBOLS,KC_SPC), OSM(MOD_RSFT), KC_RGUI, KC_MUTE ), @@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | , | | | | | * `----------------------------------' `----------------------------------' */ - [_SYMNUM] = LAYOUT( + [_SYMBOLS] = LAYOUT( KC_ESC, FR_EXLM, FR_QUES, FR_ESPR, FR_PVIR, FR_PIPE, FR_MOIN, KC_P7, KC_P8, KC_P9, FR_ASTX, KC_NUM, _______, FR_LACL, SFT_T(FR_RACL), ALGR_T(FR_LPRN), FR_RPRN, LAYER_LCK, FR_EGAL, RCTL_T(KC_P4), ALGR_T(KC_P5), KC_P6, FR_SLSH, FR_BSLS, _______, FR_LBKT, FR_RBKT, FR_INF, FR_SUP, FR_CARN, _______, _______, _______, _______, FR_ACIR, KC_P1, KC_P2, KC_P3, FR_PLUS, FR_PERC, diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c index 6e209f62..222851eb 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c @@ -25,6 +25,7 @@ uint16_t global_quick_tap_timer = 0; bool forbidden_chord(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record, uint16_t other_keycode, keyrecord_t* other_record) { switch (tap_hold_keycode) { + case LT_REPT: case LT_MGC: return false; } @@ -156,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' */ [_L_MODS] = LAYOUT( - KC_NO, KC_NO, KC_NO, OS_WIN, KC_RGUI, KC_NO, _______, _______, _______, _______, _______, _______, + KC_NO, KC_NO, OS_SN, OS_WIN, KC_RGUI, KC_NO, _______, _______, _______, _______, _______, _______, KC_NO, OS_RALT, OS_FA, OS_CTRL, OS_SHFT, KC_NO, _______, _______, _______, _______, _______, _______, KC_NO, OS_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO, KC_NO, _______, _______, _______, CAPSWORD, _______, KC_CAPS, _______, _______ @@ -197,11 +198,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | , | | | | | * `----------------------------------' `----------------------------------' */ - [_SYMNUM] = LAYOUT( - KC_NO, FR_PIPE, FR_ESPR, FR_UNDS, FR_PVIR, FR_ACIR, FR_MOIN, KC_P7, KC_P8, KC_P9, FR_ASTX, _______, - _______, ALGR_T(FR_LACL), FR_RACL, FR_LPRN, SFT_T(FR_RPRN), FR_CARN, FR_EGAL, KC_P4, KC_P5, KC_P6, ALGR_T(FR_SLSH), _______, - _______, FR_LBKT, FR_RBKT, FR_INF, FR_SUP, KC_NO, _______, _______, _______, _______, KC_NO, KC_P1, KC_P2, KC_P3, FR_PLUS, _______, - _______, _______, _______, KC_SPC, LT_VIRG, NUMWORD, KC_P0, KC_PDOT, _______, _______ + [_SYMBOLS] = LAYOUT( + _______, CIRC, FR_EXLM, FR_EGAL, FR_DLR, FR_AROB, FR_HASH, FR_INF, FR_SUP, FR_QUES, FR_2PTS, _______, + _______, FR_ASTX, FR_PLUS, FR_MOIN, FR_SLSH, FR_BSLS, GRAVE, FR_LPRN, FR_RPRN, FR_PVIR, FR_DQUO, _______, + _______, FR_PERC, TILDE, FR_PIPE, FR_ESPR, KC_NO, _______, _______, _______, _______, KC_NO, FR_LACL, FR_RACL, FR_LBKT, FR_RBKT, _______, + _______, _______, _______, FR_UNDS, _______, _______, FR_UNDS, KC_PDOT, _______, _______ ), /* @@ -218,12 +219,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | , | | | | | * `----------------------------------' `----------------------------------' */ -/* [_NUMPAD] = LAYOUT( - _______, _______, _______, _______, _______, FR_ACIR, FR_MOIN, KC_P7, KC_P8, KC_P9, FR_ASTX, _______, - OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_RSFT), OSM(MOD_RALT), OSM(MOD_LCTL), FR_CARN, FR_EGAL, KC_P4, KC_P5, KC_P6, FR_SLSH, FR_BSLS, - _______, KC_SPC, _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO , KC_P1, KC_P2, KC_P3, FR_PLUS, _______, - _______, _______, _______, KC_SPC , FR_VIRG, NUMWORD, KC_P0, KC_PDOT, _______, _______ - ), */ + [_NUMBERS] = LAYOUT( + _______, _______, _______, FR_ASTX, _______, FR_ACIR, _______, _______, FR_PLUS, FR_MOIN, _______, _______, + _______, KC_P8, KC_P6, KC_P4, KC_P2, FR_CARN, _______, KC_KP_1, KC_P3, KC_P5, KC_P7, _______, + _______, _______, _______, _______, FR_SLSH, _______, _______, _______, _______, _______, _______, KC_P9, _______, _______, _______, _______, + _______, _______, FR_VIRG, KC_P0 , NUMWORD, LT_REPT, KC_SPC, KC_PDOT, _______, _______ + ), /* * Layer 2 : Symbols @@ -261,18 +262,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' */ [_ACCENTS] = LAYOUT( - _______, O_CIRC, A_CIRC, I_CIRC, U_CIRC, FR_LDAQ , FR_RDAQ, FR_TREM, FR_GRV, FR_ACIR, FR_CEDL, _______, - _______, OU_GRV, FR_AGRV, FR_DQUO, FR_MOIN, ALGR(FR_G), _______, FR_J, _______, FR_AROB, _______, _______, + _______, O_CIRC, A_CIRC, I_CIRC, U_CIRC, FR_LDAQ , FR_RDAQ, FR_3PTS, FR_MOIN, FR_APOS, FR_POIN, _______, + _______, OU_GRV, FR_AGRV, FR_MOIN, FR_DQUO, ALGR(FR_G), FR_SS, FR_J, TILDE, FR_AROB, _______, _______, _______, FR_OE, FR_AE, I_TREM, CA_CED, _______ , _______, _______, _______, _______, _______, FR_CCED, FR_TREM, FR_K, TG_ACC, _______, _______, _______, _______ , FR_EGRV, E_CIRC, _______, AGRV_SPC, _______, _______, _______ ), -/* [_ACCENTS] = LAYOUT( - _______, _______, _______, _______, _______, FR_LDAQ , FR_RDAQ, U_CIRC, I_CIRC, A_CIRC, O_CIRC, _______, - _______, _______, FR_DQUO, _______, FR_J, ALGR(FR_G), _______, FR_AROB, FR_MOIN, FR_K, OU_GRV, _______, - _______, _______, FR_AGRV, I_TREM, CA_CED, _______ , _______, _______, _______, _______, _______, FR_CCED, FR_UNDS, FR_AE, FR_OE, _______, - _______, _______, _______ , FR_EGRV, E_CIRC, _______, AGRV_SPC, _______, _______, _______ - ), */ /* * Layer 3 : Symbols + function keys @@ -289,10 +284,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' */ [_SHORTNAV] = LAYOUT( - _______, KC_BSPC, LWIN(KC_TAB), LWIN(FR_V), RCS(FR_V), _______, KC_PGUP, C(KC_LEFT), KC_UP, C(KC_RGHT), _______, _______, - _______, C(FR_A), C(FR_X), C(FR_V), SFT_T(COPY), _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F2 , _______, - _______, KC_SPC, KC_SPC, KC_SPC, C(FR_Z), C(FR_Y), _______, S(KC_END), S(KC_HOME), _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, KC_BSPC, LWIN(KC_TAB), LWIN(FR_V), RCS(FR_V), _______, KC_PGUP, C(KC_LEFT), KC_UP, C(KC_RGHT), _______, _______, + _______, C(FR_A), C(FR_X), C(FR_V), SFT_T(COPY), _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F2 , _______, + _______, KC_SPC, KC_SPC, KC_SPC, C(FR_Z), C(FR_Y), _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h index 5fd0bd28..f426ca0a 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h @@ -34,7 +34,8 @@ enum layers { // OS4A layers should be as closed as base layer as possible _L_MODS, _R_MODS, - _SYMNUM, + _SYMBOLS, + _NUMBERS, _ACCENTS, _SHORTNAV, _FUNCAPPS, @@ -60,6 +61,9 @@ enum custom_keycodes { U_CIRC, I_TREM, CA_CED, + CIRC, + TILDE, + GRAVE, MAGIC, OS_SHFT, OS_CTRL, @@ -69,15 +73,16 @@ enum custom_keycodes { }; // Layer taps -#define LT_SPC LT(_SYMNUM,KC_SPC) -#define LT_E LT(_SYMNUM,FR_E) -#define LT_REPT LT(_SHORTNAV, KC_0) -#define LT_MGC LT(_SHORTNAV, KC_1) -#define LT_D LT(_FUNCAPPS, FR_D) -#define LT_C LT(_FUNCAPPS, FR_C) +#define LT_SPC LT(_SYMBOLS,KC_SPC) +#define LT_E LT(_SYMBOLS,FR_E) +#define LT_REPT LT(_NUMBERS, KC_0) +#define LT_MGC LT(_SHORTNAV, KC_0) +#define LT_D FR_D +#define LT_C FR_C #define LT_VIRG LT(_SHORTNAV, FR_VIRG) #define OS_ACC OSL(_ACCENTS) #define OS_FA OSL(_FUNCAPPS) +#define OS_SN OSL(_SHORTNAV) #define TT_FA TT(_FUNCAPPS) #define TG_ACC TG(_ACCENTS) diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/oled.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/oled.c index 028883bc..5aeed485 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/oled.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/oled.c @@ -53,7 +53,7 @@ bool oled_task_user(void) { case _R_MODS: oled_write_P(PSTR("Mods D\n"), false); break; - case _SYMNUM: + case _SYMBOLS: oled_write_P(PSTR("SymNum\n"), false); break; case _SHORTNAV: