decky-plugin-database icon indicating copy to clipboard operation
decky-plugin-database copied to clipboard

Add JSAUX RGB Dock Plugin

Open Gadgetoid opened this issue 2 years ago • 8 comments

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

Gadgetoid avatar Feb 09 '24 17:02 Gadgetoid

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)

Gadgetoid avatar Feb 13 '24 10:02 Gadgetoid

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 avatar Feb 13 '24 17:02 Gadgetoid

@Gadgetoid please stop doing force pushes, it makes it difficult to see what was changed between commits. Thanks.

TrainDoctor avatar Feb 16 '24 06:02 TrainDoctor

Whoops, sorry, everything from your last review to present - https://github.com/Gadgetoid/decky-jsaux-rgb/compare/4724661e6b9f6784e1b23411468fd7c589513f35...8dfbfde0e26fa1f4783d2a17c564532a84274b34

Gadgetoid avatar Feb 16 '24 10:02 Gadgetoid

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.

TrainDoctor avatar Feb 17 '24 07:02 TrainDoctor

Thank you. Just completed another round of general improvements and updated the screenshot accordingly.

Gadgetoid avatar Feb 17 '24 22:02 Gadgetoid

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!

RodoMa92 avatar Apr 23 '24 08:04 RodoMa92

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.

Gadgetoid avatar Apr 23 '24 08:04 Gadgetoid

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.

TrainDoctor avatar Aug 01 '24 00:08 TrainDoctor

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!

Gadgetoid avatar Aug 01 '24 08:08 Gadgetoid