]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/kinesis/keymaps/salty/keymap.c
Adding my keymap with Colemak Mod-DH
[qmk_firmware.git] / keyboards / kinesis / keymaps / salty / keymap.c
1 #include "kinesis.h"
2 #include "action_layer.h"
3 #include "eeconfig.h"
4
5 #define _CMD   0 // Base Colemak Mod-DH
6 #define _QW    1 // Base QWERTY
7 #define _CG    2 // Colemak Mod-DH gaming layer
8 #define _QG    3 // QWERTY gaming layer
9 #define _NM    4 // Number layer
10 #define _MD    5 // Media Layer
11 #define _KP    6 // KP layer
12 #define _LY    7 // Layer switcher
13 #define _FN    8 // Function layer
14 #define _FN2   9 // Function layer (identical as _FN; used to deal with minor key interaction issue)
15
16 #define _______ KC_TRNS
17 #define XXXXXXX KC_NO
18
19 //Tap Dance Declarations
20 enum {
21   LPN_LBC,
22   RPN_RBC
23 };
24
25 qk_tap_dance_action_t tap_dance_actions[] = {
26 [LPN_LBC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC),
27 [RPN_RBC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC)
28 };
29
30 /*
31
32         Function Keys on All Layers (Keypad toggles):
33         ,-----------------------------------------------------------------.
34         |  ESC |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   F7   |  F8   |
35         `-----------------------------------------------------------------'
36         ,---------------------------------------------------------------- --------------.
37         |  F9  |  F10 |  F11 |  F12 | PScr | SLck | Paus | Keypad | Layer/              |
38         |      |      |      |      |      |      |      |        | RESET (in Fn layer) |
39         `-------------------------------------------------------------------------------'
40
41         Colemak Mod-DH layer:
42         ,-------------------------------------------.,-------------------------------------------.
43         |   =    |   1  |   2  |   3  |   4  |   5  ||   6  |   7  |   8  |   9  |   0  |   -    |
44         |--------+------+------+------+------+------||------+------+------+------+------+--------|
45         | Tab    |   Q  |   W  |   F  |   P  |   B  ||   J  |   L  |   U  |   Y  |   ;  |   \    |
46         |--------+------+------+------+------+------||------+------+------+------+------+--------|
47         | Ctl/Esc|   A  |   R  |   S  |   T  |   G  ||   M  |   N  |   E  |   I  |   O  |   '    |
48         |--------+------+------+------+------+------||------+------+------+------+------+--------|
49         | (    [ |   Z  |   X  |   C  |   D  |   V  ||   K  |   H  |   ,  |   .  |   /  | )    ] |
50         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
51                  |   `  |      |   [  |   ]  |              | Left | Down |  Up  | Right|
52                  `---------------------------'              `---------------------------'
53                                      ,--------------.,--------------.
54                                      |Ctl/Esc| LAlt || RAlt | RCtl  |
55                               ,------|-------|------||------+-------+-------.
56                               |      | Enter |Number|| RGUI | Delete|       |
57                               | Space|   /   |------||------|   /   | Bspc  |
58                               |  /Fn | LShift| Bspc || Media| RShift|  /Fn  |
59                               `---------------------'`----------------------' 
60
61
62         QWERTY layer:
63         ,-------------------------------------------.,-------------------------------------------.
64         |   =    |   1  |   2  |   3  |   4  |   5  ||   6  |   7  |   8  |   9  |   0  |   -    |
65         |--------+------+------+------+------+------||------+------+------+------+------+--------|
66         | Tab    |   Q  |   W  |   E  |   R  |   T  ||   Y  |   U  |   I  |   O  |   P  |   \    |
67         |--------+------+------+------+------+------||------+------+------+------+------+--------|
68         | Ctl/Esc|   A  |   S  |   D  |   F  |   G  ||   H  |   J  |   K  |   L  |   ;  |   '    |
69         |--------+------+------+------+------+------||------+------+------+------+------+--------|
70         | (    [ |   Z  |   X  |   C  |   V  |   B  ||   N  |   M  |   ,  |   .  |   /  | )    ] |
71         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
72                  |   `  |      |   [  |   ]  |              | Left | Down |  Up  | Right|
73                  `---------------------------'              `---------------------------'
74                                      ,--------------.,--------------.
75                                      |Ctl/Esc| LAlt || RAlt | RCtl  |
76                               ,------|-------|------||------+-------+-------.
77                               |      | Enter |Number|| RGUI | Delete|       |
78                               | Space|   /   |------||------|   /   | Bspc  |
79                               |  /Fn | LShift| Bspc || Media| RShift|  /Fn  |
80                               `---------------------'`----------------------' 
81
82
83         Colemak Mod-DH Gaming layer:
84         ,-------------------------------------------.,-------------------------------------------.
85         |   =    |   1  |   2  |   3  |   4  |   5  ||   6  |   7  |   8  |   9  |   0  |   -    |
86         |--------+------+------+------+------+------||------+------+------+------+------+--------|
87         | Tab    |   Q  |   W  |   F  |   P  |   B  ||   J  |   L  |   U  |   Y  |   ;  |   \    |
88         |--------+------+------+------+------+------||------+------+------+------+------+--------|
89         | Ctl/Esc|   A  |   R  |   S  |   T  |   G  ||   M  |   N  |   E  |   I  |   O  |   '    |
90         |--------+------+------+------+------+------||------+------+------+------+------+--------|
91         | LShift |   Z  |   X  |   C  |   D  |   V  ||   K  |   H  |   ,  |   .  |   /  | RShift |
92         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
93                  |   `  |      |   [  |   ]  |              | Left | Down |  Up  | Right|
94                  `---------------------------'              `---------------------------'
95                                      ,--------------.,--------------.
96                                      |Ctl/Esc| LAlt || RAlt | RCtl  |
97                               ,------|-------|------||------+-------+-------.
98                               |      | Enter |Number|| RGUI | Delete|       |
99                               | Space|   /   |------||------|   /   | Bspc  |
100                               |      | LShift| Bspc || Media| RShift|       |
101                               `---------------------'`----------------------'
102
103
104          QWERTY Gaming layer:
105         ,-------------------------------------------.,-------------------------------------------.
106         |   =    |   1  |   2  |   3  |   4  |   5  ||   6  |   7  |   8  |   9  |   0  |   -    |
107         |--------+------+------+------+------+------||------+------+------+------+------+--------|
108         | Tab    |   Q  |   W  |   E  |   R  |   T  ||   Y  |   U  |   I  |   O  |   P  |   \    |
109         |--------+------+------+------+------+------||------+------+------+------+------+--------|
110         | Ctl/Esc|   A  |   S  |   D  |   F  |   G  ||   H  |   J  |   K  |   L  |   ;  |   '    |
111         |--------+------+------+------+------+------||------+------+------+------+------+--------|
112         | LShift |   Z  |   X  |   C  |   V  |   B  ||   N  |   M  |   ,  |   .  |   /  | RShift |
113         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
114                  |   `  |      |   [  |   ]  |              | Left | Down |  Up  | Right|
115                  `---------------------------'              `---------------------------'
116                                      ,--------------.,--------------.
117                                      |Ctl/Esc| LAlt || RAlt | RCtl  |
118                               ,------|-------|------||------+-------+-------.
119                               |      | Enter |Number|| RGUI | Delete|       |
120                               | Space|   /   |------||------|   /   | Bspc  |
121                               |      | LShift| Bspc || Media| RShift|       |
122                               `---------------------'`----------------------'
123
124
125         Media layer:
126         ,-------------------------------------------.,-------------------------------------------.
127         |        |      |      |      |      |      ||      |      |      |      |      |        |
128         |--------+------+------+------+------+------||------+------+------+------+------+--------|
129         |        |      |      |      |      |      ||      |      |      |      |      |        |
130         |--------+------+------+------+------+------||------+------+------+------+------+--------|
131         |        |      | Mute | Vol- | Vol+ |      ||      |      |      |      |      |        |
132         |--------+------+------+------+------+------||------+------+------+------+------+--------|
133         |        |      | Prev | Play | Next | Stop ||      |      |      |      |      |        |
134         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
135                  |      |      |      |      |              |      |      |      |      |
136                  `---------------------------'              `---------------------------'
137                                       ,-------------.,-------------.
138                                       |      |      ||      |      |
139                                ,------|------|------||------+------+------.
140                                |      |      |      ||      |      |      |
141                                |      |      |------||------|      |      |
142                                |      |      |      ||      |      |      |
143                                `--------------------'`--------------------'
144
145         Keypad layer:
146         ,-------------------------------------------.,-------------------------------------------.
147         |        |      |      |      |      |      ||      |      | KP = | KP / | KP * |        |
148         |--------+------+------+------+------+------||------+------+------+------+------+--------|
149         |        |      |      |  Up  |      |      ||      | KP 7 | KP 8 | KP 9 | KP - |        |
150         |--------+------+------+------+------+------||------+------+------+------+------+--------|
151         |        |      | Left | Down | Right|      ||      | KP 4 | KP 5 | KP 6 | KP + |        |
152         |--------+------+------+------+------+------||------+------+------+------+------+--------|
153         |        |      |      |      |      |      ||      | KP 1 | KP 2 | KP 3 |KP Ent|        |
154         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
155                  |      | INS  |      |      |              |      |      | KP . |KP Ent|
156                  `---------------------------'              `---------------------------'
157                                       ,-------------.,-------------.
158                                       |      |      ||      |      |
159                                ,------|------|------||------+------+------.
160                                |      |      |      ||      |      |      |
161                                |      |      |------||------|      | KP 0 |
162                                |      |      |      ||      |      |      |
163                                `--------------------'`--------------------'
164
165         Layer switch layer:
166         ,-------------------------------------------.,-------------------------------------------.
167         |        |Col DH|QWERTY|Col GM|QW GM |      ||      |      |      |      |      |        |
168         |--------+------+------+------+------+------||------+------+------+------+------+--------|
169         |        |      |      |      |      |      ||      |      |      |      |      |        |
170         |--------+------+------+------+------+------||------+------+------+------+------+--------|
171         |        |      |      |      |      |      ||      |      |      |      |      |        |
172         |--------+------+------+------+------+------||------+------+------+------+------+--------|
173         |        |      |      |      |      |      ||      |      |      |      |      |        |
174         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
175                  |      |      |      |      |              |      |      |      |      |
176                  `---------------------------'              `---------------------------'
177                                       ,-------------.,-------------.
178                                       |      |      ||      |      |
179                                ,------|------|------||------+------+------.
180                                |      |      |      ||      |      |      |
181                                |      |      |------||------|      |      |
182                                |      |      |      ||      |      |      |
183                                `--------------------'`--------------------'
184
185         Function layer:
186         ,-------------------------------------------.,-------------------------------------------.
187         |   F11  |  F1  |  F2  |  F3  |  F4  |  F5  ||  F6  |  F7  |  F8  |  F9  |  F10 |  F12   |
188         |--------+------+------+------+------+------||------+------+------+------+------+--------|
189         |        |      |      |  Up  |      |      ||      | Home |  Up  |  End |      |        |
190         |--------+------+------+------+------+------||------+------+------+------+------+--------|
191         |        |      | Left | Down | Right|      || PgUp | Right| Down | Left |      |        |
192         |--------+------+------+------+------+------||------+------+------+------+------+--------|
193         |        |      |      |      |      |      || PgDn |      |      |      |      |        |
194         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
195                  |      |  INS |      |      |              |      |      |      |      |
196                  `---------------------------'              `---------------------------'
197                                       ,-------------.,-------------.
198                                       |      |      ||      |      |
199                                ,------|------|------||------+------+------.
200                                |      |      |      ||      |      |      |
201                                |      |      |------||------|      |      |
202                                |      |      |      ||      |      |      |
203                                `--------------------'`--------------------'
204
205
206 */
207
208 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
209
210 [_CMD] = KEYMAP(
211            // Left Hand
212            KC_ESC,        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,
213            KC_EQL,        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
214            KC_TAB,        KC_Q,    KC_W,    KC_F,    KC_P,    KC_B,
215            CTL_T(KC_ESC), KC_A,    KC_R,    KC_S,    KC_T,    KC_G,
216            TD(LPN_LBC),   KC_Z,    KC_X,    KC_C,    KC_D,    KC_V,
217                           KC_GRV,  XXXXXXX, KC_LBRC, KC_RBRC,
218
219            //Left Thumb
220                                    CTL_T(KC_ESC),    KC_LALT,
221                                                      MO(_NM),
222            LT(_FN, KC_SPC),        LSFT_T(KC_ENT),   KC_BSPC,
223
224            //Right Hand
225            KC_F9,         KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), MO(_LY),
226            KC_6,          KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
227            KC_J,          KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSLS,
228            KC_M,          KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
229            KC_K,          KC_H,    KC_COMM, KC_DOT,  KC_SLSH, TD(RPN_RBC),
230            KC_LEFT,       KC_DOWN, KC_UP,   KC_RGHT,
231
232            //Right Thumb
233            KC_RALT,       KC_RCTL,
234            KC_RGUI,
235            MO(_MD),       RSFT_T(KC_DEL),   LT(_FN2, KC_BSPC)
236     ),
237
238 [_QW] = KEYMAP(
239            // Left Hand
240            KC_ESC,        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,
241            KC_EQL,        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
242            KC_TAB,        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,
243            CTL_T(KC_ESC), KC_A,    KC_S,    KC_D,    KC_F,    KC_G,
244            TD(LPN_LBC),   KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,
245                           KC_GRV,  XXXXXXX, KC_LBRC, KC_RBRC,
246            
247            //Left Thumb
248                                    CTL_T(KC_ESC),    KC_LALT,
249                                                      MO(_NM),
250            LT(_FN, KC_SPC),        LSFT_T(KC_ENT),   KC_BSPC,
251
252            //Right Hand
253            KC_F9,         KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), MO(_LY),
254            KC_6,          KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
255            KC_Y,          KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS,
256            KC_H,          KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
257            KC_N,          KC_M,    KC_COMM, KC_DOT,  KC_SLSH, TD(RPN_RBC),
258            KC_LEFT,       KC_DOWN, KC_UP,   KC_RGHT,
259
260            //Right Thumb
261            KC_RALT,       KC_RCTL,
262            KC_RGUI,
263            MO(_MD),       RSFT_T(KC_DEL),   LT(_FN2, KC_BSPC)
264
265     ),
266
267 [_CG] = KEYMAP(
268            // Left Hand
269            KC_ESC,        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,
270            KC_EQL,        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
271            KC_TAB,        KC_Q,    KC_W,    KC_F,    KC_P,    KC_B,
272            CTL_T(KC_ESC), KC_A,    KC_R,    KC_S,    KC_T,    KC_G,
273            KC_LSFT,       KC_Z,    KC_X,    KC_C,    KC_D,    KC_V,
274                           KC_GRV,  XXXXXXX, KC_LBRC, KC_RBRC,
275
276            //Left Thumb
277                                    CTL_T(KC_ESC),    KC_LALT,
278                                                      MO(_NM),
279            KC_SPC,                 LSFT_T(KC_ENT),   KC_BSPC,
280
281            //Right Hand
282            KC_F9,         KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), MO(_LY),
283            KC_6,          KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
284            KC_J,          KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSLS,
285            KC_M,          KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
286            KC_K,          KC_H,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
287            KC_LEFT,       KC_DOWN, KC_UP,   KC_RGHT,
288
289            //Right Thumb
290            KC_RALT,       KC_RCTL,
291            KC_RGUI,
292            MO(_MD),       RSFT_T(KC_DEL),   KC_BSPC
293     ),
294
295 [_QG] = KEYMAP(
296            // Left Hand
297            KC_ESC,        KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,
298            KC_EQL,        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
299            KC_TAB,        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,
300            CTL_T(KC_ESC), KC_A,    KC_S,    KC_D,    KC_F,    KC_G,
301            KC_LSFT,       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,
302                           KC_GRV,  XXXXXXX, KC_LBRC, KC_RBRC,
303
304            //Left Thumb
305                                    CTL_T(KC_ESC),    KC_LALT,
306                                                      MO(_NM),
307            KC_SPC,                 LSFT_T(KC_ENT),   KC_BSPC,
308
309            //Right Hand
310            KC_F9,         KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), MO(_LY),
311            KC_6,          KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
312            KC_Y,          KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS,
313            KC_H,          KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
314            KC_N,          KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
315            KC_LEFT,       KC_DOWN, KC_UP,   KC_RGHT,
316
317            //Right Thumb
318            KC_RALT,       KC_RCTL,
319            KC_RGUI,
320            MO(_MD),       RSFT_T(KC_DEL),   KC_BSPC
321     ),
322
323 [_NM] = KEYMAP(
324            // Left Hand
325            _______, _______, _______, _______, _______, _______, _______, _______, _______,
326            _______, _______, _______, _______, _______, _______,
327            _______, _______, _______, _______, _______, _______,
328            KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
329            _______, _______, _______, _______, _______, _______,
330                     _______, _______, _______, _______,
331
332            // Left Thumb
333                     _______, _______,
334                              _______,
335            _______, _______, _______,
336
337            // Right Hand
338            _______, _______, _______, _______, _______, _______, _______, _______, _______,
339            _______, _______, _______, _______, _______, _______,
340            _______, _______, _______, _______, _______, _______,
341            KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
342            _______, _______, _______, _______, _______, _______,
343                     _______, _______, _______, _______, 
344
345            // Right Thumb
346            _______, _______,
347            _______,
348            _______, _______, _______
349     ),
350
351 [_MD] = KEYMAP(
352            // Left Hand
353            _______, _______, _______, _______, _______, _______, _______, _______, _______,
354            _______, _______, _______, _______, _______, _______,
355            _______, _______, _______, _______, _______, _______,
356            _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______,
357            _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
358                     _______, _______, _______, _______,
359
360            // Left Thumb
361                     _______, _______,
362                              _______,
363            _______, _______, _______,
364
365            // Right Hand
366            _______, _______, _______, _______, _______, _______, _______, _______, _______,
367            _______, _______, _______, _______, _______, _______,
368            _______, _______, _______, _______, _______, _______,
369            _______, _______, _______, _______, _______, _______,
370            _______, _______, _______, _______, _______, _______,
371                     _______, _______, _______, _______,
372
373            // Right Thumb
374            _______, _______,
375            _______,
376            _______, _______, _______
377     ),
378
379 [_KP] = KEYMAP(
380            // Left Hand
381            _______, _______, _______, _______, _______, _______, _______, _______, _______,
382            _______, _______, _______, _______, _______, _______,
383            _______, _______, _______, KC_UP,   _______, _______,
384            _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
385            _______, _______, _______, _______, _______, _______,
386                     _______, KC_INS,  _______, _______,
387
388            // Left Thumb
389                     _______, _______,
390                              _______,
391            _______, _______, _______,
392
393            // Right Hand
394            _______, _______, _______, _______, _______, _______, _______, _______, _______,
395            _______, _______, KC_PEQL, KC_PSLS, KC_PAST, _______,
396            _______, KC_P7,   KC_P8,   KC_P9,   KC_PMNS, _______,
397            _______, KC_P4,   KC_P5,   KC_P6,   KC_PPLS, _______,
398            _______, KC_P1,   KC_P2,   KC_P3,   KC_PENT, _______,
399                     _______, _______, KC_PDOT, KC_PENT,
400
401            // Right Thumb
402            _______, _______,
403            _______,
404            _______, _______, KC_P0
405     ),
406
407 [_LY] = KEYMAP(
408            // Left Hand
409            _______, _______,  _______, _______, _______, _______, _______, _______, _______,
410            _______, DF(_CMD), DF(_QW), DF(_CG), DF(_QG), _______,
411            _______, _______,  _______, _______, _______, _______,
412            _______, _______,  _______, _______, _______, _______,
413            _______, _______,  _______, _______, _______, _______,
414                     _______,  _______, _______, _______,
415
416            // Left Thumb
417                     _______, _______,
418                              _______,
419            _______, _______, _______,
420
421            // Right Hand
422            _______, _______,  _______, _______, _______, _______, _______, _______, _______,
423            _______, _______,  _______, _______, _______, _______,
424            _______, _______,  _______, _______, _______, _______,
425            _______, _______,  _______, _______, _______, _______,
426            _______, _______,  _______, _______, _______, _______,
427                     _______,  _______, _______, _______, 
428
429            // Right Thumb
430            _______, _______,
431            _______,
432            _______, _______,  _______
433     ),
434
435 [_FN] = KEYMAP(
436            // Left Hand
437            _______, _______, _______, _______, _______, _______, _______, _______, _______,
438            KC_F11,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,
439            _______, _______, _______, KC_UP,   _______, _______,
440            _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
441            _______, _______, _______, _______, _______, _______,
442                     _______, KC_INS,  _______, _______,
443
444            // Left Thumb
445                     _______, _______,
446                              _______,
447            _______, _______, _______,
448
449            // Right Hand
450            _______, _______, _______, _______, _______, _______, _______, _______, RESET,
451            KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F12,
452            _______, KC_HOME, KC_UP,   KC_END,  _______, _______,
453            KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
454            KC_PGDN, _______, _______, _______, _______, _______,
455                     _______, _______, _______, _______, 
456
457            // Right Thumb
458            _______, _______,
459            _______,
460            _______, _______, _______
461     ),
462
463 [_FN2] = KEYMAP(
464            // Left Hand
465            _______, _______, _______, _______, _______, _______, _______, _______, _______,
466            KC_F11,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,
467            _______, _______, _______, KC_UP,   _______, _______,
468            _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
469            _______, _______, _______, _______, _______, _______,
470                     _______, KC_INS,  _______, _______,
471
472            // Left Thumb
473                     _______, _______,
474                              _______,
475            _______, _______, _______,
476
477            // Right Hand
478            _______, _______, _______, _______, _______, _______, _______, _______, RESET,
479            KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F12,
480            _______, KC_HOME, KC_UP,   KC_END,  _______, _______,
481            KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
482            KC_PGDN, _______, _______, _______, _______, _______,
483                     _______, _______, _______, _______, 
484
485            // Right Thumb
486            _______, _______,
487            _______,
488            _______, _______, _______
489     )
490
491 };
492
493 const uint16_t PROGMEM fn_actions[] = {
494
495 };
496
497 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
498 {
499   // MACRODOWN only works in this function
500       switch(id) {
501         case 0:
502           if (record->event.pressed) {
503             register_code(KC_RSFT);
504           } else {
505             unregister_code(KC_RSFT);
506           }
507         break;
508       }
509     return MACRO_NONE;
510 };
511
512
513 void matrix_init_user(void) {
514
515 }
516
517 void matrix_scan_user(void) {
518
519 }
520
521 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
522   return true;
523 }
524
525 void led_set_user(uint8_t usb_led) {
526
527 }