Skip to content

Plugin Creation

Plugins extend the TechyPad with advanced integrations.

You can find the official Plugin SDK and examples at the TechyPad Plugins SDK GitHub Repository ↗.

Architecture & Folder Structure

Plugins are stored in a dedicated folder (e.g., plugins/my-plugin-name/). The root of this folder must contain a manifest.json alongside any script files or assets.

manifest.json Example:

json
{
    "id": "com.user.my_plugin",
    "name": "My Smart Light",
    "version": "1.0.0",
    "author": "Your Name",
    "type": "script",
    "actions": [
        {
            "id": "toggle_light",
            "name": "Toggle Light",
            "command": "powershell.exe -File script.ps1",
            "icon": "light_icon.png"
        }
    ]
}

Interfacing

PowerShell/Script Plugins (Easy Way)

These interface simply through the command field in the manifest. The desktop app executes the shell command in the background when the button is pressed. You can pass the %BUTTON_ID% variable in the command to let the script know which physical button triggered it.

Native C++ Plugins (Power Way)

These must inherit from the IPlugin interface (found in core/plugin/IPlugin.h). They are compiled into .dll files using CMake and Qt. They use the Q_INTERFACES(IPlugin) macro and are exported using Q_EXPORT_PLUGIN2, allowing them to deeply integrate with the main desktop application's UI and real-time state.