What Is This?
You can read more in the Docs.
In order to make use of this template, you will need to have the Dotnet Core SDK (version 2.2.100 or above) installed on your development machine.
While not absolutely necessary, it is strongly recommended to have the Stream Deck Software installed, to be able to perform some integration testing of your plugin.
Install Project Template
From File System
Installing the template from your filesystem is useful for local testing of the template itself. If you are actively working on the template making changes, this is the route you need to use.
To install, run the following command from the root of the repository.
dotnet new -i Templates/StreamDeck.PluginTemplate.Csharp
To pick up any changes you have made to the template source, you must uninstall the template and reinstall it.
To uninstall, run the following command from the root of the respository.
dotnet new -u Templates/StreamDeck.PluginTemplate.Csharp
dotnet new -u $PWD/Templates/StreamDeck.PluginTemplate.Csharp
dotnet new -i StreamDeckPluginTemplate - OR - Install-Package StreamDeckPluginTemplate [-Version x.y.zzz]
Using the Template
Once the template is installed, open a terminal in the folder of your choice and create a new project.
dotnet new streamdeck-plugin --plugin-name FirstPlugin --uuid com.yourcompany.pluginname.actionname --skipRestore false
Or create a directory in a location of your choice, change to that directory and run the command, which will inherit the directory name as the project name with default values.
dotnet new streamdeck-plugin
Creating a Plugin Action
The Stream Deck Toolkit provides the functionality that communicates directly with the Stream Deck software. When creating a plugin, you are responsible for creating actions for the Stream Deck buttons to perform. There are two base classes that you can inherit from when creating your action:
Your project may contain any number of actions, inheriting from one of the classes above. In order for the Action to be automatically registered on start up, it must bear the [ActionUuid(Uuid="com.fritzanfriends.pluginname.anotheraction")] attribute.
Actions must also be manually registered in the manifest.json file, with the Uuid that matches ActionUuid attribute.