@ -3,16 +3,23 @@
// Helpful defines
// Helpful defines
# define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
# define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
# define _______ KC_TRNS
# define _______ KC_TRNS
# define xxxxxxx KC_NO
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
// entirely and just use numbers.
# define _BL 0
# define _BL 0 // BASE Layer
# define _FL 1
# define _FL 1 // Function Layer
# define _ME 2
# define _ME 2 // Media Layer
# define _CL 3
# define _CL 3 // Control Layer
# define _ML 4
# define _ML 4 // Mouse Layer
# if defined(MIDI_ENABLE)
# define _MI 5 // MIDI Layer
# define TO_MIDI TO(_MI)
# else
# define TO_MIDI _______
# endif
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
/* Keymap _BL: Base Layer (Default Layer)
/* Keymap _BL: Base Layer (Default Layer)
@ -24,17 +31,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT , KC_NUBS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , _______ , KC_RSFT , KC_UP , \
KC_LSFT , KC_NUBS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , _______ , KC_RSFT , KC_UP , \
KC_LCTL , KC_LGUI , KC_LALT , _______ , LT ( _ML , KC_SPC ) , LT ( _ML , KC_SPC ) , _______ , KC_RALT , MO ( _ME ) , MO ( _FL ) , KC_LEFT , KC_DOWN , KC_RGHT ) ,
KC_LCTL , KC_LGUI , KC_LALT , _______ , LT ( _ML , KC_SPC ) , LT ( _ML , KC_SPC ) , _______ , KC_RALT , MO ( _ME ) , MO ( _FL ) , KC_LEFT , KC_DOWN , KC_RGHT ) ,
/* Keymap _FL: Function Layer
/* Keymap _FL: Function Layer */
*/
[ _FL ] = KEYMAP (
[ _FL ] = KEYMAP (
KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______ , _______ , BL_STEP , \
KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______ , _______ , BL_STEP , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_PSCR , _______ , KC_PAUS , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_PSCR , _______ , KC_PAUS , _______ , _______ , _______ , _______ , \
MO ( _FL ) , _______ , MO ( _CL ) , _______ , _______ , _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______ , _______ , _______ , _______ , \
MO ( _FL ) , _______ , MO ( _CL ) , _______ , _______ , _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _ME ) , _______ , _______ , _______ , _______ , _______ , KC_PGUP , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _ME ) , _______ , _______ , TO_MIDI , _______ , _______ , KC_PGUP , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _FL ) , KC_HOME , KC_PGDN , KC_END ) ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _FL ) , KC_HOME , KC_PGDN , KC_END ) ,
/* Keymap _ME: Media layer
/* Keymap _ME: Media layer */
*/
[ _ME ] = KEYMAP (
[ _ME ] = KEYMAP (
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLU , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLU , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_VOLD , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_VOLD , \
@ -42,23 +47,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MO ( _FL ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _ME ) , _______ , _______ , _______ , _______ , MO ( _FL ) , _______ , \
MO ( _FL ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _ME ) , _______ , _______ , _______ , _______ , MO ( _FL ) , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_MPLY , KC_MNXT ) ,
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_MPLY , KC_MNXT ) ,
/* Keymap _CL: Control layer
/* Keymap _CL: Control layer */
*/
[ _CL ] = KEYMAP (
[ _CL ] = KEYMAP (
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RGB_TOG , RGB_VAI , \
_______ , F ( 1 ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RGB_TOG , RGB_VAI , \
_______ , _______ , _______ , _______ , RESET , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RGB_VAD , \
_______ , _______ , _______ , _______ , RESET , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RGB_VAD , \
_______ , _______ , MO ( _CL ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
_______ , _______ , MO ( _CL ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
MO ( _FL ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _FL ) , RGB_SAI , \
MO ( _FL ) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , MO ( _FL ) , RGB_SAI , \
_______ , _______ , _______ , _______ , RGB_MOD , RGB_MOD , _______ , _______ , _______ , _______ , RGB_HUD , RGB_SAD , RGB_HUI ) ,
_______ , _______ , _______ , _______ , RGB_MOD , RGB_MOD , _______ , _______ , _______ , _______ , RGB_HUD , RGB_SAD , RGB_HUI ) ,
/* Keymap _ML: Mouse layer
/* Keymap _ML: Mouse layer */
*/
[ _ML ] = KEYMAP (
[ _ML ] = KEYMAP (
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
_______ , _______ , KC_BTN3 , KC_BTN2 , KC_BTN1 , _______ , KC_MS_L , KC_MS_D , KC_MS_U , KC_MS_R , _______ , _______ , _______ , _______ , \
_______ , _______ , KC_BTN3 , KC_BTN2 , KC_BTN1 , _______ , KC_MS_L , KC_MS_D , KC_MS_U , KC_MS_R , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MS_U , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MS_U , \
_______ , _______ , _______ , _______ , LT ( _ML , KC_SPC ) , LT ( _ML , KC_SPC ) , _______ , KC_BTN1 , KC_BTN2 , KC_BTN3 , KC_MS_L , KC_MS_D , KC_MS_R ) ,
_______ , _______ , _______ , _______ , LT ( _ML , KC_SPC ) , LT ( _ML , KC_SPC ) , _______ , KC_BTN1 , KC_BTN2 , KC_BTN3 , KC_MS_L , KC_MS_D , KC_MS_R ) ,
# if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
/* Keymap _MI: MIDI layer (Advanced)*/
[ _MI ] = KEYMAP (
TO ( _BL ) , MI_VEL_1 , MI_VEL_2 , MI_VEL_3 , MI_VEL_4 , MI_VEL_5 , MI_VEL_6 , MI_VEL_7 , MI_VEL_8 , MI_VEL_9 , MI_VEL_10 , MI_CHD , MI_CHU , xxxxxxx , xxxxxxx , xxxxxxx , \
xxxxxxx , xxxxxxx , MI_Cs , MI_Ds , xxxxxxx , MI_Fs , MI_Gs , MI_As , xxxxxxx , MI_Cs_1 , MI_Ds_1 , xxxxxxx , MI_Fs_1 , xxxxxxx , xxxxxxx , \
MI_MOD , MI_C , MI_D , MI_E , MI_F , MI_G , MI_A , MI_B , MI_C_1 , MI_D_1 , MI_E_1 , MI_F_1 , MI_G_1 , xxxxxxx , \
MI_SUS , xxxxxxx , MI_OCTD , MI_OCTU , MI_MODSD , MI_MODSU , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , MI_TRNSD , MI_TRNSU , MI_TRNS_0 , MI_SUS , xxxxxxx , \
xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , MI_ALLOFF , MI_ALLOFF , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx ) ,
# elif defined(MIDI_ENABLE) && defined(MIDI_BASIC)
/* Keymap _MI: MIDI layer (Basic)*/
[ _MI ] = KEYMAP (
TO ( _BL ) , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , \
xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , \
xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , \
xxxxxxx , xxxxxxx , MI_ON , MI_OFF , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , \
xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx , xxxxxxx ) ,
# endif
} ;
} ;
/* This is a list of user defined functions. F(N) corresponds to item N
/* This is a list of user defined functions. F(N) corresponds to item N
@ -66,6 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
*/
const uint16_t PROGMEM fn_actions [ ] = {
const uint16_t PROGMEM fn_actions [ ] = {
[ 0 ] = ACTION_FUNCTION ( 0 ) , // Calls action_function()
[ 0 ] = ACTION_FUNCTION ( 0 ) , // Calls action_function()
[ 1 ] = ACTION_FUNCTION ( 1 ) , // Calls action_function()
} ;
} ;
void action_function ( keyrecord_t * record , uint8_t id , uint8_t opt ) {
void action_function ( keyrecord_t * record , uint8_t id , uint8_t opt ) {
@ -102,6 +124,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
}
}
}
}
break ;
break ;
case 1 :
rgblight_mode ( 1 ) ;
}
}
}
}
@ -110,26 +134,34 @@ enum layer_id {
LAYER_FUNCTION ,
LAYER_FUNCTION ,
LAYER_MEDIA ,
LAYER_MEDIA ,
LAYER_CONTROL ,
LAYER_CONTROL ,
LAYER_MOUSE
LAYER_MOUSE ,
# if defined(MIDI_ENABLE)
LAYER_MIDI
# endif
} ;
} ;
void clueboard_set_led ( uint8_t id ) {
void clueboard_set_led ( uint8_t id , uint8_t val ) {
switch ( id ) {
switch ( id ) {
case LAYER_BASE :
case LAYER_BASE :
rgblight_sethsv_noeeprom ( 346 , 0 , 255 ) ;
rgblight_sethsv_noeeprom ( 346 , 0 , val ) ;
break ;
break ;
case LAYER_FUNCTION :
case LAYER_FUNCTION :
rgblight_sethsv_noeeprom ( 46 , 255 , 255 ) ;
rgblight_sethsv_noeeprom ( 46 , 255 , val ) ;
break ;
break ;
case LAYER_MEDIA :
case LAYER_MEDIA :
rgblight_sethsv_noeeprom ( 86 , 255 , 255 ) ;
rgblight_sethsv_noeeprom ( 86 , 255 , val ) ;
break ;
break ;
case LAYER_CONTROL :
case LAYER_CONTROL :
rgblight_sethsv_noeeprom ( 346 , 255 , 255 ) ;
rgblight_sethsv_noeeprom ( 346 , 255 , val ) ;
break ;
break ;
case LAYER_MOUSE :
case LAYER_MOUSE :
rgblight_sethsv_noeeprom ( 206 , 255 , 255 ) ;
rgblight_sethsv_noeeprom ( 206 , 255 , val ) ;
break ;
# if defined(MIDI_ENABLE)
case LAYER_MIDI :
rgblight_sethsv_noeeprom ( 316 , 255 , val ) ;
break ;
break ;
# endif
}
}
} ;
} ;
@ -140,18 +172,23 @@ void matrix_scan_user(void) {
if ( ! rgblight_config . enable | | rgblight_config . mode ! = 1 ) { return ; }
if ( ! rgblight_config . enable | | rgblight_config . mode ! = 1 ) { return ; }
uint32_t layer = layer_state ;
uint32_t layer = layer_state ;
uint8_t val = rgblight_config . val ;
if ( layer & ( 1 < < _FL ) ) {
if ( layer & ( 1 < < _FL ) ) {
if ( layer & ( 1 < < _ME ) ) {
if ( layer & ( 1 < < _ME ) ) {
clueboard_set_led ( LAYER_MEDIA );
clueboard_set_led ( LAYER_MEDIA , val );
} else if ( layer & ( 1 < < _CL ) ) {
} else if ( layer & ( 1 < < _CL ) ) {
clueboard_set_led ( LAYER_CONTROL );
clueboard_set_led ( LAYER_CONTROL , val );
} else {
} else {
clueboard_set_led ( LAYER_FUNCTION );
clueboard_set_led ( LAYER_FUNCTION , val );
}
}
} else if ( layer & ( 1 < < _ML ) ) {
} else if ( layer & ( 1 < < _ML ) ) {
clueboard_set_led ( LAYER_MOUSE ) ;
clueboard_set_led ( LAYER_MOUSE , val ) ;
# if defined(MIDI_ENABLE)
} else if ( layer & ( 1 < < _MI ) ) {
clueboard_set_led ( LAYER_MIDI , val ) ;
# endif
} else {
} else {
clueboard_set_led ( LAYER_BASE ) ;
clueboard_set_led ( LAYER_BASE , val );
}
}
} ;
} ;