diff --git a/keyboards/iris/keymaps/drashna/config.h b/keyboards/iris/keymaps/drashna/config.h
index 2a451e7c77..bfdd0022be 100644
--- a/keyboards/iris/keymaps/drashna/config.h
+++ b/keyboards/iris/keymaps/drashna/config.h
@@ -41,6 +41,8 @@ along with this program. If not, see .
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
+
+#define RGBLIGHT_LIMIT_VAL 225
#endif // RGBLIGHT_ENABLE
#ifdef AUDIO_ENABLE
diff --git a/keyboards/iris/keymaps/drashna/keymap.c b/keyboards/iris/keymaps/drashna/keymap.c
index 64d074fc9f..b24e5fe533 100644
--- a/keyboards/iris/keymaps/drashna/keymap.c
+++ b/keyboards/iris/keymaps/drashna/keymap.c
@@ -2,79 +2,94 @@
#include QMK_KEYBOARD_H
#include "drashna.h"
+#ifdef INDICATOR_LIGHTS
+extern userspace_config_t userspace_config;
+
+uint8_t last_mod;
+uint8_t last_led;
+uint8_t last_osm;
+bool has_mods_changed = false;
+#endif
#define KC_ALAP ALT_T(KC_APP)
-
+#define KC_OSLG OSM(MOD_LGUI)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
- KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
+ KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS,
- KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
- KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_LGUI, _________________QWERTY_R3_________________, KC_MRSF,
- LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+ KC_CCCV, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
+ KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_OSLG, _________________QWERTY_R3_________________, KC_MRSF,
+ LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
),
[_COLEMAK] = LAYOUT_wrapper(
- KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
+ KC_ESC , ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS,
- KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
- KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_LGUI, _________________COLEMAK_R3________________, KC_MRSF,
- LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+ KC_CCCV, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
+ KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_OSLG, _________________COLEMAK_R3________________, KC_MRSF,
+ LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
),
[_DVORAK] = LAYOUT_wrapper(
- KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
+ KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS,
- KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT,
- KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_LGUI, _________________DVORAK_R3_________________, KC_MRSF,
- LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+ KC_CCCV, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT,
+ KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_OSLG, _________________DVORAK_R3_________________, KC_MRSF,
+ LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
),
[_WORKMAN] = LAYOUT_wrapper(
- KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
+ KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS,
- KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
- KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_LGUI, _________________WORKMAN_R3________________, KC_MRSF,
- LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
+ KC_CCCV, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
+ KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_OSLG, _________________WORKMAN_R3________________, KC_MRSF,
+ LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
),
- [_MODS] = LAYOUT(
+ [_MODS] = LAYOUT_wrapper(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
_______, _______, _______, _______, _______, _______
),
- [_LOWER] = LAYOUT(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ [_LOWER] = LAYOUT_wrapper(
+ _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_LPRN, KC_RPRN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
- _______, _______, KC_DEL, _______, _______, _______
+ _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______
),
- [_RAISE] = LAYOUT(
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_UNDS, KC_EQL , KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_END, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
+ [_RAISE] = LAYOUT_wrapper(
+ _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
+ _______, _______, _______, _______, _______, _______
),
- [_ADJUST] = LAYOUT(
- KC_MAKE, KC_RST, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
- RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
- KC_RGB_T,RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY,
- _______, _______, _______, _______, _______, _______
+ [_ADJUST] = LAYOUT_wrapper(
+ KC_MAKE, _______, _______, _______, _______, _______, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RST,
+ VRSN, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, EPRM,
+ _______, _______, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, _______,
+ TG(_MODS),RGB_SMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY,
+ _______, _______, _______, _______, _______, _______
)
};
+void matrix_init_keymap(void) {
+#ifdef INDICATOR_LIGHTS
+ last_mod = get_mods();
+ last_led = host_keyboard_leds();
+ last_osm =get_oneshot_mods();
+#endif
+}
-#ifdef INDICATOR_LIGHT
uint32_t layer_state_set_keymap (uint32_t state) {
+#ifdef INDICATOR_LIGHTS
uint8_t modifiders = get_mods();
uint8_t led_usb_state = host_keyboard_leds();
uint8_t one_shot = get_oneshot_mods();
@@ -92,41 +107,49 @@ uint32_t layer_state_set_keymap (uint32_t state) {
rgblight_sethsv_at(120, 255, 255, 7);
rgblight_sethsv_at(120, 255, 255, 8);
}
+#endif
return state;
}
void matrix_scan_keymap (void) {
- static uint8_t current_mods;
- static uint8_t current_host_leds;
- static uint8_t current_oneshot_mods;
- static bool has_status_changed = true;
- if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) {
- has_status_changed = true;
- current_mods = get_mods();
- current_host_leds = host_keyboard_leds();
- current_oneshot_mods = get_oneshot_mods();
+#ifdef INDICATOR_LIGHTS
+ uint8_t current_mod = get_mods();
+ uint8_t current_led = host_keyboard_leds();
+ uint8_t current_osm =get_oneshot_mods();
+
+ if (last_mod == current_mod) {
+ last_mod = current_mod;
+ has_mods_changed = true;
+ }
+ if (last_led == current_led) {
+ last_led = current_led;
+ has_mods_changed = true;
+ }
+ if (last_osm == current_osm) {
+ last_osm = current_osm;
+ has_mods_changed = true;
}
- if (has_status_changed) {
- has_status_changed = false;
- if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<.
#include QMK_KEYBOARD_H
#include "drashna.h"
+#ifdef INDICATOR_LIGHTS
+extern userspace_config_t userspace_config;
+
+uint8_t last_mod;
+uint8_t last_led;
+uint8_t last_osm;
+bool has_mods_changed = false;
+#endif
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -33,6 +41,7 @@ along with this program. If not, see .
#define XXXXXXX KC_NO
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(\
@@ -65,27 +74,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = LAYOUT_wrapper(\
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______
+ _______, _________________FUNC_LEFT_________________, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _________________FUNC_RIGHT________________, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
),
[_RAISE] = LAYOUT_wrapper(\
KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_BSPC,
_______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______
),
[_ADJUST] = LAYOUT_wrapper(\
- KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
- KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY
+ KC_MAKE, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RESET,
+ VRSN, _______, CK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, EPRM,
+ TG(_MODS),RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY
)
};
-#ifdef RGBLIGHT_ENABLE
+void matrix_init_keymap(void) {
+#ifdef INDICATOR_LIGHTS
+ last_mod = get_mods();
+ last_led = host_keyboard_leds();
+ last_osm =get_oneshot_mods();
+#endif
+}
+
uint32_t layer_state_set_keymap (uint32_t state) {
+#ifdef INDICATOR_LIGHTS
uint8_t modifiders = get_mods();
uint8_t led_usb_state = host_keyboard_leds();
uint8_t one_shot = get_oneshot_mods();
@@ -103,41 +120,49 @@ uint32_t layer_state_set_keymap (uint32_t state) {
rgblight_sethsv_at(120, 255, 255, 7);
rgblight_sethsv_at(120, 255, 255, 8);
}
+#endif
return state;
}
void matrix_scan_keymap (void) {
- static uint8_t current_mods;
- static uint8_t current_host_leds;
- static uint8_t current_oneshot_mods;
- static bool has_status_changed = true;
- if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) {
- has_status_changed = true;
- current_mods = get_mods();
- current_host_leds = host_keyboard_leds();
- current_oneshot_mods = get_oneshot_mods();
+#ifdef INDICATOR_LIGHTS
+ uint8_t current_mod = get_mods();
+ uint8_t current_led = host_keyboard_leds();
+ uint8_t current_osm =get_oneshot_mods();
+
+ if (last_mod == current_mod) {
+ last_mod = current_mod;
+ has_mods_changed = true;
+ }
+ if (last_led == current_led) {
+ last_led = current_led;
+ has_mods_changed = true;
+ }
+ if (last_osm == current_osm) {
+ last_osm = current_osm;
+ has_mods_changed = true;
}
- if (has_status_changed) {
- has_status_changed = false;
- if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<event.pressed) {
- rgb_layer_change = !rgb_layer_change;
- if (rgb_layer_change) {
+ userspace_config.rgb_layer_change ^= 1;
+ eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
+ if (userspace_config.rgb_layer_change) {
layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
}
}
@@ -374,7 +382,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef RGBLIGHT_ENABLE
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
- rgb_layer_change = false;
+ userspace_config.rgb_layer_change = false;
+ eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
}
return true; break;
#endif // RGBLIGHT_ENABLE
@@ -403,8 +412,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
break;
case CLICKY_TOGGLE:
+#ifdef AUDIO_CLICKY
userspace_config.clicky_enable = clicky_enable;
eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);
+#endif
break;
#ifdef UNICODE_ENABLE
case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻
@@ -445,123 +456,104 @@ uint32_t layer_state_set_user(uint32_t state) {
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
switch (biton32(state)) {
- case _NAV:
-#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
- rgblight_sethsv_blue();
- rgblight_mode(1);
- }
-#endif // RGBLIGHT_ENABLE
- break;
- case _SYMB:
-#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
- rgblight_sethsv_blue();
- rgblight_mode(2);
- }
-#endif // RGBLIGHT_ENABLE
- break;
- case _MOUS:
-#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
- rgblight_sethsv_yellow();
- rgblight_mode(1);
- }
-#endif // RGBLIGHT_ENABLE
- break;
case _MACROS:
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
+ if (userspace_config.rgb_layer_change) {
rgblight_sethsv_orange();
userspace_config.is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
}
#endif // RGBLIGHT_ENABLE
+
break;
case _MEDIA:
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
+ if (userspace_config.rgb_layer_change) {
rgblight_sethsv_chartreuse();
rgblight_mode(22);
}
#endif // RGBLIGHT_ENABLE
+
break;
case _GAMEPAD:
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
+ if (userspace_config.rgb_layer_change) {
rgblight_sethsv_orange();
rgblight_mode(17);
}
#endif // RGBLIGHT_ENABLE
+
break;
case _DIABLO:
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
+ if (userspace_config.rgb_layer_change) {
rgblight_sethsv_red();
rgblight_mode(5);
}
#endif // RGBLIGHT_ENABLE
+
break;
case _RAISE:
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
+ if (userspace_config.rgb_layer_change) {
rgblight_sethsv_yellow();
rgblight_mode(5);
}
#endif // RGBLIGHT_ENABLE
+
break;
case _LOWER:
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
+ if (userspace_config.rgb_layer_change) {
rgblight_sethsv_orange();
rgblight_mode(5);
}
#endif // RGBLIGHT_ENABLE
+
break;
case _ADJUST:
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
+ if (userspace_config.rgb_layer_change) {
rgblight_sethsv_red();
rgblight_mode(23);
}
#endif // RGBLIGHT_ENABLE
- break;
- case _COVECUBE:
-#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) {
- rgblight_sethsv_green();
- rgblight_mode(2);
- }
-#endif // RGBLIGHT_ENABLE
+
break;
default: // for any other layers, or the default layer
if (default_layer & (1UL << _COLEMAK)) {
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) { rgblight_sethsv_magenta(); }
+ if (userspace_config.rgb_layer_change) { rgblight_sethsv_magenta(); }
#endif // RGBLIGHT_ENABLE
+
}
else if (default_layer & (1UL << _DVORAK)) {
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) { rgblight_sethsv_green(); }
+ if (userspace_config.rgb_layer_change) { rgblight_sethsv_green(); }
#endif // RGBLIGHT_ENABLE
+
}
else if (default_layer & (1UL << _WORKMAN)) {
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) { rgblight_sethsv_goldenrod(); }
+ if (userspace_config.rgb_layer_change) { rgblight_sethsv_goldenrod(); }
#endif // RGBLIGHT_ENABLE
+
}
else {
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) { rgblight_sethsv_teal(); }
+ if (userspace_config.rgb_layer_change) { rgblight_sethsv_teal(); }
#endif // RGBLIGHT_ENABLE
+
}
if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) { rgblight_mode(2); }
+ if (userspace_config.rgb_layer_change) { rgblight_mode(2); }
#endif // RGBLIGHT_ENABLE
+
} else { // otherwise, stay solid
#ifdef RGBLIGHT_ENABLE
- if (rgb_layer_change) { rgblight_mode(1); }
+ if (userspace_config.rgb_layer_change) { rgblight_mode(1); }
#endif // RGBLIGHT_ENABLE
+
}
break;
}
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index 5ef25333b1..87a72f5280 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -27,12 +27,8 @@ enum userspace_layers {
_DVORAK,
_WORKMAN,
_MODS,
- _NAV,
- _COVECUBE,
- _SYMB,
_GAMEPAD,
_DIABLO,
- _MOUS,
_MACROS,
_MEDIA,
_LOWER,
@@ -49,7 +45,6 @@ enum userspace_layers {
// RGB color codes are no longer located here anymore. Instead, you will want to
// head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h
-extern bool rgb_layer_change;
extern bool clicky_enable;
#ifdef RGBLIGHT_ENABLE
@@ -59,10 +54,11 @@ void rgblight_sethsv_default_helper(uint8_t index);
#define EECONFIG_USERSPACE (uint8_t *)20
typedef union {
- uint32_t raw;
+ uint8_t raw;
struct {
- bool clicky_enable :1;
- bool is_overwatch :1;
+ bool clicky_enable :1;
+ bool rgb_layer_change :1;
+ bool is_overwatch :1;
};
} userspace_config_t;
@@ -166,10 +162,10 @@ enum {
#define LAYOUT KEYMAP
#endif
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
+#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
+#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
// Blocks for each of the four major keyboard layouts
@@ -236,6 +232,8 @@ enum {
#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
+#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
+#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
// Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN),
// this allows us to quickly modify the bottom row for all of the layouts
@@ -245,9 +243,9 @@ enum {
#define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \
+#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \
KC_HOME, KC_PGUP, \
- KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER
+ LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER)
#endif // !USERSPACE
diff --git a/users/drashna/readme.md b/users/drashna/readme.md
index 79758e7e56..ddf24b24f7 100644
--- a/users/drashna/readme.md
+++ b/users/drashna/readme.md
@@ -162,7 +162,7 @@ This tells us where in the EEPROM that the data structure is located, and this s
```c
typedef union {
- uint32_t raw;
+ uint8_t raw;
struct {
bool clicky_enable :1;
bool is_overwatch :1;
@@ -174,3 +174,23 @@ Then, in your C file, you want to add: `userspace_config_t userspace_config;`, a
From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value.
And if you want to update it, update directly and then use `eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);` to write the value back to the EEPROM.
+
+
+Pro Micro Hacking
+-----------------
+
+Well, you can get the QMK DFU bootloader working on the ProMicro. But you need to change fuses.
+
+What worked to get into the firmware properly was:
+
+```
+Low: 0x5E High: 0x99 Extended: 0xF3 Lock: 0xFF
+```
+
+But some of the columns and rows didn't work, like the pin mapping was wrong. Even when setting the bootloader settings.
+
+ This is here for future reference. And the default fuse settings I believe were:
+
+```
+Low: 0xFF High: 0xD8 Extended: 0xC3 Lock: 0x3F
+```
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
index 123c0cc70a..e2c5a2995b 100644
--- a/users/drashna/rules.mk
+++ b/users/drashna/rules.mk
@@ -5,3 +5,7 @@ EXTRAFLAGS += -flto
ifeq ($(strip $(NO_SECRETS)), yes)
OPT_DEFS += -DNO_SECRETS
endif
+
+ifeq ($(strip $(INDICATOR_LIGHTS)), yes)
+ OPT_DEFS += -DINDICATOR_LIGHTS
+endif