DeckX.Core
1.0.0
dotnet add package DeckX.Core --version 1.0.0
NuGet\Install-Package DeckX.Core -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DeckX.Core" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DeckX.Core" Version="1.0.0" />
<PackageReference Include="DeckX.Core" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DeckX.Core --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DeckX.Core, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DeckX.Core@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DeckX.Core&version=1.0.0
#tool nuget:?package=DeckX.Core&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DeckX.Core SDK
DeckX.Core is the official .NET 8 SDK for building custom button plugins and full-screen interactive canvas dashboards for the DeckX Stream Deck hardware and DeckX Control Studio.
Features
- Hardware Button Plugins (
IDeckXPlugin): Create custom action packs, toggles, macros, and 1-second live telemetry LCD tickers. - Full-Screen Canvas Plugins (
IDeckXCanvasPlugin): Render full-screen 480x272 SkiaSharp dashboards, custom gauges, media players, and process raw capacitive touch coordinates. - USB Serial Protocol Contracts: Standardized data models for high-performance communication with the ESP32-S3 hardware controller.
Installation
Install via NuGet Package Manager or .NET CLI:
dotnet add package DeckX.Core
Or via Package Manager Console:
Install-Package DeckX.Core
Quick Start: Creating a Button Plugin
using DeckX.Core.Models;
using DeckX.Core.Plugins;
public class MyCustomPlugin : IDeckXPlugin
{
public string Id => "com.example.myplugin";
public string Name => "My Custom Plugin";
public string Version => "1.0.0";
public string Author => "Developer";
public string Description => "Custom DeckX Stream Deck actions";
public string Category => "Utilities";
public string CategoryIconGeometry => "M12 2L2 7l10 5 10-5-10-5z...";
public string? IconGeometry => CategoryIconGeometry;
public void OnInitialize(IDeckXPluginContext context)
{
// Register key action tickers
}
public void OnShutdown() { }
public IEnumerable<ActionItemModel> GetActions() => new[]
{
new ActionItemModel
{
Id = "my_action",
Title = "My Action",
Description = "Executes custom action",
PluginId = Id
}
};
public Task OnActionTriggeredAsync(string actionId, DeckKeyActionContext context)
{
// Handle key press
return Task.CompletedTask;
}
}
Quick Start: Creating a Canvas Dashboard Plugin
using DeckX.Core.Models;
using DeckX.Core.Plugins;
using SkiaSharp;
public class MyCanvasDashboard : IDeckXCanvasPlugin
{
public string Id => "com.example.mycanvas";
public string Name => "Interactive Dashboard";
public string Version => "1.0.0";
public string Author => "Developer";
public string Description => "480x272 Interactive Touch Dashboard";
public string Category => "Dashboards";
public string CategoryIconGeometry => "M3 3h18v18H3V3z...";
public int TargetFps => 1;
public bool NeedsContinuousStream => false;
public event Action? RequestRedraw;
public void RenderCanvas(SKCanvas canvas, int width, int height)
{
canvas.Clear(new SKColor(15, 17, 23));
using var paint = new SKPaint { Color = SKColors.White, TextSize = 20, IsAntialias = true };
canvas.DrawText("DeckX Virtual Canvas", 40, 50, paint);
}
public Task OnCanvasTouchAsync(CanvasTouchEventArgs e)
{
// Handle touch at (e.X, e.Y)
RequestRedraw?.Invoke();
return Task.CompletedTask;
}
public void OnInitialize(IDeckXPluginContext context) { }
public void OnShutdown() { }
public IEnumerable<ActionItemModel> GetActions() => Array.Empty<ActionItemModel>();
public Task OnActionTriggeredAsync(string actionId, DeckKeyActionContext context) => Task.CompletedTask;
}
License
This project is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- CommunityToolkit.Mvvm (>= 8.4.0)
- Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.2.6)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- NAudio (>= 2.2.1)
- SkiaSharp (>= 2.88.9)
- System.IO.Ports (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 49 | 9/21/2026 |