void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) { if (!skip_leds) { ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); skip_leds = true; } switch (state->count) { 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_off(); _delay_ms(50); ergodox_right_led_2_off(); _delay_ms(50); 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) { // TODO: Make this relevant to the ErgoDox EZ. 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; default: // none break; } if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { // if capslk is on, set led 1 on ergodox_right_led_1_on(); } else { ergodox_right_led_1_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 FMU: ergodox_right_led_1_on(); break; case PMQ: ergodox_right_led_2_on(); break; case PMN: ergodox_right_led_3_on(); break; default: if(host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) { ergodox_led_all_set(LED_BRIGHTNESS_HI); ergodox_right_led_1_on(); } else { ergodox_board_led_off(); } break; } };
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); // Dim the LEDs as much as possible ergodox_led_all_set(0); // Show the active layer number as binary bits in the LEDs. // Note that LED1 is left-most, so bit1 -> LED3 and bit3 -> LED1 if (layer & 0b001) { ergodox_right_led_3_on(); } else { ergodox_right_led_3_off(); } if (layer & 0b010) { ergodox_right_led_2_on(); } else { ergodox_right_led_2_off(); } // Show caps lock on the left most LED. // (Double-tap left shift to toggle caps lock) if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { ergodox_right_led_1_on(); } else { ergodox_right_led_1_off(); } }
// Runs constantly in the background, in a loop. void matrix_scan_user(void) { static uint8_t state; ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); //reduce LED on time to 1/6th because LEDs are too strong if (++state < 6) return; state = 0; //bit 1: default layer 1 - QWERTY if (default_layer_state & (1UL << 1)) ergodox_right_led_1_on(); uint8_t layer = biton32(layer_state); //layer 2 : Symbols (& Fs) //if (layer == 2) ergodox_right_led_2_on(); //layer 3 : F-lock if (layer == 3) ergodox_right_led_2_on(); //layer 4 : Num-lock if (layer == 4) ergodox_right_led_3_on(); };
void matrix_scan_keymap(void) { // runs frequently to update info uint8_t modifiers = get_mods(); uint8_t led_usb_state = host_keyboard_leds(); uint8_t one_shot = get_oneshot_mods(); 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, independently. if ( ( modifiers | one_shot ) & MOD_MASK_SHIFT || led_usb_state & (1<<USB_LED_CAPS_LOCK) ) { ergodox_right_led_2_on(); ergodox_right_led_2_set( 50 ); } if ( ( modifiers | one_shot ) & MOD_MASK_CTRL) { ergodox_right_led_1_on(); ergodox_right_led_1_set( 10 ); } if ( ( modifiers | one_shot ) & MOD_MASK_ALT) { ergodox_right_led_3_on(); ergodox_right_led_3_set( 10 ); } } };
// 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 DVORAK: ergodox_right_led_1_on(); break; case COLEMAK: ergodox_right_led_2_on(); break; case QWERTY: ergodox_right_led_3_on(); break; case FN: ergodox_led_all_on(); break; default: // none break; } };
void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) { ergodox_right_led_1_off(); wait_ms(50); ergodox_right_led_2_off(); wait_ms(50); 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_3_on(); break; case 2: ergodox_right_led_2_on(); break; case 3: ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; default: // none break; } // Turn the caps lock led on if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { ergodox_right_led_1_on(); } }
// 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(); switch (td_led_override) { case 1: ergodox_right_led_1_on(); break; case 2: ergodox_right_led_2_on(); break; default: // Layer 1 and 2 are both overlay layers, so they could both be on. This // means we can't use the lazy check of checking for the first significant // bit. if (LAYER_ON(SYMB)) { ergodox_right_led_1_on(); } if (LAYER_ON(NUMP)) { ergodox_right_led_2_on(); } } };
// 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(); break; case 2: ergodox_right_led_2_on(); break; #ifdef CFQ_USE_EXPEREMENTAL_LAYER case 3: ergodox_right_led_3_on(); break; #endif 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 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(); // TODO: Make a fourth layer ergodox_right_led_3_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) { // TODO: Make this relevant to the ErgoDox EZ. 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; default: // none break; } };
void matrix_scan_keymap(void) { // runs frequently to update info uint8_t modifiders = get_mods(); 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(); } } };
// 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_2_off(); ergodox_right_led_3_off(); switch (layer) { case NUMBER: case SYMBOL: case BRACKETS: //case SHELL_LAYER: ergodox_right_led_2_on(); break; case KEY_NAV: case KEY_SEL: ergodox_right_led_3_on(); break; case SHORTCUTS: ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; default: // none break; } return; };
void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_on(); ergodox_led_all_on(); ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); // _delay_ms(45); switch (layer) { case _SYMBOLS: ergodox_right_led_1_on(); break; case _MOUSE: ergodox_right_led_2_on(); break; case _NUMPAD: ergodox_right_led_3_on(); break; case _NAV: ergodox_right_led_1_on(); ergodox_right_led_2_on(); break; case _MACROS: //layer unused right now break; case _FUNCTION: //layer unused right nowex break; case _APPSWITCH: ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; case _ONESHOT: ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; case _TEXTNAV: ergodox_right_led_1_on(); ergodox_right_led_3_on(); break; case _QWERTY_KIDS: ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); break; case _STREET_FIGHTER: ergodox_right_led_2_on(); ergodox_right_led_3_on(); default: break; } };
// 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; }
void led_set_kb(uint8_t usb_led) { if (usb_led & (1<<USB_LED_CAPS_LOCK)) { // Turn capslock on ergodox_right_led_3_on(); } else{ // Turn capslock off ergodox_right_led_3_off(); } };
// 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) { uint8_t layer = biton32(layer_state); ergodox_led_all_off(); ergodox_led_all_set(LED_BRIGHTNESS_LO); switch (layer) { case BASE: current_layer = BASE; break; case KEYPAD: current_layer = KEYPAD; break; default: // none break; } // layer leds if (current_layer == KEYPAD) { ergodox_right_led_3_on(); } // capslock if (host_keyboard_leds() & (3<<USB_LED_CAPS_LOCK)) { ergodox_right_led_1_on(); } // Temporary leds // The function layer takes over other layers and we need to reflect that on the leds. // If the current layer is the BASE, we simply turn on the FN led, but if the current // layer is the KEYPAD, than we must turn it off before turning on the FN led. if (layer == FN && !has_oneshot_layer_timed_out()) { ergodox_right_led_3_off(); ergodox_right_led_2_on(); } // if the shifted is pressed I show the case led in a brighter color. This is nice to // differenciate the shift from the capslock. // Notice that I make sure that we're not using the shift on a chord shortcut (pressing // shift togather with other modifiers). if((keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && // is shift pressed and there is no other !(keyboard_report->mods & (~MOD_BIT(KC_LSFT) & ~MOD_BIT(KC_RSFT)))) || // modifier being pressed as well (get_oneshot_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && !has_oneshot_mods_timed_out())) { // or the one shot shift didn't timed out ergodox_right_led_1_set(LED_BRIGHTNESS_HI); ergodox_right_led_1_on(); } };
// 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(); 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) { // 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; } };