keymap.c (10257B)
1 #include QMK_KEYBOARD_H 2 #include "version.h" 3 4 enum custom_layers { 5 BASE, // default layer 6 SYMB, // symbols 7 MDIA, // media keys 8 }; 9 10 11 enum custom_keycodes { 12 PLACEHOLDER = SAFE_RANGE, // can always be here 13 VRSN, 14 }; 15 16 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 17 /* Keymap 0: Basic layer 18 * 19 * ,--------------------------------------------------. ,--------------------------------------------------. 20 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | 21 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 22 * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | 23 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 24 * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | 25 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| 26 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | 27 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 28 * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | 29 * `----------------------------------' `----------------------------------' 30 * ,-------------. ,-------------. 31 * | App | LGui | | Alt |Ctrl/Esc| 32 * ,------|------|------| |------+--------+------. 33 * | | | Home | | PgUp | | | 34 * | Space|Backsp|------| |------| Tab |Enter | 35 * | |ace | End | | PgDn | | | 36 * `--------------------' `----------------------' 37 */ 38 // If it accepts an argument (i.e, is a function), it doesn't need KC_. 39 // Otherwise, it needs KC_* 40 [BASE] = LAYOUT_ergodox( // layer 0 : default 41 // left hand 42 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, 43 KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), 44 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, 45 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, HYPR_T(KC_NO), 46 LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, 47 ALT_T(KC_APP), KC_LGUI, 48 KC_HOME, 49 KC_SPC,KC_BSPC,KC_END, 50 // right hand 51 KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 52 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 53 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT), 54 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, 55 KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB), 56 KC_LALT, CTL_T(KC_ESC), 57 KC_PGUP, 58 KC_PGDN,KC_TAB, KC_ENT 59 ), 60 /* Keymap 1: Symbol Layer 61 * 62 * ,---------------------------------------------------. ,--------------------------------------------------. 63 * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | 64 * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| 65 * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | 66 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| 67 * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | 68 * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| 69 * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | 70 * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 71 * |EE_CLR | | | | | | | . | 0 | = | | 72 * `-----------------------------------' `----------------------------------' 73 * ,-------------. ,-------------. 74 * |Animat| | |Toggle|Solid | 75 * ,------|------|------| |------+------+------. 76 * |Bright|Bright| | | |Hue- |Hue+ | 77 * |ness- |ness+ |------| |------| | | 78 * | | | | | | | | 79 * `--------------------' `--------------------' 80 */ 81 // SYMBOLS 82 [SYMB] = LAYOUT_ergodox( 83 // left hand 84 VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, 85 KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, 86 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, 87 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, 88 EE_CLR, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 89 LM_NEXT,KC_TRNS, 90 KC_TRNS, 91 LM_BRID,LM_BRIU,KC_TRNS, 92 // right hand 93 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 94 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, 95 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, 96 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, 97 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, 98 LM_TOGG, KC_TRNS, 99 KC_TRNS, 100 KC_TRNS, KC_TRNS, KC_TRNS 101 ), 102 /* Keymap 2: Media and mouse keys 103 * 104 * ,--------------------------------------------------. ,--------------------------------------------------. 105 * | | | | | | | | | | | | | | | | 106 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 107 * | | | | MsUp | | | | | | | | | | | | 108 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 109 * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | 110 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 111 * | | | | | | | | | | | | Prev | Next | | | 112 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 113 * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | 114 * `----------------------------------' `----------------------------------' 115 * ,-------------. ,-------------. 116 * | | | | | | 117 * ,------|------|------| |------+------+------. 118 * | | | | | | |Brwser| 119 * | | |------| |------| |Back | 120 * | | | | | | | | 121 * `--------------------' `--------------------' 122 */ 123 // MEDIA AND MOUSE 124 [MDIA] = LAYOUT_ergodox( 125 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 126 KC_TRNS, KC_TRNS, KC_TRNS, MS_UP, KC_TRNS, KC_TRNS, KC_TRNS, 127 KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT, KC_TRNS, 128 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 129 KC_TRNS, KC_TRNS, KC_TRNS, MS_BTN1, MS_BTN2, 130 KC_TRNS, KC_TRNS, 131 KC_TRNS, 132 KC_TRNS, KC_TRNS, KC_TRNS, 133 // right hand 134 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 135 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 136 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, 137 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, 138 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, 139 KC_TRNS, KC_TRNS, 140 KC_TRNS, 141 KC_TRNS, KC_TRNS, KC_WBAK 142 ), 143 }; 144 145 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 146 switch (keycode) { 147 // dynamically generate these. 148 case VRSN: 149 if (record->event.pressed) { 150 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); 151 } 152 return false; 153 break; 154 } 155 return true; 156 } 157 158 // Runs constantly in the background, in a loop. 159 void matrix_scan_user(void) { 160 161 uint8_t layer = get_highest_layer(layer_state); 162 163 ergodox_board_led_off(); 164 ergodox_right_led_1_off(); 165 ergodox_right_led_2_off(); 166 ergodox_right_led_3_off(); 167 switch (layer) { 168 // TODO: Make this relevant to the ErgoDox EZ. 169 case 1: 170 ergodox_right_led_1_on(); 171 break; 172 case 2: 173 ergodox_right_led_2_on(); 174 break; 175 default: 176 // none 177 break; 178 } 179 180 }