Пофиксил баг с умного шифта и капс ворда с тапденсами(тапденсы гавно)

This commit is contained in:
urec56 2025-01-01 23:50:36 +03:00
parent 419fc12d6a
commit daf75b830b

View file

@ -50,9 +50,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,-----------------------------------------------------------------------. ,-----------------------------------------------------------------------.
KC_ESC, KC_O, KC_QUOT, KC_Z, KC_S, KC_RBRC, KC_Q, KC_L, KC_K, KC_R, KC_W, KC_SCLN,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_A, TD(0), TD(2), TD(4), SFT_T(KC_F), KC_M, KC_U, SFT_T(KC_N), TD(5), TD(3), TD(1), KC_X,
KC_A, RWIN_T(KC_C),RALT_T(KC_T),RCTL_T(KC_J),SFT_T(KC_F), KC_M, KC_U, SFT_T(KC_N),RCTL_T(KC_Y),RALT_T(KC_D),RWIN_T(KC_LBRC),KC_X,
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
LA_CHNG, KC_I, KC_DOT, KC_E, KC_B, KC_GRV, KC_COMM, KC_V, KC_H, KC_G, KC_P, XXXXXXX,
LA_CHNG, KC_I, KC_DOT, KC_E, KC_B, KC_GRV, KC_COMM, KC_V, KC_H, KC_G, KC_P, XXXXXXX,
//|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
LT(L_MEDIA, KC_ENT), LT(L_MOUSE, KC_SPC), MO(L_NAV), MO(L_SYM), LT(L_FUN, KC_BSPC), MO(L_NUM)
//`+--------------------+--------------------+--------------------||--------------------+--------------------+--------------------+'
@ -138,11 +138,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|-----------+-----------+-----------+-----------+-----------+-----------| |-----------+-----------+-----------+-----------+-----------+-----------|
KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_LEFT, KC_DOWN, KC_RGHT, KC_M, KC_SLSH,
//|-----------+-----------+-----------+-----------+-----------+-----------+-----------||-----------+-----------+-----------+-----------+-----------+-----------+-----------|
KC_LALT, KC_SPC, LT(L_NUM, KC_ESC), KC_H, KC_SPC, LT(L_FUN, KC_ENT)
KC_LALT, KC_SPC, LT(L_NUM, KC_ESC), KC_H, KC_SPC, LT(L_FUN, KC_ENT)
//`+--------------------+--------------------+--------------------||--------------------+--------------------+--------------------+'
)
};
bool modify_layer(uint16_t keycode, keyrecord_t *record) {
if (!record->tap.count && record->event.pressed) { // Кнопка зажата
register_code(keycode);
lang_shift_process_record(LA_CHNG, record);
return false;
} else if (!record->tap.count && !record->event.pressed) { // Кнопка отжата после зажатия
unregister_code(keycode);
record->event.pressed = true;
lang_shift_process_record(LA_CHNG, record);
record->event.pressed = false;
return false;
}
return true;
};
bool shift_on_next_key = false;
@ -187,6 +201,67 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // В кон
return false;
}
// Модификаторы со сменой слоя на енг
switch (keycode) {
case RWIN_T(KC_C):
case RWIN_T(KC_LBRC):
if (!modify_layer(KC_LWIN, record)) {
return false;
} else {
break;
}
// if (!record->tap.count && record->event.pressed) { // Кнопка зажата
// register_code(KC_LWIN);
// lang_shift_process_record(LA_CHNG, record);
// return false;
// } else if (!record->tap.count && !record->event.pressed) { // Кнопка отжата после зажатия
// unregister_code(KC_LWIN);
// record->event.pressed = true;
// lang_shift_process_record(LA_CHNG, record);
// record->event.pressed = false;
// return false;
// }
case RALT_T(KC_T):
case RALT_T(KC_D):
if (!modify_layer(KC_LALT, record)) {
return false;
} else {
break;
}
// if (!record->tap.count && record->event.pressed) { // Кнопка зажата
// register_code(KC_LALT);
// lang_shift_process_record(LA_CHNG, record);
// return false;
// } else if (!record->tap.count && !record->event.pressed) { // Кнопка отжата после зажатия
// unregister_code(KC_LALT);
// record->event.pressed = true;
// lang_shift_process_record(LA_CHNG, record);
// record->event.pressed = false;
// return false;
// }
case RCTL_T(KC_J):
case RCTL_T(KC_Y):
if (!modify_layer(KC_LCTL, record)) {
return false;
} else {
break;
}
// if (!record->tap.count && record->event.pressed) { // Кнопка зажата
// register_code(KC_LCTL);
// lang_shift_process_record(LA_CHNG, record);
// return false;
// } else if (!record->tap.count && !record->event.pressed) { // Кнопка отжата после зажатия
// unregister_code(KC_LCTL);
// record->event.pressed = true;
// lang_shift_process_record(LA_CHNG, record);
// record->event.pressed = false;
// return false;
// }
}
return true; // Если условия выше не сработали, то отправить символ как есть
};
@ -279,49 +354,3 @@ bool caps_word_press_user(uint16_t keycode) {
return false; // Deactivate Caps Word.
}
}
// Tap Dance. Позволяет юзать норм енг бинды из ру слоя(при зажатии кнопки с модификатором win/alt/ctrl свапается слой на енг и потом назад)
void keyboard_post_init_user(void) {
// Mod keys on RU layer
vial_tap_dance_entry_t td0 = {KC_C, // С on tap, Win on hold
WIN_EN,
KC_NO,
KC_NO,
TAPPING_TERM};
dynamic_keymap_set_tap_dance(0, &td0);
vial_tap_dance_entry_t td1 = {KC_LBRC,// Х on tap, Win on hold
WIN_EN,
KC_NO,
KC_NO,
TAPPING_TERM};
dynamic_keymap_set_tap_dance(1, &td1);
vial_tap_dance_entry_t td2 = {KC_T, // Е on tap, Alt on hold
ALT_EN,
KC_NO,
KC_NO,
TAPPING_TERM};
dynamic_keymap_set_tap_dance(2, &td2);
vial_tap_dance_entry_t td3 = {KC_D, // В on tap, Alt on hold
ALT_EN,
KC_NO,
KC_NO,
TAPPING_TERM};
dynamic_keymap_set_tap_dance(3, &td3);
vial_tap_dance_entry_t td4 = {KC_J, // О on tap, Ctrl on hold
CTRL_EN,
KC_NO,
KC_NO,
TAPPING_TERM};
dynamic_keymap_set_tap_dance(4, &td4);
vial_tap_dance_entry_t td5 = {KC_Y, // Н on tap, Ctrl on hold
CTRL_EN,
KC_NO,
KC_NO,
TAPPING_TERM};
dynamic_keymap_set_tap_dance(5, &td5);
}