]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/jd45/keymaps/justin/keymap.c
JD45: justin keymap refactor
[qmk_firmware.git] / keyboards / jd45 / keymaps / justin / keymap.c
1 #include QMK_KEYBOARD_H
2
3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4     [0] = LAYOUT_kc(
5         ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC,
6         FN8, A, R, S, T, D, H, N, E, I, O, ENT,
7         LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, FN6,
8         FN4, LGUI, FN7, FN2, FN1, SPC, FN5, RALT, FN3, FN0),
9     [1] = LAYOUT_kc(
10         TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL,
11         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT,
12         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS,
13         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
14     [2] = LAYOUT_kc(
15         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
16         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
17         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
18         TRNS, FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS),
19     [3] = LAYOUT_kc(
20         TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
21         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
22         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
23         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
24     [4] = LAYOUT_kc(
25         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS,
26         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS,
27         TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS,
28         TRNS, FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS),
29 };
30
31 enum macro_id
32 {
33     PSWD1,
34     PSWD2,
35     PSWD3,
36 };
37
38 const uint16_t PROGMEM fn_actions[] = {
39     [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS),
40     [1] = ACTION_LAYER_MOMENTARY(1), // FN1
41     [2] = ACTION_LAYER_MOMENTARY(2), // FN2
42     [3] = ACTION_LAYER_MOMENTARY(3), // FN3
43     [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV),
44     [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI),
45     [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS),
46     [7] = ACTION_LAYER_MODS(4, MOD_LSFT), // FN4
47     [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB),
48
49     [10] = ACTION_MACRO(PSWD1),
50     [11] = ACTION_MACRO(PSWD2),
51     [12] = ACTION_MACRO(PSWD3),
52
53     [29] = ACTION_BACKLIGHT_TOGGLE(),
54     [30] = ACTION_BACKLIGHT_INCREASE(),
55     [31] = ACTION_BACKLIGHT_DECREASE()
56
57 };
58
59 /*
60  * Macro definition
61  */
62 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
63 {
64     switch (id)
65     {
66     case PSWD1:
67         return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
68     case PSWD2:
69         return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
70     case PSWD3:
71         return (record->event.pressed ? MACRO(I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END) : MACRO_NONE);
72         //case VOLUP:
73         //    return (record->event.pressed ?
74         //            MACRO( D(VOLU), U(VOLU), END ) :
75         //            MACRO_NONE );
76         //case ALT_TAB:
77         //    return (record->event.pressed ?
78         //            MACRO( D(LALT), D(TAB), END ) :
79         //            MACRO( U(TAB), END ));
80     }
81     return MACRO_NONE;
82 }