keymap.c (34758B)
1 #include QMK_KEYBOARD_H 2 #include "version.h" 3 4 enum layers { 5 DVRK, // Dvorak 6 DSMB, // Dvorak symbols 7 MDIA, // media keys 8 MOVE, // move 9 NUME, // numberic 10 FKEY, // F-keys 11 SERV, // service 12 }; 13 14 // Left-hand home row mods 15 #define HOME_A LGUI_T(KC_A) 16 #define HOME_O LALT_T(KC_O) 17 #define HOME_E LSFT_T(KC_E) 18 #define HOME_U LCTL_T(KC_U) 19 20 // Right-hand home row mods 21 #define HOME_H RCTL_T(KC_H) 22 #define HOME_T RSFT_T(KC_T) 23 #define HOME_N LALT_T(KC_N) 24 #define HOME_S RGUI_T(KC_S) 25 26 #define LTHUMB LT(DSMB, KC_TAB) 27 #define RTHUMB LT(DSMB, KC_ENT) 28 29 // clang-format off 30 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 31 // ┌──────────┬────────┬────────┬────────┬──────────┬─────┬──────────┐ ┌─────┬─────┬──────────┬────────┬────────┬────────┬──────────┐ 32 // │ caps │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 33 // ├──────────┼────────┼────────┼────────┼──────────┼─────┼──────────┤ ├─────┼─────┼──────────┼────────┼────────┼────────┼──────────┤ 34 // │ CW_TOGG │ ; │ , │ . │ p │ y │ MO(NUME) │ │ │ f │ g │ c │ r │ l │ │ 35 // ├──────────┼────────┼────────┼────────┼──────────┼─────┼──────────┘ └─────┼─────┼──────────┼────────┼────────┼────────┼──────────┤ 36 // │ esc │ HOME_A │ HOME_O │ HOME_E │ HOME_U │ i │ │ d │ HOME_H │ HOME_T │ HOME_N │ HOME_S │ - │ 37 // ├──────────┼────────┼────────┼────────┼──────────┼─────┼──────────┐ ┌─────┼─────┼──────────┼────────┼────────┼────────┼──────────┤ 38 // │ lsft │ ' │ q │ j │ k │ x │ │ │ │ b │ m │ w │ v │ z │ rsft │ 39 // ├──────────┼────────┼────────┼────────┼──────────┼─────┴──────────┘ └─────┴─────┼──────────┼────────┼────────┼────────┼──────────┤ 40 // │ MO(SERV) │ │ │ │ MO(MOVE) │ │ MO(MDIA) │ │ │ │ MO(SERV) │ 41 // └──────────┴────────┴────────┴────────┴──────────┼─────┬──────────┐ ┌─────┬─────┼──────────┴────────┴────────┴────────┴──────────┘ 42 // │ │ │ │ │ │ 43 // └─────┼──────────┤ ├─────┼─────┘ 44 // │ │ │ │ 45 // ┌──────────┬─────┼──────────┤ ├─────┼─────┬──────────┐ 46 // │ LTHUMB │ spc │ bspc │ │ del │ spc │ RTHUMB │ 47 // └──────────┴─────┴──────────┘ └─────┴─────┴──────────┘ 48 [DVRK] = LAYOUT_ergodox_pretty( 49 KC_CAPS , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , 50 CW_TOGG , KC_SCLN , KC_COMM , KC_DOT , KC_P , KC_Y , MO(NUME) , _______ , KC_F , KC_G , KC_C , KC_R , KC_L , _______ , 51 KC_ESC , HOME_A , HOME_O , HOME_E , HOME_U , KC_I , KC_D , HOME_H , HOME_T , HOME_N , HOME_S , KC_MINS , 52 KC_LSFT , KC_QUOT , KC_Q , KC_J , KC_K , KC_X , _______ , _______ , KC_B , KC_M , KC_W , KC_V , KC_Z , KC_RSFT , 53 MO(SERV) , _______ , _______ , _______ , MO(MOVE) , MO(MDIA) , _______ , _______ , _______ , MO(SERV), 54 _______ , _______ , _______ , _______ , 55 _______ , _______ , 56 LTHUMB , KC_SPC , KC_BSPC , KC_DEL , KC_SPC , RTHUMB 57 ), 58 59 // ┌──────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬──────┐ 60 // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 61 // ├──────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼──────┤ 62 // │ │ & │ < │ > │ % │ @ │ │ │ │ ^ │ $ │ [ │ ] │ ` │ │ 63 // ├──────┼─────┼─────┼─────┼─────┼─────┼─────┘ └─────┼─────┼─────┼─────┼─────┼─────┼──────┤ 64 // │ ~ │ | │ : │ ( │ 0 │ ) │ │ { │ 1 │ } │ = │ + │ _ │ 65 // ├──────┼─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┼─────┼─────┼──────┤ 66 // │ lsft │ 6 │ 7 │ 8 │ 9 │ # │ │ │ │ * │ 2 │ 3 │ 4 │ 5 │ rsft │ 67 // ├──────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼──────┤ 68 // │ │ │ │ │ . │ │ . │ │ │ │ │ 69 // └──────┴─────┴─────┴─────┴─────┼─────┬─────┐ ┌─────┬─────┼─────┴─────┴─────┴─────┴──────┘ 70 // │ │ │ │ │ │ 71 // └─────┼─────┤ ├─────┼─────┘ 72 // │ │ │ │ 73 // ┌─────┬─────┼─────┤ ├─────┼─────┬─────┐ 74 // │ \ │ ! │ │ │ │ ? │ / │ 75 // └─────┴─────┴─────┘ └─────┴─────┴─────┘ 76 [DSMB] = LAYOUT_ergodox_pretty( 77 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 78 _______ , KC_AMPR , KC_LT , KC_GT , KC_PERC , KC_AT , _______ , _______ , KC_CIRC , KC_DLR , KC_LBRC , KC_RBRC , KC_GRV , _______, 79 KC_TILD , KC_PIPE , KC_COLN , KC_LPRN , KC_0 , KC_RPRN , KC_LCBR , KC_1 , KC_RCBR , KC_EQL , KC_PLUS , KC_UNDS, 80 KC_LSFT , KC_6 , KC_7 , KC_8 , KC_9 , KC_HASH , _______ , _______ , KC_ASTR , KC_2 , KC_3 , KC_4 , KC_5 , KC_RSFT, 81 _______ , _______ , _______ , _______ , KC_DOT , KC_DOT , _______ , _______ , _______ , _______, 82 _______ , _______ , _______ , _______ , 83 _______ , _______ , 84 KC_BSLS , KC_EXLM , _______ , _______ , KC_QUES , KC_SLSH 85 ), 86 87 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬──────┬──────┬──────┬─────┬──────┬─────┐ 88 // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 89 // ├─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼──────┼──────┼──────┼─────┼──────┼─────┤ 90 // │ │ │ │ │ │ │ │ │ │ │ mply │ mstp │ │ mnxt │ │ 91 // ├─────┼─────┼─────┼─────┼─────┼─────┼─────┘ └─────┼──────┼──────┼──────┼─────┼──────┼─────┤ 92 // │ │ │ │ │ │ │ │ mprv │ vold │ volu │ │ │ │ 93 // ├─────┼─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼──────┼──────┼──────┼─────┼──────┼─────┤ 94 // │ │ │ │ │ │ │ │ │ │ │ mute │ │ │ │ │ 95 // ├─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴──────┼──────┼──────┼─────┼──────┼─────┤ 96 // │ │ │ │ │ │ │ │ │ │ │ │ 97 // └─────┴─────┴─────┴─────┴─────┼─────┬─────┐ ┌─────┬──────┼──────┴──────┴─────┴──────┴─────┘ 98 // │ │ │ │ │ │ 99 // └─────┼─────┤ ├─────┼──────┘ 100 // │ │ │ │ 101 // ┌─────┬─────┼─────┤ ├─────┼──────┬──────┐ 102 // │ │ │ │ │ │ │ │ 103 // └─────┴─────┴─────┘ └─────┴──────┴──────┘ 104 [MDIA] = LAYOUT_ergodox_pretty( 105 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 106 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MPLY , KC_MSTP , _______ , KC_MNXT , _______, 107 _______ , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_VOLD , KC_VOLU , _______ , _______ , _______, 108 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MUTE , _______ , _______ , _______ , _______, 109 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 110 _______ , _______ , _______ , _______ , 111 _______ , _______ , 112 _______ , _______ , _______ , _______ , _______ , _______ 113 ), 114 115 // ┌─────┬─────┬─────┬──────┬──────┬─────┬─────┐ ┌─────┬─────┬──────┬──────┬──────┬──────┬─────┐ 116 // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 117 // ├─────┼─────┼─────┼──────┼──────┼─────┼─────┤ ├─────┼─────┼──────┼──────┼──────┼──────┼─────┤ 118 // │ │ │ │ │ │ │ │ │ │ │ home │ up │ end │ rght │ │ 119 // ├─────┼─────┼─────┼──────┼──────┼─────┼─────┘ └─────┼─────┼──────┼──────┼──────┼──────┼─────┤ 120 // │ │ │ │ pgdn │ pgup │ │ │ │ left │ down │ rght │ │ │ 121 // ├─────┼─────┼─────┼──────┼──────┼─────┼─────┐ ┌─────┼─────┼──────┼──────┼──────┼──────┼─────┤ 122 // │ │ │ │ down │ up │ │ │ │ │ │ wh_d │ wh_u │ │ │ │ 123 // ├─────┼─────┼─────┼──────┼──────┼─────┴─────┘ └─────┴─────┼──────┼──────┼──────┼──────┼─────┤ 124 // │ │ │ │ │ │ │ │ │ │ │ │ 125 // └─────┴─────┴─────┴──────┴──────┼─────┬─────┐ ┌─────┬─────┼──────┴──────┴──────┴──────┴─────┘ 126 // │ │ │ │ │ │ 127 // └─────┼─────┤ ├─────┼─────┘ 128 // │ │ │ │ 129 // ┌──────┬─────┼─────┤ ├─────┼─────┬──────┐ 130 // │ │ │ │ │ │ │ │ 131 // └──────┴─────┴─────┘ └─────┴─────┴──────┘ 132 [MOVE] = LAYOUT_ergodox_pretty( 133 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 134 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_HOME , KC_UP , KC_END , KC_RGHT , _______, 135 _______ , _______ , _______ , KC_PGDN , KC_PGUP , _______ , _______ , KC_LEFT , KC_DOWN , KC_RGHT , _______ , _______, 136 _______ , _______ , _______ , KC_DOWN , KC_UP , _______ , _______ , _______ , _______ , KC_WH_D , KC_WH_U , _______ , _______ , _______, 137 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 138 _______ , _______ , _______ , _______ , 139 _______ , _______ , 140 _______ , _______ , _______ , _______ , _______ , _______ 141 ), 142 143 // ┌─────┬─────┬─────┬─────┬──────────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ 144 // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 145 // ├─────┼─────┼─────┼─────┼──────────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┤ 146 // │ │ │ │ │ │ │ │ │ │ ^ │ 7 │ 8 │ 9 │ ~ │ │ 147 // ├─────┼─────┼─────┼─────┼──────────┼─────┼─────┘ └─────┼─────┼─────┼─────┼─────┼─────┼─────┤ 148 // │ │ │ │ │ │ │ │ - │ 4 │ 5 │ 6 │ + │ - │ 149 // ├─────┼─────┼─────┼─────┼──────────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┼─────┼─────┼─────┤ 150 // │ │ │ │ │ │ │ │ │ / │ * │ 1 │ 2 │ 3 │ / │ │ 151 // ├─────┼─────┼─────┼─────┼──────────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┤ 152 // │ │ │ │ │ │ │ │ │ │ │ │ 153 // └─────┴─────┴─────┴─────┴──────────┼─────┬─────┐ ┌─────┬─────┼─────┴─────┴─────┴─────┴─────┘ 154 // │ │ │ │ │ │ 155 // └─────┼─────┤ ├─────┼─────┘ 156 // │ │ │ │ 157 // ┌──────────┬─────┼─────┤ ├─────┼─────┬─────┐ 158 // │ MO(FKEY) │ . │ │ │ │ = │ 0 │ 159 // └──────────┴─────┴─────┘ └─────┴─────┴─────┘ 160 [NUME] = LAYOUT_ergodox_pretty( 161 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 162 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_CIRC , KC_7 , KC_8 , KC_9 , KC_TILD , _______, 163 _______ , _______ , _______ , _______ , _______ , _______ , KC_MINS , KC_4 , KC_5 , KC_6 , KC_PLUS , KC_MINS, 164 _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_SLSH , KC_ASTR , KC_1 , KC_2 , KC_3 , KC_SLSH , _______, 165 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 166 _______ , _______ , _______ , _______ , 167 _______ , _______ , 168 MO(FKEY) , KC_DOT , _______ , _______ , KC_EQL , KC_0 169 ), 170 171 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬────────────────────────────┬─────┬─────┬─────┬─────┐ 172 // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 173 // ├─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼────────────────────────────┼─────┼─────┼─────┼─────┤ 174 // │ │ │ │ │ │ │ │ │ │ f10 │ f7 │ f8 │ f9 │ │ │ 175 // ├─────┼─────┼─────┼─────┼─────┼─────┼─────┘ └─────┼─────┼────────────────────────────┼─────┼─────┼─────┼─────┤ 176 // │ │ │ │ │ │ │ │ f11 │ f4 │ f5 │ f6 │ │ │ 177 // ├─────┼─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼─────┼────────────────────────────┼─────┼─────┼─────┼─────┤ 178 // │ │ │ │ │ │ │ │ │ │ f12 │ f1 │ f2 │ f3 │ │ │ 179 // ├─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼────────────────────────────┼─────┼─────┼─────┼─────┤ 180 // │ │ │ │ │ │ │ │ │ │ │ │ 181 // └─────┴─────┴─────┴─────┴─────┼─────┬─────┐ ┌─────┬─────┼────────────────────────────┴─────┴─────┴─────┴─────┘ 182 // │ │ │ │ │ │ 183 // └─────┼─────┤ ├─────┼─────┘ 184 // │ │ │ │ 185 // ┌─────┬─────┼─────┤ ├─────┼─────┬────────────────────────────┐ 186 // │ │ │ │ │ │ │ MT(MOD_RCTL|MOD_RALT, ent) │ 187 // └─────┴─────┴─────┘ └─────┴─────┴────────────────────────────┘ 188 [FKEY] = LAYOUT_ergodox_pretty( 189 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 190 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_F10 , KC_F7 , KC_F8 , KC_F9 , _______ , _______, 191 _______ , _______ , _______ , _______ , _______ , _______ , KC_F11 , KC_F4 , KC_F5 , KC_F6 , _______ , _______, 192 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_F12 , KC_F1 , KC_F2 , KC_F3 , _______ , _______, 193 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 194 _______ , _______ , _______ , _______ , 195 _______ , _______ , 196 _______ , _______ , _______ , _______ , _______ , MT(MOD_RCTL|MOD_RALT, KC_ENT) 197 ), 198 199 // ┌─────┬─────┬─────┬─────┬──────┬─────┬─────┐ ┌─────┬─────────┬─────────┬─────────┬─────────┬─────┬─────────┐ 200 // │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ QK_BOOT │ 201 // ├─────┼─────┼─────┼─────┼──────┼─────┼─────┤ ├─────┼─────────┼─────────┼─────────┼─────────┼─────┼─────────┤ 202 // │ │ │ │ │ │ │ │ │ │ RGB_TOG │ RGB_M_P │ RGB_MOD │ │ │ EE_CLR │ 203 // ├─────┼─────┼─────┼─────┼──────┼─────┼─────┘ └─────┼─────────┼─────────┼─────────┼─────────┼─────┼─────────┤ 204 // │ │ │ │ │ │ │ │ RGB_HUI │ RGB_VAI │ RGB_SAI │ RGB_SPI │ │ │ 205 // ├─────┼─────┼─────┼─────┼──────┼─────┼─────┐ ┌─────┼─────────┼─────────┼─────────┼─────────┼─────┼─────────┤ 206 // │ │ │ │ │ │ │ │ │ │ │ DT_DOWN │ DT_UP │ DT_PRNT │ │ │ 207 // ├─────┼─────┼─────┼─────┼──────┼─────┴─────┘ └─────┴─────────┼─────────┼─────────┼─────────┼─────┼─────────┤ 208 // │ │ │ │ │ │ │ │ │ │ │ │ 209 // └─────┴─────┴─────┴─────┴──────┼─────┬─────┐ ┌─────┬─────────┼─────────┴─────────┴─────────┴─────┴─────────┘ 210 // │ │ │ │ │ │ 211 // └─────┼─────┤ ├─────┼─────────┘ 212 // │ │ │ │ 213 // ┌──────┬─────┼─────┤ ├─────┼─────────┬─────────┐ 214 // │ lsft │ │ │ │ │ │ QK_MAKE │ 215 // └──────┴─────┴─────┘ └─────┴─────────┴─────────┘ 216 [SERV] = LAYOUT_ergodox_pretty( 217 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , QK_BOOT, 218 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RGB_TOG , RGB_M_P , RGB_MOD , _______ , _______ , EE_CLR , 219 _______ , _______ , _______ , _______ , _______ , _______ , RGB_HUI , RGB_VAI , RGB_SAI , RGB_SPI , _______ , _______, 220 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , DT_DOWN , DT_UP , DT_PRNT , _______ , _______, 221 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, 222 _______ , _______ , _______ , _______ , 223 _______ , _______ , 224 KC_LSFT , _______ , _______ , _______ , _______ , QK_MAKE 225 ) 226 }; 227 228 // clang-format on 229 uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { 230 switch (keycode) { 231 case LTHUMB: 232 return 100; 233 case RTHUMB: 234 return 100; 235 default: 236 return TAPPING_TERM; 237 } 238 } 239 240 // clang-format off 241 const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = 242 LAYOUT_ergodox_pretty( 243 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 244 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 245 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 246 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 247 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 248 'L' , 'L' , 'R' , 'R' , 249 'L' , 'R' , 250 'L' , 'L' , 'L' , 'R' , 'R' , 'R' 251 ); 252 // clang-format on 253 254 layer_state_t layer_state_set_user(layer_state_t state) { 255 ergodox_board_led_off(); 256 ergodox_right_led_1_off(); 257 ergodox_right_led_2_off(); 258 ergodox_right_led_3_off(); 259 260 uint8_t layer = get_highest_layer(state); 261 switch (layer) { 262 case 0: 263 break; 264 case 1: 265 ergodox_right_led_1_on(); 266 break; 267 case 2: 268 ergodox_right_led_2_on(); 269 break; 270 case 3: 271 ergodox_right_led_3_on(); 272 break; 273 case 4: 274 ergodox_right_led_1_on(); 275 ergodox_right_led_2_on(); 276 break; 277 case 5: 278 ergodox_right_led_1_on(); 279 ergodox_right_led_3_on(); 280 break; 281 case 6: 282 ergodox_right_led_2_on(); 283 ergodox_right_led_3_on(); 284 break; 285 default: 286 break; 287 } 288 289 return state; 290 };