aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/Makefile1
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/config.h2
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c305
4 files changed, 104 insertions, 206 deletions
diff --git a/.gitignore b/.gitignore
index 580d62e94..eaa2c218d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,4 +48,4 @@ util/Win_Check_Output.txt
48 48
49# things travis sees 49# things travis sees
50secrets.tar 50secrets.tar
51id_rsa_* \ No newline at end of file 51id_rsa_*
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/Makefile b/keyboards/ergodox_ez/keymaps/drashna-custom/Makefile
index 21da248f0..96590e7f7 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/Makefile
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/Makefile
@@ -1,5 +1,4 @@
1TAP_DANCE_ENABLE = yes 1TAP_DANCE_ENABLE = yes
2LAYER_UNDERGLOW_LIGHTING = yes
3SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 2SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
4COMMAND_ENABLE = no # Commands for debug and configuration 3COMMAND_ENABLE = no # Commands for debug and configuration
5RGBLIGHT_ENABLE = yes 4RGBLIGHT_ENABLE = yes
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
index fe33552e1..0b6a09934 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
@@ -4,5 +4,3 @@
4 4
5#define TAPPING_TERM 200 5#define TAPPING_TERM 200
6 6
7
8#define LAYER_UNDERGLOW_LIGHTING
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
index ed7aede1f..a56a88e58 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
@@ -1,3 +1,19 @@
1/*
2This is the keymap for the keyboard
3Copyright 2012 Jun Wako <wakojun@gmail.com>
4Copyright 2015 Jack Humbert
5Copyright 2017 Art Ortenburger
6This program is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation, either version 2 of the License, or
9(at your option) any later version.
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
1#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
2#include "debug.h" 18#include "debug.h"
3#include "action_layer.h" 19#include "action_layer.h"
@@ -28,17 +44,18 @@
28#define M_SALT M(2) 44#define M_SALT M(2)
29#define M_HARD M(3) 45#define M_HARD M(3)
30#define M_MAKE M(4) 46#define M_MAKE M(4)
31#define M_COVECUBE M(5) 47#define M_GOODGAME M(5)
32#define M_MORESALT M(6) 48#define M_MORESALT M(6)
33#define M_DOOMFIST M(7) 49#define M_DOOMFIST M(7)
34 50
35 51
36//define layer change stuff for underglow indicator 52//define layer change stuff for underglow indicator
37bool skip_leds = false; 53bool skip_leds = false;
54
55//This is both for underglow, and Diablo 3 macros
38bool has_layer_changed = false; 56bool has_layer_changed = false;
39static uint8_t current_layer; 57static uint8_t current_layer;
40 58
41static uint16_t key_timer;
42//define diablo macro timer variables 59//define diablo macro timer variables
43static uint16_t diablo_timer[4]; 60static uint16_t diablo_timer[4];
44static uint8_t diablo_times[] = {0, 1, 3, 5, 10, 30}; 61static uint8_t diablo_times[] = {0, 1, 3, 5, 10, 30};
@@ -49,10 +66,6 @@ bool check_dtimer(uint8_t dtimer) {
49 return (timer_elapsed(diablo_timer[dtimer]) < ( diablo_key_time[dtimer] * 1000 ) ) ? false : true; 66 return (timer_elapsed(diablo_timer[dtimer]) < ( diablo_key_time[dtimer] * 1000 ) ) ? false : true;
50}; 67};
51 68
52bool checktime(void){
53 return (timer_elapsed(key_timer) < 150) ? true : false;
54};
55
56 69
57enum custom_keycodes { 70enum custom_keycodes {
58 PLACEHOLDER = SAFE_RANGE, // can always be here 71 PLACEHOLDER = SAFE_RANGE, // can always be here
@@ -69,11 +82,7 @@ enum custom_keycodes {
69 82
70#ifdef TAP_DANCE_ENABLE 83#ifdef TAP_DANCE_ENABLE
71enum { 84enum {
72 SFT_CAP = 0, 85 TD_FLSH = 0,
73 TD_DIABLO_J,
74 TD_CLN,
75 TD_EGG,
76 TD_FLSH,
77 TD_DIABLO_1, 86 TD_DIABLO_1,
78 TD_DIABLO_2, 87 TD_DIABLO_2,
79 TD_DIABLO_3, 88 TD_DIABLO_3,
@@ -82,33 +91,10 @@ enum {
82 91
83 92
84 93
85void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) {
86 if (state->count == 1) {
87 register_code (KC_RSFT);
88 register_code (KC_SCLN);
89 } else {
90 register_code (KC_SCLN);
91 }
92}
93
94void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) {
95 if (state->count == 1) {
96 unregister_code (KC_RSFT);
97 unregister_code (KC_SCLN);
98 } else {
99 unregister_code (KC_SCLN);
100 }
101}
102
103void dance_egg (qk_tap_dance_state_t *state, void *user_data) {
104 if (state->count >= 10) {
105 SEND_STRING ("Safety dance!");
106 reset_tap_dance (state);
107 }
108}
109 94
110// on each tap, light up one led, from right to left 95// on each tap, light up one led, from right to left
111// on the forth tap, turn them off from right to left 96// on the forth tap, turn them off from right to leftmake ergodox-ez-drashna-custom-teensy
97
112void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) { 98void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
113 if (!skip_leds) { 99 if (!skip_leds) {
114 ergodox_board_led_off(); 100 ergodox_board_led_off();
@@ -119,37 +105,38 @@ void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
119 } 105 }
120 switch (state->count) { 106 switch (state->count) {
121 case 1: 107 case 1:
122 ergodox_right_led_3_on(); 108 ergodox_right_led_1_on();
123 break; 109 break;
124 case 2: 110 case 2:
125 ergodox_right_led_2_on(); 111 ergodox_right_led_2_on();
126 break; 112 break;
127 case 3: 113 case 3:
128 ergodox_right_led_1_on(); 114 ergodox_right_led_3_on();
129 break; 115 break;
130 case 4: 116 case 4:
131 ergodox_right_led_3_off(); 117 ergodox_right_led_1_off();
132 _delay_ms(50); 118 _delay_ms(50);
133 ergodox_right_led_2_off(); 119 ergodox_right_led_2_off();
134 _delay_ms(50); 120 _delay_ms(50);
135 ergodox_right_led_1_off(); 121 ergodox_right_led_3_off();
136 122
137 } 123 }
138} 124}
139 125
140// on the fourth tap, set the keyboard on flash state 126// on the fourth tap, set the keyboard on flash state
127// and set the underglow to red, because red == bad
141void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) { 128void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
142 if (state->count >= 4) { 129 if (state->count >= 4) {
143#ifdef LAYER_UNDERGLOW_LIGHTING
144 rgblight_enable(); 130 rgblight_enable();
145 rgblight_mode(1); 131 rgblight_mode(1);
146 rgblight_setrgb(0xff,0x00,0x00); 132 rgblight_setrgb(0xff,0x00,0x00);
147#endif
148 reset_keyboard(); 133 reset_keyboard();
149 reset_tap_dance(state); 134 reset_tap_dance(state);
150 } 135 }
151} 136}
152 137
138// Cycle through the times for the macro, starting at 0, for disabled.
139// Max of six values, so don't exceed
153void diablo_tapdance_master (qk_tap_dance_state_t *state, void *user_data, uint8_t diablo_key) { 140void diablo_tapdance_master (qk_tap_dance_state_t *state, void *user_data, uint8_t diablo_key) {
154 if (state->count >= 7) { 141 if (state->count >= 7) {
155 diablo_key_time[diablo_key] = diablo_times[0]; 142 diablo_key_time[diablo_key] = diablo_times[0];
@@ -159,6 +146,8 @@ void diablo_tapdance_master (qk_tap_dance_state_t *state, void *user_data, uint8
159 } 146 }
160} 147}
161 148
149
150// Would rather have one function for all of this, but no idea how to do that...
162void diablo_tapdance1 (qk_tap_dance_state_t *state, void *user_data) { 151void diablo_tapdance1 (qk_tap_dance_state_t *state, void *user_data) {
163 diablo_tapdance_master (state, user_data, 0); 152 diablo_tapdance_master (state, user_data, 0);
164} 153}
@@ -179,28 +168,20 @@ void diablo_tapdance4 (qk_tap_dance_state_t *state, void *user_data) {
179// if the flash state didnt happen, then turn off leds, left to right 168// if the flash state didnt happen, then turn off leds, left to right
180void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) { 169void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) {
181 _delay_ms(200); 170 _delay_ms(200);
182 ergodox_right_led_1_off(); 171 ergodox_right_led_3_off();
183 _delay_ms(200); 172 _delay_ms(200);
184 ergodox_right_led_2_off(); 173 ergodox_right_led_2_off();
185 _delay_ms(200); 174 _delay_ms(200);
186 ergodox_right_led_3_off(); 175 ergodox_right_led_1_off();
187 _delay_ms(500); 176 _delay_ms(500);
188 skip_leds = false; 177 skip_leds = false;
189} 178}
190 179
191//Tap Dance Definitions 180//Tap Dance Definitions
192qk_tap_dance_action_t tap_dance_actions[] = { 181qk_tap_dance_action_t tap_dance_actions[] = {
193 //Tap one for Space, and twice for Enter
194 [SFT_CAP] = ACTION_TAP_DANCE_DOUBLE(KC_LSHIFT, KC_CAPS),
195 // Special Z
196 [TD_DIABLO_J] = ACTION_TAP_DANCE_DOUBLE(KC_J, S(KC_J)),
197 // Once for colin, twice for semi-colin
198 [TD_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset),
199 // Tap until you get a surprise
200 [TD_EGG] = ACTION_TAP_DANCE_FN (dance_egg),
201 //Once for Blue, Twice for Green, Thrice for Red, and four to flash 182 //Once for Blue, Twice for Green, Thrice for Red, and four to flash
202 [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset), 183 [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset),
203 184 // tap once to disable, and more to enable timed micros
204 [TD_DIABLO_1] = ACTION_TAP_DANCE_FN(diablo_tapdance1), 185 [TD_DIABLO_1] = ACTION_TAP_DANCE_FN(diablo_tapdance1),
205 [TD_DIABLO_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2), 186 [TD_DIABLO_2] = ACTION_TAP_DANCE_FN(diablo_tapdance2),
206 [TD_DIABLO_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3), 187 [TD_DIABLO_3] = ACTION_TAP_DANCE_FN(diablo_tapdance3),
@@ -220,9 +201,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
220 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 201 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
221 * | Bksp | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " | 202 * | Bksp | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " |
222 * |--------+------+------+------+------+------| TG(2)| | TG(2)|------+------+------+------+------+--------| 203 * |--------+------+------+------+------+------| TG(2)| | TG(2)|------+------+------+------+------+--------|
223 * | Shift | Z | X | C | V | B | | | | N | M | , < | . > | UP | Shift | 204 * | Shift | Z | X | C | V | B | | | | N | M | , < | . > | ? / | Shift |
224 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 205 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
225 * | `/SYM| ' " | LGUI | [ { | ] } | | SYMB | ? / | LEFT | DOWN |RIGHT | 206 * | `/SYM| ' " | LGUI | [ { | ] } | | LEFT | DOWN | UP |RIGHT | SYMB |
226 * `----------------------------------' `----------------------------------' 207 * `----------------------------------' `----------------------------------'
227 * ,--------------. ,--------------. 208 * ,--------------. ,--------------.
228 * |Alt/Ap| Win | | Alt |Ctl/Esc| 209 * |Alt/Ap| Win | | Alt |Ctl/Esc|
@@ -247,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
247 TG(DVORAK), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, 228 TG(DVORAK), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
248 KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE), 229 KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE),
249 TG(COLEMAK), KC_N, KC_M, KC_COMMA, KC_DOT, CTL_T(KC_SLASH),KC_RSHIFT, 230 TG(COLEMAK), KC_N, KC_M, KC_COMMA, KC_DOT, CTL_T(KC_SLASH),KC_RSHIFT,
250 KC_FN1, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, 231 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
251 KC_LALT, CTL_T(KC_ESCAPE), 232 KC_LALT, CTL_T(KC_ESCAPE),
252 KC_PGUP, 233 KC_PGUP,
253 KC_PGDOWN, KC_DELETE, KC_ENTER 234 KC_PGDOWN, KC_DELETE, KC_ENTER
@@ -281,16 +262,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
281 KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(DIABLO), 262 KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(DIABLO),
282 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, 263 KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
283 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(OVERWATCH), 264 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(OVERWATCH),
284 LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LBRACKET,KC_RBRACKET, 265 LT(SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
285 ALT_T(KC_APP), KC_LGUI, 266 ALT_T(KC_APP), KC_LGUI,
286 KC_HOME, 267 KC_HOME,
287 KC_SPC,KC_BSPC,KC_END, 268 KC_SPC,KC_BSPC,KC_END,
288 // right hand 269 // right hand
289 KC_TRANSPARENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 270 KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
290 KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, 271 KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
291 KC_H, KC_N, KC_E, KC_I, LT(MOUS, KC_O), KC_QUOTE, 272 KC_H, KC_N, KC_E, KC_I, LT(MOUS, KC_O), KC_QUOTE,
292 KC_TRANSPARENT,KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLASH),KC_RSHIFT, 273 KC_TRNS,KC_K,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLASH),KC_RSHIFT,
293 KC_FN1, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, 274 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
294 KC_LALT, CTL_T(KC_ESC), 275 KC_LALT, CTL_T(KC_ESC),
295 KC_PGUP, 276 KC_PGUP,
296 KC_PGDN,KC_TAB, KC_ENT 277 KC_PGDN,KC_TAB, KC_ENT
@@ -324,16 +305,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
324 KC_DELT, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(DIABLO), 305 KC_DELT, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(DIABLO),
325 KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, 306 KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
326 KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(OVERWATCH), 307 KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(OVERWATCH),
327 LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LBRACKET,KC_RBRACKET, 308 LT(SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET, KC_RBRACKET,
328 ALT_T(KC_APP), KC_LGUI, 309 ALT_T(KC_APP), KC_LGUI,
329 KC_HOME, 310 KC_HOME,
330 KC_SPC,KC_BSPC,KC_END, 311 KC_SPC,KC_BSPC,KC_END,
331 // right hand 312 // right hand
332 KC_TRANSPARENT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, 313 KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
333 KC_TRANSPARENT, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, 314 KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
334 KC_D, KC_H, KC_T, KC_N, LT(MOUS, KC_S), KC_MINS, 315 KC_D, KC_H, KC_T, KC_N, LT(MOUS, KC_S), KC_MINS,
335 KC_NO,KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSHIFT, 316 KC_NO,KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSHIFT,
336 KC_FN1, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, 317 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
337 KC_LALT, CTL_T(KC_ESC), 318 KC_LALT, CTL_T(KC_ESC),
338 KC_PGUP, 319 KC_PGUP,
339 KC_PGDN,KC_TAB, KC_ENT 320 KC_PGDN,KC_TAB, KC_ENT
@@ -347,43 +328,43 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
347* | VERSION| ! | @ | { | } | | | | | | + | 7 | 8 | 9 | * | F12 | 328* | VERSION| ! | @ | { | } | | | | | | + | 7 | 8 | 9 | * | F12 |
348* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 329* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
349* | MAKE | # | $ | ( | ) | ` |------| |------| - | 4 | 5 | 6 | / | PrtSc | 330* | MAKE | # | $ | ( | ) | ` |------| |------| - | 4 | 5 | 6 | / | PrtSc |
350* |--------+------+------+------+------+------| COVE | | |------+------+------+------+------+--------| 331* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
351* | RESET | % | ^ | [ | ] | ~ | CUBE | | | NUM | 1 | 2 | 3 | = | PAUSE | 332* | RESET | % | ^ | [ | ] | ~ | | | | NUM | 1 | 2 | 3 | = | PAUSE |
352* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 333* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
353* | LT0 | & | * | : | ; | | 0 | 0 | NUM. | ENT | ENT | 334* | LT0 | & | * | : | ; | | | 0 | NUM. | ENT | ENT |
354* `----------------------------------' `----------------------------------' 335* `----------------------------------' `----------------------------------'
355* ,-------------. ,-------------. 336* ,-------------. ,-------------.
356* | RGBM | RED | | OFF | SOLID| 337* | RGBM | RED | | OFF | SOLID|
357* ,------|------|------| |------+------+------. 338* ,------|------|------| |------+------+------.
358* | | | GREEN| | | | | 339* | | | GREEN| | | | |
359* | RGB | RGB |------| |------| NUM. | NUM0 | 340* | RGB | RGB |------| |------| NUM0 | NUME |
360* | DARK |BRITE | BLUE | | | | | 341* | DARK |BRITE | BLUE | | | | |
361* `--------------------' `--------------------' 342* `--------------------' `--------------------'
362*/ 343*/
363 [SYMB] = KEYMAP( 344 [SYMB] = KEYMAP(
364 KC_ESCAPE,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRANSPARENT, 345 KC_ESCAPE,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
365 M_VERSION, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRANSPARENT, 346 M_VERSION, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
366 M_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, 347 M_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE,
367 TD(TD_FLSH), KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, M_COVECUBE, 348 TD(TD_FLSH), KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_TRNS,
368 KC_NO, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, 349 KC_NO, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON,
369 RGB_MOD, RGB_0000FF, 350 KC_TRNS, KC_TRNS,
370 RGB_008000, 351 KC_TRNS,
371 RGB_VAD, RGB_VAI, RGB_FF0000, 352 KC_TRNS, KC_TRNS, KC_TRNS,
372 353
373 KC_TRANSPARENT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 354 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
374 KC_TRANSPARENT, KC_KP_PLUS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12, 355 KC_TRNS, KC_KP_PLUS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12,
375 KC_KP_MINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH,KC_PSCREEN, 356 KC_KP_MINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH,KC_PSCREEN,
376 KC_TRANSPARENT, KC_NUMLOCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_EQUAL, KC_PAUSE, 357 KC_TRNS, KC_NUMLOCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_EQUAL, KC_PAUSE,
377 KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_ENTER, 358 KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, KC_TRNS,
378 RGB_TOG, RGB_SLD, 359 RGB_TOG, RGB_SLD,
379 RGB_HUI, 360 KC_NO,
380 RGB_HUD, KC_KP_DOT, KC_KP_0 361 KC_KP_DOT, KC_KP_0, KC_KP_ENTER
381 ), 362 ),
382 363
383/* Keymap 4: Customized Overwatch Layout 364/* Keymap 4: Customized Overwatch Layout
384 * 365 *
385 * ,--------------------------------------------------. ,--------------------------------------------------. 366 * ,--------------------------------------------------. ,--------------------------------------------------.
386 * | ESC | SALT | SYMM | MORE | DOOM | | | | | F9 | F10 | F11 | F12 | | | 367 * | ESC | SALT | MORE | GG | SYMM | DOOM | HARD | | | F9 | F10 | F11 | F12 | | |
387 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 368 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
388 * | F1 | K | Q | W | E | R | T | | | | | | | | | 369 * | F1 | K | Q | W | E | R | T | | | | | | | | |
389 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 370 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -402,10 +383,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
402 * `--------------------' `--------------------' 383 * `--------------------' `--------------------'
403 */ 384 */
404 [OVERWATCH] = KEYMAP( 385 [OVERWATCH] = KEYMAP(
405 KC_ESCAPE, M_SALT, M_SYMM, M_MORESALT, M_DOOMFIST, KC_NO, KC_NO, 386 KC_ESCAPE, M_SALT, M_MORESALT, M_GOODGAME, M_SYMM, M_DOOMFIST, M_HARD,
406 KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, 387 KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T,
407 KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, 388 KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F,
408 KC_LCTL, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_M, KC_TRANSPARENT, 389 KC_LCTL, KC_LSHIFT, KC_Z, KC_X, KC_C, KC_M, KC_TRNS,
409 KC_G, KC_U, KC_I, KC_Y, KC_T, 390 KC_G, KC_U, KC_I, KC_Y, KC_T,
410 KC_O, KC_P, 391 KC_O, KC_P,
411 KC_LGUI, 392 KC_LGUI,
@@ -444,10 +425,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
444 */ 425 */
445 [DIABLO] = KEYMAP( 426 [DIABLO] = KEYMAP(
446 KC_ESCAPE, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, 427 KC_ESCAPE, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO,
447 KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRANSPARENT, 428 KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_TRNS,
448 KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, 429 KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G,
449 KC_NUMLOCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_4, KC_Z, KC_NO, 430 KC_LCTL, TD(TD_DIABLO_1), TD(TD_DIABLO_2), TD(TD_DIABLO_3), TD(TD_DIABLO_4), KC_Z, KC_NO,
450 KC_LCTL, TD(TD_DIABLO_1), TD(TD_DIABLO_2), TD(TD_DIABLO_3), TD(TD_DIABLO_4), 431 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
451 KC_L, KC_J, 432 KC_L, KC_J,
452 KC_F, 433 KC_F,
453 SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, 434 SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR,
@@ -485,19 +466,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
485 * `--------------------' `--------------------' 466 * `--------------------' `--------------------'
486 */ 467 */
487 [MOUS] = KEYMAP( 468 [MOUS] = KEYMAP(
488 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, 469 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
489 KC_NO, KC_NO, KC_MS_UP, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, 470 KC_NO, KC_NO, KC_MS_UP, KC_NO, KC_NO, KC_NO, KC_TRNS,
490 KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT,KC_NO, KC_NO, 471 KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT,KC_NO, KC_NO,
491 KC_NO, KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2,KC_NO, KC_NO, KC_TRANSPARENT, 472 KC_NO, KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2,KC_NO, KC_NO, KC_TRNS,
492 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 473 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
493 KC_NO,KC_NO, 474 KC_NO,KC_NO,
494 KC_MS_WH_UP, 475 KC_MS_WH_UP,
495 KC_MS_BTN1,KC_MS_BTN2,KC_MS_WH_DOWN, 476 KC_MS_BTN1,KC_MS_BTN2,KC_MS_WH_DOWN,
496 477
497 KC_TRANSPARENT,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, 478 KC_TRNS,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
498 KC_TRANSPARENT,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, 479 KC_TRNS,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
499 KC_NO,KC_NO,KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2,KC_NO,KC_NO, 480 KC_NO,KC_NO,KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2,KC_NO,KC_NO,
500 KC_TRANSPARENT,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_STOP,KC_AUDIO_MUTE,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_NO, 481 KC_TRNS,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_STOP,KC_AUDIO_MUTE,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_NO,
501 KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, 482 KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,
502 KC_NO,KC_NO, 483 KC_NO,KC_NO,
503 KC_NO, 484 KC_NO,
@@ -509,10 +490,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
509const uint16_t PROGMEM fn_actions[] = { 490const uint16_t PROGMEM fn_actions[] = {
510 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), 491 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB),
511 // FN1 - Momentary Layer 1 (Symbols) 492 // FN1 - Momentary Layer 1 (Symbols)
512 [2] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_UP),
513 [3] = ACTION_MODS_TAP_KEY(MOD_RGUI, KC_LEFT),
514 [4] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_DOWN),
515 [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RIGHT),
516}; 493};
517 494
518void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) 495void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
@@ -547,13 +524,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
547 case 4: 524 case 4:
548 if (record->event.pressed) { 525 if (record->event.pressed) {
549 // make ergodox-ez-drashna-custom-teensy 526 // make ergodox-ez-drashna-custom-teensy
550 return MACRO( I(5), T(M), T(A), T(K), T(E), T(SPACE), T(E), T(R), T(G), T(O), T(D), T(O), T(X), T(MINUS), T(E), T(Z), T(MINUS), T(D), T(R), T(A), T(S), T(H), T(N), T(A), T(MINUS), T(C), T(U), T(S), T(T), T(O), T(M), T(MINUS), T(T), T(E), T(E), T(N), T(S), T(Y), T(ENTER), END ); 527 return MACRO(I(5), T(M), T(A), T(K), T(E), T(SPACE), T(E), T(R), T(G), T(O), T(D), T(O), T(X), D(LSFT), T(MINUS), U(LSFT), T(E), T(Z), T(MINUS), T(D), T(R), T(A), T(S), T(H), T(N), T(A), T(MINUS), T(C), T(U), T(S), T(T), T(O), T(M), T(MINUS), T(T), T(E), T(E), T(N), T(S), T(Y), T(ENTER), END);
551 } 528 }
552 case 5: 529 case 5:
553 if (record->event.pressed) { 530 if (record->event.pressed) {
554 //super secret hash 531 //gg
555 SEND_STRING("supersecrethash"); 532 return MACRO(I(50), T(ENTER), I(5), T(G), T(G), T(ENTER), END);
556 return MACRO_NONE;
557 } 533 }
558 case 6: 534 case 6:
559 if (record->event.pressed) { 535 if (record->event.pressed) {
@@ -562,40 +538,15 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
562 } 538 }
563 break; 539 break;
564 case 7: 540 case 7:
565 if (record->event.pressed) { 541 if (record->event.pressed) {
566 // DoomFisted 542 // DoomFisted
567 // Hey, look at me. I'm Doomfist, and I'm overpowered! 543 // Hey, look at me. I'm Doomfist, and I'm overpowered!
568 // All I do is spam punches all day! I'm DPS, tank and 544 // All I do is spam punches all day! I'm DPS, tank and
569 // defense, rolled into one! All I need is team healing to be complete! 545 // defense, rolled into one! All I need is team healing to be complete!
570 return MACRO( I(50), T(ENTER), I(5), D(LSFT), T(H), U(LSFT), T(E), T(Y), T(COMMA), T(SPACE), T(L), T(O), T(O), T(K), T(SPACE), T(A), T(T), T(SPACE), T(M), T(E), T(DOT), T(SPACE), T(SPACE), D(LSFT), T(I), U(LSFT), T(QUOTE), T(M), T(SPACE), D(LSFT), T(D), U(LSFT), T(O), T(O), T(M), T(F), T(I), T(S), T(T), T(COMMA), T(SPACE), T(A), T(N), T(D), T(SPACE), D(LSFT), T(I), U(LSFT), T(QUOTE), T(M), T(SPACE), T(O), T(V), T(E), T(R), T(P), T(O), T(W), T(E), T(R), T(E), T(D), D(LSFT), T(1), U(LSFT), T(SPACE), T(SPACE), D(LSFT), T(A), U(LSFT), T(L), T(L), T(SPACE), D(LSFT), T(I), U(LSFT), T(SPACE), T(D), T(O), T(SPACE), T(I), T(S), T(SPACE), T(S), T(P), T(A), T(M), T(SPACE), T(P), T(U), T(N), T(C), T(H), T(E), T(S), T(SPACE), T(A), T(L), T(L), T(SPACE), T(D), T(A), T(Y), D(LSFT), T(1), U(LSFT), T(SPACE), T(SPACE), T(SPACE), D(LSFT), T(I), U(LSFT), T(QUOTE), T(M), T(SPACE), D(LSFT), T(D), U(LSFT), D(LSFT), T(P), U(LSFT), D(LSFT), T(S), U(LSFT), T(COMMA), T(SPACE), T(T), T(A), T(N), T(K), T(SPACE), T(A), T(N), T(D), T(SPACE), T(D), T(E), T(F), T(E), T(N), T(S), T(E), T(COMMA), T(SPACE), T(R), T(O), T(L), T(L), T(E), T(D), T(SPACE), T(I), T(N), T(T), T(O), T(SPACE), T(O), T(N), T(E), D(LSFT), T(1), U(LSFT), T(SPACE), D(LSFT), T(A), U(LSFT), T(L), T(L), T(SPACE), D(LSFT), T(I), U(LSFT), T(SPACE), T(N), T(E), T(E), T(D), T(SPACE), T(I), T(S), T(SPACE), T(T), T(E), T(A), T(M), T(SPACE), T(H), T(E), T(A), T(L), T(I), T(N), T(G), T(SPACE), T(T), T(O), T(SPACE), T(B), T(E), T(SPACE), T(C), T(O), T(M), T(P), T(L), T(E), T(T), T(E), D(LSFT), T(1), U(LSFT), T(ENTER), END ); 546 return MACRO( I(50), T(ENTER), I(5), D(LSFT), T(H), U(LSFT), T(E), T(Y), T(COMMA), T(SPACE), T(L), T(O), T(O), T(K), T(SPACE), T(A), T(T), T(SPACE), T(M), T(E), T(DOT), T(SPACE), T(SPACE), D(LSFT), T(I), U(LSFT), T(QUOTE), T(M), T(SPACE), D(LSFT), T(D), U(LSFT), T(O), T(O), T(M), T(F), T(I), T(S), T(T), T(COMMA), T(SPACE), T(A), T(N), T(D), T(SPACE), D(LSFT), T(I), U(LSFT), T(QUOTE), T(M), T(SPACE), T(O), T(V), T(E), T(R), T(P), T(O), T(W), T(E), T(R), T(E), T(D), D(LSFT), T(1), U(LSFT), T(SPACE), T(SPACE), D(LSFT), T(A), U(LSFT), T(L), T(L), T(SPACE), D(LSFT), T(I), U(LSFT), T(SPACE), T(D), T(O), T(SPACE), T(I), T(S), T(SPACE), T(S), T(P), T(A), T(M), T(SPACE), T(P), T(U), T(N), T(C), T(H), T(E), T(S), T(SPACE), T(A), T(L), T(L), T(SPACE), T(D), T(A), T(Y), D(LSFT), T(1), U(LSFT), T(SPACE), T(SPACE), T(SPACE), D(LSFT), T(I), U(LSFT), T(QUOTE), T(M), T(SPACE), D(LSFT), T(D), U(LSFT), D(LSFT), T(P), U(LSFT), D(LSFT), T(S), U(LSFT), T(COMMA), T(SPACE), T(T), T(A), T(N), T(K), T(SPACE), T(A), T(N), T(D), T(SPACE), T(D), T(E), T(F), T(E), T(N), T(S), T(E), T(COMMA), T(SPACE), T(R), T(O), T(L), T(L), T(E), T(D), T(SPACE), T(I), T(N), T(T), T(O), T(SPACE), T(O), T(N), T(E), D(LSFT), T(1), U(LSFT), T(SPACE), D(LSFT), T(A), U(LSFT), T(L), T(L), T(SPACE), D(LSFT), T(I), U(LSFT), T(SPACE), T(N), T(E), T(E), T(D), T(SPACE), T(I), T(S), T(SPACE), T(T), T(E), T(A), T(M), T(SPACE), T(H), T(E), T(A), T(L), T(I), T(N), T(G), T(SPACE), T(T), T(O), T(SPACE), T(B), T(E), T(SPACE), T(C), T(O), T(M), T(P), T(L), T(E), T(T), T(E), D(LSFT), T(1), U(LSFT), T(ENTER), END );
571 } 547 }
572 case 8: //MAC1 - Hold for rshift and } on tap 548 break;
573 if (record->event.pressed) { 549
574 key_timer = timer_read();
575 return MACRO(D(LSFT), END );
576 } else {
577 return checktime() ? MACRO(U(LSFT),D(RALT),T(7),U(RALT),END): MACRO(U(LSFT),END);
578 }; break;
579 case 9: //MAC1 - Hold for rshift and } on tap
580 if (record->event.pressed) {
581 key_timer = timer_read();
582 return MACRO(D(RSFT), END );
583 } else {
584 return checktime() ? MACRO(U(RSFT),D(RALT),T(0),U(RALT),END): MACRO(U(RSFT),END);
585 }; break;
586 case 10: //MAC2 - Hold for lctrl and [ on tap
587 if (record->event.pressed) {
588 key_timer = timer_read();
589 return MACRO(D(LCTL), END );
590 } else {return checktime() ? MACRO(U(LCTL),D(RALT),T(8),U(RALT),END):MACRO(U(LCTL),END);
591 }; break;
592 case 11: //MAC3 - Hold for rctrl and ] on tap
593 if (record->event.pressed) {
594 key_timer = timer_read();
595 return MACRO(D(RCTL), END );
596 } else {
597 return checktime() ? MACRO(U(RCTL),D(RALT),T(9),U(RALT),END):MACRO(U(RCTL),END);
598 }; break;
599 } 550 }
600 return MACRO_NONE; 551 return MACRO_NONE;
601}; 552};
@@ -677,7 +628,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
677 } 628 }
678 return false; 629 return false;
679 break; 630 break;
680 case KC_DIABLO_CLEAR: 631 case KC_DIABLO_CLEAR: // reset all Diable timers, disabling them
681 if (record->event.pressed) { 632 if (record->event.pressed) {
682 uint8_t dtime; 633 uint8_t dtime;
683 634
@@ -692,6 +643,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
692 return true; 643 return true;
693} 644}
694 645
646
647// Sends the key press to system, but only if on the Diablo layer
695void send_diablo_keystroke (uint8_t diablo_key) { 648void send_diablo_keystroke (uint8_t diablo_key) {
696 if (current_layer == DIABLO) { 649 if (current_layer == DIABLO) {
697 switch (diablo_key) { 650 switch (diablo_key) {
@@ -711,6 +664,8 @@ void send_diablo_keystroke (uint8_t diablo_key) {
711 } 664 }
712} 665}
713 666
667// Checks each of the 4 timers/keys to see if enough time has elapsed
668// Runs the "send string" command if enough time has passed, and resets the timer.
714void run_diablo_macro_check(void) { 669void run_diablo_macro_check(void) {
715 uint8_t dtime; 670 uint8_t dtime;
716 671
@@ -724,32 +679,7 @@ void run_diablo_macro_check(void) {
724} 679}
725 680
726void matrix_init_user(void) { // Runs boot tasks for keyboard 681void matrix_init_user(void) { // Runs boot tasks for keyboard
727 wait_ms(500); 682 has_layer_changed = true;
728 ergodox_board_led_on();
729 wait_ms(200);
730 ergodox_right_led_1_on();
731 wait_ms(200);
732 ergodox_right_led_2_on();
733 wait_ms(200);
734 ergodox_right_led_3_on();
735 wait_ms(200);
736 ergodox_board_led_off();
737 wait_ms(200);
738 ergodox_right_led_1_off();
739 wait_ms(200);
740 ergodox_right_led_2_off();
741 wait_ms(200);
742 ergodox_right_led_3_off();
743
744
745#ifdef LAYER_UNDERGLOW_LIGHTING
746 rgblight_enable();
747 rgblight_sethsv(195,255,255);
748#endif
749 has_layer_changed = false;
750
751
752
753}; 683};
754 684
755 685
@@ -764,6 +694,9 @@ void matrix_scan_user(void) { // runs frequently to update info
764 ergodox_right_led_2_off(); 694 ergodox_right_led_2_off();
765 ergodox_right_led_3_off(); 695 ergodox_right_led_3_off();
766 696
697 // Since we're not using the LEDs here for layer indication anymore,
698 // then lets use them for modifier indicators. Shame we don't have 4...
699 // Also, no "else", since we want to know each, independantly.
767 if ( modifiders & MODS_SHIFT_MASK) { 700 if ( modifiders & MODS_SHIFT_MASK) {
768 ergodox_right_led_1_on(); 701 ergodox_right_led_1_on();
769 } 702 }
@@ -775,93 +708,61 @@ void matrix_scan_user(void) { // runs frequently to update info
775 } 708 }
776 709
777 } 710 }
778 711 // Check layer, and apply color if its changed since last check
779 switch (layer) { 712 switch (layer) {
780 case SYMB: 713 case SYMB:
781 #ifdef LAYER_UNDERGLOW_LIGHTING
782 if (has_layer_changed) { 714 if (has_layer_changed) {
783 rgblight_sethsv (240,255,255); 715 rgblight_sethsv (255,255,255);
784 } 716 }
785 #else
786 ergodox_right_led_3_on();
787 #endif
788 break; 717 break;
789 case OVERWATCH: 718 case OVERWATCH:
790 #ifdef LAYER_UNDERGLOW_LIGHTING
791 if (has_layer_changed) { 719 if (has_layer_changed) {
792 rgblight_sethsv (30,255,255); 720 rgblight_sethsv (30,255,255);
793 } 721 }
794 #else
795 ergodox_right_led_2_on();
796 #endif
797 break; 722 break;
798 case DIABLO: 723 case DIABLO:
799 #ifdef LAYER_UNDERGLOW_LIGHTING
800 if (has_layer_changed) { 724 if (has_layer_changed) {
801 rgblight_sethsv (0,255,255); 725 rgblight_sethsv (0,255,255);
802 } 726 }
803 #else
804 ergodox_right_led_1_on();
805 #endif
806 break; 727 break;
807 case MOUS: 728 case MOUS:
808 #ifdef LAYER_UNDERGLOW_LIGHTING
809 if (has_layer_changed) { 729 if (has_layer_changed) {
810 rgblight_sethsv (60,255,255); 730 rgblight_sethsv (60,255,255);
811 } 731 }
812 #else
813 ergodox_right_led_3_on();
814 ergodox_right_led_2_on();
815 #endif
816 break; 732 break;
817 case COLEMAK: 733 case COLEMAK:
818 #ifdef LAYER_UNDERGLOW_LIGHTING
819 if (has_layer_changed) { 734 if (has_layer_changed) {
820 rgblight_sethsv (300,255,255); 735 rgblight_sethsv (300,255,255);
821 } 736 }
822 #else
823 ergodox_right_led_1_on();
824 ergodox_right_led_3_on();
825 #endif
826 break; 737 break;
827 case DVORAK: 738 case DVORAK:
828 #ifdef LAYER_UNDERGLOW_LIGHTING
829 if (has_layer_changed) { 739 if (has_layer_changed) {
830 rgblight_sethsv (120,255,255); 740 rgblight_sethsv (120,255,255);
831 } 741 }
832 #else
833 ergodox_right_led_2_on();
834 ergodox_right_led_1_on();
835 #endif
836 break; 742 break;
837 case 7: 743 case 7:
838 #ifdef LAYER_UNDERGLOW_LIGHTING
839 if (has_layer_changed) { 744 if (has_layer_changed) {
840 rgblight_sethsv (255,255,255); 745 rgblight_sethsv (255,255,255);
841 } 746 }
842 #else
843 ergodox_right_led_1_on();
844 ergodox_right_led_2_on();
845 ergodox_right_led_3_on();
846 #endif
847 break; 747 break;
848 default: 748 default:
849 // Do not add anything here, as this will be ran EVERY check, and can cause a significant slowdown
850 #ifdef LAYER_UNDERGLOW_LIGHTING
851 if (has_layer_changed) { 749 if (has_layer_changed) {
852 rgblight_sethsv (195,255,255); 750 rgblight_sethsv (195,255,255);
853 } 751 }
854 #endif
855 break; 752 break;
856 } 753 }
857 754
755 // Update layer status at the end, so this sets the default color
756 // rather than relying on the init, which was unreliably...
757 // Probably due to a timing issue, but this requires no additional code
858 if (current_layer == layer) { 758 if (current_layer == layer) {
859 has_layer_changed = false; 759 has_layer_changed = false;
860 } else { 760 } else {
861 has_layer_changed = true; 761 has_layer_changed = true;
862 current_layer = layer; 762 current_layer = layer;
863 } 763 }
764
765 // Run Diablo 3 macro checking code.
864 run_diablo_macro_check(); 766 run_diablo_macro_check();
865}; 767};
866 768
867