flozz / rivalcfg

CLI tool and Python library to configure SteelSeries gaming mice
https://flozz.github.io/rivalcfg/
Do What The F*ck You Want To Public License
761 stars 61 forks source link

Aerox 9 color settings not persisting through sleep. #195

Closed Zawaken closed 1 year ago

Zawaken commented 1 year ago

Hey, I recently got my new Aerox 9 Wireless, and rivalcfg works quite well with it.

However, I like not having any colors on, so by setting the color to black on all zones, this works. sudo rivalcfg --z1 black --z2 black --z3 black

But when the mouse goes into "sleep", it sets it self to the default rainbow effect when woken up again. Any idea if this can be fixed? Or is this intended behaviour/a problem with the device itself?

Sensitivity settings seem to persist, but color settings do not.

flozz commented 1 year ago

As I said on another issue (https://github.com/flozz/rivalcfg/issues/191#issuecomment-1288072616), colors are not saved anymore in the mouse memory on newer devices... :(

I do not know how I will handle this yet.


In the meantime, it is possible to configure the device to stay blank at wakeup by sending the 0x27 0x00 command to it (in wired mode or 0x67 0x00 for the Aerox 9 Wireless in wireless mode using the USB dongle). The following script should do the trick:

#!/usr/bin/env python3
import rivalcfg
mouse = rivalcfg.get_first_mouse()
mouse._hid_write(data=[0x27, 0x00])  # 0x67, 0x00 in wireless mode
mouse.save()
Zawaken commented 1 year ago

Aha, I guess I didn't look hard enough then, sorry about that :)

Thank you very much for the great answer! I will try out that method 😄

flozz commented 1 year ago

The option is now on master for all devices that supports it (Aerox and Prime):

  -d DEFAULT_LIGHTING, --default-lighting DEFAULT_LIGHTING
                        Set default lighting at mouse startup (values: off, reactive,
                        rainbow, reactive-rainbow, default: rainbow)

I have to update the doc before releasing the new version :)

flozz commented 1 year ago

This is now implemented, documented and released :)