Building applications on top of the popular Elgato Stream Deck can be a bit tricky given it’s rather closed off tooling. There are a few projects floating around GitHub working to make it more programmatically accessible, but I needed something quick and dirty.
Using a server application to handle the VideoHub control we can then use simple query strings to pass information into another application without using a bunch of hotkey bindings. The “Access in background” checkbox is a nice touch, as it never interrupts the user with pop-overs or takes focus from the current application.
Next up, programmatically building Stream Deck profiles, because editing them in their tool isn’t exactly a joy with 40+ routes. Wouldn’t it be nice if pneumonics were represented on the buttons?
Side note on profile folder structures, each view is given a UUID and a folder (UUDI.sdProfile) to contain its respective dependencies. Additionally, within the folder for its dependencies, a folder for dependencies of each button is created, including the graphics for each. Folder naming is fairly straightforward but the naming convention is base 0 for the buttons.
E.g. the Stream Deck is a 5×3 grid. The button folder for BMD logo in the above screenshot would be 4,0.
- UUID.sdProfile
- 0,1
- 1,0
- 2,1
- 3,0
- 4,0