Custom modules are Go plugins (.so files) that expose handlers for:
- Icon Handlers: Generate dynamic button icons
- Key Handlers: Implement custom button press actions
- Lcd Handlers: Control the StreamDeck Plus' touch screen LCD Display
- Touch or Knob Handlers: Handle touch and knob events on the StreamDeck Plus
Modules are loaded at startup and can be configured through the standard JSON config file.
- Go 1.25+
- streamdeckd API package:
github.com/unix-streamdeck/api/v2
Every module must implement the GetModule() function:
N.B - For the latest reference for all the types referenced below, check the api module:
package main
import "github.com/unix-streamdeck/api/v2"
func GetModule() api.Module {
return api.Module{
Name: "MyModule",
NewForeground: func() api.ForegroundHandler { return &MyForegroundHandler{} },
NewInput: func() api.InputHandler { return &MyInputHandler{} },
ForegroundFields: []api.Field{ /* ... */ },
InputFields: []api.Field{ /* ... */ },
}
}