// if the flash state didnt happen, then turn off leds, left to right void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) { _delay_ms(200); ergodox_right_led_3_off(); _delay_ms(200); ergodox_right_led_2_off(); _delay_ms(200); ergodox_right_led_1_off(); _delay_ms(500); skip_leds = false; }
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); if(layer == 1) { ergodox_right_led_2_on(); ergodox_right_led_3_on(); ergodox_right_led_2_set (LED_BRIGHTNESS_HI); ergodox_right_led_3_set (LED_BRIGHTNESS_HI); } if(capsOn) { ergodox_right_led_1_set (LED_BRIGHTNESS_HI); ergodox_right_led_1_on (); } if(keyboard_report->mods & MOD_BIT(KC_LSFT)) { ergodox_right_led_1_set (LED_BRIGHTNESS_HI); ergodox_right_led_1_on (); } else { ergodox_right_led_1_set (LED_BRIGHTNESS_LO); if(!capsOn) { ergodox_right_led_1_off (); } } if(keyboard_report->mods & MOD_BIT(KC_LALT)) { ergodox_right_led_2_set (LED_BRIGHTNESS_HI); ergodox_right_led_2_on (); } else { ergodox_right_led_2_set (LED_BRIGHTNESS_LO); if(layer != 1) { ergodox_right_led_2_off (); } } if(keyboard_report->mods & MOD_BIT(KC_LCTRL)) { ergodox_right_led_3_set (LED_BRIGHTNESS_HI); ergodox_right_led_3_on (); } else { ergodox_right_led_3_set (LED_BRIGHTNESS_LO); if(layer != 1) { ergodox_right_led_3_off (); } } };
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { case 1: ergodox_right_led_1_on(); /* ergodox_left_led_1_on(); */ break; case 2: ergodox_right_led_2_on(); /* ergodox_left_led_2_on(); */ break; case 3: ergodox_right_led_3_on(); /* ergodox_left_led_3_on(); */ break; case 4: ergodox_right_led_1_on(); ergodox_right_led_2_on(); /* ergodox_left_led_1_on(); */ /* ergodox_left_led_2_on(); */ break; case 5: ergodox_right_led_1_on(); ergodox_right_led_3_on(); /* ergodox_left_led_1_on(); */ /* ergodox_left_led_3_on(); */ break; case 6: ergodox_right_led_2_on(); ergodox_right_led_3_on(); /* ergodox_left_led_2_on(); */ /* ergodox_left_led_3_on(); */ break; case 7: ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); /* ergodox_left_led_1_on(); */ /* ergodox_left_led_2_on(); */ /* ergodox_left_led_3_on(); */ break; default: break; } };
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint32_t layer0 = layer_state & (1UL << 0), layer1 = layer_state & (1UL << 1), layer2 = layer_state & (1UL << 2), layer3 = layer_state & (1UL << 3); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); if (layer1) ergodox_right_led_1_on(); if (layer2) ergodox_right_led_2_on(); if (layer3) ergodox_right_led_3_on(); };
// light up leds based on the layer void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); switch(layer) { case SYSCTL: ergodox_right_led_3_on(); break; case MOUSE: ergodox_right_led_2_on(); break; default: ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); break; } }
void ergodox_blink_all_leds(void) { ergodox_led_all_off(); ergodox_led_all_set(LED_BRIGHTNESS_HI); ergodox_right_led_1_on(); _delay_ms(50); ergodox_right_led_2_on(); _delay_ms(50); ergodox_right_led_3_on(); _delay_ms(50); ergodox_right_led_1_off(); _delay_ms(50); ergodox_right_led_2_off(); _delay_ms(50); ergodox_right_led_3_off(); //ergodox_led_all_on(); //_delay_ms(333); ergodox_led_all_off(); }
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); switch (layer) { case 1: ergodox_right_led_1_on(); break; case 2: ergodox_right_led_2_on(); break; default: // none break; } };
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { case SYMB: ergodox_right_led_1_on(); break; case PLVR: ergodox_right_led_2_on(); break; case ARRW: ergodox_right_led_3_on(); break; default: break; } };
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); // led 1: numeric layer if (layer_state & (1 << NUMR)) { ergodox_right_led_1_on(); } // led 2: Dvorak layer if (default_layer_state == 1 << DVRK) { ergodox_right_led_2_on(); } // led 3: caps lock if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { ergodox_right_led_3_on(); } };
// flash keyboard on 4x tap, with leds void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) { switch (state->count) { case 1: ergodox_right_led_3_on(); break; case 2: ergodox_right_led_2_on(); break; case 3: ergodox_right_led_1_on(); break; case 4: ergodox_right_led_3_off(); wait_ms(50); ergodox_right_led_2_off(); wait_ms(50); ergodox_right_led_1_off(); break; } }
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { // TODO: Make this relevant to the ErgoDox EZ. case 1: ergodox_right_led_1_on(); break; case 2: ergodox_right_led_2_on(); break; default: // none break; } LEADER_DICTIONARY() { leading = false; leader_end(); SEQ_ONE_KEY(KC_W) { register_code(KC_LALT); register_code(KC_F4); unregister_code(KC_F4); unregister_code(KC_LALT); } SEQ_ONE_KEY(KC_O) { register_code(KC_LCTL); register_code(KC_LSFT); register_code(KC_O); unregister_code(KC_O); unregister_code(KC_LSFT); unregister_code(KC_LCTL); } } }
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { // TODO: Make this relevant to the ErgoDox EZ. case SYMB: ergodox_right_led_1_on(); break; case MACR: ergodox_right_led_2_on(); break; default: // none break; } };
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { // shift or caps lock turns on red light if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) { ergodox_right_led_1_on(); } else { ergodox_right_led_1_off(); } // Symbol layer turns on green light if(layer_state & (1UL<<SYMB)) { ergodox_right_led_2_on(); } else { ergodox_right_led_2_off(); } // Media layer turns on blue light if(layer_state & (1UL<<MDIA)) { ergodox_right_led_3_on(); } else { ergodox_right_led_3_off(); } };
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { case L1: ergodox_right_led_1_on(); break; case L2: ergodox_right_led_2_on(); break; case L3: ergodox_right_led_3_on(); break; case L4: ergodox_right_led_1_on(); ergodox_right_led_2_on(); break; case L5: ergodox_right_led_1_on(); ergodox_right_led_3_on(); break; // case L6: // ergodox_right_led_2_on(); // ergodox_right_led_3_on(); // break; // case L7: // ergodox_right_led_1_on(); // ergodox_right_led_2_on(); // ergodox_right_led_3_on(); // break; default: ergodox_board_led_off(); break; } };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case VRSN: if (record->event.pressed) { SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } return false; break; case QWRTY: if (record->event.pressed) { set_single_persistent_default_layer(QWERTY); } return false; break; case CLMK: if (record->event.pressed) { set_single_persistent_default_layer(COLEMAK); } return false; break; case KC_CAPS: if (record->event.pressed) { // Turn LED1 On/Off for Caps Lock if (CAPS_LED) { ergodox_right_led_1_off(); CAPS_LED = false; } else { ergodox_right_led_1_on(); CAPS_LED = true; } } return true; break; } return true; };
// Runs constantly in the background, in a loop. void * matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { case FMU: ergodox_right_led_1_on(); break; case PMQ: ergodox_right_led_2_on(); break; case PMN: ergodox_right_led_3_on(); break; default: ergodox_board_led_off(); break; } };
void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); if (keyboard_report->mods & MOD_BIT(KC_LSFT) || ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { ergodox_right_led_1_set(LED_BRIGHTNESS_HI); ergodox_right_led_1_on(); } else if (layer == RAISE || layer == AUX) { ergodox_right_led_1_set(LED_BRIGHTNESS_LO); ergodox_right_led_1_on(); } else { ergodox_right_led_1_off(); } if (keyboard_report->mods & MOD_BIT(KC_LCTL) || ((get_oneshot_mods() & MOD_BIT(KC_LCTL)) && !has_oneshot_mods_timed_out())) { ergodox_right_led_2_set(LED_BRIGHTNESS_HI); ergodox_right_led_2_on(); } else if (layer == LOWER || layer == AUX) { ergodox_right_led_2_set(LED_BRIGHTNESS_LO); ergodox_right_led_2_on(); } else { ergodox_right_led_2_off(); } if (keyboard_report->mods & MOD_BIT(KC_LALT) || ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { ergodox_right_led_3_set(LED_BRIGHTNESS_HI); ergodox_right_led_3_on(); } else if (layer == COLE || layer == AUX) { ergodox_right_led_3_set(LED_BRIGHTNESS_LO); ergodox_right_led_3_on(); } else { ergodox_right_led_3_off(); } LEADER_DICTIONARY() { leading = false; leader_end(); SEQ_THREE_KEYS(KC_W, KC_I, KC_N) { os_type = OS_WIN; }; SEQ_THREE_KEYS(KC_O, KC_S, KC_X) { os_type = OS_OSX; }; SEQ_THREE_KEYS(KC_L, KC_I, KC_N) { os_type = OS_LIN; }; SEQ_ONE_KEY(KC_A) { switch (os_type) { case OS_WIN: tap(KC_NLCK); register_code(KC_RALT); tap(KC_KP_0); tap(KC_KP_2); tap(KC_KP_2); tap(KC_KP_8); unregister_code(KC_RALT); tap(KC_NLCK); break; case OS_OSX: register_code(KC_RALT); register_code(KC_RSFT); register_code(KC_SCLN); unregister_code(KC_SCLN); unregister_code(KC_RSFT); unregister_code(KC_RALT); tap(KC_A); break; case OS_LIN: tap(KC_RALT); tap(KC_DQT); tap(KC_A); break; } } SEQ_TWO_KEYS(KC_A, KC_A) { switch (os_type) { case OS_WIN: tap(KC_NLCK); register_code(KC_RALT); tap(KC_KP_0); tap(KC_KP_1); tap(KC_KP_9); tap(KC_KP_6); unregister_code(KC_RALT); tap(KC_NLCK); break; case OS_OSX: register_code(KC_RALT); register_code(KC_RSFT); register_code(KC_SCLN); unregister_code(KC_SCLN); unregister_code(KC_RSFT); unregister_code(KC_RALT); register_code(KC_LSFT); register_code(KC_A); unregister_code(KC_A); unregister_code(KC_LSFT); break; case OS_LIN: tap(KC_RALT); tap(KC_DQT); register_code(KC_LSFT); register_code(KC_A); unregister_code(KC_A); unregister_code(KC_LSFT); break; } } SEQ_ONE_KEY(KC_O) { switch (os_type) { case OS_WIN: tap(KC_NLCK); register_code(KC_RALT); tap(KC_KP_0); tap(KC_KP_2); tap(KC_KP_4); tap(KC_KP_6); unregister_code(KC_RALT); tap(KC_NLCK); break; case OS_OSX: register_code(KC_RALT); register_code(KC_RSFT); register_code(KC_SCLN); unregister_code(KC_SCLN); unregister_code(KC_RSFT); unregister_code(KC_RALT); tap(KC_O); break; case OS_LIN: tap(KC_RALT); tap(KC_DQT); tap(KC_O); break; } } SEQ_TWO_KEYS(KC_O, KC_O) { switch (os_type) { case OS_WIN: tap(KC_NLCK); register_code(KC_RALT); tap(KC_KP_0); tap(KC_KP_2); tap(KC_KP_1); tap(KC_KP_4); unregister_code(KC_RALT); tap(KC_NLCK); break; case OS_OSX: register_code(KC_RALT); register_code(KC_RSFT); register_code(KC_SCLN); unregister_code(KC_SCLN); unregister_code(KC_RSFT); unregister_code(KC_RALT); tap(LSFT(KC_O)); break; case OS_LIN: tap(KC_RALT); tap(KC_DQT); register_code(KC_LSFT); register_code(KC_O); unregister_code(KC_O); unregister_code(KC_LSFT); break; } } SEQ_ONE_KEY(KC_U) { switch (os_type) { case OS_WIN: tap(KC_NLCK); register_code(KC_RALT); tap(KC_KP_0); tap(KC_KP_2); tap(KC_KP_5); tap(KC_KP_2); unregister_code(KC_RALT); tap(KC_NLCK); break; case OS_OSX: register_code(KC_RALT); register_code(KC_RSFT); register_code(KC_SCLN); unregister_code(KC_SCLN); unregister_code(KC_RSFT); unregister_code(KC_RALT); tap(KC_U); break; case OS_LIN: tap(KC_RALT); tap(KC_DQT); tap(KC_U); break; } } SEQ_TWO_KEYS(KC_U, KC_U) { switch (os_type) { case OS_WIN: tap(KC_NLCK); register_code(KC_RALT); tap(KC_KP_0); tap(KC_KP_2); tap(KC_KP_2); tap(KC_KP_0); unregister_code(KC_RALT); tap(KC_NLCK); break; case OS_OSX: register_code(KC_RALT); register_code(KC_RSFT); register_code(KC_SCLN); unregister_code(KC_SCLN); unregister_code(KC_RSFT); unregister_code(KC_RALT); tap(LSFT(KC_U)); break; case OS_LIN: tap(KC_RALT); tap(KC_DQT); register_code(KC_LSFT); register_code(KC_U); unregister_code(KC_U); unregister_code(KC_LSFT); break; } } SEQ_ONE_KEY(KC_S) { switch (os_type) { case OS_WIN: tap(KC_NLCK); register_code(KC_RALT); tap(KC_KP_0); tap(KC_KP_2); tap(KC_KP_2); tap(KC_KP_3); unregister_code(KC_RALT); tap(KC_NLCK); break; case OS_OSX: register_code(KC_RALT); tap(KC_S); unregister_code(KC_RALT); break; case OS_LIN: tap(KC_RALT); tap(KC_S); tap(KC_S); break; } } } }
// 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) { case 0: #ifdef RGBLIGHT_COLOR_LAYER_0 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); #else #ifdef RGBLIGHT_ENABLE rgblight_init(); #endif #endif break; case 1: ergodox_right_led_1_on(); #ifdef RGBLIGHT_COLOR_LAYER_1 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); #endif break; case 2: ergodox_right_led_2_on(); #ifdef RGBLIGHT_COLOR_LAYER_2 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); #endif break; case 3: ergodox_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_3 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); #endif break; case 4: ergodox_right_led_1_on(); ergodox_right_led_2_on(); #ifdef RGBLIGHT_COLOR_LAYER_4 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); #endif break; case 5: ergodox_right_led_1_on(); ergodox_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_5 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); #endif break; case 6: ergodox_right_led_2_on(); ergodox_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_6 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); #endif break; case 7: ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); #ifdef RGBLIGHT_COLOR_LAYER_7 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); #endif break; default: break; } return state; };
void led_1_off(void) { ergodox_right_led_1_off(); }
// Runs just one time when the keyboard initializes. void matrix_init_user(void) { ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); };
void matrix_scan_user(void) { ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); };
void matrix_scan_user(void) { // runs frequently to update info uint8_t modifiders = get_mods(); uint8_t layer = biton32(layer_state); static bool has_layer_changed = true; if (!skip_leds) { ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); // Since we're not using the LEDs here for layer indication anymore, // then lets use them for modifier indicators. Shame we don't have 4... // Also, no "else", since we want to know each, independantly. if ( modifiders & MODS_SHIFT_MASK) { ergodox_right_led_2_on(); } if ( modifiders & MODS_CTRL_MASK) { ergodox_right_led_1_on(); } if ( modifiders & MODS_ALT_MASK) { ergodox_right_led_3_on(); } } if (layer != current_layer) { has_layer_changed = true; current_layer = layer; } // Check layer, and apply color if its changed since last check if (has_layer_changed) { uint8_t default_layer = 0; default_layer = eeconfig_read_default_layer(); switch (layer) { case SYMB: rgblight_set_blue; rgblight_mode(2); break; case OVERWATCH: rgblight_set_orange; rgblight_mode(17); break; case DIABLO: rgblight_set_red; rgblight_mode(5); break; case MOUS: rgblight_set_urine; rgblight_mode(1); break; case 7: rgblight_sethsv (255,255,255); rgblight_mode(1); break; default: if (default_layer & (1UL << COLEMAK)) { rgblight_set_green; } else if (default_layer & (1UL << DVORAK)) { rgblight_set_magenta; } else if (default_layer & (1UL << WORKMAN)) { rgblight_set_purple; } else { rgblight_set_teal; } rgblight_mode(1); break; } has_layer_changed = false; } // Run Diablo 3 macro checking code. run_diablo_macro_check(); #ifdef LEADER_KEYS LEADER_DICTIONARY() { leading = false; leader_end(); SEQ_ONE_KEY(KC_C) { SEND_STRING("Covecube"); } SEQ_TWO_KEYS(KC_S, KC_D) { SEND_STRING("StableBit DrivePool"); } SEQ_TWO_KEYS(KC_C, KC_D) { SEND_STRING("StableBit CloudDrive"); }
uint8_t matrix_scan(void) { if (mcp23018_status) { // if there was an error if (++mcp23018_reset_loop == 0) { // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans // this will be approx bit more frequent than once per second print("trying to reset mcp23018\n"); mcp23018_status = init_mcp23018(); if (mcp23018_status) { print("left side not responding\n"); } else { print("left side attached\n"); ergodox_blink_all_leds(); } } } #ifdef DEBUG_MATRIX_SCAN_RATE matrix_scan_count++; uint32_t timer_now = timer_read32(); if (TIMER_DIFF_32(timer_now, matrix_timer)>1000) { print("matrix scan frequency: "); pdec(matrix_scan_count); print("\n"); matrix_timer = timer_now; matrix_scan_count = 0; } #endif #ifdef SHOW_LAYER_LEDS uint8_t layer = biton32(layer_state); // use the leds 2 and 3 to show which layer is currently active ergodox_board_led_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { case 0: // no leds break; case 1: ergodox_right_led_3_on(); break; case 2: ergodox_right_led_2_on(); break; case 3: ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; } #endif #ifdef KEYMAP_CUB uint8_t layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { case 1: // no leds break; case 2: // blue ergodox_left_led_2_on(); break; case 8: // blue and green ergodox_left_led_2_on(); // break missed intentionally case 3: // green ergodox_left_led_3_on(); break; case 6: ergodox_board_led_on(); // break missed intentionally case 4: case 5: case 7: // white ergodox_left_led_1_on(); break; case 9: // white+green ergodox_left_led_1_on(); ergodox_left_led_3_on(); break; default: // none break; } mcp23018_status = ergodox_left_leds_update(); #endif for (uint8_t i = 0; i < MATRIX_ROWS; i++) { select_row(i); matrix_row_t cols = read_cols(i); if (matrix_debouncing[i] != cols) { matrix_debouncing[i] = cols; if (debouncing) { debug("bounce!: "); debug_hex(debouncing); debug("\n"); } debouncing = DEBOUNCE; } unselect_rows(); } if (debouncing) { if (--debouncing) { _delay_ms(1); } else { for (uint8_t i = 0; i < MATRIX_ROWS; i++) { matrix[i] = matrix_debouncing[i]; } } } return 1; }
void matrix_scan_user(void) { uint8_t new_layer = biton32(layer_state); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); #ifdef LAYER_UNDERGLOW_LIGHTING static uint8_t old_layer = 0; uint8_t modifiders = get_mods(); if ( modifiders & MODS_SHIFT_MASK) { ergodox_right_led_1_on(); } if ( modifiders & MODS_CTRL_MASK) { ergodox_right_led_2_on(); } if ( modifiders & MODS_ALT_MASK) { ergodox_right_led_3_on(); } if (old_layer != new_layer) { has_layer_changed = true; old_layer = new_layer; } if (has_layer_changed) { switch (new_layer) { case 1: rgblight_set_red; break; case 2: rgblight_set_blue; break; case 3: rgblight_set_green; break; case 4: rgblight_set_yellow; break; case 5: rgblight_setrgb(0xFF, 0xFF, 0x00); break; case 6: rgblight_setrgb(0xFF, 0xFF, 0x00); break; case 7: rgblight_setrgb(0xFF, 0xFF, 0xFF); break; default: rgblight_set_teal; break; } has_layer_changed = false; } #else switch (new_layer) { case 1: ergodox_right_led_1_on(); break; case 2: ergodox_right_led_2_on(); break; case 3: ergodox_right_led_3_on(); break; case 4: ergodox_right_led_1_on(); ergodox_right_led_2_on(); break; case 5: ergodox_right_led_1_on(); ergodox_right_led_3_on(); break; case 6: ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; case 7: ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; default: break; } #endif };