forked from mirrors/qmk_userspace
Userspace and keymap update for user bbaserdem. (#14484)
This commit is contained in:
parent
f439fe6055
commit
fd44341cbf
74 changed files with 4723 additions and 1300 deletions
116
users/bbaserdem/bb-underglow.c
Normal file
116
users/bbaserdem/bb-underglow.c
Normal file
|
@ -0,0 +1,116 @@
|
|||
/* Copyright 2021 Batuhan Başerdem
|
||||
* <baserdem.batuhan@gmail.com> @bbaserdem
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "bb-underglow.h"
|
||||
|
||||
/* UNDERGLOW IMPLEMENTATION
|
||||
*/
|
||||
|
||||
// Define the layer switching code
|
||||
|
||||
// An empty layer on the base
|
||||
const rgblight_segment_t PROGMEM bb_base_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0, 0, HSV_WHITE}
|
||||
);
|
||||
// Gaming layer is turquoise
|
||||
const rgblight_segment_t PROGMEM bb_game_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_PURPLE}
|
||||
);
|
||||
// Character overlay is chartereuse
|
||||
const rgblight_segment_t PROGMEM bb_char_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0, RGBLED_NUM, HSV_GOLD}
|
||||
);
|
||||
|
||||
// Right-hand layers
|
||||
|
||||
// Media layer is orange
|
||||
const rgblight_segment_t PROGMEM bb_medi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_MAGENTA}
|
||||
);
|
||||
// Navigation layer is green
|
||||
const rgblight_segment_t PROGMEM bb_navi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_GREEN}
|
||||
);
|
||||
// Symbol layer is purple
|
||||
const rgblight_segment_t PROGMEM bb_symb_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{RGBLIGHT_RIGHT_BEG, RGBLIGHT_RIGHT_NUM, HSV_YELLOW}
|
||||
);
|
||||
|
||||
// Left-hand layers
|
||||
|
||||
// Number layer is blue
|
||||
const rgblight_segment_t PROGMEM bb_numb_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_BLUE}
|
||||
);
|
||||
// Function layer is red
|
||||
const rgblight_segment_t PROGMEM bb_func_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_RED}
|
||||
);
|
||||
// Pointer layer is yellow
|
||||
const rgblight_segment_t PROGMEM bb_mous_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{RGBLIGHT_LEFT_BEG, RGBLIGHT_LEFT_NUM, HSV_SPRINGGREEN}
|
||||
);
|
||||
|
||||
// Music playback layer is magenta
|
||||
const rgblight_segment_t PROGMEM bb_musi_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0, RGBLED_NUM, HSV_ORANGE}
|
||||
);
|
||||
|
||||
const rgblight_segment_t* const PROGMEM bb_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||
bb_base_layer,
|
||||
bb_char_layer,
|
||||
bb_game_layer,
|
||||
bb_medi_layer,
|
||||
bb_navi_layer,
|
||||
bb_symb_layer,
|
||||
bb_numb_layer,
|
||||
bb_func_layer,
|
||||
bb_mous_layer,
|
||||
bb_musi_layer
|
||||
);
|
||||
|
||||
// Enable the LED switching layers
|
||||
void keyboard_post_init_underglow(void) {
|
||||
rgblight_layers = bb_rgb_layers;
|
||||
// Default rgb mode is rainbow swirl; set this
|
||||
rgblight_sethsv_noeeprom(100, 255, 255);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL + 0);
|
||||
}
|
||||
|
||||
// Set RGBLIGHT state depending on layer
|
||||
layer_state_t layer_state_set_underglow(layer_state_t state) {
|
||||
// Activate layers if on that region
|
||||
rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE));
|
||||
rgblight_set_layer_state(_GAME, layer_state_cmp(state, _GAME));
|
||||
rgblight_set_layer_state(_CHAR, layer_state_cmp(state, _CHAR));
|
||||
rgblight_set_layer_state(_MEDI, layer_state_cmp(state, _MEDI));
|
||||
rgblight_set_layer_state(_NAVI, layer_state_cmp(state, _NAVI));
|
||||
rgblight_set_layer_state(_SYMB, layer_state_cmp(state, _SYMB));
|
||||
rgblight_set_layer_state(_NUMB, layer_state_cmp(state, _NUMB));
|
||||
rgblight_set_layer_state(_FUNC, layer_state_cmp(state, _FUNC));
|
||||
rgblight_set_layer_state(_MOUS, layer_state_cmp(state, _MOUS));
|
||||
rgblight_set_layer_state(_MUSI, layer_state_cmp(state, _MUSI));
|
||||
// Return so other stuff can be done
|
||||
return state;
|
||||
}
|
||||
|
||||
// Hook into shutdown code
|
||||
void shutdown_underglow(void) {
|
||||
// Make the LED's red on shutdown
|
||||
rgblight_enable_noeeprom();
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
rgblight_sethsv(HSV_WHITE);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue