]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodox_ez/keymaps/drashna/keymap.c
Update to drashna userspace (Keymap Templating) (#2338)
[qmk_firmware.git] / keyboards / ergodox_ez / keymaps / drashna / keymap.c
1 /*
2 This is the keymap for the keyboard
3 Copyright 2012 Jun Wako <wakojun@gmail.com>
4 Copyright 2015 Jack Humbert
5 Copyright 2017 Art Ortenburger
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 2 of the License, or
9 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 #include QMK_KEYBOARD_H
18 #include "drashna.h"
19
20
21
22
23 //define layer change stuff for underglow indicator
24 bool skip_leds = false;
25
26
27
28 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 /* Keymap 0: Basic layer
30  * 
31  * 
32  * ,--------------------------------------------------.           ,--------------------------------------------------.
33  * |   = +  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  | TG(4)|           | TG(4)| 6 ^  | 7 &  |  8 * | 9 (  |  0 ) |  - _   |
34  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
35  * |   TAB  |   Q  |   W  |   E  |   R  |   T  | TG(3)|           |TG(3) |   Y  |   U  |   I  |   O  |   P  |  \ |   |
36  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
37  * |  Bksp  |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |  ' "   |
38  * |--------+------+------+------+------+------| TG(2)|           | TG(2)|------+------+------+------+------+--------|
39  * | Shift  |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |  , < |  . > |  ? / | Shift  |
40  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
41  *   | `/SYM|  ' " | LGUI |  [ { | ] }  |                                       | LEFT | DOWN |  UP  |RIGHT | SYMB |
42  *   `----------------------------------'                                       `----------------------------------'
43  *                                        ,--------------.       ,--------------.
44  *                                        |Alt/Ap|  Win  |       | Alt  |Ctl/Esc|
45  *                                 ,------|------|-------|       |------+-------+------.
46  *                                 |      |      | Home  |       | PgUp |       |      |
47  *                                 | Space| Bksp |-------|       |------|  DEL  |Enter |
48  *                                 |      |      | End   |       | PgDn |       |      |
49  *                                 `---------------------'       `---------------------'
50  */
51   [_QWERTY] = LAYOUT_ergodox_wrapper(
52                 KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    TG(_MOUS),
53                 KC_TAB,  _________________QWERTY_L1_________________, TG(_DIABLO),
54                 KC_BSPC, _________________QWERTY_L2_________________,
55                 KC_LSFT, _________________QWERTY_L3_________________, TG(_GAMEPAD),
56        LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
57                 
58                                             ALT_T(KC_APP),   KC_LGUI,
59                                                              KC_HOME,
60                                            KC_SPACE,KC_BSPC, KC_END,
61                                     
62            TG(_MOUS),    KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_MINS,
63            TG(_DIABLO),  _________________QWERTY_R1_________________, KC_BSLS,
64                          _________________QWERTY_R2_________________, GUI_T(KC_QUOT),
65            TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_RSFT,
66                          ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
67            KC_RGUI,      CTL_T(KC_ESCAPE),
68            KC_PGUP,
69            KC_PGDOWN,    KC_DELETE,  KC_ENTER
70     ),
71 /* Keymap 0: Basic layer
72  *
73  * ,--------------------------------------------------.           ,--------------------------------------------------.
74  * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
75  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
76  * | Del    |   Q  |   W  |   F  |   P  |   G  |  L1  |           |  L1  |   J  |   L  |   U  |   Y  |   ;  |   \    |
77  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
78  * | BkSp   |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |O / L2|   '    |
79  * |--------+------+------+------+------+------| OVER |           | Meh  |------+------+------+------+------+--------|
80  * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |   ,  |   .  |//Ctrl| RShift |
81  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
82  *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
83  *   `----------------------------------'                                       `----------------------------------'
84  *                                        ,-------------.       ,-------------.
85  *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
86  *                                 ,------|------|------|       |------+--------+------.
87  *                                 |      |      | Home |       | PgUp |        |      |
88  *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
89  *                                 |      |ace   | End  |       | PgDn |        |      |
90  *                                 `--------------------'       `----------------------'
91  */
92 // If it accepts an argument (i.e, is a function), it doesn't need KC_.
93 // Otherwise, it needs KC_*
94 [_COLEMAK] = LAYOUT_ergodox_wrapper(  
95         // left hand
96                 KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    TG(_MOUS),
97                 KC_TAB,  _________________COLEMAK_L1________________, TG(_DIABLO),
98                 KC_BSPC, _________________COLEMAK_L2________________,
99                 KC_LSFT, _________________COLEMAK_L3________________, TG(_GAMEPAD),
100        LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
101                                             ALT_T(KC_APP),   KC_LGUI,
102                                                              KC_HOME,
103                                            KC_SPACE,KC_BSPC, KC_END,
104         // right hand
105            TG(_MOUS),    KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_MINS,
106            TG(_DIABLO),  _________________COLEMAK_R1________________, KC_BSLS,
107                          _________________COLEMAK_R2________________, GUI_T(KC_QUOT),
108            TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_RSFT,
109                          ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
110            KC_RGUI,      CTL_T(KC_ESCAPE),
111            KC_PGUP,
112            KC_PGDOWN,    KC_DELETE,  KC_ENTER
113     ),
114 /* Keymap 0: Basic layer
115  *
116  * ,--------------------------------------------------.           ,--------------------------------------------------.
117  * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   \    |
118  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
119  * | Del    |   '  |   ,  |   .  |   P  |   Y  |  L1  |           |  L1  |   F  |   G  |   C  |   R  |   L  |   /    |
120  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
121  * | BkSp   |   A  |   O  |   E  |   U  |   I  |------|           |------|   D  |   H  |   T  |   N  |S / L2|   -    |
122  * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------|
123  * | LShift |:/Ctrl|   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |Z/Ctrl| RShift |
124  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
125  *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
126  *   `----------------------------------'                                       `----------------------------------'
127  *                                        ,-------------.       ,-------------.
128  *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
129  *                                 ,------|------|------|       |------+--------+------.
130  *                                 |      |      | Home |       | PgUp |        |      |
131  *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
132  *                                 |      |ace   | End  |       | PgDn |        |      |
133  *                                 `--------------------'       `----------------------'
134  */
135 // If it accepts an argument (i.e, is a function), it doesn't need KC_.
136 // Otherwise, it needs KC_*
137 [_DVORAK] = LAYOUT_ergodox_wrapper(  
138         // left hand
139                 KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    TG(_MOUS),
140                 KC_TAB,  _________________DVORAK_L1_________________, TG(_DIABLO),
141                 KC_BSPC, _________________DVORAK_L2_________________,
142                 KC_LSFT, _________________DVORAK_L3_________________, TG(_GAMEPAD),
143        LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
144                                             ALT_T(KC_APP),   KC_LGUI,
145                                                              KC_HOME,
146                                            KC_SPACE,KC_BSPC, KC_END,
147         // right hand
148            TG(_MOUS),    KC_6,    KC_7,    KC_8,    KC_9,     KC_0,   KC_BSLS,
149            TG(_DIABLO),  _________________DVORAK_R1_________________, KC_SLSH,
150                          _________________DVORAK_R2_________________, GUI_T(KC_MINS),
151            TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_RSFT,
152                          ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
153            KC_RGUI,      CTL_T(KC_ESCAPE),
154            KC_PGUP,
155            KC_PGDOWN,    KC_DELETE,  KC_ENTER
156     ),
157 /* Keymap 0: Basic layer
158  *
159  * ,--------------------------------------------------.           ,--------------------------------------------------.
160  * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    |
161  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
162  * | Del    |   Q  |   D  |   R  |   W  |   B  |  L1  |           |  L1  |   J  |   F  |   U  |   P  |   ;  |   \    |
163  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
164  * | BkSp   |   A  |   S  |   H  |   T  |   D  |------|           |------|   Y  |   N  |   E  |   O  |   I  |   '    |
165  * |--------+------+------+------+------+------| OVER |           | Meh  |------+------+------+------+------+--------|
166  * | LShift |Z/Ctrl|   X  |   M  |   C  |   V  |      |           |      |   K  |   L  |   ,  |   .  |//Ctrl| RShift |
167  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
168  *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  |
169  *   `----------------------------------'                                       `----------------------------------'
170  *                                        ,-------------.       ,-------------.
171  *                                        | App  | LGui |       | Alt  |Ctrl/Esc|
172  *                                 ,------|------|------|       |------+--------+------.
173  *                                 |      |      | Home |       | PgUp |        |      |
174  *                                 | Space|Backsp|------|       |------|  Tab   |Enter |
175  *                                 |      |ace   | End  |       | PgDn |        |      |
176  *                                 `--------------------'       `----------------------'
177  */
178 // If it accepts an argument (i.e, is a function), it doesn't need KC_.
179 // Otherwise, it needs KC_*
180 [_WORKMAN] = LAYOUT_ergodox_wrapper(  
181         // left hand
182                 KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    TG(_MOUS),
183                 KC_TAB,  _________________WORKMAN_L1________________, TG(_DIABLO),
184                 KC_BSPC, _________________WORKMAN_L2________________,
185                 KC_LSFT, _________________WORKMAN_L3________________, TG(_GAMEPAD),
186        LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________,
187                                             ALT_T(KC_APP),   KC_LGUI,
188                                                              KC_HOME,
189                                            KC_SPACE,KC_BSPC, KC_END,
190         // right hand
191            TG(_MOUS),    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
192            TG(_DIABLO),  _________________WORKMAN_R1________________, KC_BSLS,
193                          _________________WORKMAN_R2________________, GUI_T(KC_QUOT),
194            TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_RSFT,
195                          ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB),
196            KC_RGUI,      CTL_T(KC_ESCAPE),
197            KC_PGUP,
198            KC_PGDOWN,    KC_DELETE,  KC_ENTER
199     ),
200
201   [_MODS] = LAYOUT_ergodox(
202                 KC_TRNS,      KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,      KC_TRNS,      KC_TRNS,
203                 KC_TRNS,      KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,      KC_TRNS,      KC_TRNS,
204                 KC_TRNS,      KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,      KC_TRNS,
205                 OSM(MOD_LSFT),KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,      KC_TRNS,      KC_TRNS,
206                 KC_TRNS,      KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
207                                                                                 KC_TRNS,      KC_TRNS,
208                                                                                               KC_TRNS,
209                                                                   KC_TRNS,      KC_TRNS,      KC_TRNS,
210                 
211                 KC_TRNS,    KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,
212                 KC_TRNS,    KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,
213                             KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,
214                 KC_TRNS,    KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      OSM(MOD_RSFT),
215                                           KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,      KC_TRNS,
216                 KC_TRNS,    KC_TRNS,
217                 KC_TRNS,
218                 KC_TRNS,    KC_TRNS,      KC_TRNS
219             ),
220
221     /* Keymap 3: Symbol Layer
222 *
223 * ,--------------------------------------------------.           ,--------------------------------------------------.
224 * |   ESC  |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  | F10  |   F11  |
225 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
226 * | VERSION|   !  |   @  |  {   |   }  |  |   |      |           |      |  +   |   7  |   8  |   9  |  *   |   F12  |
227 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
228 * |  MAKE  |   #  |   $  |  (   |   )  |  `   |------|           |------|  -   |   4  |   5  |   6  |  /   | PrtSc  |
229 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
230 * |  RESET |   %  |   ^  |  [   |   ]  |  ~   |      |           |      | NUM  |   1  |   2  |   3  |  =   |  PAUSE |
231 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
232 *   |  LT0 |   &  |   *  |  :   |   ;  |                                       |      |   0  | NUM. | ENT  |  ENT |
233 *   `----------------------------------'                                       `----------------------------------'
234 *                                        ,-------------.       ,-------------.
235 *                                        | RGBM | RED  |       | OFF  | SOLID|
236 *                                 ,------|------|------|       |------+------+------.
237 *                                 |      |      | GREEN|       |      |      |      |
238 *                                 | RGB  | RGB  |------|       |------| NUM0 | NUME |
239 *                                 | DARK |BRITE | BLUE |       |      |      |      |
240 *                                 `--------------------'       `--------------------'
241 */
242   [_SYMB] = LAYOUT_ergodox(
243                 EPRM,           KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,      TG(_MODS),
244                 VRSN,           KC_EXLM,    KC_AT,      KC_LCBR,    KC_RCBR,    KC_PIPE,    KC_WORKMAN,
245                 KC_MAKE,        KC_HASH,    KC_DLR,     KC_LPRN,    KC_RPRN,    KC_GRAVE,
246                 KC_RESET,       KC_PERC,    KC_CIRC,    KC_LBRACKET,KC_RBRACKET,KC_TILD,    KC_COLEMAK,
247                 KC_TRNS,        KC_AMPR,    KC_ASTR,    KC_COLN,    KC_SCOLON,
248                                                                   RGB_SMOD, KC_RGB_T,
249                                                                   RGB_HUI,
250                                                                   RGB_M_R, RGB_M_SW, RGB_HUD,
251                 
252                 KC_QWERTY,   KC_F6,      KC_F7,      KC_F8,      KC_F9,      KC_F10,         KC_F11,
253                 KC_DVORAK,   KC_KP_PLUS, KC_KP_7,    KC_KP_8,    KC_KP_9,    KC_KP_ASTERISK, KC_F12,
254                              KC_KP_MINUS,KC_KP_4,    KC_KP_5,    KC_KP_6,    KC_KP_SLASH,    KC_PSCREEN,
255                 KC_COLEMAK,  KC_NUMLOCK, KC_KP_1,    KC_KP_2,    KC_KP_3,    KC_EQUAL,       KC_PAUSE,
256                                          KC_KP_0,    KC_KP_0,    KC_KP_DOT,  KC_KP_ENTER,    KC_TRNS,
257                 KC_TRNS,    KC_TRNS,
258                 KC_TRNS,
259                 KC_KP_DOT, KC_KP_0, KC_KP_ENTER
260             ),
261
262 /* Keymap 4: Customized Overwatch Layout
263  *
264  * ,--------------------------------------------------.           ,--------------------------------------------------.
265  * |   ESC  |      |      |      |      |      |      |           |      |  F9  | F10  | F11  |  F12 |      |        |
266  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
267  * |   F1   |  K   |  Q   |  W   |  E   |  R   |  T   |           |      |      |      |      |      |      |        |
268  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
269  * |   TAB  |  G   |  A   |  S   |  D   |  F   |------|           |------|      |      |      |      |      |        |
270  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
271  * |  LCTR  | LSHFT|  Z   |  X   |  C   |  V   |      |           |      |   N  |  M   |      |      |      |        |
272  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
273  *   |   J  |  U   |  I   |  Y   |  T   |                                       |      |      |      |      |      |
274  *   `----------------------------------'                                       `----------------------------------'
275  *                                        ,-------------.       ,-------------.
276  *                                        |  O   |  P   |       |      |      |
277  *                                 ,------|------|------|       |------+------+------.
278  *                                 |      |      | LGUI |       |      |      |      |
279  *                                 |  V   | SPACE|------        |------|      | Enter|
280  *                                 |      |      |  H   |       |      |      |      |
281  *                                 `--------------------'       `--------------------'
282  */
283   [_GAMEPAD] = LAYOUT_ergodox(
284                 KC_ESCAPE,      KC_TRNS,    KC_TRNS,    KC_TRNS,    HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV),
285                 KC_F1,          KC_K,       KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,
286                 KC_TAB,         KC_G,       KC_A,       KC_S,       KC_D,       KC_F,
287                 KC_LCTL,        KC_LSHIFT,  KC_Z,       KC_X,       KC_C,       KC_V,       KC_TRNS,
288                 KC_G,           KC_U,       KC_I,       KC_Y,       KC_T,
289                                             KC_O,   KC_P,
290                                                     KC_LGUI,
291                                 KC_V,   KC_SPACE,   KC_H,
292                                     
293                 KC_TRNS,        KC_F9,      KC_F10,     KC_F11,     KC_F12,     KC_NO,      KC_NO,
294                 KC_NO,          KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
295                                 KC_I,       KC_O,       KC_NO,      KC_NO,      KC_NO,      KC_NO,
296                 TG(_GAMEPAD),   KC_N,       KC_M,       KC_NO,      KC_NO,      KC_NO,      KC_NO,
297                                             KC_LEFT,    KC_DOWN,    KC_UP,      KC_RIGHT,      KC_NO,
298                 KC_HYPR,         MAGIC_TOGGLE_NKRO,
299                 KC_NO,
300                 KC_PGDOWN,      KC_DELETE, KC_ENTER
301             ),
302
303 /* Keymap 3:
304  *
305  * ,--------------------------------------------------.           ,--------------------------------------------------.
306  * |   ESC  |  V   |  D   | ALT  |      |      |      |           |      |      |      |      |      |      |        |
307  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
308  * |   TAB  |  S   |  I   |  F   |  M   |  T   |      |           |      |      |      |      |      |      |        |
309  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
310  * |    Q   |  1   |  2   |  3   |  4   |  G   |------|           |------|      |      |      |      |      |        |
311  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
312  * | NUMLOCK| NUM1 | NUM2 | NUM3 | NUM4 |  Z   |      |           |      |      |      |      |      |      |        |
313  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
314  *   | LCTL | MAC1 | MAC2 | MAC3 | MAC4 |                                       |      |      |      |      |      |
315  *   `----------------------------------'                                       `----------------------------------'
316  *                                        ,-------------.       ,-------------.
317  *                                        |   L  |  J   |       |      |      |
318  *                                 ,------|------|------|       |------+------+------.
319  *                                 |      |      |  G   |       |      |      |      |
320  *                                 | SPACE|  Q   |------        |------|      |      |
321  *                                 | SHIFT| ALT  | 0MAC |       |      |      |      |
322  *                                 `--------------------'       `--------------------'
323  */
324   [_DIABLO] = LAYOUT_ergodox(
325                 KC_ESCAPE,  KC_V,       KC_D,       KC_LALT,    KC_NO,      KC_NO,      KC_NO,
326                 KC_TAB,     KC_S,       KC_I,       KC_F,       KC_M,       KC_T,       KC_TRNS,
327                 KC_Q,       KC_1,       KC_2,       KC_3,       KC_4,       KC_G,
328                 KC_LCTL,    KC_D3_1,    KC_D3_2,    KC_D3_3,    KC_D3_4, KC_Z,       KC_NO,
329                 KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
330                                                 KC_L,   KC_J,
331                                                         KC_F,
332                     SFT_T(KC_SPACE),    ALT_T(KC_Q),    KC_DIABLO_CLEAR,
333                                     
334                                     
335                                     
336                 KC_TRNS,        KC_F9,      KC_F10,     KC_F11,     KC_F12,     KC_NO,      KC_NO,
337                 KC_TRNS,        KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
338                                 KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
339                 KC_NO,          KC_N,       KC_M,       KC_NO,      KC_NO,      KC_NO,      KC_NO,
340                                             KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
341                 KC_NO,          KC_NO,
342                 KC_NO,
343                 KC_PGDOWN,      KC_DELETE, KC_ENTER
344             ),
345
346 /* Keymap 4: Media and mouse keys
347  *
348  * ,--------------------------------------------------.           ,--------------------------------------------------.
349  * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
350  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
351  * |        |      | MsUp |      |      |      |      |           |      |      |      |      |      |      |        |
352  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
353  * |        |MsLeft|MsDown|MsRght|      |      |------|           |------|      |      | Acc0 | Acc1 | Acc2 |        |
354  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
355  * |        | Acc0 | Acc1 | Acc2 |      |      |      |           |      |      | Mute |VolDn |VolUp |      |        |
356  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
357  *   |      |      |      |      |      |                                       | Play | Stop |      |      |      |
358  *   `----------------------------------'                                       `----------------------------------'
359  *                                        ,-------------.       ,-------------.
360  *                                        |      |      |       |      |      |
361  *                                 ,------|------|------|       |------+------+------.
362  *                                 |      |      | MWUp |       |      |      |      |
363  *                                 | Lclk | Rclk |------|       |------| MBn4 | MBn5 |
364  *                                 |      |      | MWDn |       | Mclk |      |      |
365  *                                 `--------------------'       `--------------------'
366  */
367   [_MOUS] = LAYOUT_ergodox(
368                 KC_NO,      KC_SECRET_1,KC_SECRET_2,KC_SECRET_3,KC_SECRET_4,KC_SECRET_5,KC_TRNS,
369                 KC_NO,      KC_NO,      KC_MS_U,    KC_NO,      KC_NO,      KC_NO,      KC_TRNS,
370                 KC_NO,      KC_MS_L,    KC_MS_D,    KC_MS_R,    KC_NO,      KC_NO,
371                 KC_NO,      KC_ACL0,    KC_ACL1,    KC_ACL2,    KC_NO,      KC_NO,      KC_TRNS,
372                 KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
373                                                                             KC_NO,      KC_NO,
374                                                                                         KC_WH_U,
375                                                                 KC_BTN1,    KC_BTN2,    KC_WH_D,
376                 
377                 KC_TRNS,    KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
378                 KC_TRNS,    KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
379                             KC_NO,      KC_ACL0,    KC_ACL1,    KC_ACL2,    KC_NO,      KC_NO,
380                 KC_TRNS,    KC_NO,      KC_MUTE,    KC_VOLD,    KC_VOLU,    KC_NO,      KC_NO,
381                                         KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
382                 KC_NO,KC_NO,
383                 KC_NO,
384                 KC_MS_BTN3,KC_MS_BTN4,KC_MS_BTN5
385             ),
386
387 };
388
389
390
391 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
392   return true;
393 }
394
395
396 void matrix_init_keymap(void) { // Runs boot tasks for keyboard
397 };
398
399
400 void matrix_scan_keymap(void) {  // runs frequently to update info
401   uint8_t modifiders = get_mods();
402
403   if (!skip_leds) {
404     ergodox_board_led_off();
405     ergodox_right_led_1_off();
406     ergodox_right_led_2_off();
407     ergodox_right_led_3_off();
408
409     // Since we're not using the LEDs here for layer indication anymore,
410     // then lets use them for modifier indicators.  Shame we don't have 4...
411     // Also, no "else", since we want to know each, independantly. 
412     if (modifiders & MODS_SHIFT_MASK) {
413       ergodox_right_led_2_on();
414     }
415     if (modifiders & MODS_CTRL_MASK) {
416       ergodox_right_led_1_on();
417     }
418     if (modifiders & MODS_ALT_MASK) {
419       ergodox_right_led_3_on();
420     }
421
422   }
423
424 };
425