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) - [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 - 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 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

@ -28,6 +28,7 @@
// see https://docs.qmk.fm/#/feature_split_keyboard?id=hardware-configuration-options // see https://docs.qmk.fm/#/feature_split_keyboard?id=hardware-configuration-options
#define SPLIT_USB_DETECT // side with usb-connection becomes master #define SPLIT_USB_DETECT // side with usb-connection becomes master
#define NO_USB_STARTUP_CHECK // allows the slave to wake up the pc #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_MODS_ENABLE // shares modifier state between both sides (adds communication!)
// #define SPLIT_TRANSPORT_MIRROR // shares master matrix with slave (adds communication!) // #define SPLIT_TRANSPORT_MIRROR // shares master matrix with slave (adds communication!)

View File

@ -108,48 +108,47 @@ void oled_task_user(void) {
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
rgblight_enable_noeeprom(); // enables Rgb, without saving settings rgblight_enable_noeeprom(); // enables Rgb, without saving settings
rgblight_mode_noeeprom(RGBLIGHT_DEFAULT_MODE); 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 // called on every layer change
// set the colour according to active layer // set the colour according to active layer
layer_state_t layer_state_set_user(layer_state_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
// setrgb, sethsv_noeeprom, setrgb_range do not write to eeprom // setrgb, sethsv_noeeprom, setrgb_range do not write to eeprom
switch (get_highest_layer(state)) { switch (get_highest_layer(state)) {
case _LETTERS: case _LETTERS:
rgblight_setrgb(RGB_CHARTREUSE); rgblight_sethsv_noeeprom(HSV_CHARTREUSE);
break; break;
case _SYMBOLS: case _SYMBOLS:
rgblight_setrgb(RGB_GOLDENROD); rgblight_sethsv_noeeprom(HSV_ORANGE);
break; break;
case _NUMBERS: case _NUMBERS:
rgblight_setrgb_range(RGB_OFF, 0, 4); rgblight_sethsv_noeeprom(HSV_SPRINGGREEN);
rgblight_setrgb_range(RGB_RED, 5, 9); sethsv_master(HSV_OFF);
rgblight_setrgb_range(RGB_BLUE, 7, 19); break;
// rgblight_sethsv_master(HSV_OFF); case _CODE:
// rgblight_sethsv_slave(HSV_SPRINGGREEN); 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; 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) default: // for any other layers (that should not exist/be accessible)
rgblight_setrgb(RGB_RED); rgblight_setrgb(HSV_RED);
break; break;
} }
return state; return state;

View File

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