SharpDeck 5.0.3
See the version list below for details.
dotnet add package SharpDeck --version 5.0.3
NuGet\Install-Package SharpDeck -Version 5.0.3
<PackageReference Include="SharpDeck" Version="5.0.3" />
paket add SharpDeck --version 5.0.3
#r "nuget: SharpDeck, 5.0.3"
// Install SharpDeck as a Cake Addin #addin nuget:?package=SharpDeck&version=5.0.3 // Install SharpDeck as a Cake Tool #tool nuget:?package=SharpDeck&version=5.0.3
SharpDeck
A comprehensive .NET wrapper for creating Stream Deck plugins, using the official Elgato Stream Deck SDK.
⚡ What does it do?
SharpDeck takes the hassle out of communicating with the Stream Deck SDK, and handles caching and calling your actions! At a glance, SharpDeck handles...
- Connecting to the Stream Deck.
- Registering your custom actions.
- Calling your custom actions when something happens (i.e. button press).
📦 Examples
- Counter - Single action counter plugin.
- Shared Counter - Multiple action plugin with a shared counter and reset.
📄 Getting started
We recommend taking a look at the official Stream Deck SDK documentation. Each plugin has a manifest.json
file (example) which tells Stream Deck everything about your plugin, and it's actions.
✏️ Writing your plugin
- Create a .NET console app (Framework or Core supported).
- Add your
manifest.json
file.- Set the
Copy to Output Directory
property toCopy Always
.
- Set the
- Add SharpDeck
dotnet add package SharpDeck
. - Update
Program.cs
to initiate your plugin.public static void Main(string[] args) { #if DEBUG // optional, but recommended System.Diagnostics.Debugger.Launch(); #endif // register actions and connect to the Stream Deck SharpDeck.StreamDeckPlugin.Run(); }
- Create your action as a class. Each action must,
- Have the attribute
[StreamDeckAction(UUID)]
, with a unique UUID. - Inherit from either
StreamDeckAction
, orStreamDeckAction{TSettings}
.
- Have the attribute
🚧 Testing your plugin
- Navigate to
%APPDATA%\Elgato\StreamDeck\Plugins
, this is where all Stream Deck plugins live. - Create a folder for your plugin, typically
com.{author}.{plugin}.sdPlugin
. - Copy your files from your
bin\Debug
folder to your plugin folder. - Restart Stream Deck, and your plugin should be there! 👍
🛠️ Make testing quicker and easier (optional)
Copying your plugin each time can be a bit tedious, but don't worry, there's a few steps to make it easier!
- Ensure your
Program.cs
callsSystem.Diagnostics.Debugger.Launch();
. - Add a pre-build task to terminate
StreamDeck.exe
process:taskkill -f -t -im StreamDeck.exe -fi "status eq running"
- Build to your plugin folder directly:
- e.g.
<OutputPath>$(APPDATA)\Elgato\StreamDeck\Plugins\com.geekyeggo.counter.sdPlugin\</OutputPath>
- e.g.
- Create a debug profile in
Properties/launchSettings.json
(example).{ "profiles": { "DebugWin": { "commandName": "Executable", "executablePath": "c:\\windows\\system32\\cmd.exe", "commandLineArgs": "/S /C \"start \"title\" /B \"%ProgramW6432%\\Elgato\\StreamDeck\\StreamDeck exe\" \"" } } }
- Voila,
F5
should now terminate Stream Deck, rebuild your plugin, and then re-launch Stream Deck!
🚨 Need help?
- If you can't see your plugin at all:
- Check your plugin folder contains your plugin's executable.
- Check the
manifest.json
file exists, and thecodePath
points to your executable.
- If you can see your plugin but it isn't working:
- Check
%APPDATA%\Elgato\StreamDeck\logs
if there are any logs for your plugin. - Update your
Program.cs
to callDebugger.Launch()
(example) which will allow you to debug your plugin.
- Check
Still can't get it working? No problems, raise an issue and we'll try to help!
📃 License
The MIT License (MIT) Stream Deck is a trademark or registered trademark of Elgato Systems.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- McMaster.Extensions.CommandLineUtils (>= 2.3.4)
- Microsoft.Extensions.DependencyInjection (>= 3.0.0)
- Microsoft.Extensions.Logging (>= 2.2.0)
- Newtonsoft.Json (>= 12.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on SharpDeck:
Repository | Stars |
---|---|
nguyenquyhy/Flight-Tracker-StreamDeck
A Stream Deck plugin to interact with Microsoft Flight Simulation
|