]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / keyboards / ergodox_ez / keymaps / ericgebhart / keymap.c
1 /*
2   Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
3
4   This program is free software: you can redistribute it and/or modify
5   it under the terms of the GNU General Public License as published by
6   the Free Software Foundation, either version 2 of the License, or
7   (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   GNU General Public License for more details.
13
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 "keymap_bepo.h"
18 #include "ericgebhart.h"
19
20
21 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22
23   [DVORAK] = LAYOUT_wrapper (
24                              // left hand
25                              KC_GRV,     ___NUMBER_L___,   DEF_OS_LAYER_SW,
26                              KC_LOCK,    ___DVORAK_L1___,  KC_LBRC,
27                              TAB_BKTAB,  ___DVORAK_L2___,
28                              KC_LSFT,    ___DVORAK_L3___,  KC_LPRN,
29
30                              ___ERGODOX_BOTTOM_LEFT___,
31                              ___ERGODOX_THUMB_LEFT___,
32
33                              // right hand
34                              MDIA_SYMB,  ___NUMBER_R___,   KC_EQL,
35                              KC_RBRC,    ___DVORAK_R1___,  KC_SLASH,
36                              /*    */    ___DVORAK_R2___,  KC_MINUS,
37                              KC_RPRN,    ___DVORAK_R3___,  KC_RSFT,
38
39                              ___ERGODOX_BOTTOM_RIGHT___,
40                              ___ERGODOX_THUMB_RIGHT___
41                              ),
42
43   [XMONAD] = LAYOUT_wrapper (
44                              // left hand
45                              ___,  ___FUNC_L___,     ___,
46                              ___,  ___DVORAK_L1___,  ___,
47                              ___,  ___DVORAK_L2___,
48                              ___,  ___DVORAK_L3___,  ___,
49
50                              ___ERGODOX_BOTTOM_LEFT___,
51                              ___ERGODOX_THUMB_LEFT___,
52
53                              // right hand
54                              ___,  ___FUNC_R___,     ___,
55                              ___,  ___DVORAK_R1___,  ___,
56                              /**/  ___DVORAK_R2___,  ___,
57                              ___,  ___DVORAK_R3___,  ___,
58
59                              ___ERGODOX_BOTTOM_RIGHT___,
60                              ___ERGODOX_THUMB_RIGHT___
61                              ),
62
63   [QWERTY] = LAYOUT_wrapper(
64                             // left hand
65                             KC_GRV,     ___NUMBER_L___,   DEF_OS_LAYER_SW,
66                             KC_LOCK,    ___QWERTY_L1___,  KC_LBRC,
67                             TAB_BKTAB,  ___QWERTY_L2___,
68                             KC_LSFT,    ___QWERTY_L3___,  KC_LPRN,
69
70                             ___ERGODOX_BOTTOM_LEFT___,
71                             ___ERGODOX_THUMB_LEFT___,
72
73                             // right hand
74                             MDIA_SYMB,  ___NUMBER_R___,   KC_EQL,
75                             KC_RBRC,    ___QWERTY_R1___,  KC_SLASH,
76                             /*       */ ___QWERTY_R2___,  KC_MINUS,
77                             KC_RPRN,    ___QWERTY_R3___,  KC_RSFT,
78
79                             ___ERGODOX_BOTTOM_RIGHT___,
80                             ___ERGODOX_THUMB_RIGHT___
81                             ),
82
83   [COLEMAK] = LAYOUT_wrapper (
84                               // left hand
85                               KC_GRV,     ___NUMBER_L___,    DEF_OS_LAYER_SW,
86                               KC_LOCK,    ___COLEMAK_L1___,  KC_LBRC,
87                               TAB_BKTAB,  ___COLEMAK_L2___,
88                               KC_LSFT,    ___COLEMAK_L3___,  KC_LPRN,
89
90                               ___ERGODOX_BOTTOM_LEFT___,
91                               ___ERGODOX_THUMB_LEFT___,
92
93                               // right hand
94                               MDIA_SYMB,  ___NUMBER_R___,    KC_EQL,
95                               KC_RBRC,    ___COLEMAK_R1___,  KC_SLASH,
96                               /*       */ ___COLEMAK_R2___,  KC_MINUS,
97                               KC_RPRN,    ___COLEMAK_R3___,  KC_RSFT,
98
99                               ___ERGODOX_BOTTOM_RIGHT___,
100                               ___ERGODOX_THUMB_RIGHT___
101                               ),
102
103   [WORKMAN] = LAYOUT_wrapper (
104                               // left hand
105                               KC_GRV,     ___NUMBER_L___,    DEF_OS_LAYER_SW,
106                               KC_LOCK,    ___WORKMAN_L1___,  KC_LBRC,
107                               TAB_BKTAB,  ___WORKMAN_L2___,
108                               KC_LSFT,    ___WORKMAN_L3___,  KC_LPRN,
109
110                               ___ERGODOX_BOTTOM_LEFT___,
111                               ___ERGODOX_THUMB_LEFT___,
112
113                               // right hand
114                               MDIA_SYMB,  ___NUMBER_R___,    KC_EQL,
115                               KC_RBRC,    ___WORKMAN_R1___,  KC_SLASH,
116                               /*    */    ___WORKMAN_R2___,  KC_MINUS,
117                               KC_RPRN,    ___WORKMAN_R3___,  KC_RSFT,
118
119                               ___ERGODOX_BOTTOM_RIGHT___,
120                               ___ERGODOX_THUMB_RIGHT___
121                               ),
122
123   [NORMAN] = LAYOUT_wrapper(
124                             // left hand
125                             KC_GRV,     ___NUMBER_L___,   DEF_OS_LAYER_SW,
126                             KC_LOCK,    ___NORMAN_L1___,  KC_LBRC,
127                             TAB_BKTAB,  ___NORMAN_L2___,
128                             KC_LSFT,    ___NORMAN_L3___,  KC_LPRN,
129
130                             ___ERGODOX_BOTTOM_LEFT___,
131                             ___ERGODOX_THUMB_LEFT___,
132
133                             // right hand
134                             MDIA_SYMB,  ___NUMBER_R___,   KC_EQL,
135                             KC_RBRC,    ___NORMAN_R1___,  KC_SLASH,
136                             /*       */ ___NORMAN_R2___,  KC_MINUS,
137                             KC_RPRN,    ___NORMAN_R3___,  KC_RSFT,
138
139                             ___ERGODOX_BOTTOM_RIGHT___,
140                             ___ERGODOX_THUMB_RIGHT___
141                             ),
142
143   [DVORAK_ON_BEPO] = LAYOUT_wrapper(
144                                     // left hand
145                                     DB_GRV,     ___NUMBER_BEPO_L___,  DEF_OS_LAYER_SW,
146                                     KC_LOCK,    ___DVORAK_FR_L1___,   DB_LBRC,
147                                     TAB_BKTAB,  ___DVORAK_FR_L2___,
148                                     KC_LSFT,    ___DVORAK_FR_L3___,   DB_LPRN,
149
150                                     ___ERGODOX_BOTTOM_LEFT___,
151                                     ___ERGODOX_THUMB_LEFT___,
152
153
154                                     // right hand
155                                     MDIA_SYMB,   ___NUMBER_BEPO_R___,  DB_EQL,
156                                     DB_RBRC,     ___DVORAK_FR_R1___,   DB_SLASH,
157
158                                     /*      */   ___DVORAK_FR_R2___,   DB_MINUS,
159                                     DB_RPRN,     ___DVORAK_FR_R3___,   KC_RSFT,
160
161                                     ___ERGODOX_BOTTOM_RIGHT_FR___,
162                                     ___ERGODOX_THUMB_RIGHT___
163                                     ),
164
165   [XMONAD_FR] = LAYOUT_wrapper(
166                                // left hand
167                                ___,  ___FUNC_L___,        ___,
168                                ___,  ___DVORAK_FR_L1___,  ___,
169                                ___,  ___DVORAK_FR_L2___,
170                                ___,  ___DVORAK_FR_L3___,  ___,
171
172                                ___ERGODOX_BOTTOM_LEFT___,
173                                ___ERGODOX_THUMB_LEFT___,
174
175
176                                // right hand
177                                ___,  ___FUNC_R___,         ___,
178                                ___,  ___DVORAK_FR_R1___,   ___,
179                                /**/  ___DVORAK_FR_R2___,   ___,
180                                ___,  ___DVORAK_FR_R3___,   ___,
181
182                                ___ERGODOX_BOTTOM_RIGHT_FR___,
183                                ___ERGODOX_THUMB_RIGHT___
184                                ),
185
186   [BEPO] = LAYOUT_wrapper (
187                            // Left hand
188                            BP_DLR,         ___SYMBOL_BEPO_L___,  DEF_OS_LAYER_SW,
189                            KC_LOCK,        ___BEPO_FR_L1___,     DB_LBRC,
190                            TAB_BKTAB,      ___BEPO_FR_L2___,
191                            BP_SFT_T_ECRC,  ___BEPO_FR_L3___,     DB_RBRC,
192
193                            ___ERGODOX_BOTTOM_LEFT___,
194                            ___ERGODOX_THUMB_LEFT___,
195
196
197                            // Right hand
198                            MDIA_SYMB,  ___SYMBOL_BEPO_R___,  BP_EQL,
199                            BP_DCRC,    ___BEPO_FR_R1___,     BP_W,
200                            /*     */   ___BEPO_FR_R2___,     BP_CCED,
201                            BP_C,    ___BEPO_FR_R3___,        KC_RSFT,
202
203                            ___ERGODOX_BOTTOM_RIGHT___,
204                            ___ERGODOX_THUMB_RIGHT___
205                            ),
206
207   // SYMBOLS
208   [SYMB] = LAYOUT_wrapper(
209                           // left hand
210                           ___,  ___FUNC_L___,     ___,
211                           ___,  ___SYMBOLS_1___,  ___,
212                           ___,  ___SYMBOLS_2___,
213                           ___,  ___SYMBOLS_3___,  ___,
214
215                           ___ERGODOX_TRANS_BOTTOM___,
216                           ___ERGODOX_TRANS_THUMBS___,
217
218
219                           // right hand
220                           ___,  ___FUNC_R___, KC_F11,
221                           ___,  KC_UP,    ___KEYPAD_1___,  KC_F12,
222                           /**/  KC_DOWN,  ___KEYPAD_2___,  KC_TRNS,
223                           ___,  KC_AMPR,  ___KEYPAD_3___,  KC_PENT,
224                           /*    */        ___KEYPAD_4___,  ___,
225
226                           ___ERGODOX_TRANS_THUMBS___
227                           ),
228
229   [SYMB_ON_BEPO] = LAYOUT_wrapper(
230                                   // left hand
231                                   ___,  ___FUNC_L___,     ___,
232                                   ___,  ___SYMBOLS_1_BP___,  ___,
233                                   ___,  ___SYMBOLS_2_BP___,
234                                   ___,  ___SYMBOLS_3_BP___,  ___,
235
236                                   ___ERGODOX_TRANS_BOTTOM___,
237                                   ___ERGODOX_TRANS_THUMBS___,
238
239
240                                   // right hand
241                                   ___,  ___FUNC_R___, KC_F11,
242                                   ___,  KC_UP,    ___KEYPAD_1_BP___,  KC_F12,
243                                   /**/  KC_DOWN,  ___KEYPAD_2_BP___,  KC_TRNS,
244                                   ___,  KC_AMPR,  ___KEYPAD_3_BP___,  KC_PENT,
245                                   /*    */        ___KEYPAD_4_BP___,  ___,
246
247                                   ___ERGODOX_TRANS_THUMBS___
248                                   ),
249
250   // MEDIA AND MOUSE
251   [MDIA] = LAYOUT_wrapper(
252                           // left hand
253                           ___,  ___FUNC_L___,  ___,
254                           ___MOUSE_BTNS_L___,  ___, ___,
255                           ___,  ___MOUSE_LDUR___,   ___,
256                           ___,  ___MWHEEL_LDUR___,  XXX,  ___,
257                           ___,  ___,  ___MOUSE_ACCL_012___,
258                           ___ERGODOX_TRANS_THUMBS___,
259
260                           // right hand
261                           ___,      ___FUNC_R___,                    KC_F11,
262                           KC_VOLU,  ___, ___MUTE_PLAY_STOP___,  ___, KC_F12,
263                           /*    */  KC_PGUP, ___VI_ARROWS___,        ___,
264                           KC_VOLD,  KC_PGDN, ___MOUSE_BTNS_R___,
265                           ___ERGODOX_TRANS_BOTTOM___,
266                           ___ERGODOX_TRANS_THUMBS___
267                           ),
268
269   [LAYERS] = LAYOUT_wrapper(
270                             // left hand
271                             ___,  ___FUNC_L___,  ___,
272                             XXX,  XXX,  XXX, ___LAYERS_L1___,  XXX, XXX,
273                             XXX,  XXX,  XXX, ___LAYERS_L2___,  XXX,
274                             XXX,  XXX,  ___LAYERS_L3___,       XXX,  XXX,
275                             ___,  ___,  ___LAYERS_L4___,
276                             ___ERGODOX_TRANS_THUMBS___,
277
278                             // right hand
279                             ___,      ___FUNC_R___,                    KC_F11,
280                             KC_VOLU,  ___, ___MUTE_PLAY_STOP___,  ___, KC_F12,
281                             /*    */  KC_PGUP, ___VI_ARROWS___,        ___,
282                             KC_VOLD,  KC_PGDN, ___MOUSE_BTNS_R___,
283                             ___ERGODOX_TRANS_BOTTOM___,
284                             ___ERGODOX_TRANS_THUMBS___
285                             ),
286 };
287
288
289
290 // Runs constantly in the background, in a loop.
291 void matrix_scan_user(void) {
292
293   uint8_t layer = biton32(layer_state);
294
295   ergodox_board_led_off();
296   ergodox_right_led_1_off();
297   ergodox_right_led_2_off();
298   ergodox_right_led_3_off();
299   if(!on_qwerty())
300     ergodox_right_led_1_on();
301   switch (layer) {
302     //case DVORAK:
303     //ergodox_right_led_1_off();
304     //break;
305     // first led on for a bepo software keyboard layer
306   case DVORAK_ON_BEPO:
307     ergodox_right_led_2_on();
308     break;
309   case BEPO:
310     ergodox_right_led_1_on();
311     ergodox_right_led_1_off();
312     ergodox_right_led_1_on();
313     ergodox_right_led_1_off();
314     ergodox_right_led_1_on();
315     break;
316   case SYMB:
317     ergodox_right_led_3_on();
318     break;
319   case MDIA:
320     ergodox_right_led_3_on();
321     break;
322   case LAYERS:
323     ergodox_right_led_1_on();
324     ergodox_right_led_2_on();
325     ergodox_right_led_3_on();
326     break;
327   default:
328     ergodox_board_led_off();
329     break;
330
331     /* default: */
332     /*   // none */
333     /*   break; */
334
335   }
336 }
337
338
339 /*
340   clear_oneshot_mods();
341   set_oneshot_locked_mods(mods);
342   register_mods(mods);
343
344   register_code(action.key.code);
345   unregister_code(action.key.code);
346
347   layer_on(action.layer_tap.val);
348   layer_off(action.layer_tap.val);
349
350   clear_oneshot_locked_mods();
351   clear_oneshot_mods();
352   unregister_mods(mods);
353
354 */