Add JSAUX RGB Dock Plugin
JSAUX RGB Dock
This plugin provides basic control over JSAUX's range of RGB docks- including setting colours and switching to the pre-defined animation patterns.
Checklist:
Developer Checklist
- [x] I am the original author or an authorized maintainer of this plugin.
- [x] I have abided by the licenses of the libraries I am utilizing, including attaching license notices where appropriate.
Plugin Checklist
- [x] I have verified that my plugin works properly on the Stable and Beta update channels of SteamOS.
- [x] I have verified my plugin is unique or alternatively provides more/alternative functionality to a similar plugin already on the store.
Plugin Backend Checklist
- No: I am not using a custom backend other than Python. :exclamation:
- No: I am using a tool or software from a 3rd party FOSS project that does not have it's dependencies statically linked.
- No: I am using a custom binary that has all of it's dependencies statically linked.
~Note re above: I am copying the dynamically-linked libusb-1.0.so into the out/ directory when the plugin backend is built. It's not a 3rd party FOSS project, however, so I am unsure what the correct response would be for the above.~
Note re above: I have replaced the C code with a pure Python backend which uses a couple of pip dependencies installed into bin/ by the Docker build process. Relying on sys.path monkeying to make these importable. I'd rather not vendor these libraries if I can help it, but can do so if that's more your groove.
Testing
- [ ] Tested on SteamOS Stable/Beta Update Channel.
- [ ] Tested on SteamOS Preview Update Channel.
For Testers
You will need one of the (hopefully) supported docks from the table below-
| Dock | Stable | Beta | Preview |
|---|---|---|---|
| HB1201S | ❓ | ❓ | ✅ |
| HB0801S | ❓ | ❓ | ❓ |
| HB1201 | ❓ | ❓ | ❓ |
| HB0801 | ❓ | ❓ | ❓ |
I have, and have tested, the HB1201S on stable, beta and preview releases.
You should-
- Connect your dock to power and your deck
- Run through the RGB effects
- Run through some solid colours
- Try the above minus upstream power for luck
- Try disconnecting/reconnecting the dock to see if last chosen colour is restored (will take a few seconds)
Known Issues
- Power cycling the dock might cause the dock to be unresponsive
Thank you- I had a bit of a rebase fail, but things should be in order now.
Note that I have completely refactored the plugin, removing the C code in favour of a pure Python approach.
I've included Python dependencies in the build step, by installing them into out/ with pip in Docker. These end up in bin/ and then I perform some temporary path monkeying so they can be imported, eg:
dep_path = os.path.join(decky_plugin.DECKY_PLUGIN_DIR, "bin")
sys.path.insert(0, dep_path)
import usb
import pyudev
sys.path.remove(dep_path)
Couple more changes -
- UI now shows the currently selected effect/speed/colour at a glance
- UI now shows dock connection status
- Added some margin to the "About" screen, and also fixed that it didn't close the right-hand menu
@Gadgetoid please stop doing force pushes, it makes it difficult to see what was changed between commits. Thanks.
Whoops, sorry, everything from your last review to present - https://github.com/Gadgetoid/decky-jsaux-rgb/compare/4724661e6b9f6784e1b23411468fd7c589513f35...8dfbfde0e26fa1f4783d2a17c564532a84274b34
Approved for testing, just make sure to remove the template tag from plugin.json and add any tags that you would find helpful in there as well.
Thank you. Just completed another round of general improvements and updated the screenshot accordingly.
Just in case you haven't, could you join on our discord to test other devs that are also waiting for testing their plugins in order to see if you can help each other out? We are quite in the need for testers rn. Thanks in any case!
Just in case you haven't, could you join on our discord to test other devs that are also waiting for testing their plugins in order to see if you can help each other out? We are quite in the need for testers rn. Thanks in any case!
Can't promise anything, but I'm already in the Discord so I'll see what's what when I have some time. I hadn't realised I could just test whatever and submit a report- I thought there was a secret cabal of elite testers hiding somewhere.
Cannot build this PR at current moment. Closing PR unless @Gadgetoid wishes to continue working on this PR by updating the plugin to latest dependencies.
Understood. I haven't done much more than update my Steam Deck in these intervening four months. Lack of enthusiasm and testers for this (admittedly very limited use) plugin kinda dulled my will, too.
We'll see!