diff options
Diffstat (limited to 'keyboard/planck/keymaps/david/david.c')
| -rw-r--r-- | keyboard/planck/keymaps/david/david.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/keyboard/planck/keymaps/david/david.c b/keyboard/planck/keymaps/david/david.c new file mode 100644 index 000000000..f48308480 --- /dev/null +++ b/keyboard/planck/keymaps/david/david.c | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | #include "keymap_common.h" | ||
| 2 | #include "beeps.h" | ||
| 3 | |||
| 4 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 5 | [0] = { /* Qwerty */ | ||
| 6 | {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | ||
| 7 | {KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 8 | {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, | ||
| 9 | {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
| 10 | // Space is repeated to accommadate for both spacebar wiring positions | ||
| 11 | }, | ||
| 12 | [1] = { /* Colemak */ | ||
| 13 | {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, | ||
| 14 | {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, | ||
| 15 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, | ||
| 16 | {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
| 17 | }, | ||
| 18 | [2] = { /* RAISE */ | ||
| 19 | {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, | ||
| 20 | {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, | ||
| 21 | {KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS}, | ||
| 22 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||
| 23 | }, | ||
| 24 | [3] = { /* LOWER */ | ||
| 25 | {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, | ||
| 26 | {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, | ||
| 27 | {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, | ||
| 28 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||
| 29 | } | ||
| 30 | }; | ||
| 31 | |||
| 32 | const uint16_t PROGMEM fn_actions[] = { | ||
| 33 | [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE | ||
| 34 | [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER | ||
| 35 | |||
| 36 | [3] = ACTION_DEFAULT_LAYER_SET(0), | ||
| 37 | [4] = ACTION_DEFAULT_LAYER_SET(1), | ||
| 38 | |||
| 39 | }; | ||
| 40 | |||
| 41 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 42 | { | ||
| 43 | // MACRODOWN only works in this function | ||
| 44 | if (record->event.pressed) { | ||
| 45 | switch(id) { | ||
| 46 | case 0: | ||
| 47 | true_note(12, 12, 20); | ||
| 48 | break; | ||
| 49 | case 1: | ||
| 50 | true_note(14, 14, 20); | ||
| 51 | break; | ||
| 52 | case 2: | ||
| 53 | true_note(16, 16, 20); | ||
| 54 | break; | ||
| 55 | case 3: | ||
| 56 | true_note(17, 17, 20); | ||
| 57 | break; | ||
| 58 | case 4: | ||
| 59 | true_note(19, 19, 20); | ||
| 60 | break; | ||
| 61 | case 5: | ||
| 62 | true_note(21, 21, 20); | ||
| 63 | break; | ||
| 64 | case 6: | ||
| 65 | true_note(23, 23, 20); | ||
| 66 | break; | ||
| 67 | case 7: | ||
| 68 | true_note(24, 24, 20); | ||
| 69 | break; | ||
| 70 | case 10: | ||
| 71 | |||
| 72 | break; | ||
| 73 | } | ||
| 74 | } | ||
| 75 | return MACRO_NONE; | ||
| 76 | }; | ||
