mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-17 13:12:08 +00:00
add split led lighting
This commit is contained in:
parent
4afa1e3300
commit
7e3b230a4a
@ -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)
|
||||||
|
@ -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!)
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user