rusty-patio

Crates.iorusty-patio
lib.rsrusty-patio
version1.0.2
sourcesrc
created_at2023-03-07 21:08:05.608167
updated_at2023-03-28 15:40:00.7166
descriptionUnofficial Stream Deck SDK for Rust
homepagehttps://github.com/bbutner/rusty-patio
repositoryhttps://github.com/bbutner/rusty-patio
max_upload_size
id803923
size78,558
Beau Butner (BButner)

documentation

README

Rusty Patio (Unofficial Rust Stream Deck SDK)

crates.io

This repository contains core functionality to allow users to create plugins for the Elgato Stream Deck, in Rust.

How to Use

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
			}
		}
	}
}

Example

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.

Windows

  1. Run the build.ps1 script
  2. Copy the directory target/com.example.rp-example.sdPlugin to %AppData%/Elgato/StreamDeck/Plugins
  3. Restart your Stream Deck software, and add the "Basic Counter" under "Custom" to a button, and press the button!

macOS

  1. Run the build.sh script
  2. Copy the directory target/com.example.rp-example.sdPlugin to ~/Library/Application Support/com.elgato.StreamDeck/Plugins
  3. Restart your Stream Deck software, and add the "Basic Counter" under "Custom" to a button, and press the button!

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!

Commit count: 56

cargo fmt