]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/infinity60/keymaps/jpetermans/keymap.c
Small keymap tweak and clean up.
[qmk_firmware.git] / keyboards / infinity60 / keymaps / jpetermans / keymap.c
1 #include "infinity60.h"
2 #include "led_controller.h"
3
4 //Helpful Defines
5 #define _______ KC_TRNS
6
7 //Define Layer Names
8 #define _BASE 0
9 #define _NUMPAD 1
10 #define _FNAV 2
11 #define _MEDIA 3
12 #define _TILDE 4
13
14 const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15     /* Layer 0: Default Layer
16      * ,-----------------------------------------------------------.
17      * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  Backs|
18      * |-----------------------------------------------------------|
19      * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|    \|
20      * |-----------------------------------------------------------|
21      * |CapsLo|  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Enter   |
22      * |-----------------------------------------------------------|
23      * |Shif|   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |
24      * |-----------------------------------------------------------|
25      * |Ctrl|Gui |Alt |         Space    |Alt |Gui |  FN  | Ctrl   |
26      * `-----------------------------------------------------------'
27      */
28     /* default */
29     [_BASE] = KEYMAP( \
30         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, KC_BSLS,KC_NO,\
31         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,KC_BSPC,   \
32         TT(_FNAV), KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,KC_QUOT,KC_ENT,         \
33         F(1),   KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_NO,          \
34         KC_LCTL,   KC_LGUI,KC_LALT,               KC_SPC,          KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL         \
35     ),
36
37     /* F-, arrow, and media keys */
38     [_FNAV] = KEYMAP( \
39         KC_GRV, KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9,  KC_F10, KC_F11, KC_F12, _______,KC_NO,\
40         KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL,  \
41         _______,M(0),KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______,     \
42         _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO,         \
43         _______,_______,_______,               _______,             F(0),KC_NLCK,_______,_______   \
44     ),
45
46     /* numpad */
47     [_NUMPAD] = KEYMAP( \
48         _______,_______,_______,_______,_______,_______,_______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,_______,_______,KC_NO,\
49         _______,_______,_______,_______,_______,_______,_______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,_______,_______, \
50         MO(_FNAV),_______,_______,_______,_______,_______,_______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,_______,      \
51         _______,_______,_______,_______,_______,_______,_______, KC_P0,KC_COMM,KC_PDOT,KC_PPLS, _______,KC_NO,      \
52         _______,_______,_______,               MO(_BASE),           _______,_______,_______,_______   \
53     ),
54
55     /* media */
56     [_MEDIA] = KEYMAP( \
57         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\
58         _______,_______,_______,_______,_______,_______,_______, _______, KC_UP, _______,_______, _______,_______,_______,\
59         _______,_______,_______,_______,_______,_______,_______, KC_LEFT, KC_DOWN, KC_RGHT,_______, _______,_______,     \
60         _______,_______,F(2),F(3),_______,_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO,       \
61         _______,_______,_______,               KC_MPLY,             _______,_______, _______,_______      \
62     ),
63     /* ~ */
64     [_TILDE] = KEYMAP( \
65         KC_GRV,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\
66         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\
67         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,     \
68         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO,       \
69         _______,_______,_______,               _______,             _______,_______, _______,_______      \
70     ),
71     /* template */
72     [5] = KEYMAP( \
73         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\
74         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\
75         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,     \
76         _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO,       \
77         _______,_______,_______,               _______,             _______,_______, _______,_______      \
78     ),
79 };
80
81 //id for user defined functions and macros
82 enum function_id {
83     NONE,
84 };
85
86 enum macro_id {
87     ACTION_LEDS_ALL,
88     ACTION_LEDS_GAME
89 };
90
91 const uint16_t fn_actions[] = {
92     [0] = ACTION_KEY(LALT(LCTL(KC_DEL))),
93     [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT),
94     [2] = ACTION_FUNCTION(ACTION_LEDS_ALL),
95     [3] = ACTION_FUNCTION(ACTION_LEDS_GAME)
96 };
97
98 /* custom action function */
99 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
100   (void)opt;
101   switch(id) {
102     case ACTION_LEDS_ALL:
103         if(record->event.pressed) {
104           // signal the LED controller thread
105           chMBPost(&led_mailbox, LED_MSG_GAME_TOGGLE, TIME_IMMEDIATE);
106         }
107       break;
108     case ACTION_LEDS_GAME:
109       if(record->event.pressed) {
110         // signal the LED controller thread
111         chMBPost(&led_mailbox, LED_MSG_ALL_TOGGLE, TIME_IMMEDIATE);
112       }
113       break;
114   }
115 }
116
117 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
118 {
119     switch(id) {
120         case 0: 
121             if (record->event.pressed) {
122             }
123             break;
124         case 1:
125             if (record->event.pressed) {
126             }
127             break;
128     }
129     return MACRO_NONE;
130 };
131
132
133 // Runs just one time when the keyboard initializes.
134 void matrix_init_user(void) {
135     led_controller_init();
136 };
137
138 // Runs constantly in the background, in a loop.
139 void matrix_scan_user(void) {
140
141 };
142