uint32_t layer_state_set_user(uint32_t state) { state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); return layer_state_set_keymap(state); }
// Runs state check and changes underglow color and animation // on layer change, no matter where the change was initiated // Then runs keymap's layer change check uint32_t layer_state_set_user(uint32_t state) { #ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); if (rgb_layer_change) { switch (biton32(state)) { case _NAV: rgblight_set_blue; rgblight_mode(1); break; case _SYMB: rgblight_set_blue; rgblight_mode(2); break; case _MOUS: rgblight_set_yellow; rgblight_mode(1); break; case _MACROS: rgblight_set_orange; is_overwatch ? rgblight_mode(17) : rgblight_mode(18); break; case _MEDIA: rgblight_set_green; rgblight_mode(22); break; case _GAMEPAD: rgblight_set_orange; rgblight_mode(17); break; case _DIABLO: rgblight_set_red; rgblight_mode(5); break; case _RAISE: rgblight_set_yellow; rgblight_mode(5); break; case _LOWER: rgblight_set_orange; rgblight_mode(5); break; case _ADJUST: rgblight_set_red; rgblight_mode(23); break; case _COVECUBE: rgblight_set_green; rgblight_mode(2); break; default: 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; } rgblight_mode(1); break; } } #endif return layer_state_set_keymap (state); }