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.