Changelog
Up-to-date SDK changes.
Changes in Stream Deck 6.6
Add support for Stream Deck Neo, and SCUF controllers.
Add support for OS-specific actions via
Actions[].OS
within the manifest.Add the ability to disable automatically installing pre-defined profiles, when a plugin is installed, via
Profiles[].AutoInstall
within the manifest.
Changes in Stream Deck 6.5
Add support for receiving deep link messages via
didReceiveDidLink
.Add support for switching to a specific profile page when calling
switchToProfile
.Add
controller
information toWillAppear
andWillDisappear
events for multi-actions.Add support for Node.js plugins with the
.cjs
or.mjs
file extensions.
Changes in Stream Deck 6.4
Add support for Node.js plugins (beta).
Add DisableAutomaticStates option to manifest.
Add setTriggerDescription event for Stream Deck + encoders.
Add range to BAR layout item.
Add range to GBAR layout item.
Add text-overflow to TEXT layout item.
Deprecated support for installing plugins using the
streamdeck://
scheme.
Changes in Stream Deck 6.1
Add Tabs to SDK, documentation and template files
Add dialDown event for Stream Deck + encoders.
Add dialUp event for Stream Deck + encoders.
Deprecated
dialPress
event for Stream Deck + encoders.
Changes in Stream Deck 6.0
Add UserTitleEnabled property to the manifest.
Add the device type
kESDSDKDeviceType_StreamDeckPlus
to detect Stream Deck + devices.Add Encoder to the manifest for Stream Deck + devices.
Add TriggerDescription to the manifest for Stream Deck + devices.
Add Layouts for Stream Deck + displays.
Add setFeedback event for Stream Deck + displays.
Add setFeedbackLayout event for Stream Deck + displays.
Add touchTap event for Stream Deck + displays.
Add dialPress event for Stream Deck + encoders.
Add dialRotate event for Stream Deck + encoders.
Update willAppear and willDisappear events to include the
controller
property.Add new plugin template and javascript SDK.
Update distribution tool now allows
svg
images.Add new Clock sample plugin
Changes in Stream Deck 5.3
Add the device type
kESDSDKDeviceType_CorsairVoyager
to detect Corsair Voyager devices.
Changes in Stream Deck 5.2
Add the device type
kESDSDKDeviceType_StreamDeckPedal
to detect Stream Deck Pedal devices.
Changes in Stream Deck 5.0
You can create and share custom links on social networks to promote your Stream Deck plugin. For example, you can share the linkstreamdeck://plugin/install/com.elgato.cpuon social networks. Clicking this link will prompt you to install the CPU plugin.You can now use SVGs for the icons of your plugins.
The Property Inspector now automatically receives the
didReceiveGlobalSettings
event whensetGlobalSettings
is called from the plugin.The Info parameters contain more information, like the version of the operating system.
Changes in Stream Deck 4.8
You can now specify in the
setImage
event on which state the image should be set. This change only applies to actions with two states. If no state is specified, the image is set to both states.You can now specify in the
setTitle
event on which state the title should be set. This change only applies to actions with two states. If no state is specified, the title is set to both states.
Changes in Stream Deck 4.7
Add the device type
kESDSDKDeviceType_CorsairGKeys
to detect Corsair G-Keys devices.
Changes in Stream Deck 4.6
The
switchToProfile
API can now be used with an editable preconfigured profile.
Changes in Stream Deck 4.5.1
The
setImage
event now accepts svg images as payload.
Changes in Stream Deck 4.3.3
Added the
DontAutoSwitchWhenInstalled
option in themanifest.json
to prevent Stream Deck from automatically switching to a preconfigured profile when installed.
Changes in Stream Deck 4.3
Add support for Stream Deck XL
Add support for Stream Deck Mobile
Custom user images are always used even if a plugin dynamically renders an image
The device name is now sent in the
deviceDidConnect
event and in the Info parameter during theregistration procedure
When the computer is wake up, the plugin will receive a
systemDidWakeUp
event.When using a file picker in the Property Inspector of a custom action, the last selected folder is stored and then used when reopening the file picker for the actions with the same identifier.
Changes in Stream Deck 4.2
The willAppear and willDisappear events are now sent to custom actions inside Multi-Actions.
The device opaque values are now stable across relaunch.
The switchToProfile API now temporarily disables the Smart Profile feature.
Using the switchToProfile API will now prompt the user to install the profile if it has not been installed.
The Smart Profile feature is disabled when the Stream Deck window is visible.
The info parameter used in the registration process contains the version of the plugin
The Property Inspector should be much faster to appear on Windows
Changes in Stream Deck 4.1
We introduced some changes to the SDK that make new plugins not backward compatible with Stream Deck 4.0.x. New plugins should only target Stream Deck 4.1 and later.
New property SDKVersion
The manifest.json file should now contain an SDKVersion
property. The value should be set to 2 for new plugins: "SDKVersion": 2
. Plugins with the SDKVersion
property will only run in Stream Deck 4.1 and later. New plugins should not support Stream Deck 4.0.x anymore and should contain in their manifest.json file the following:
More information about the manifest.json file can be read in the Manifest documentation
connectSocket() has been renamed to connectElgatoStreamDeckSocket()
The registration function for the plugin and Property Inspector has been renamed from connectSocket()
to connectElgatoStreamDeckSocket()
.
More information can be read in the Registration Procedure
Simplified communication between the plugin and Property Inspector
Several changes have been made to simplify the communication between the plugin and the Property Inspector:
The
setSettings
API can be used from the Property Inspector to save persistent data for the action's instance.When the
setSettings
API is called from the plugin, the Property Inspector will automatically receive adidReceiveSettings
callback with the new settings.Similarly when the
setSettings
API is called from the Property Inspector, the plugin will automatically receive adidReceiveSettings
callback with the new settings.A new
getSettings
API has been introduced and can be used from the plugin and Property Inspector. After calling this API, the plugin or Property Inspector will receive asynchronously an eventdidReceiveSettings
containing the settings for the action.When the Property Inspector is displayed, the settings are passed directly to the Property Inspector in the inActionInfo parameter. With this change, the Property Inspector gets right away the current settings for the action.
When the Property Inspector is displayed, the plugin will receive a new
propertyInspectorDidAppear
event.When the Property Inspector is dismissed, the plugin will receive a new
propertyInspectorDidDisappear
event.
Possibility to save global settings
The plugin and Property Inspector can now save persistent data globally and not just to one instance of an action using the new setGlobalSettings
API. The data will be saved per plugin and securely. This new API can be used to save, for example, tokens that should be available to all the actions of the plugin.
Note that when the plugin uses setGlobalSettings
, the Property Inspector will automatically receive a didReceiveGlobalSettings
callback with the new global settings. Similarly when the Property Inspector uses this API, the plugin will automatically receive a didReceiveGlobalSettings
callback.
A new getGlobalSettings
API has also been introduced and can be used from the plugin and Property Inspector. After calling this API, the plugin or Property Inspector will receive asynchronously an event didReceiveGlobalSettings
containing the global settings.
Logging
The plugin and Property Inspector can use the new logMessage
event to write a debug message to the logs file:
Logs are saved to disk per plugin in the folder ~/Library/Logs/StreamDeck/
on macOS and %appdata%\Elgato\StreamDeck\logs\
on Windows. Note that the log files are rotated each time the Stream Deck application is relaunched.
Possibility to open a new window
The Property Inspector and a Javascript plugin can now open a new window. The main html file could contain a callback function like this:
When a keyDown
event occurs, the plugin can open the new_window.html
in a new window:
The new_window.html
file will call the callback:
Windows opened have a default size of 500 x 650 px. You can change this size by setting the DefaultWindowSize
property in the manifest.json, for example:
devicePixelRatio
The info
parameter received by the connectElgatoStreamDeckSocket()
function of the plugin and Property Inspector now contains a devicePixelRatio
value. This can be used to know if the Stream Deck application is running on a HiDPI screen. Example:
Other improvements
You can now reload a Javascript plugin or the Property Inspector using CMD-R in the Chrome Remote Debugger.
The working directory for a compiled plugin is now set to the plugin folder
The filter in open dialogs was not working properly under certain circumstances
Javascript plugins can now access the clipboard
Improvements on how the plugins are terminated
Last updated