mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
Add starlark-apps plugin that renders Tidbyt/Tronbyte .star apps via Pixlet binary and integrates them into the existing Plugin Manager UI as virtual plugins. Includes vegas scroll support, Tronbyte repository browsing, and per-app configuration. - Extract working starlark plugin code from starlark branch onto fresh main - Fix plugin conventions (get_logger, VegasDisplayMode, BasePlugin) - Add 13 starlark API endpoints to api_v3.py (CRUD, browse, install, render) - Virtual plugin entries (starlark:<app_id>) in installed plugins list - Starlark-aware toggle and config routing in pages_v3.py - Tronbyte repository browser section in Plugin Store UI - Pixlet binary download script (scripts/download_pixlet.sh) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
101 lines
2.8 KiB
JSON
101 lines
2.8 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"title": "Starlark Apps Plugin Configuration",
|
|
"description": "Configuration for managing Starlark (.star) apps",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Enable or disable the Starlark apps system",
|
|
"default": true
|
|
},
|
|
"pixlet_path": {
|
|
"type": "string",
|
|
"description": "Path to Pixlet binary (auto-detected if empty)",
|
|
"default": ""
|
|
},
|
|
"render_timeout": {
|
|
"type": "number",
|
|
"description": "Maximum time in seconds for rendering a .star app",
|
|
"default": 30,
|
|
"minimum": 5,
|
|
"maximum": 120
|
|
},
|
|
"cache_rendered_output": {
|
|
"type": "boolean",
|
|
"description": "Cache rendered WebP output to reduce CPU usage",
|
|
"default": true
|
|
},
|
|
"cache_ttl": {
|
|
"type": "number",
|
|
"description": "Cache time-to-live in seconds",
|
|
"default": 300,
|
|
"minimum": 60,
|
|
"maximum": 3600
|
|
},
|
|
"default_frame_delay": {
|
|
"type": "number",
|
|
"description": "Default delay between frames in milliseconds (if not specified by app)",
|
|
"default": 50,
|
|
"minimum": 16,
|
|
"maximum": 1000
|
|
},
|
|
"scale_output": {
|
|
"type": "boolean",
|
|
"description": "Scale app output to match display dimensions",
|
|
"default": true
|
|
},
|
|
"scale_method": {
|
|
"type": "string",
|
|
"enum": ["nearest", "bilinear", "bicubic", "lanczos"],
|
|
"description": "Scaling algorithm (nearest=pixel-perfect, lanczos=smoothest)",
|
|
"default": "nearest"
|
|
},
|
|
"magnify": {
|
|
"type": "integer",
|
|
"description": "Pixlet magnification factor (0=auto, 1=64x32, 2=128x64, 3=192x96, etc.)",
|
|
"default": 0,
|
|
"minimum": 0,
|
|
"maximum": 8
|
|
},
|
|
"center_small_output": {
|
|
"type": "boolean",
|
|
"description": "Center small apps on large displays instead of stretching",
|
|
"default": false
|
|
},
|
|
"background_render": {
|
|
"type": "boolean",
|
|
"description": "Render apps in background to avoid display delays",
|
|
"default": true
|
|
},
|
|
"auto_refresh_apps": {
|
|
"type": "boolean",
|
|
"description": "Automatically refresh apps at their specified intervals",
|
|
"default": true
|
|
},
|
|
"transition": {
|
|
"type": "object",
|
|
"description": "Transition settings for app display",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": ["redraw", "fade", "slide", "wipe"],
|
|
"default": "fade"
|
|
},
|
|
"speed": {
|
|
"type": "integer",
|
|
"description": "Transition speed (1-10)",
|
|
"default": 3,
|
|
"minimum": 1,
|
|
"maximum": 10
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|