#include QMK_KEYBOARD_H enum custom_keycodes { _PRIM, _M ETA, _NAV, _NUM, _SYM, }; 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(_SYM, ONESHOT_OTHER_KEY_PRESSED); clear_oneshot_layer_state(ONESHOT_PRESSED); } return false; } break; } return true; } const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_PRIM] = LAYOUT( 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 ), [_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 , 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 ), [_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_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 ), [_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 ), [_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 ) };