mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	adds per-layer rgb color option to ez
This commit is contained in:
		
							parent
							
								
									41df0dc9a7
								
							
						
					
					
						commit
						cf9f6bbd91
					
				
							
								
								
									
										30
									
								
								keyboards/ergodox_ez/keymaps/default/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								keyboards/ergodox_ez/keymaps/default/config.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2017 Jack Humbert <jack.humbgmail.com>
 | 
			
		||||
 | 
			
		||||
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/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifndef ERGODOX_EZ_USER_CONFIG_H
 | 
			
		||||
#define ERGODOX_EZ_USRE_CONFIG_H
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
#define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF
 | 
			
		||||
#define RGBLIGHT_COLOR_LAYER_1 0xFF, 0x00, 0x00
 | 
			
		||||
#define RGBLIGHT_COLOR_LAYER_2 0x00, 0xFF, 0x00
 | 
			
		||||
#define RGBLIGHT_COLOR_LAYER_3 0xFF, 0xFF, 0x00
 | 
			
		||||
#define RGBLIGHT_COLOR_LAYER_4 0x00, 0xFF, 0xFF
 | 
			
		||||
#define RGBLIGHT_COLOR_LAYER_5 0xFF, 0x00, 0xFF
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@ -197,27 +197,53 @@ void matrix_init_user(void) {
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Runs constantly in the background, in a loop.
 | 
			
		||||
void matrix_scan_user(void) {
 | 
			
		||||
 | 
			
		||||
  uint8_t layer = biton32(layer_state);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Runs whenever there is a layer state change.
 | 
			
		||||
uint32_t layer_state_set_user(uint32_t state) {
 | 
			
		||||
  ergodox_board_led_off();
 | 
			
		||||
  ergodox_right_led_1_off();
 | 
			
		||||
  ergodox_right_led_2_off();
 | 
			
		||||
  ergodox_right_led_3_off();
 | 
			
		||||
 | 
			
		||||
  uint8_t layer = biton32(state);
 | 
			
		||||
  switch (layer) {
 | 
			
		||||
    // TODO: Make this relevant to the ErgoDox EZ.
 | 
			
		||||
    case SYMB:
 | 
			
		||||
    case 0:
 | 
			
		||||
      #ifdef RGBLIGHT_COLOR_LAYER_0
 | 
			
		||||
        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
 | 
			
		||||
      #endif
 | 
			
		||||
      break;
 | 
			
		||||
    case 1:
 | 
			
		||||
      ergodox_right_led_1_on();
 | 
			
		||||
      #ifdef RGBLIGHT_COLOR_LAYER_1
 | 
			
		||||
        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
 | 
			
		||||
      #endif
 | 
			
		||||
      break;
 | 
			
		||||
    case MDIA:
 | 
			
		||||
    case 2:
 | 
			
		||||
      ergodox_right_led_2_on();
 | 
			
		||||
      #ifdef RGBLIGHT_COLOR_LAYER_2
 | 
			
		||||
        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
 | 
			
		||||
      #endif
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      // none
 | 
			
		||||
    case 3:
 | 
			
		||||
      #ifdef RGBLIGHT_COLOR_LAYER_3
 | 
			
		||||
        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3);
 | 
			
		||||
      #endif
 | 
			
		||||
      break;
 | 
			
		||||
    case 4:
 | 
			
		||||
      #ifdef RGBLIGHT_COLOR_LAYER_4
 | 
			
		||||
        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4);
 | 
			
		||||
      #endif
 | 
			
		||||
      break;
 | 
			
		||||
    case 5:
 | 
			
		||||
      #ifdef RGBLIGHT_COLOR_LAYER_5
 | 
			
		||||
        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5);
 | 
			
		||||
      #endif
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
  return state;
 | 
			
		||||
};
 | 
			
		||||
@ -64,10 +64,15 @@ void default_layer_xor(uint32_t state)
 | 
			
		||||
uint32_t layer_state = 0;
 | 
			
		||||
 | 
			
		||||
__attribute__((weak))
 | 
			
		||||
uint32_t layer_state_set_kb(uint32_t state) {
 | 
			
		||||
uint32_t layer_state_set_user(uint32_t state) {
 | 
			
		||||
    return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__((weak))
 | 
			
		||||
uint32_t layer_state_set_kb(uint32_t state) {
 | 
			
		||||
    return layer_state_set_user(state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void layer_state_set(uint32_t state)
 | 
			
		||||
{
 | 
			
		||||
    state = layer_state_set_kb(state);
 | 
			
		||||
 | 
			
		||||
@ -72,6 +72,8 @@ void layer_xor(uint32_t state);
 | 
			
		||||
#define layer_xor(state)
 | 
			
		||||
#define layer_debug()
 | 
			
		||||
 | 
			
		||||
__attribute__((weak))
 | 
			
		||||
uint32_t layer_state_set_user(uint32_t state);
 | 
			
		||||
__attribute__((weak))
 | 
			
		||||
uint32_t layer_state_set_kb(uint32_t state);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user