streamdeck
streamdeck is a library for interfacing with the Elgato/Corsair Stream Deck
This library is written in the programing language Go.
Note
This project is a golang API for the Elgato/Corsair Stream Deck. This library unleashes the power of the StreamDeck. It allows you to completely customize the content of the device, without the need of the OEM's software.
License
streamdeck is published under the permissive MIT license.
Dependencies
There are a few go libraries which are needed at compile time. streamdeck does not have any runtime dependencies.
CGO
Compiling this library requires unfortunately a C compiler since the underlying HID library requires cgo for enumerating the HID devices.
Supported Operating Systems
The library should work on Linux, MacOS and Windows (>=7).
streamdeck works well on SoC boards like the Raspberry / Orange / Banana Pis.
Linux Device rules
On Linux you might have to create an udev rule, to access the streamdeck.
sudo vim /etc/udev/rules.d/99-streamdeck.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE="0664", GROUP="plugdev"
After saving the udev rule, unplug and plug the streamdeck again into the USB port.
For the rule above, your user must be a member of the plugdev
group.
Make sure that your streamdeck is correctly recognized by executing:
$ go run examples/enumerate/enumerate.go
Found 1 Elgato Stream Deck(s):
SerialNumber: AL12H1A07123
Documentation
The auto generated documentation can be found at godoc.org
Examples
Please checkout the dedicated repository streamdeck-examples for examples.
My personal library of streamdeck elements / buttons can be found in the streamdeck-buttons repository.
Credits
This project would not have been possible without the work of Alex Van Camp. In particular his notes of the StreamDeck's protocol were very helpful. Alex has provided a reference implementation in Javascript / Node.js.