Closed TauAkiou closed 4 years ago
This merge implements effects support + configuration changes necessary to make it work.
Hi! I am also working on a project to control MSI's per-key keyboard on macOS (hackintosh). Is it okay If I can use your documentations to implement changing key mode? As in ColorShift, Reactive, ect? I will credit you for your work and documentation.
Go ahead. I supplied it for exactly that reason.
@TauAkiou Sorry I didn't reply to your email earlier, I wanted to review the code first but time flew by.
That's some impressive work you did there ! Good job reverse-engineering the rest of the protocol.
To be honest I wasn't planning on adding more features to this tool, but looks like you did pretty much all the heavy lifting necessary, so I'll definitely review and merge later.
@Askannz I had done this to see how difficult reverse engineering the rest of the protocol would actually be, and I tested my findings by expanding msi-perkeyrgb. It works much better then I thought it would, though it's missing a few features from the Windows control center (namely that the Windows version will add transitions to the beginning or end automatically to ensure that the effect transitions smoothly).
The next logical step from here would be to do what the OpenRazer team did and re-implement the protocol through a kernel module and an additional control daemon, though msi-perkeyrgb is still useful for people that just want user-level control over the keyboard and little else.
Merged ! Thanks again for this amazing work.
The protocol documentation you wrote at https://github.com/Askannz/msi-perkeyrgb/blob/master/0b_packet_information/msi-kb-effectdoc is very good. Sadly I can only test it with my own laptop keyboard, but I wonder if it could work with standalone SteelSeries keyboards too.
I'm going to clean up some of my code and then hopefully push a new release soon with your changes.
This merge implements effects support + configuration changes necessary to make it work.
Configuration Changes
Changes to color/keymap handling
MsiEffect
objects to the protocol handler.In total, this merge adds most of the 'effects' that are present in the Windows version of the keyboard utility, barring features such as cooldown keys that require a daemon to operate.
This merge also includes my findings and documentation on the effects protocol and related changes to the 0e key protocol.