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.
 | 
					// Runs constantly in the background, in a loop.
 | 
				
			||||||
void matrix_scan_user(void) {
 | 
					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_board_led_off();
 | 
				
			||||||
  ergodox_right_led_1_off();
 | 
					  ergodox_right_led_1_off();
 | 
				
			||||||
  ergodox_right_led_2_off();
 | 
					  ergodox_right_led_2_off();
 | 
				
			||||||
  ergodox_right_led_3_off();
 | 
					  ergodox_right_led_3_off();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  uint8_t layer = biton32(state);
 | 
				
			||||||
  switch (layer) {
 | 
					  switch (layer) {
 | 
				
			||||||
    // TODO: Make this relevant to the ErgoDox EZ.
 | 
					    case 0:
 | 
				
			||||||
    case SYMB:
 | 
					      #ifdef RGBLIGHT_COLOR_LAYER_0
 | 
				
			||||||
 | 
					        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
 | 
				
			||||||
 | 
					      #endif
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case 1:
 | 
				
			||||||
      ergodox_right_led_1_on();
 | 
					      ergodox_right_led_1_on();
 | 
				
			||||||
 | 
					      #ifdef RGBLIGHT_COLOR_LAYER_1
 | 
				
			||||||
 | 
					        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
 | 
				
			||||||
 | 
					      #endif
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case MDIA:
 | 
					    case 2:
 | 
				
			||||||
      ergodox_right_led_2_on();
 | 
					      ergodox_right_led_2_on();
 | 
				
			||||||
 | 
					      #ifdef RGBLIGHT_COLOR_LAYER_2
 | 
				
			||||||
 | 
					        rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
 | 
				
			||||||
 | 
					      #endif
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    default:
 | 
					    case 3:
 | 
				
			||||||
      // none
 | 
					      #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;
 | 
					      break;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					  return state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -64,10 +64,15 @@ void default_layer_xor(uint32_t state)
 | 
				
			|||||||
uint32_t layer_state = 0;
 | 
					uint32_t layer_state = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__attribute__((weak))
 | 
					__attribute__((weak))
 | 
				
			||||||
uint32_t layer_state_set_kb(uint32_t state) {
 | 
					uint32_t layer_state_set_user(uint32_t state) {
 | 
				
			||||||
    return 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)
 | 
					static void layer_state_set(uint32_t state)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    state = layer_state_set_kb(state);
 | 
					    state = layer_state_set_kb(state);
 | 
				
			||||||
 | 
				
			|||||||
@ -72,6 +72,8 @@ void layer_xor(uint32_t state);
 | 
				
			|||||||
#define layer_xor(state)
 | 
					#define layer_xor(state)
 | 
				
			||||||
#define layer_debug()
 | 
					#define layer_debug()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__attribute__((weak))
 | 
				
			||||||
 | 
					uint32_t layer_state_set_user(uint32_t state);
 | 
				
			||||||
__attribute__((weak))
 | 
					__attribute__((weak))
 | 
				
			||||||
uint32_t layer_state_set_kb(uint32_t state);
 | 
					uint32_t layer_state_set_kb(uint32_t state);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user