GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - AuxControl/rust-streamdeck: libusb based driver for Elgato StreamDeck devices

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

48 Commits
48 Commits

Folders and files

NameName
Last commit message
Last commit date
icons
icons
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
40-streamdeck.rules
40-streamdeck.rules
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 

Repository files navigation

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:

  • Connecting to devices
    • Connecting by VID/PID/Serial
    • Matching device types (Mini etc.)
  • Reading buttons
    • Poll based mode (w/ blocking / non-blocking selection and timeouts)
    • Multi-threaded / async / callback driven mode
  • Writing brightness
  • Setting buttons
    • Writing colours
    • Writing images
  • Devices
    • Stream Deck Mini
    • Stream Deck Original (untested)
    • Stream Deck Original V2
    • Stream Deck XL

Getting started

  • cargo add streamdeck to add this library to your project (with cargo-edit)
  • cargo install streamdeck to install the utility only
  • git clone [email protected]:ryankurte/rust-streamdeck.git to clone the repo

Building requires libusb and hidapi packages.

Setting up permissions on linux

  • cp 40-streamdeck.rules /etc/udev/rules.d/ to allow user access to streamdeck devices
    • note this may need to be edited with other vid/pid combinations for other devices
  • sudo udevadm control --reload-rules to reload udev rules

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:

  • streamdeck-rs for writing plugins to interact with the official Elgato SDK
  • stream_deck_rs another project with similar goals
  • @cliffrowley's streamdeck protocol notes
  • python streamdeck library
  • node-elgato-stream-deck

Icons from material.io and brandeps.com

About

libusb based driver for Elgato StreamDeck devices

Resources

Readme
MPL-2.0 license
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.