From daf75b830b134efaf894040792f8cefaa709f164 Mon Sep 17 00:00:00 2001 From: urec56 Date: Wed, 1 Jan 2025 23:50:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D1=84=D0=B8=D0=BA=D1=81=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B1=D0=B0=D0=B3=20=D1=81=20=D1=83=D0=BC=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=88=D0=B8=D1=84=D1=82=D0=B0=20=D0=B8=20=D0=BA?= =?UTF-8?q?=D0=B0=D0=BF=D1=81=20=D0=B2=D0=BE=D1=80=D0=B4=D0=B0=20=D1=81=20?= =?UTF-8?q?=D1=82=D0=B0=D0=BF=D0=B4=D0=B5=D0=BD=D1=81=D0=B0=D0=BC=D0=B8(?= =?UTF-8?q?=D1=82=D0=B0=D0=BF=D0=B4=D0=B5=D0=BD=D1=81=D1=8B=20=D0=B3=D0=B0?= =?UTF-8?q?=D0=B2=D0=BD=D0=BE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bastardkb/tbkmini/keymaps/seoa/keymap.c | 127 +++++++++++++++--------- 1 file changed, 78 insertions(+), 49 deletions(-) diff --git a/bastardkb/tbkmini/keymaps/seoa/keymap.c b/bastardkb/tbkmini/keymaps/seoa/keymap.c index 16afead..4aeb2ce 100644 --- a/bastardkb/tbkmini/keymaps/seoa/keymap.c +++ b/bastardkb/tbkmini/keymaps/seoa/keymap.c @@ -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); -}