proteus67.c (1186B)
1 // Copyright 2023 James Gzowski 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 #include QMK_KEYBOARD_H 4 5 enum custom_layer { 6 _LAYERA, 7 _LAYERB, 8 _LAYERC, 9 }; 10 11 // MO(_LAYERB) 12 const rgblight_segment_t PROGMEM backlight_layer_layerb[] = RGBLIGHT_LAYER_SEGMENTS( 13 {0, 4, HSV_GOLD} 14 ); 15 // MO(_LAYERC) 16 const rgblight_segment_t PROGMEM backlight_layer_layerc[] = RGBLIGHT_LAYER_SEGMENTS( 17 {0, 4, HSV_CYAN} 18 ); 19 const rgblight_segment_t PROGMEM backlight_layer_layera[] = RGBLIGHT_LAYER_SEGMENTS( 20 {0, 4, HSV_BLACK} 21 ); 22 const rgblight_segment_t* const PROGMEM set_backlight_mode[] = RGBLIGHT_LAYERS_LIST( 23 backlight_layer_layerb, 24 backlight_layer_layerc, 25 backlight_layer_layera 26 ); 27 28 layer_state_t layer_state_set_kb(layer_state_t state) { 29 rgblight_set_layer_state(0, layer_state_cmp(state, _LAYERB)); 30 rgblight_set_layer_state(1, layer_state_cmp(state, _LAYERC)); 31 rgblight_set_layer_state(2, layer_state_cmp(state, _LAYERA)); 32 33 return layer_state_set_user(state); 34 } 35 36 void keyboard_post_init_kb(void) { 37 rgblight_set_effect_range(4, 17); 38 rgblight_sethsv_range(HSV_BLACK, 0, 4); 39 rgblight_layers = set_backlight_mode; 40 41 keyboard_post_init_user(); 42 }