Files
noctalia-ostt/plugin.toml
T

84 lines
2.7 KiB
TOML
Raw Normal View History

# Minimal reference plugin. Demonstrates the full bar-widget pipeline:
# static manifest -> appears in the Add-widget picker -> renders/ticks ->
# manifest-driven settings -> onIpc. Also ships a launcher provider that shows
# launcher.setQuery() drill-in (type `/ex`).
# See noctalia-docs plugins guide.
id = "noctalia/example"
name = "Example"
version = "1.1.0"
min_noctalia = "5.0.0"
author = "noctalia"
license = "MIT"
dependencies = []
tags = ["demo"]
icon = "puzzle"
description = "A minimal reference plugin: a bar widget with settings and IPC, a declarative bar widget (barWidget.render), a service, a shortcut, a launcher provider with setQuery drill-in, and a panel of interactive controls."
[[widget]]
id = "hello"
entry = "hello.luau"
[[widget.setting]]
key = "label"
type = "string"
label_key = "settings.label.label"
description_key = "settings.label.description"
default = "Hello"
[[widget.setting]]
key = "glyph"
type = "glyph"
label_key = "settings.glyph.label"
description_key = "settings.glyph.description"
default = "puzzle"
[[widget.setting]]
key = "show_glyph"
type = "bool"
label_key = "settings.show_glyph.label"
default = true
# Second bar widget: the same service tick rendered declaratively via
# barWidget.render() (ui.* tree) instead of imperative setText/setGlyph —
# including an inline ui.button whose click stays separate from the
# widget-level onClick.
[[widget]]
id = "declarative"
entry = "declarative.luau"
# Headless background service: publishes a counter to the plugin's shared state
# every second. The widget above watches it (noctalia.state.watch) to show how a
# service feeds the plugin's UI entries without sharing Lua memory.
[[service]]
id = "ticker"
entry = "ticker.luau"
# Control-center quick-toggle tile. Add it from Settings → Control Center shortcuts.
[[shortcut]]
id = "toggle"
entry = "shortcut.luau"
# Launcher provider: type `/ex` in the launcher. Categories drill in via
# launcher.setQuery() (the input is rewritten and the launcher stays open);
# leaf items copy to the clipboard and let the launcher close.
[[launcher_provider]]
id = "finder"
entry = "finder.luau"
prefix = "/ex"
glyph = "list-search"
include_in_global_search = false
# Panel: a settings-style surface built from the declarative ui.* vocabulary
# (panel.render). Demonstrates the interactive controls (toggle/slider/input/
# select inside a scroll) and their value callbacks. Panel size is host-owned
# and declared here, so the surface is sized right on the first open.
# Open it with: noctalia msg panel-toggle noctalia/example:panel
[[panel]]
id = "panel"
entry = "panel.luau"
width = 420
height = 410
placement = "floating"
position = "center"