summaryrefslogtreecommitdiffstats
path: root/keyboards/ergodox_ez
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ergodox_ez')
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/config.h2
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c186
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk7
-rw-r--r--keyboards/ergodox_ez/keymaps/drashna/keymap.c87
4 files changed, 147 insertions, 135 deletions
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
index 5fef1e0d8c..c1ebf174a3 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h
@@ -13,6 +13,4 @@
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#endif // RGBLIGHT_ENABLE
-#define FORCE_NKRO
-
#endif \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
index 5440c33460..bdc4eed486 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
@@ -48,17 +48,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//define layer change stuff for underglow indicator
bool skip_leds = false;
-#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
-#define rgblight_set_red rgblight_sethsv(0x00, 0xFF, 0xFF);
-#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
-#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
-#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
-#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
-#define rgblight_set_urine rgblight_sethsv (0x3C, 0xFF, 0xFF);
-#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
-//This is both for underglow, and Diablo 3 macros
-
-static uint8_t current_layer = 0;
+#ifdef RGBLIGHT_ENABLE
+#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF);
+#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF);
+#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF);
+#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF);
+#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF);
+#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
+#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
+#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
+#endif
//define diablo macro timer variables
static uint16_t diablo_timer[4];
@@ -136,11 +135,13 @@ void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
// and set the underglow to red, because red == bad
void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 4) {
+#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_mode(1);
rgblight_setrgb(0xff,0x00,0x00);
- reset_keyboard();
+#endif
reset_tap_dance(state);
+ reset_keyboard();
}
}
@@ -229,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSHIFT, LCTL_T(KC_Z),KC_X, KC_C, KC_V, KC_B, TG(OVERWATCH),
LT(SYMB,KC_GRAVE),KC_QUOTE, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
- ALT_T(KC_APPLICATION), KC_LEAD,
+ ALT_T(KC_APPLICATION), KC_LGUI,
KC_HOME,
KC_SPACE, KC_BSPACE, KC_END,
@@ -237,8 +238,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE),
TG(OVERWATCH), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
- KC_LALT, CTL_T(KC_ESCAPE),
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB),
+ KC_LEAD, CTL_T(KC_ESCAPE),
KC_PGUP,
KC_PGDOWN, KC_DELETE, KC_ENTER
),
@@ -280,7 +281,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
KC_H, KC_N, KC_E, KC_I, KC_O, GUI_T(KC_QUOTE),
TG(OVERWATCH),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB),
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_DELETE, KC_ENT
@@ -323,7 +324,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
TG(OVERWATCH),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT,
- KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_FN1,
+ KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(SYMB),
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_DELETE, KC_ENT
@@ -366,7 +367,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(DIABLO), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE,
TG(OVERWATCH),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB),
KC_LALT, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_DELETE, KC_ENT
@@ -398,7 +399,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
VRSN, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_DVORAK,
KC_MAKEQMK, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE,
TD(TD_FLSH), KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK,
- KC_NO, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON,
+ KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@@ -540,16 +541,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-const uint16_t PROGMEM fn_actions[] = {
- [1] = ACTION_LAYER_TAP_TOGGLE(SYMB),
- // FN1 - Momentary Layer 1 (Symbols)
-};
-
-void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
-{
-
-}
-
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
@@ -558,6 +549,9 @@ void persistent_default_layer_set(uint16_t default_layer) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+#ifdef CONSOLE_ENABLE
+ xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed);
+#endif
switch (keycode) {
// dynamically generate these.
case EPRM:
@@ -574,7 +568,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
case RGB_SLD:
if (record->event.pressed) {
+#ifdef RGBLIGHT_ENABLE
rgblight_mode(1);
+#endif
}
return false;
break;
@@ -668,8 +664,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
break;
case KC_MAKEQMK:
- if (record->event.pressed) {
- SEND_STRING("make ergodox_ez:drashna-custom:teensy"SS_TAP(X_ENTER));
+ if (!record->event.pressed) {
+ SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":teensy"SS_TAP(X_ENTER));
}
return false;
break;
@@ -678,10 +674,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
+#ifdef TAP_DANCE_ENABLE
// Sends the key press to system, but only if on the Diablo layer
void send_diablo_keystroke (uint8_t diablo_key) {
- if (current_layer == DIABLO) {
+ if (biton32(layer_state) == DIABLO) {
switch (diablo_key) {
case 0:
SEND_STRING("1");
@@ -713,16 +710,33 @@ void run_diablo_macro_check(void) {
}
+#endif
+
+
void matrix_init_user(void) { // Runs boot tasks for keyboard
+#ifdef RGBLIGHT_ENABLE
+ uint8_t default_layer = eeconfig_read_default_layer();
+ rgblight_enable();
+ if (default_layer & (1UL << COLEMAK)) {
+ rgblight_set_magenta;
+ }
+ else if (default_layer & (1UL << DVORAK)) {
+ rgblight_set_green;
+ }
+ else if (default_layer & (1UL << WORKMAN)) {
+ rgblight_set_purple;
+ }
+ else {
+ rgblight_set_teal;
+ }
+#endif
};
LEADER_EXTERNS();
void matrix_scan_user(void) { // runs frequently to update info
uint8_t modifiders = get_mods();
- uint8_t layer = biton32(layer_state);
- static bool has_layer_changed = true;
if (!skip_leds) {
ergodox_board_led_off();
@@ -744,70 +758,29 @@ void matrix_scan_user(void) { // runs frequently to update info
}
}
- if (layer != current_layer) {
- has_layer_changed = true;
- current_layer = layer;
- }
- // Check layer, and apply color if its changed since last check
- if (has_layer_changed) {
- uint8_t default_layer = 0;
- default_layer = eeconfig_read_default_layer();
-
- switch (layer) {
- case SYMB:
- rgblight_set_blue;
- rgblight_mode(2);
- break;
- case OVERWATCH:
- rgblight_set_orange;
- rgblight_mode(17);
- break;
- case DIABLO:
- rgblight_set_red;
- rgblight_mode(5);
- break;
- case MOUS:
- rgblight_set_urine;
- rgblight_mode(1);
- break;
- case 7:
- rgblight_sethsv (255,255,255);
- rgblight_mode(1);
- break;
- default:
- if (default_layer & (1UL << COLEMAK)) {
- rgblight_set_green;
- }
- else if (default_layer & (1UL << DVORAK)) {
- rgblight_set_magenta;
- }
- else if (default_layer & (1UL << WORKMAN)) {
- rgblight_set_purple;
- }
- else {
- rgblight_set_teal;
- }
- rgblight_mode(1);
- break;
- }
- has_layer_changed = false;
- }
// Run Diablo 3 macro checking code.
+#ifdef TAP_DANCE_ENABLE
run_diablo_macro_check();
-#ifdef LEADER_KEYS
+#endif
LEADER_DICTIONARY() {
leading = false;
leader_end();
SEQ_ONE_KEY(KC_C) {
SEND_STRING("Covecube");
}
+ SEQ_ONE_KEY(KC_D) {
+ SEND_STRING("StableBit CloudDrive");
+ }
+ SEQ_ONE_KEY(KC_L) {
+ register_code(KC_LGUI);
+ register_code(KC_L);
+ unregister_code(KC_L);
+ unregister_code(KC_LGUI);
+ }
SEQ_TWO_KEYS(KC_S, KC_D) {
SEND_STRING("StableBit DrivePool");
}
- SEQ_TWO_KEYS(KC_C, KC_D) {
- SEND_STRING("StableBit CloudDrive");
- }
SEQ_TWO_KEYS(KC_S, KC_C) {
SEND_STRING("StableBit Scanner");
}
@@ -815,6 +788,45 @@ void matrix_scan_user(void) { // runs frequently to update info
SEND_STRING("StableBit Troubleshooter");
}
}
-#endif
};
+uint32_t layer_state_set_kb(uint32_t state) {
+#ifdef RGBLIGHT_ENABLE
+ uint8_t default_layer = eeconfig_read_default_layer();
+
+ switch (biton32(state)) {
+ case SYMB:
+ rgblight_set_blue;
+ rgblight_mode(2);
+ break;
+ case OVERWATCH:
+ rgblight_set_orange;
+ rgblight_mode(17);
+ break;
+ case DIABLO:
+ rgblight_set_red;
+ rgblight_mode(5);
+ break;
+ case MOUS:
+ rgblight_set_yellow;
+ rgblight_mode(1);
+ break;
+ default:
+ if (default_layer & (1UL << COLEMAK)) {
+ rgblight_set_green;
+ }
+ else if (default_layer & (1UL << DVORAK)) {
+ rgblight_set_magenta;
+ }
+ else if (default_layer & (1UL << WORKMAN)) {
+ rgblight_set_purple;
+ }
+ else {
+ rgblight_set_teal;
+ }
+ rgblight_mode(1);
+ break;
+ }
+#endif
+ return state;
+}
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk b/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk
index 5ab769c688..0fa7cd2277 100644
--- a/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk
@@ -1,10 +1,13 @@
TAP_DANCE_ENABLE = yes
-SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-COMMAND_ENABLE = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+COMMAND_ENABLE = yes # Commands for debug and configuration
RGBLIGHT_ENABLE = yes
MIDI_ENABLE = no
CONSOLE_ENABLE = no
LEADER_KEYS = no
+
+EXTRAFLAGS = -flto
+
ifndef QUANTUM_DIR
include ../../../../Makefile
endif
diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
index cef0e9c39f..97ede94318 100644
--- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c
@@ -17,8 +17,6 @@
#define MOUS 2
#ifdef LAYER_UNDERGLOW_LIGHTING
-bool has_layer_changed = true;
-
#define rgblight_set_teal rgblight_setrgb(0x00, 0xFF, 0xFF)
#define rgblight_set_red rgblight_setrgb(0xFF, 0x00, 0x00)
#define rgblight_set_blue rgblight_setrgb(0x00, 0xFF, 0x00);
@@ -100,20 +98,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
+void matrix_init_user(void) {
+#ifdef LAYER_UNDERGLOW_LIGHTING
+ rgblight_enable();
+ rgblight_set_teal;
+ rgblight_mode(1);
+#endif
-
+}
void matrix_scan_user(void) {
- uint8_t new_layer = biton32(layer_state);
-
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
#ifdef LAYER_UNDERGLOW_LIGHTING
- static uint8_t old_layer = 0;
uint8_t modifiders = get_mods();
if ( modifiders & MODS_SHIFT_MASK) {
@@ -124,44 +125,10 @@ void matrix_scan_user(void) {
}
if ( modifiders & MODS_ALT_MASK) {
ergodox_right_led_3_on();
- }
-
- if (old_layer != new_layer) {
- has_layer_changed = true;
- old_layer = new_layer;
- }
- if (has_layer_changed) {
- switch (new_layer) {
- case 1:
- rgblight_set_red;
- break;
- case 2:
- rgblight_set_blue;
- break;
- case 3:
- rgblight_set_green;
- break;
- case 4:
- rgblight_set_yellow;
- break;
- case 5:
- rgblight_setrgb(0xFF, 0xFF, 0x00);
- break;
- case 6:
- rgblight_setrgb(0xFF, 0xFF, 0x00);
- break;
- case 7:
- rgblight_setrgb(0xFF, 0xFF, 0xFF);
- break;
- default:
- rgblight_set_teal;
- break;
- }
- has_layer_changed = false;
- }
-
-#else
- switch (new_layer) {
+ }
+#else
+ uint8_t layer = biton32(layer_state);
+ switch (layer) {
case 1:
ergodox_right_led_1_on();
break;
@@ -193,3 +160,35 @@ void matrix_scan_user(void) {
}
#endif
};
+
+uint32_t layer_state_set_kb(uint32_t state) {
+#ifdef LAYER_UNDERGLOW_LIGHTING
+ switch (biton32(state)) {
+ case 1:
+ rgblight_set_red;
+ break;
+ case 2:
+ rgblight_set_blue;
+ break;
+ case 3:
+ rgblight_set_green;
+ break;
+ case 4:
+ rgblight_set_yellow;
+ break;
+ case 5:
+ rgblight_setrgb(0xFF, 0xFF, 0x00);
+ break;
+ case 6:
+ rgblight_setrgb(0xFF, 0xFF, 0x00);
+ break;
+ case 7:
+ rgblight_setrgb(0xFF, 0xFF, 0xFF);
+ break;
+ default:
+ rgblight_set_teal;
+ break;
+ }
+#endif
+ return state;
+}