{"id":15986880,"url":"https://github.com/vleue/bevy_streamdeck","last_synced_at":"2025-03-17T15:32:19.888Z","repository":{"id":42021552,"uuid":"474490230","full_name":"vleue/bevy_streamdeck","owner":"vleue","description":"Elgato Stream Deck integration for Bevy","archived":false,"fork":false,"pushed_at":"2024-11-30T14:30:23.000Z","size":330,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T01:18:40.545Z","etag":null,"topics":["bevy","bevy-plugin","rust","streamdeck"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vleue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-26T23:29:42.000Z","updated_at":"2025-01-11T20:55:46.000Z","dependencies_parsed_at":"2024-10-27T15:18:17.160Z","dependency_job_id":"320bcb6d-4b3a-421c-b0fb-6778fc4cf5ee","html_url":"https://github.com/vleue/bevy_streamdeck","commit_stats":{"total_commits":55,"total_committers":2,"mean_commits":27.5,"dds":"0.19999999999999996","last_synced_commit":"d090deca3ed1ae2e6610a369cc20d4e78f1aad57"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vleue%2Fbevy_streamdeck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vleue%2Fbevy_streamdeck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vleue%2Fbevy_streamdeck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vleue%2Fbevy_streamdeck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vleue","download_url":"https://codeload.github.com/vleue/bevy_streamdeck/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243869518,"owners_count":20361031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bevy","bevy-plugin","rust","streamdeck"],"created_at":"2024-10-08T03:05:26.207Z","updated_at":"2025-03-17T15:32:19.880Z","avatar_url":"https://github.com/vleue.png","language":"Rust","readme":"# Bevy Stream Deck\n\n![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)\n[![Doc](https://docs.rs/bevy_streamdeck/badge.svg)](https://docs.rs/bevy_streamdeck)\n[![Crate](https://img.shields.io/crates/v/bevy_streamdeck.svg)](https://crates.io/crates/bevy_streamdeck)\n[![Bevy Tracking](https://img.shields.io/badge/Bevy%20tracking-main-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking)\n[![CI](https://github.com/vleue/bevy_streamdeck/actions/workflows/ci.yml/badge.svg)](https://github.com/vleue/bevy_streamdeck/actions/workflows/ci.yml)\n\nThis is a plugin for integrating the [Elgato Stream Deck](https://www.elgato.com/en/stream-deck) with the [Bevy](https://bevyengine.org) game engine. It allows you to handle input events from the Stream Deck and control its display.\n\n![capture of a Stream Deck](https://raw.githubusercontent.com/vleue/bevy_streamdeck/main/capture.png)\n\n## Getting Started\n\n### Adding the Plugin\n\n```rust\napp.add_plugin(StreamDeckPlugin);\n```\n\n### Handling Input Events\n\nReceive events from button presses (see [inputs example](https://github.com/vleue/bevy_streamdeck/blob/main/examples/inputs.rs)):\n```rust\nfn print_streamdeck_events(mut streamdeck_input_events: EventReader\u003cStreamDeckInput\u003e) {\n    for event in streamdeck_input_events.iter() {\n        info!(\"{:?}\", event);\n    }\n}\n```\n\n### Setting Button Colors\n\nSet a button color (see [colors example](https://github.com/vleue/bevy_streamdeck/blob/main/examples/colors.rs)):\n```rust\nfn set_color(streamdeck: Res\u003cStreamDeck\u003e) {\n    streamdeck.set_key_color(1, Color::BLUE);\n}\n\n```\n\n### Displaying Images\n\nDisplay an image on a button (see [image example](https://github.com/vleue/bevy_streamdeck/blob/main/examples/image.rs)):\n```rust\nfn set_image(streamdeck: Res\u003cStreamDeck\u003e, logo: Res\u003cLogo\u003e, images: Res\u003cAssets\u003cImage\u003e\u003e) {\n    let handle: Handle\u003cImage\u003e = ...;\n    if let Some(image) = images.get(\u0026handle) {\n        streamdeck.set_key_image(1, \u0026image);\n    }\n}\n```\n\n\n## Platform-Specific Setup\n\n### Linux\n\nFor Linux setup, please refer to the [rust-streamdeck getting started guide](https://github.com/ryankurte/rust-streamdeck#getting-started).\n\n## Compatibility\n\n### Bevy Compatibility\n\n|Bevy|bevy_streamdeck|\n|---|---|\n|0.15|0.5|\n|0.14|0.4|\n|0.13|0.3|\n|0.9|0.2|\n|0.8|0.1|\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvleue%2Fbevy_streamdeck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvleue%2Fbevy_streamdeck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvleue%2Fbevy_streamdeck/lists"}