ryankurte / rust-streamdeck

libusb based driver for Elgato StreamDeck devices
Mozilla Public License 2.0
57 stars 24 forks source link
driver elgato rust streamdeck usb

Rust Elgato StreamDeck Driver and Utility

An hidapi based driver for direct interaction with Elgato StreamDeck devices, this is intended to allow applications to use these devices directly and on arbitrary platforms (without the use of the Elgato SDK), heavily based on the python streamdeck library.

Status

GitHub tag Travis Build Status Crates.io Docs.rs

WIP. Pull requests more than welcome!

Features:

Getting started

Building requires libusb and hidapi packages.

Setting up permissions on linux

Using the CLI

streamdeck-cli --help displays available subcommands and options, passing --help to subcommands (ie. streamdeck set-image --help) displays options for that subcommand

streamdeck-cli 0.4.1
A CLI for the Elgato StreamDeck

USAGE:
    streamdeck-cli [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --log-level <level>    Enable verbose logging [default: info]
        --pid <pid>            USB Device Product ID (PID) in hex [env: USB_PID=]  [default: 0063]
        --serial <serial>      USB Device Serial [env: USB_SERIAL=]
        --vid <vid>            USB Device Vendor ID (VID) in hex [env: USB_VID=]  [default: 0fd9]

SUBCOMMANDS:
    get-buttons       Fetch button states
    help              Prints this message or the help of the given subcommand(s)
    reset             Reset the attached device
    set-brightness    Set device display brightness
    set-colour        Set button colours
    set-image         Set button images
    version           Fetch the device firmware version

Related Works

This library stands on the shoulders of giants (who had already done all the reversing work)...

You might also like to look at:

Icons from material.io and brandeps.com