Crates.io | rusty-patio |
lib.rs | rusty-patio |
version | 1.0.2 |
source | src |
created_at | 2023-03-07 21:08:05.608167 |
updated_at | 2023-03-28 15:40:00.7166 |
description | Unofficial Stream Deck SDK for Rust |
homepage | https://github.com/bbutner/rusty-patio |
repository | https://github.com/bbutner/rusty-patio |
max_upload_size | |
id | 803923 |
size | 78,558 |
This repository contains core functionality to allow users to create plugins for the Elgato Stream Deck, in Rust.
Install via cargo:
cargo add rusty-patio
Next, you need to get the arguments sent via the Stream Deck when it runs your plugin binary, connect to it, and then handle the events received.
// Create a new instance of the arguments that are received by the Stream Deck
let args = StreamDeckArgs::new();
// Connect to the Stream Deck
let client = connect_streamdeck(&args).await;
// Handle the Events
match client {
Ok(mut client) => {
while let Some(event) = client.received_events.recv().await {
match event {
EventReceived::WillAppear(event) => {
let _ = client.transmitter.log_message(format!("WillAppear Fired: {:?}", event)).await;
}
// the rest of the events you want to handle
}
}
}
}
The exmaple directory in this repo contains a ready-to-run example counter plugin. All you have to do is run the build script for your platform, then drop that generated .sdPlugin
directory into your Stream Deck Plugins directory.
build.ps1
scripttarget/com.example.rp-example.sdPlugin
to %AppData%/Elgato/StreamDeck/Plugins
build.sh
scripttarget/com.example.rp-example.sdPlugin
to ~/Library/Application Support/com.elgato.StreamDeck/Plugins
⚠ Note: This repository is in its early stages, and as such there may be bugs. If you find any, please open an issue or PR!