Skip to content

Plugin Capabilities

Plugins, associated with applications and universal plugins

In terms of using the applications plugins are divided into two classes:

  • The first class is the plugins for applications. These plugins are visible in the application section. They generally require an application to be in the foreground to execute commands.
Loupedeck
Plugins those need application (Loupedeck)
Logi Options+
Plugins those need application (Logi Options+)
  • The other type of plugins do not require an application to be in the foreground or any application to be running locally at all. For example, Twitch and Philips Hue plugins are using remote services directly.
Loupedeck
Plugins those do not need application (Loupedeck)
Logi Options+
Plugins those do not need application (Logi Options+)

You can specify whether your plugin requires an associated application by changing the following flag in your Plugin class:

public override Boolean HasNoApplication => true;

Plugins with shortcuts and API-only plugins

There are two distinct types of actions:

  • Shortcuts, which essentially are key combinations that Logi Plugin Service sends on behalf of the user and
  • API-based actions, those that are controlling target application/service using dedicated API (for example, OBS can be controlled via WebSocket using obs-websocket plugin )

To indicate if a plugin is having API-only actions, set the following flag in the Plugin class:

public override Boolean UsesApplicationApiOnly => true;

Plugins with this flag set to true can be connected to any profile and are accessible from the Action Panel.

"Plugins" dialog

Plugin configuration file fields

LoupedeckPackage.yaml plugin configuration file can contain additional fields related to plugin capabilities.

pluginCapabilities field

pluginCapabilities defines one or more plugin capabilities:

  • RequiresAdminInstallation - plugin requires installation with elevated rights
  • RequiresAdminUnnstallation - plugin requires uninstallation with elevated rights
  • RequireApplicationCloseOnInstallWin - plugin requires application to be closed during installation and uninstallation (on Windows)
    • If this capability is defined, then applicationPatterns field is required
  • RequireApplicationCloseOnInstallMac - plugin requires application to be closed during installation and uninstallation (on macOS)
    • If this capability is defined, then applicationPatterns field is required

Example:

pluginCapabilities:
    - RequiresAdminInstallation
    - RequiresAdminUninstallation
    - RequireApplicationCloseOnInstallWin
    - RequireApplicationCloseOnInstallMac

applicationPatterns field

applicationPatterns field is a dictionary of regex expressions that are used to find installed applications that are supported by this plugin:

  • processNamePattern - string with regex that covers application process names (on Windows)
  • bundleNamePattern - string with regex that covers application bundle IDs (on macOS)
  • displayNamePattern - string with regex that covers application display name
  • executablePathPattern - string with regex that covers application process executable file path (on Windows)

.NET regex syntax is used: Quick Reference

Example:

applicationPatterns:
    processNamePattern: ^lightroom$
    bundleNamePattern: ^com.adobe.LightroomClassicCC7$
    displayNamePattern: ^Adobe Lightroom Classic$
    executablePathPattern: Adobe Lightroom Classic\\lightroom.exe$