diff --git a/keymap/config.h b/keymap/config.h index 6f70f09..413be83 100644 --- a/keymap/config.h +++ b/keymap/config.h @@ -1 +1,4 @@ #pragma once +#define FORCE_NKRO +#define ONESHOT_TAP_TOGGLE 2 +#define TAPPING_TERM 150 diff --git a/keymap/keymap.c b/keymap/keymap.c index 7169019..a5bbe89 100644 --- a/keymap/keymap.c +++ b/keymap/keymap.c @@ -2,12 +2,10 @@ enum custom_keycodes { _PRIM, - _META, + _M ETA, _NAV, _NUM, - _MEDIA, _SYM, - _QWERTY, }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -15,7 +13,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case LSFT_T(KC_1): if (record->tap.count > 0) { if (!record->event.pressed) { - set_oneshot_layer(5, ONESHOT_OTHER_KEY_PRESSED); + set_oneshot_layer(_SYM, ONESHOT_OTHER_KEY_PRESSED); clear_oneshot_layer_state(ONESHOT_PRESSED); } return false; @@ -26,136 +24,43 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// ┌──────────────────┬────┬────┬────────┬──────┬──────┐ ┌───────────┬──────────┬────────┬────┬────┬──────┐ -// │ esc │ no │ no │ QK_REP │ no │ no │ │ no │ no │ QK_REP │ no │ no │ no │ -// ├──────────────────┼────┼────┼────────┼──────┼──────┤ ├───────────┼──────────┼────────┼────┼────┼──────┤ -// │ tab │ w │ l │ y │ p │ b │ │ z │ f │ o │ u │ ' │ bspc │ -// ├──────────────────┼────┼────┼────────┼──────┼──────┤ ├───────────┼──────────┼────────┼────┼────┼──────┤ -// │ LT(_MEDIA, bspc) │ c │ r │ s │ t │ g │ │ m │ n │ e │ i │ a │ ; │ -// ├──────────────────┼────┼────┼────────┼──────┼──────┼─────┐ ┌─────┼───────────┼──────────┼────────┼────┼────┼──────┤ -// │ LSFT_T(1) │ q │ j │ v │ d │ k │ [ │ │ ] │ x │ h │ / │ , │ . │ rsft │ -// └──────────────────┴────┴────┼────────┼──────┼──────┼─────┤ ├─────┼───────────┼──────────┼────────┼────┴────┴──────┘ -// │ lalt │ lgui │ lctl │ spc │ │ ent │ MO(_META) │ MO(_NAV) │ ralt │ -// └────────┴──────┴──────┴─────┘ └─────┴───────────┴──────────┴────────┘ [_PRIM] = LAYOUT( - KC_ESC , KC_NO , KC_NO , QK_REP , KC_NO , KC_NO , KC_NO , KC_NO , QK_REP , KC_NO , KC_NO , KC_NO , - KC_TAB , KC_W , KC_L , KC_Y , KC_P , KC_B , KC_Z , KC_F , KC_O , KC_U , KC_QUOT , KC_BSPC, - LT(_MEDIA, KC_BSPC) , KC_C , KC_R , KC_S , KC_T , KC_G , KC_M , KC_N , KC_E , KC_I , KC_A , KC_SCLN, - LSFT_T(KC_1) , KC_Q , KC_J , KC_V , KC_D , KC_K , KC_LBRC , KC_RBRC , KC_X , KC_H , KC_SLSH , KC_COMM , KC_DOT , KC_RSFT, - KC_LALT , KC_LGUI , KC_LCTL , KC_SPC , KC_ENT , MO(_META) , MO(_NAV) , KC_RALT + KC_ESC , KC_NO, KC_NO, QK_REP , KC_NO , KC_LBRC, KC_RBRC , QK_REP , QK_REP , KC_NO , KC_NO , KC_NO , + KC_TAB , KC_Q , KC_W , KC_Y , KC_P , KC_B , KC_J , KC_L , KC_O , KC_U , KC_QUOT, KC_BSPC, + LT(_SYM, KC_BSPC), KC_A , KC_R , KC_S , KC_T , KC_G , KC_M , KC_N , KC_E , KC_I , KC_F , KC_SCLN, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , _ , _ , KC_K , KC_H , KC_SLSH, KC_COMM, KC_DOT , KC_RSFT, + KC_LALT, KC_LGUI, KC_LCTL, KC_SPC, KC_ENT , MO(_NUM), MO(_NAV), KC_RALT ), -// ┌─────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬───────────┬─────────────┬─────────┐ -// │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ -// ├─────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼───────────┼─────────────┼─────────┤ -// │ │ no │ no │ no │ no │ no │ │ no │ NK_ON │ NK_OFF │ DF(_PRIM) │ DF(_QWERTY) │ RGB_M_R │ -// ├─────┼─────────┼─────────┼─────────┼─────────┼─────────┤ ├─────────┼─────────┼─────────┼───────────┼─────────────┼─────────┤ -// │ │ RGB_SPI │ RGB_VAI │ RGB_SAI │ RGB_HUI │ RGB_SPI │ │ RGB_SPD │ RGB_HUD │ RGB_SAD │ RGB_VAD │ RGB_SPD │ RGB_M_X │ -// ├─────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────┐ ┌─────┼─────────┼─────────┼─────────┼───────────┼─────────────┼─────────┤ -// │ │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ no │ -// └─────┴─────────┴─────────┼─────────┼─────────┼─────────┼─────┤ ├─────┼─────────┼─────────┼─────────┼───────────┴─────────────┴─────────┘ -// │ │ │ │ │ │ │ │ │ │ -// └─────────┴─────────┴─────────┴─────┘ └─────┴─────────┴─────────┴─────────┘ [_META] = LAYOUT( - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , NK_ON , NK_OFF , DF(_PRIM) , DF(_QWERTY) , RGB_M_R, - KC_TRNS , RGB_SPI , RGB_VAI , RGB_SAI , RGB_HUI , RGB_SPI , RGB_SPD , RGB_HUD , RGB_SAD , RGB_VAD , RGB_SPD , RGB_M_X, - KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS + KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , + KC_TRNS, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , NK_ON , NK_OFF , KC_NO , KC_NO , RGB_M_R, + KC_TRNS, RGB_SPI, RGB_VAI, RGB_SAI, RGB_HUI, RGB_SPI, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_X, + KC_TRNS, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -// ┌─────┬──────┬────┬──────┬──────────┬────┐ ┌────┬─────┬────┬────┬────┬─────┐ -// │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ -// ├─────┼──────┼────┼──────┼──────────┼────┤ ├────┼─────┼────┼────┼────┼─────┤ -// │ esc │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ │ -// ├─────┼──────┼────┼──────┼──────────┼────┤ ├────┼─────┼────┼────┼────┼─────┤ -// │ ` │ left │ up │ down │ rght │ no │ │ no │ no │ no │ no │ no │ no │ -// ├─────┼──────┼────┼──────┼──────────┼────┼────┐ ┌────┼────┼─────┼────┼────┼────┼─────┤ -// │ │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ no │ -// └─────┴──────┴────┼──────┼──────────┼────┼────┤ ├────┼────┼─────┼────┼────┴────┴─────┘ -// │ no │ MO(_NUM) │ no │ no │ │ no │ no │ │ no │ -// └──────┴──────────┴────┴────┘ └────┴────┴─────┴────┘ [_NAV] = LAYOUT( - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_ESC , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS, - KC_GRV , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_NO , MO(_NUM) , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS , KC_NO + KC_NO , KC_NO , KC_NO, KC_NO , KC_NO , KC_NO, KC_NO, KC_NO , KC_NO , KC_NO, KC_NO , KC_NO , + KC_ESC , KC_NO , KC_NO, KC_NO , KC_NO , KC_NO, KC_NO, KC_NO , KC_NO , KC_NO, KC_NO , KC_TRNS, + KC_GRV , KC_LEFT, KC_UP, KC_DOWN, KC_RGHT , KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO , + KC_TRNS, KC_NO , KC_NO, KC_NO , KC_NO , KC_NO, KC_NO, KC_NO, KC_NO, KC_NO , KC_NO , KC_NO, KC_NO , KC_NO , + KC_NO , MO(_NUM), KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO ), -// ┌──────┬─────┬──────┬──────┬─────┬──────┐ ┌─────┬─────┬──────┬─────┬─────┬──────┐ -// │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ -// ├──────┼─────┼──────┼──────┼─────┼──────┤ ├─────┼─────┼──────┼─────┼─────┼──────┤ -// │ │ f1 │ f2 │ f3 │ f4 │ f5 │ │ f6 │ f7 │ f8 │ f9 │ f10 │ pscr │ -// ├──────┼─────┼──────┼──────┼─────┼──────┤ ├─────┼─────┼──────┼─────┼─────┼──────┤ -// │ caps │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ sCRL │ -// ├──────┼─────┼──────┼──────┼─────┼──────┼─────┐ ┌─────┼─────┼─────┼──────┼─────┼─────┼──────┤ -// │ │ ins │ home │ pgup │ - │ = │ f11 │ │ f12 │ no │ no │ pgdn │ end │ del │ paus │ -// └──────┴─────┴──────┼──────┼─────┼──────┼─────┤ ├─────┼─────┼─────┼──────┼─────┴─────┴──────┘ -// │ │ │ lgui │ │ │ │ │ │ │ -// └──────┴─────┴──────┴─────┘ └─────┴─────┴─────┴──────┘ [_NUM] = LAYOUT( - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_PSCR, - KC_CAPS , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_SCRL, - KC_TRNS , KC_INS , KC_HOME , KC_PGUP , KC_MINS , KC_EQL , KC_F11 , KC_F12 , KC_NO , KC_NO , KC_PGDN , KC_END , KC_DEL , KC_PAUS, - KC_TRNS , KC_TRNS , KC_LGUI , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS + KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_PSCR, + KC_CAPS, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_SCRL, + KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_MINS, KC_EQL , KC_F11 , KC_F12 , KC_NO , KC_NO , KC_PGDN, KC_END, KC_DEL, KC_PAUS, + KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -// ┌─────┬──────┬──────┬──────┬──────┬──────┐ ┌────┬────┬────┬────┬────┬────┐ -// │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ -// ├─────┼──────┼──────┼──────┼──────┼──────┤ ├────┼────┼────┼────┼────┼────┤ -// │ │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ -// ├─────┼──────┼──────┼──────┼──────┼──────┤ ├────┼────┼────┼────┼────┼────┤ -// │ │ mprv │ volu │ vold │ mnxt │ mply │ │ no │ no │ no │ no │ no │ no │ -// ├─────┼──────┼──────┼──────┼──────┼──────┼────┐ ┌────┼────┼────┼────┼────┼────┼────┤ -// │ │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ no │ -// └─────┴──────┴──────┼──────┼──────┼──────┼────┤ ├────┼────┼────┼────┼────┴────┴────┘ -// │ no │ no │ no │ no │ │ no │ no │ no │ no │ -// └──────┴──────┴──────┴────┘ └────┴────┴────┴────┘ -[_MEDIA] = LAYOUT( - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, - KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, - KC_TRNS , KC_MPRV , KC_VOLU , KC_VOLD , KC_MNXT , KC_MPLY , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, - KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO -), - -// ┌──────────┬────┬────┬────┬────┬────┐ ┌────┬────┬──────┬────┬────┬───────┐ -// │ no │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ no │ -// ├──────────┼────┼────┼────┼────┼────┤ ├────┼────┼──────┼────┼────┼───────┤ -// │ │ no │ no │ no │ no │ no │ │ no │ no │ no │ no │ no │ iso-- │ -// ├──────────┼────┼────┼────┼────┼────┤ ├────┼────┼──────┼────┼────┼───────┤ -// │ │ ! │ @ │ # │ $ │ % │ │ ^ │ & │ * │ ( │ ) │ ` │ -// ├──────────┼────┼────┼────┼────┼────┼────┐ ┌────┼────┼────┼──────┼────┼────┼───────┤ -// │ MO(_SYM) │ no │ no │ no │ _ │ + │ no │ │ no │ no │ no │ iso\ │ no │ no │ no │ -// └──────────┴────┴────┼────┼────┼────┼────┤ ├────┼────┼────┼──────┼────┴────┴───────┘ -// │ no │ no │ no │ no │ │ no │ no │ no │ no │ -// └────┴────┴────┴────┘ └────┴────┴────┴──────┘ [_SYM] = LAYOUT( - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , - KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NUHS, - KC_TRNS , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_GRV , - MO(_SYM) , KC_NO , KC_NO , KC_NO , KC_UNDS , KC_PLUS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NUBS , KC_NO , KC_NO , KC_NO , - KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO -), - -// ┌──────┬────┬────┬────────┬──────┬──────┐ ┌───────────┬──────────┬────────┬────┬────┬───────┐ -// │ esc │ no │ no │ QK_REP │ no │ no │ │ no │ no │ QK_REP │ no │ no │ no │ -// ├──────┼────┼────┼────────┼──────┼──────┤ ├───────────┼──────────┼────────┼────┼────┼───────┤ -// │ tab │ q │ w │ e │ r │ t │ │ y │ u │ i │ o │ p │ bspc │ -// ├──────┼────┼────┼────────┼──────┼──────┤ ├───────────┼──────────┼────────┼────┼────┼───────┤ -// │ bspc │ a │ s │ d │ f │ g │ │ h │ j │ k │ l │ ; │ iso-- │ -// ├──────┼────┼────┼────────┼──────┼──────┼─────┐ ┌─────┼───────────┼──────────┼────────┼────┼────┼───────┤ -// │ lsft │ z │ x │ k │ v │ b │ [ │ │ ] │ n │ m │ / │ , │ . │ rsft │ -// └──────┴────┴────┼────────┼──────┼──────┼─────┤ ├─────┼───────────┼──────────┼────────┼────┴────┴───────┘ -// │ lalt │ lgui │ lctl │ spc │ │ ent │ MO(_META) │ MO(_NAV) │ ralt │ -// └────────┴──────┴──────┴─────┘ └─────┴───────────┴──────────┴────────┘ -[_QWERTY] = LAYOUT( - KC_ESC , KC_NO , KC_NO , QK_REP , KC_NO , KC_NO , KC_NO , KC_NO , QK_REP , KC_NO , KC_NO , KC_NO , - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, - KC_BSPC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_NUHS, - KC_LSFT , KC_Z , KC_X , KC_K , KC_V , KC_B , KC_LBRC , KC_RBRC , KC_N , KC_M , KC_SLSH , KC_COMM , KC_DOT , KC_RSFT, - KC_LALT , KC_LGUI , KC_LCTL , KC_SPC , KC_ENT , MO(_META) , MO(_NAV) , KC_RALT + KC_NO , KC_NO , KC_NO, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , + KC_TRNS , KC_NO , KC_NO, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NUHS, + KC_TRNS , KC_EXLM, KC_AT, KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_GRV , + MO(_SYM), KC_NO , KC_NO, KC_NO , KC_UNDS, KC_PLUS, KC_NO, KC_NO, KC_NO , KC_NO , KC_NUBS, KC_NO , KC_NO , KC_NO , + KC_NO , KC_NO , KC_NO , KC_NO, KC_NO, KC_NO , KC_NO , KC_NO ) }; diff --git a/keymap/rules.mk b/keymap/rules.mk index 417d80e..42918a3 100644 --- a/keymap/rules.mk +++ b/keymap/rules.mk @@ -2,3 +2,5 @@ ENCODER_ENABLE = yes OLED_ENABLE = yes RGB_MATRIX_ENABLE = no RGBLIGHT_ENABLE = yes +NKRO_ENABLE = yes +REPEAT_KEY_ENABLE = yes