#include QMK_KEYBOARD_H enum custom_keycodes { _PRIM, _META, _NAV, _NUM, _MEDIA, _SYM, _QWERTY, }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case LSFT_T(KC_1): if (record->tap.count > 0) { if (!record->event.pressed) { set_oneshot_layer(5, ONESHOT_OTHER_KEY_PRESSED); clear_oneshot_layer_state(ONESHOT_PRESSED); } return false; } break; } return true; } 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 ), // ┌─────┬─────────┬─────────┬─────────┬─────────┬─────────┐ ┌─────────┬─────────┬─────────┬───────────┬─────────────┬─────────┐ // │ 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 ), // ┌─────┬──────┬────┬──────┬──────────┬────┐ ┌────┬─────┬────┬────┬────┬─────┐ // │ 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 ), // ┌──────┬─────┬──────┬──────┬─────┬──────┐ ┌─────┬─────┬──────┬─────┬─────┬──────┐ // │ 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 ), // ┌─────┬──────┬──────┬──────┬──────┬──────┐ ┌────┬────┬────┬────┬────┬────┐ // │ 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 ) };