keymap.c (13691B)
1 #include QMK_KEYBOARD_H 2 3 // Each layer gets a name for readability, which is then used in the keymap matrix below. 4 // The underscores don't mean anything - you can have a layer called STUFF or any other name. 5 // Layer names don't all need to be of the same length, obviously, and you can also skip them 6 // entirely and just use numbers. 7 enum layer_names { 8 _QWERTY, 9 _COLEMAK, 10 _DVORAK, 11 _LOWER, 12 _RAISE, 13 _ADJUST 14 }; 15 16 enum custom_keycodes { 17 QWERTY = SAFE_RANGE, 18 COLEMAK, 19 DVORAK, 20 LOWER, 21 RAISE, 22 BACKLIT 23 }; 24 25 #define KC_L1 LOWER 26 #define KC_L2 RAISE 27 28 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 29 30 /* Qwerty 31 * ,------------------------------------------------------------------------------------------. 32 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | 33 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 34 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | 35 * |------+------+------+------+------+-------------+------+------+------+------+------+------| 36 * | ` | A | S | D | F | G | H | J | K | L | ; | ' | \ | 37 * |------+------+------+------+------+------|------+------+------+------+------+------+------| 38 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | Up | 39 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 40 * | Hyper| Ctrl | Alt | GUI |Lower | Space |Raise | Bksp |Shift | Left | Down |Right | 41 * `------------------------------------------------------------------------------------------' 42 */ 43 [_QWERTY] = LAYOUT( 44 //,--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------. 45 KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL , 46 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 47 KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_LBRC ,KC_RBRC , 48 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 49 KC_GRV ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,KC_BSLS , 50 //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| 51 KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_ENT ,KC_UP , 52 //|--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------+--------| 53 KC_HYPR ,KC_LCTL ,KC_LALT ,KC_LGUI ,KC_L1 , KC_SPC ,KC_L2 ,KC_BSPC ,KC_RSFT ,KC_LEFT ,KC_RGHT ,KC_DOWN 54 //`--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------+--------' 55 ), 56 57 /* Colemak 58 * ,------------------------------------------------------------------------------------------. 59 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 60 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 61 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | 62 * |------+------+------+------+------+-------------+------+------+------+------+------+------| 63 * | Esc | A | R | S | T | D | H | N | E | I | O | " | | 64 * |------+------+------+------+------+------|------+------+------+------+------+------+------| 65 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | 66 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 67 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 68 * `------------------------------------------------------------------------------------------' 69 */ 70 [_COLEMAK] = LAYOUT( 71 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, _______, 72 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL , _______, 73 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, _______, 74 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , _______, 75 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ 76 ), 77 78 /* Dvorak 79 * ,------------------------------------------------------------------------------------------. 80 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 81 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 82 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | | 83 * |------+------+------+------+------+-------------+------+------+------+------+------+------| 84 * | Esc | A | O | E | U | I | D | H | T | N | S | / | | 85 * |------+------+------+------+------+------|------+------+------+------+------+------+------| 86 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | 87 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 88 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 89 * `------------------------------------------------------------------------------------------' 90 */ 91 [_DVORAK] = LAYOUT( 92 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, _______, 93 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL , _______, 94 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, _______, 95 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , _______, 96 BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ 97 ), 98 99 /* Lower 100 * ,------------------------------------------------------------------------------------------. 101 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | 102 * |------+------+------+------+------+-------------+------+------+------+------+------+------| 103 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | 104 * |------+------+------+------+------+-------------+------+------+------+------+------+------| 105 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | 106 * |------+------+------+------+------+------|------+------+------+------+------+------+------| 107 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | | 108 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 109 * | | | | | | | | Next | Vol- | Vol+ | Play | | 110 * `------------------------------------------------------------------------------------------' 111 */ 112 [_LOWER] = LAYOUT( 113 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, _______, 114 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , _______, 115 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, 116 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______, _______, 117 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______ 118 ), 119 120 /* Raise 121 * ,------------------------------------------------------------------------------------------. 122 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 123 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 124 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | 125 * |------+------+------+------+------+-------------+------+------+------+------+------+------| 126 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | 127 * |------+------+------+------+------+------|------+------+------+------+------+------+------| 128 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | | 129 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 130 * | | | | | | | | Next | Vol- | Vol+ | Play | | 131 * `------------------------------------------------------------------------------------------' 132 */ 133 [_RAISE] = LAYOUT( 134 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, _______, 135 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL , _______, 136 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, 137 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, _______, 138 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______ 139 ), 140 141 /* Adjust (Lower + Raise) 142 * ,------------------------------------------------------------------------------------------. 143 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | 144 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 145 * | | Reset| | | | | | | | | | Del | | 146 * |------+------+------+------+------+-------------+------+------+------+------+------+------| 147 * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | | 148 * |------+------+------+------+------+------|------+------+------+------+------+------+------| 149 * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | | 150 * |------+------+------+------+------+------+------+------+------+------+------+------+------| 151 * | | | | | | | | | | | | | 152 * `------------------------------------------------------------------------------------------' 153 */ 154 [_ADJUST] = LAYOUT( 155 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 , _______, 156 _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______, 157 _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, 158 _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, 159 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 160 ) 161 162 163 }; 164 165 #ifdef AUDIO_ENABLE 166 // float tone_startup[][2] = { 167 // {NOTE_B5, 20}, 168 // {NOTE_B6, 8}, 169 // {NOTE_DS6, 20}, 170 // {NOTE_B6, 8} 171 // }; 172 173 float tone_qwerty[][2] = SONG(QWERTY_SOUND); 174 float tone_dvorak[][2] = SONG(DVORAK_SOUND); 175 float tone_colemak[][2] = SONG(COLEMAK_SOUND); 176 #endif 177 178 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 179 switch (keycode) { 180 case QWERTY: 181 if (record->event.pressed) { 182 #ifdef AUDIO_ENABLE 183 PLAY_SONG(tone_qwerty); 184 #endif 185 set_single_persistent_default_layer(_QWERTY); 186 } 187 return false; 188 break; 189 case COLEMAK: 190 if (record->event.pressed) { 191 #ifdef AUDIO_ENABLE 192 PLAY_SONG(tone_colemak); 193 #endif 194 set_single_persistent_default_layer(_COLEMAK); 195 } 196 return false; 197 break; 198 case DVORAK: 199 if (record->event.pressed) { 200 #ifdef AUDIO_ENABLE 201 PLAY_SONG(tone_dvorak); 202 #endif 203 set_single_persistent_default_layer(_DVORAK); 204 } 205 return false; 206 break; 207 case LOWER: 208 if (record->event.pressed) { 209 layer_on(_LOWER); 210 update_tri_layer(_LOWER, _RAISE, _ADJUST); 211 } else { 212 layer_off(_LOWER); 213 update_tri_layer(_LOWER, _RAISE, _ADJUST); 214 } 215 return false; 216 break; 217 case RAISE: 218 if (record->event.pressed) { 219 layer_on(_RAISE); 220 update_tri_layer(_LOWER, _RAISE, _ADJUST); 221 } else { 222 layer_off(_RAISE); 223 update_tri_layer(_LOWER, _RAISE, _ADJUST); 224 } 225 return false; 226 break; 227 case BACKLIT: 228 if (record->event.pressed) { 229 register_code(KC_RSFT); 230 #ifdef BACKLIGHT_ENABLE 231 backlight_step(); 232 #endif 233 } else { 234 unregister_code(KC_RSFT); 235 } 236 return false; 237 break; 238 } 239 return true; 240 };