]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c
new version of the experimental layout. changed media keys in MDIA layer
[qmk_firmware.git] / keyboard / ergodox_ez / keymaps / osx_de_experimental / keymap.c
1 #include "ergodox_ez.h"
2 #include "debug.h"
3 #include "action_layer.h"
4 #include "keymap_extras/keymap_french.h"
5 #include "keymap_extras/keymap_neo2.h"
6 #include "keymap_extras/keymap_uk.h"
7 #include "keymap_extras/keymap_colemak.h"
8 #include "keymap_extras/keymap_french_osx.h"
9 #include "keymap_extras/keymap_nordic.h"
10 #include "keymap_extras/keymap_dvorak.h"
11 #include "keymap_extras/keymap_german.h"
12 #include "keymap_extras/keymap_norwegian.c"
13 #include "keymap_extras/keymap_fr_ch.h"
14 #include "keymap_extras/keymap_german_osx.h"
15 #include "keymap_extras/keymap_spanish.h"
16 #include "keymap_extras/keymap_bepo.h"
17
18
19 /**
20 * This layout was generated using the ErgodoxLayoutGenerator (ELG). You can download it from https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases
21 * documentation about it can be found here https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/
22 * Thanks to the team of Erez Zukerman for building the great Ergodox-EZ!
23 *
24 * use at own risk!
25 **/
26
27 #define BASE 0
28 #define SYMB 1
29 #define MDIA 2
30 #define SMLY 3
31 #define NUMB 4
32 #define EGOS 5
33
34 #define SMLY_TOG_QUOT 0
35
36 #define M_TOGGLE_5 1
37
38 #define TGH_NUM 2
39
40 #define M_DE_OSX_PLUS_CTRLALT 3
41
42 #define SM_KISS 4
43
44 #define SM_FROWN 5
45
46 #define SM_CRY 6
47
48 #define SM_SMILE 7
49
50 #define SM_SMIRK 8
51
52 #define M_LGUI_SHFT 9
53
54 #define SM_HEART 10
55
56 #define TOG_HLD_MDIA 11
57
58 #define SM_LAUGH 12
59
60 #define SM_SAD 13
61
62 #define M_DE_OSX_CIRC_CTRLCMD 14
63
64 #define M_MEH_SH_ACUT 15
65
66
67 //Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1
68 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
69 /**
70 * Layer: BASE
71 * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
72 * | ESC                | 1                  | 2                  | 3                  | 4                  | 5                  | Hold or toggle     |                       | Hold or toggle     | 6                  | 7                  | 8                  | 9                  | 0                  | ß                  |                      
73 * |                    |                    |                    |                    |                    |                    | Layer NUMB         |                       | Layer MDIA         |                    |                    |                    |                    |                    |                    |                      
74 * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
75 * | TAB                | Q                  | W                  | E                  | R                  | T                  | Cmd                |                       | Cmd                | Z                  | U                  | I                  | O                  | P                  | Ü                  |                      
76 * |                    |                    |                    |                    |                    |                    |                    |                       |                    |                    |                    |                    |                    |                    |                    |                      
77 * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\                        \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
78 * | Alt                | A                  | S                  | D                  | F                  | G                  |                                                                 | H                  | J                  | K                  | L                  | Ö                  | Ä                  |                      
79 * |                    |                    |                    |                    |                    |                    |                                                                 |                    |                    |                    |                    |                    | ALT                |                      
80 * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
81 * | Shift              | Y                  | X                  | C                  | V                  | B                  | Alt                |                       | Alt                | N                  | M                  | ,                  | .                  | -                  | Shift              |                      
82 * |                    | Ctrl               |                    |                    |                    |                    |                    |                       |                    |                    |                    |                    |                    | Ctrl               |                    |                      
83 * \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\                        \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\                       
84 *                                                                                                                                                                                                                                                                                                                                                      
85 *                                                                                                                                                                                                                                                                                                                                                      
86 *                                           /-------------------//-------------------//-------------------//-------------------//-------------------/                                                                                       /-------------------//-------------------//-------------------//-------------------//-------------------/  
87 *                                           | <                  | LongPress / Type   | LongPress / Type   | Shift+Ctrl         | Type               |                                                                                      | #                  | ACUT               | CMD+Shift          | ALT+Shift          | +                  | 
88 *                                           | SYMB               | DE_OSX_CIRC_CTRLCMD| DE_OSX_PLUS_CTRAlt |                    | Toggle SMLY        |                                                                                      | Meh                | Hyper              |                    |                    | SYMB               | 
89 *                                           \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/   /-------------------//-------------------/                     \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\  
90 *                                                                                                                               | HOME               | END                |  | LEFT               | RIGHT              |                                                                                                                               
91 *                                                                                                                               |                    |                    |  |                    |                    |                                                                                                                               
92 *                                                                                                                               \-------------------\/-------------------/   /-------------------/\-------------------\                                                                                                                                
93 *                                                                                                                                                    | PGUP               |  | UP                 |                                                                                                                                                    
94 *                                                                                                                                                    |                    |  |                    |                                                                                                                                                    
95 *                                                                                                          /-------------------//-------------------//-------------------/   /-------------------//-------------------//-------------------/                                                                                                           
96 *                                                                                                          | BSPC               | DEL                | PGDN               |  | DOWN               | ENT                | SPC                |                                                                                                          
97 *                                                                                                          |                    |                    |                    |  |                    |                    |                    |                                                                                                          
98 *                                                                                                          \-------------------\\-------------------\\-------------------\   \-------------------\\-------------------\\-------------------\                                                                                                           
99 *                                                                                                                                                                                                                                                                                                                                                      
100
101 **/
102 [BASE]=KEYMAP(
103 //left half
104     KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM), 
105     KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, 
106     KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, 
107     KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, 
108                   LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), 
109                                               KC_HOME, KC_END, 
110                                                      KC_PGUP, 
111                                        KC_BSPC, KC_DEL, KC_PGDN, 
112     //right half
113     M(TOG_HLD_MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, 
114     KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, 
115            DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), 
116     KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, 
117                          MEH_T(DE_OSX_HASH), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), 
118     KC_LEFT, KC_RIGHT, 
119     KC_UP, 
120     KC_DOWN, KC_ENT, KC_SPC),
121 /**
122 * Layer: SYMB
123 * /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/               
124 * | APPLICATION| F1         | F2         | F3         | F4         | F5         | F5         |               | F6         | F6         | F7         | F8         | F9         | F10        | F11        |              
125 * |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |              
126 * /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/               
127 * |            | <          | >          | !          | ?          |            |            |               |            | \          | [          | ]          | <          | >          | !          |              
128 * |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |              
129 * /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\                \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/               
130 * |            | #          | $          | \          | /          | .          |                                         | /          | (          | )          | {          | }          | #          |              
131 * |            |            |            |            |            |            |                                         |            |            |            |            |            |            |              
132 * /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/               
133 * |            |            | <          | %          | |          | ~          |            |               |            | |          | ~          |            |            |            |            |              
134 * |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |              
135 * \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\                \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\               
136 *                                                                                                                                                                                                                      
137 *                                                                                                                                                                                                                      
138 *                           /-----------//-----------//-----------//-----------//-----------/                                                       /-----------//-----------//-----------//-----------//-----------/  
139 *                           |            |            |            |            |            |                                                      | '          | DQOT       |            | Toggle 5   |            | 
140 *                           |            |            |            |            |            |                                                      |            |            |            |            |            | 
141 *                           \-----------\\-----------\\-----------\\-----------\/-----------//-----------/   /-----------//-----------/             \-----------\\-----------\\-----------\\-----------\\-----------\  
142 *                                                                               |            |            |  | F13        | F12        |                                                                               
143 *                                                                               |            |            |  |            |            |                                                                               
144 *                                                                               \-----------\/-----------/   /-----------/\-----------\                                                                                
145 *                                                                                            |            |  | F14        |                                                                                            
146 *                                                                                            |            |  |            |                                                                                            
147 *                                                                  /-----------//-----------//-----------/   /-----------//-----------//-----------/                                                                   
148 *                                                                  |            | DEL        |            |  | F15        |            |            |                                                                  
149 *                                                                  |            |            |            |  |            |            |            |                                                                  
150 *                                                                  \-----------\\-----------\\-----------\   \-----------\\-----------\\-----------\                                                                   
151 *                                                                                                                                                                                                                      
152
153 **/
154 [SYMB]=KEYMAP(
155 //left half
156     KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, 
157     KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, 
158     KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, 
159     KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, 
160                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
161                                               KC_TRNS, KC_TRNS, 
162                                                      KC_TRNS, 
163                                        KC_TRNS, KC_DEL, KC_TRNS, 
164     //right half
165     KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
166     KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, 
167            DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH, 
168     KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
169                          DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, 
170     KC_F13, KC_F12, 
171     KC_F14, 
172     KC_F15, KC_TRNS, KC_TRNS),
173 /**
174 * Layer: MDIA
175 * /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/         
176 * |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
177 * |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
178 * /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/         
179 * |      |      | BTN1 | U    | BTN2 | U    |      |         |      |      |      |      |      |      |      |        
180 * |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
181 * /-----//-----//-----//-----//-----//-----/\-----\          \-----\/-----//-----//-----//-----//-----//-----/         
182 * |      |      | L    | D    | R    | D    |                       |      |      |      |      |      |      |        
183 * |      |      |      |      |      |      |                       |      |      |      |      |      |      |        
184 * /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/         
185 * |      |      | L    | D    | R    | BTN3 |      |         |      |      |      |      |      | UP   |      |        
186 * |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
187 * \-----\\-----\\-----\\-----\\-----\\-----\\-----\          \-----\\-----\\-----\\-----\\-----\\-----\\-----\         
188 *                                                                                                                      
189 *                                                                                                                      
190 *               /-----//-----//-----//-----//-----/                               /-----//-----//-----//-----//-----/  
191 *               |      |      |      |      |      |                              |      |      | LEFT | DOWN | RIGHT| 
192 *               |      |      |      |      |      |                              |      |      |      |      |      | 
193 *               \-----\\-----\\-----\\-----\/-----//-----/   /-----//-----/       \-----\\-----\\-----\\-----\\-----\  
194 *                                           |      |      |  | MPRV | MNXT |                                           
195 *                                           |      |      |  |      |      |                                           
196 *                                           \-----\/-----/   /-----/\-----\                                            
197 *                                                  |      |  | VOLU |                                                  
198 *                                                  |      |  |      |                                                  
199 *                                    /-----//-----//-----/   /-----//-----//-----/                                     
200 *                                    |      |      |      |  | VOLD | MUTE | MPLY |                                    
201 *                                    |      |      |      |  |      |      |      |                                    
202 *                                    \-----\\-----\\-----\   \-----\\-----\\-----\                                     
203 *                                                                                                                      
204
205 **/
206 [MDIA]=KEYMAP(
207 //left half
208     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
209     KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, 
210     KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, 
211     KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, 
212                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
213                                               KC_TRNS, KC_TRNS, 
214                                                      KC_TRNS, 
215                                        KC_TRNS, KC_TRNS, KC_TRNS, 
216     //right half
217     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
218     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
219            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
220     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, 
221                          KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 
222     KC_MPRV, KC_MNXT, 
223     KC_VOLU, 
224     KC_VOLD, KC_MUTE, KC_MPLY),
225 /**
226 * Layer: SMLY
227 * /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
228 * |         |         |         |         |         |         |         |            | Typing  | Typing  | Typing  |         |         |         |         |           
229 * |         |         |         |         |         |         |         |            | SM_SMILE| SM_SMIRK| SM_LAUGH|         |         |         |         |           
230 * /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
231 * |         |         |         |         |         |         |         |            |         | Typing  | Typing  | Typing  |         |         |         |           
232 * |         |         |         |         |         |         |         |            |         | SM_FROWN| SM_SAD  | SM_CRY  |         |         |         |           
233 * /--------//--------//--------//--------//--------//--------/\--------\             \--------\/--------//--------//--------//--------//--------//--------/            
234 * |         |         |         |         |         |         |                                | Typing  | Typing  |         |         |         |         |           
235 * |         |         |         |         |         |         |                                | SM_HEART| SM_KISS |         |         |         |         |           
236 * /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
237 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
238 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
239 * \--------\\--------\\--------\\--------\\--------\\--------\\--------\             \--------\\--------\\--------\\--------\\--------\\--------\\--------\            
240 *                                                                                                                                                                      
241 *                                                                                                                                                                      
242 *                     /--------//--------//--------//--------//--------/                                           /--------//--------//--------//--------//--------/  
243 *                     |         |         |         |         |         |                                          |         |         |         |         |         | 
244 *                     |         |         |         |         |         |                                          |         |         |         |         |         | 
245 *                     \--------\\--------\\--------\\--------\/--------//--------/   /--------//--------/          \--------\\--------\\--------\\--------\\--------\  
246 *                                                             |         |         |  |         |         |                                                             
247 *                                                             |         |         |  |         |         |                                                             
248 *                                                             \--------\/--------/   /--------/\--------\                                                              
249 *                                                                       |         |  |         |                                                                       
250 *                                                                       |         |  |         |                                                                       
251 *                                                   /--------//--------//--------/   /--------//--------//--------/                                                    
252 *                                                   |         |         |         |  |         |         |         |                                                   
253 *                                                   |         |         |         |  |         |         |         |                                                   
254 *                                                   \--------\\--------\\--------\   \--------\\--------\\--------\                                                    
255 *                                                                                                                                                                      
256
257 **/
258 [SMLY]=KEYMAP(
259 //left half
260     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
261     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
262     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
263     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
264                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
265                                               KC_TRNS, KC_TRNS, 
266                                                      KC_TRNS, 
267                                        KC_TRNS, KC_TRNS, KC_TRNS, 
268     //right half
269     M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
270     KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, 
271            M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
272     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
273                          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
274     KC_TRNS, KC_TRNS, 
275     KC_TRNS, 
276     KC_TRNS, KC_TRNS, KC_TRNS),
277 /**
278 * Layer: NUMB
279 * /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/        
280 * |     |     |     |     |     |     |     |        |     | F6  | F7  | F8  | F9  | F10 | F11 |       
281 * |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |       
282 * /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/        
283 * |     |     |     | UP  |     |     |     |        |     | /   | 7   | 8   | 9   | *   | F12 |       
284 * |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |       
285 * /----//----//----//----//----//----/\----\         \----\/----//----//----//----//----//----/        
286 * |     |     | LEFT| DOWN| RGHT|     |                    | /   | 4   | 5   | 6   | +   | -   |       
287 * |     |     |     |     |     |     |                    |     |     |     |     |     |     |       
288 * /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/        
289 * |     |     |     |     |     |     |     |        |     | %   | 1   | 2   | 3   |     |     |       
290 * |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |       
291 * \----\\----\\----\\----\\----\\----\\----\         \----\\----\\----\\----\\----\\----\\----\        
292 *                                                                                                      
293 *                                                                                                      
294 *             /----//----//----//----//----/                           /----//----//----//----//----/  
295 *             |     |     |     |     |     |                          | 0   | .   | ,   | =   |     | 
296 *             |     |     |     |     |     |                          |     |     |     |     |     | 
297 *             \----\\----\\----\\----\/----//----/   /----//----/      \----\\----\\----\\----\\----\  
298 *                                     |     |     |  |     |     |                                     
299 *                                     |     |     |  |     |     |                                     
300 *                                     \----\/----/   /----/\----\                                      
301 *                                           |     |  |     |                                           
302 *                                           |     |  |     |                                           
303 *                               /----//----//----/   /----//----//----/                                
304 *                               |     |     |     |  |     |     |     |                               
305 *                               |     |     |     |  |     |     |     |                               
306 *                               \----\\----\\----\   \----\\----\\----\                                
307 *                                                                                                      
308
309 **/
310 [NUMB]=KEYMAP(
311 //left half
312     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
313     KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, 
314     KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, 
315     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
316                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
317                                               KC_TRNS, KC_TRNS, 
318                                                      KC_TRNS, 
319                                        KC_TRNS, KC_TRNS, KC_TRNS, 
320     //right half
321     KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
322     KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12, 
323            DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS, 
324     KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, 
325                          KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, 
326     KC_TRNS, KC_TRNS, 
327     KC_TRNS, 
328     KC_TRNS, KC_TRNS, KC_TRNS),
329 /**
330 * Layer: EGOS
331 * /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
332 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
333 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
334 * /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
335 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
336 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
337 * /--------//--------//--------//--------//--------//--------/\--------\             \--------\/--------//--------//--------//--------//--------//--------/            
338 * | Shift   |         |         |         |         |         |                                |         |         |         |         |         |         |           
339 * |         |         |         |         |         |         |                                |         |         |         |         |         |         |           
340 * /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
341 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
342 * |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
343 * \--------\\--------\\--------\\--------\\--------\\--------\\--------\             \--------\\--------\\--------\\--------\\--------\\--------\\--------\            
344 *                                                                                                                                                                      
345 *                                                                                                                                                                      
346 *                     /--------//--------//--------//--------//--------/                                           /--------//--------//--------//--------//--------/  
347 *                     | Ctrl    |         |         |         |         |                                          |         |         |         | Toggle 5|         | 
348 *                     |         |         |         |         |         |                                          |         |         |         |         |         | 
349 *                     \--------\\--------\\--------\\--------\/--------//--------/   /--------//--------/          \--------\\--------\\--------\\--------\\--------\  
350 *                                                             | F1      | F2      |  |         |         |                                                             
351 *                                                             |         |         |  |         |         |                                                             
352 *                                                             \--------\/--------/   /--------/\--------\                                                              
353 *                                                                       | F3      |  |         |                                                                       
354 *                                                                       |         |  |         |                                                                       
355 *                                                   /--------//--------//--------/   /--------//--------//--------/                                                    
356 *                                                   | SPC     | Ctrl    | F4      |  |         |         |         |                                                   
357 *                                                   |         |         |         |  |         |         |         |                                                   
358 *                                                   \--------\\--------\\--------\   \--------\\--------\\--------\                                                    
359 *                                                                                                                                                                      
360
361 **/
362 [EGOS]=KEYMAP(
363 //left half
364     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
365     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
366     KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
367     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
368                   KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
369                                               KC_F1, KC_F2, 
370                                                      KC_F3, 
371                                        KC_SPC, KC_LCTL, KC_F4, 
372     //right half
373     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
374     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
375            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
376     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
377                          KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, 
378     KC_TRNS, KC_TRNS, 
379     KC_TRNS, 
380     KC_TRNS, KC_TRNS, KC_TRNS),
381 };
382
383 const uint16_t PROGMEM fn_actions[] = {
384
385 };
386
387 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
388 {
389 static uint16_t start;
390 switch(id) {
391 case SMLY_TOG_QUOT:
392 //Macro: SMLY_TOG_QUOT//-----------------------
393 if (record->event.pressed) {
394                         start = timer_read();
395            layer_state ^= (1<<SMLY);
396            layer_state &= (1<<SMLY);
397                         return MACRO_NONE;              } else {
398            layer_state ^= (1<<SMLY);
399            layer_state &= (1<<SMLY);
400                         if (timer_elapsed(start) >150) {
401                                 return MACRO_NONE;
402                         } else {
403                                 return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END);
404                         }
405                 }
406
407 break;
408 case M_TOGGLE_5:
409 //Macro: M_TOGGLE_5//-----------------------
410  if (record->event.pressed){
411            layer_state ^= (1<<5);
412            layer_state &= (1<<5);
413         }
414
415 break;
416 case TGH_NUM:
417 //Macro: TGH_NUM//-----------------------
418 if (record->event.pressed){
419          start = timer_read();
420          layer_state ^=(1<<NUMB);
421          layer_state &=(1<<NUMB);
422  } else {
423          if (timer_elapsed(start) > 150) {
424                  layer_state^=(1<<NUMB);
425                  layer_state&=(1<<NUMB);
426          }
427  }
428 return MACRO_NONE;
429
430 break;
431 case M_DE_OSX_PLUS_CTRLALT:
432 //Macro: M_DE_OSX_PLUS_CTRLALT//-----------------------
433 if (record->event.pressed) {
434                         start = timer_read();
435                         return MACRO(DOWN(KC_LCTRL),DOWN(KC_LALT),END);
436                 } else {
437                         if (timer_elapsed(start) >150) {
438                                 return MACRO(U(LCTRL),U(LALT),END);
439                         } else {
440                                 return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END);
441                         }
442                 }
443
444 break;
445 case SM_KISS:
446 //Macro: SM_KISS//-----------------------
447 if (record->event.pressed) {
448                         return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_RBRC),UP(KC_LSFT),END);
449                 }
450
451 break;
452 case SM_FROWN:
453 //Macro: SM_FROWN//-----------------------
454 if (record->event.pressed) {
455                         return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LALT),TYPE(KC_8),UP(KC_LALT),END);
456                 }
457
458 break;
459 case SM_CRY:
460 //Macro: SM_CRY//-----------------------
461 if (record->event.pressed) {
462                         return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END);
463                 }
464
465 break;
466 case SM_SMILE:
467 //Macro: SM_SMILE//-----------------------
468 if (record->event.pressed) {
469                         return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END);
470                 }
471
472 break;
473 case SM_SMIRK:
474 //Macro: SM_SMIRK//-----------------------
475 if (record->event.pressed) {
476                         return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END);
477                 }
478
479 break;
480 case M_LGUI_SHFT:
481 //Macro: M_LGUI_SHFT//-----------------------
482 if (record->event.pressed){
483                         return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END);
484                 }else{
485                         return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END);
486                 }
487
488 break;
489 case SM_HEART:
490 //Macro: SM_HEART//-----------------------
491 if (record->event.pressed) {
492                         return MACRO(TYPE(KC_GRV),TYPE(KC_3),END);
493                 }
494
495 break;
496 case TOG_HLD_MDIA:
497 //Macro: TOG_HLD_MDIA//-----------------------
498 if (record->event.pressed){
499          start = timer_read();
500          layer_state ^=(1<<MDIA);
501          layer_state &=(1<<MDIA);
502  } else {
503          if (timer_elapsed(start) > 150) {
504                  layer_state^=(1<<MDIA);
505                  layer_state&=(1<<MDIA);
506          }
507  }
508 return MACRO_NONE;
509
510 break;
511 case SM_LAUGH:
512 //Macro: SM_LAUGH//-----------------------
513 if (record->event.pressed) {
514                         return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_D),UP(KC_LSFT),END);
515                 }
516
517 break;
518 case SM_SAD:
519 //Macro: SM_SAD//-----------------------
520 if (record->event.pressed) {
521                         return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END);
522                 }
523
524 break;
525 case M_DE_OSX_CIRC_CTRLCMD:
526 //Macro: M_DE_OSX_CIRC_CTRLCMD//-----------------------
527 if (record->event.pressed) {
528                         start = timer_read();
529                         return MACRO(DOWN(KC_LCTRL),DOWN(KC_LGUI),END);
530                 } else {
531                         if (timer_elapsed(start) >150) {
532                                 return MACRO(U(LCTRL),U(LGUI),END);
533                         } else {
534                                 return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END);
535                         }
536                 }
537
538 break;
539 case M_MEH_SH_ACUT:
540 //Macro: M_MEH_SH_ACUT//-----------------------
541 if (record->event.pressed) {
542                         start = timer_read();
543                         return MACRO(DOWN(KC_LCTRL),DOWN(KC_LSFT),DOWN(KC_LALT),END);
544                 } else {
545                         if (timer_elapsed(start) >150) {
546                                 return MACRO(U(LCTRL),U(LSFT),U(LALT),END);
547                         } else {
548                                 return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),END);
549                         }
550                 }
551
552 break;
553 }
554 return MACRO_NONE;
555 };
556
557 // Runs just one time when the keyboard initializes.
558 void matrix_init_user(void) {
559
560 };
561
562 // Runs constantly in the background, in a loop.
563 void matrix_scan_user(void) {
564
565 uint8_t layer = biton32(layer_state);
566
567 ergodox_board_led_off();
568 ergodox_right_led_1_off();
569 ergodox_right_led_2_off();
570 ergodox_right_led_3_off();
571 switch (layer) {
572
573     case SYMB:
574         ergodox_right_led_1_on();
575         
576         
577     break;
578     case MDIA:
579         
580         ergodox_right_led_2_on();
581         
582     break;
583     case NUMB:
584         
585         
586         ergodox_right_led_3_on();
587     break;
588     case EGOS:
589         ergodox_right_led_1_on();
590         ergodox_right_led_2_on();
591         ergodox_right_led_3_on();
592     break;
593 default:
594 // none
595 break;
596 }
597
598 };
599