#include QMK_KEYBOARD_H #define _BASE 0 #define _NAV 1 #define _NUM 2 #define _SYM 3 #define _FUN 4 //Tap Dance Declarations enum { TD_ESC_Q, TD_ESC_A, }; //Tap Dance Definitions tap_dance_action_t tap_dance_actions[] = { //Tap once for Q, twice for Esc [TD_ESC_Q] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), //Tap once for A, twice for Tab [TD_ESC_A] = ACTION_TAP_DANCE_DOUBLE(KC_A, KC_TAB) }; enum custom_keycodes { M_PASS1 = SAFE_RANGE, M_PASS2 }; // LEFT THUMB KEYS #define NAV_BKSP LT(_NAV, KC_BSPC) #define FUN_TAB LT(_FUN, KC_TAB) // RIGHT THUMB KEYS #define SYM_ENTER LT(_SYM, KC_ENTER) #define NUM_SPC LT(_NUM, KC_SPC) // QWERTY mods // LEFT HOME KEY MODS #define GUIA MT(MOD_LGUI,KC_A) #define ALTS MT(MOD_LALT,KC_S) #define CTLD MT(MOD_LCTL,KC_D) #define SHTF MT(MOD_LSFT,KC_F) // RIGHT HOME KEY MODS #define SHTJ MT(MOD_LSFT | MOD_RSFT,KC_J) #define CTLK MT(MOD_LCTL | MOD_RCTL,KC_K) #define ALTL MT(MOD_LALT | MOD_RALT,KC_L) #define GUIQUOT MT(MOD_LGUI | MOD_RGUI,KC_QUOT) // Tap Dance #define KC_EscTap TD(TD_ESC_Q) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ KC_EscTap,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ GUIA, ALTS, CTLD, SHTF, KC_G, KC_H, SHTJ, CTLK, ALTL, GUIQUOT, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, // ├────────┼────────┼────────┼────┬───┴────┬───┴───┐ ┌────┴───┬────────┼────────┼────────┼─────────┘ NAV_BKSP,FUN_TAB, SYM_ENTER,NUM_SPC // └────────┴───────┘ └────────┴────────┘ ), [_NAV] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ _______, _______, _______, _______, _______, _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ _______, _______, _______, _______, _______, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ _______, _______, _______,M_PASS2, M_PASS1, _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, // ├────────┼────────┼────────┼────┬───┴────┬───┴───┐ ┌────┴───┬────────┼────────┼────────┼─────────┘ _______, _______, _______, _______ // └────────┴───────┘ └────────┴────────┘ ), [_NUM] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, _______, _______, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, _______, _______, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ KC_DOT, KC_1, KC_2, KC_3, KC_MINS, _______, _______, _______, _______, _______, // ├────────┼────────┼────────┼────┬───┴────┬───┴───┐ ┌────┴───┬────────┼────────┼────────┼─────────┘ KC_0, KC_MINUS, _______, _______ // └────────┴───────┘ └────────┴────────┘ ), [_SYM] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RBRC, _______, _______, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_LPRN, KC_RPRN, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_LPRN, KC_RPRN, _______, _______, _______, // ├────────┼────────┼────────┼────┬───┴────┬───┴───┐ ┌────┴───┬────────┼────────┼────────┼─────────┘ KC_RPRN, KC_UNDS, _______, _______ // └────────┴───────┘ └────────┴────────┘ ), [_FUN] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ _______, _______, _______, _______, _______, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ _______, _______, _______, _______, _______, KC_F11, KC_F4, KC_F5, KC_F6, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ _______, _______, _______, _______, _______, KC_F10, KC_F1, KC_F2, KC_F3, _______, // ├────────┼────────┼────────┼────┬───┴────┬───┴───┐ ┌────┴───┬────────┼────────┼────────┼─────────┘ _______, _______, _______, _______ // └────────┴───────┘ └────────┴────────┘ ) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case M_PASS1: if (record->event.pressed) { SEND_STRING("T3lg3Ranch!2023"); } return false; case M_PASS2: if (record->event.pressed) { SEND_STRING("C0pperfield!2023"); } return false; } return true; }