-
Notifications
You must be signed in to change notification settings - Fork 1
Changelog
RadiatorTwo edited this page May 25, 2026
·
4 revisions
Release notes for LoupixDeck.PluginSdk. The version surfaced at runtime is
SdkInfo.Version; the host enforces a major-version
match against the value declared in plugin.json (sdkVersion).
Host surface for browser launches and transient touch feedback, plus two forward-compatible command contracts.
IPluginHost additions
| Member | Purpose |
|---|---|
bool OpenBrowser(string url) |
Opens url in the user's default browser. Host abstracts OS specifics (Windows shell-execute, Linux xdg-open) so OAuth flows don't need per-plugin platform branches. |
void OverlayTouchText(int slot, string text, TimeSpan duration) |
Temporarily paints text on the touch slot at slot and restores the slot's normal content after duration. Fire-and-forget; later calls on the same slot supersede pending restores. |
int GetTouchSlotForRotary(int rotaryIndex) |
Returns the touch slot adjacent to the rotary at rotaryIndex, or -1 when the active device has no such neighbour. Pair with OverlayTouchText for value-flash feedback without hard-coding device geometry. |
CommandContext additions
| Member | Purpose |
|---|---|
int? SourceIndex |
Identifier of the originating control when Target denotes an indexed source (rotary index for RotaryEncoder, touch slot for TouchButton, simple-button index for SimpleButton). null for chained or CLI invocations. |
New command contracts (forward-compatible)
| Type | Purpose |
|---|---|
IAdjustmentCommand |
Rotary-encoder value adjustment — turn invokes ApplyAdjustment, press invokes ApplyReset. Safe to implement now; the host wires it up when available. |
IDisplayImageCommand |
Renders a dynamic PNG on a touch button. Safe to implement now alongside IDisplayCommand for graceful fallback. |
Display-only setting headers and persisted-key enumeration.
PluginSettingKind additions
| Member | Purpose |
|---|---|
Heading |
Display-only section header in dynamically built settings pages. Carries no value; used to group related controls. |
IPluginSettings additions
| Member | Purpose |
|---|---|
IEnumerable<string> Keys { get; } |
Enumerates every key currently present, in undefined order. Use it to discover prefixed entries — e.g. Keys.Where(k => k.StartsWith("alias:")) — without tracking them in a separate index. |
Getting started
API reference
Advanced
Operations
Release notes