add split led lighting

This commit is contained in:
scda 2021-07-04 07:38:14 +02:00
parent 4afa1e3300
commit 7e3b230a4a
4 changed files with 36 additions and 33 deletions

View File

@ -13,3 +13,6 @@ These are some reminders or rules that are the result of interesting behaviour I
- [docs](https://docs.qmk.fm/#/keycodes_us_ansi_shifted)
- scrolling keys are reversed from their intended usage - seems like macOS applies natural scrolling here as well
- the slave display can apparently not easily display the current layer etc. (even with `SPLIT_MODS_ENABLE`)
- the slave side LEDs can apparently not be controlled separately/directly either
- even the `rgblight_sethsv_range` or `rgblight_sethsv_master` have no effect. For some reason
- What does work: setting the full keyboard settings and then overwriting the master side (specific pins only)

View File

@ -26,10 +26,11 @@
/*** CONTROLLERS ***/
// see https://docs.qmk.fm/#/feature_split_keyboard?id=hardware-configuration-options
#define SPLIT_USB_DETECT // side with usb-connection becomes master
#define NO_USB_STARTUP_CHECK // allows the slave to wake up the pc
// #define SPLIT_MODS_ENABLE // shares modifier state between both sides (adds communication!)
// #define SPLIT_TRANSPORT_MIRROR // shares master matrix with slave (adds communication!)
#define SPLIT_USB_DETECT // side with usb-connection becomes master
#define NO_USB_STARTUP_CHECK // allows the slave to wake up the pc
// #define RGBLIGHT_SPLIT // share rgb light mode
// #define SPLIT_MODS_ENABLE // shares modifier state between both sides (adds communication!)
// #define SPLIT_TRANSPORT_MIRROR // shares master matrix with slave (adds communication!)
/*** MOD_TAP ***/
// great guide on this topic https://precondition.github.io/home-row-mods

View File

@ -108,48 +108,47 @@ void oled_task_user(void) {
void keyboard_post_init_user(void) {
rgblight_enable_noeeprom(); // enables Rgb, without saving settings
rgblight_mode_noeeprom(RGBLIGHT_DEFAULT_MODE);
rgblight_setrgb(RGB_CHARTREUSE);
rgblight_sethsv_noeeprom(HSV_CHARTREUSE);
}
void sethsv_master(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, 0, (uint8_t)RGBLED_NUM / 2); }
// called on every layer change
// set the colour according to active layer
layer_state_t layer_state_set_user(layer_state_t state) {
// setrgb, sethsv_noeeprom, setrgb_range do not write to eeprom
switch (get_highest_layer(state)) {
case _LETTERS:
rgblight_setrgb(RGB_CHARTREUSE);
rgblight_sethsv_noeeprom(HSV_CHARTREUSE);
break;
case _SYMBOLS:
rgblight_setrgb(RGB_GOLDENROD);
rgblight_sethsv_noeeprom(HSV_ORANGE);
break;
case _NUMBERS:
rgblight_setrgb_range(RGB_OFF, 0, 4);
rgblight_setrgb_range(RGB_RED, 5, 9);
rgblight_setrgb_range(RGB_BLUE, 7, 19);
// rgblight_sethsv_master(HSV_OFF);
// rgblight_sethsv_slave(HSV_SPRINGGREEN);
rgblight_sethsv_noeeprom(HSV_SPRINGGREEN);
sethsv_master(HSV_OFF);
break;
case _CODE:
rgblight_sethsv_noeeprom(HSV_PINK);
sethsv_master(HSV_OFF);
break;
case _NAV:
rgblight_sethsv_noeeprom(HSV_CYAN);
sethsv_master(HSV_OFF);
break;
case _FN:
rgblight_sethsv_noeeprom(HSV_OFF);
sethsv_master(HSV_PURPLE);
break;
case _MEDIA:
rgblight_sethsv_noeeprom(HSV_OFF);
sethsv_master(HSV_TEAL);
break;
case _KBD_CTRL:
rgblight_sethsv_noeeprom_white();
break;
// case _CODE:
// rgblight_sethsv_master(HSV_OFF);
// rgblight_sethsv_slave(HSV_PINK);
// break;
// case _NAV:
// rgblight_sethsv_master(HSV_OFF);
// rgblight_sethsv_slave(HSV_CYAN);
// break;
// case _FN:
// rgblight_sethsv_master(HSV_PURPLE);
// rgblight_sethsv_slave(HSV_OFF);
// break;
// case _MEDIA:
// rgblight_sethsv_master(HSV_TEAL);
// rgblight_sethsv_slave(HSV_OFF);
// break;
// case _KBD_CTRL:
// rgblight_sethsv_noeeprom_white();
// break;
default: // for any other layers (that should not exist/be accessible)
rgblight_setrgb(RGB_RED);
rgblight_setrgb(HSV_RED);
break;
}
return state;

View File

@ -1,4 +1,4 @@
OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
ENCODER_ENABLE = no
ENCODER_ENABLE = no # Disable rotary encoders
# NKRO_ENABLE = yes