mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 12:51:47 +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)
|
||||
- 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)
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user