]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboard/jd45/keymaps/justin/keymap.c
adds backlight levels to the satan keyboard (#431)
[qmk_firmware.git] / keyboard / jd45 / keymaps / justin / keymap.c
1 #include "jd45.h"
2 #include "backlight.h"
3
4 /* JD45 keymap definition macro
5  */
6 #define KEYMAP( \
7     K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \
8         K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \
9         K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \
10         K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \
11 ) { \
12     { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \
13     { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO    }, \
14     { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO    }, \
15     { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO,    KC_##K43, KC_NO,    KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO    }  \
16 }
17
18 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = KEYMAP(
20   ESC,  Q,    W,    F,    P,    G,    J,    L,    U,    Y,    SCLN, QUOT, BSPC,
21   FN8,  A,    R,    S,    T,    D,    H,    N,    E,    I,    O,     ENT,
22   LSFT, Z,    X,    C,    V,    B,    K,    M,    COMM, DOT,  SLSH,  FN6,
23   FN4, LGUI, FN7, FN2,  FN1,  SPC,  FN5,  RALT,  FN3, FN0 ),
24 [1] = KEYMAP(
25   TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL,
26   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT,
27   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END,  PGDN, DOWN, TRNS,
28   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
29 [2] = KEYMAP(
30   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,    7,    8,    9,    0, TRNS, TRNS,
31   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC,    4,    5,    6,  DOT, TRNS,
32   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC,    1,    2,    3, BSLS, TRNS,
33   TRNS,FN29, TRNS, TRNS, TRNS, PAUSE,  EQL, MINS, TRNS, TRNS ),
34 [3] = KEYMAP(
35   TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
36   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
37   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
38   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
39 [4] = KEYMAP(
40   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,    7,    8,    9,    0, TRNS, TRNS,
41   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC,    4,    5,    6,  DOT, TRNS,
42   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC,    1,    2,    3, BSLS, TRNS,
43   TRNS,FN29, TRNS, TRNS, TRNS, PAUSE,  EQL, MINS, TRNS, TRNS ),
44 };
45
46 enum macro_id {
47    PSWD1,
48    PSWD2,
49    PSWD3,
50 };
51
52 const uint16_t PROGMEM fn_actions[] = {
53     [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS),
54     [1] = ACTION_LAYER_MOMENTARY(1),  // FN1
55     [2] = ACTION_LAYER_MOMENTARY(2),  // FN2
56     [3] = ACTION_LAYER_MOMENTARY(3),  // FN3
57     [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV),
58     [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI),
59     [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS),
60     [7] = ACTION_LAYER_MODS(4, MOD_LSFT),  // FN4
61     [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB),
62
63     [10] = ACTION_MACRO(PSWD1),
64     [11] = ACTION_MACRO(PSWD2),
65     [12] = ACTION_MACRO(PSWD3),
66     
67     [29] = ACTION_BACKLIGHT_TOGGLE(),
68     [30] = ACTION_BACKLIGHT_INCREASE(),
69     [31] = ACTION_BACKLIGHT_DECREASE()
70     
71 };
72
73 /*
74  * Macro definition
75  */
76 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
77 {
78     switch (id) {
79         case PSWD1:
80             return (record->event.pressed ?
81                     MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
82                     MACRO_NONE );
83         case PSWD2:
84             return (record->event.pressed ?
85                     MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
86                     MACRO_NONE );
87         case PSWD3:
88             return (record->event.pressed ?
89                     MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
90                     MACRO_NONE );
91         //case VOLUP:
92         //    return (record->event.pressed ?
93         //            MACRO( D(VOLU), U(VOLU), END ) :
94         //            MACRO_NONE );
95         //case ALT_TAB:
96         //    return (record->event.pressed ?
97         //            MACRO( D(LALT), D(TAB), END ) :
98         //            MACRO( U(TAB), END ));
99     }
100     return MACRO_NONE;
101 }