Files

82 lines
2.5 KiB
TOML
Raw Permalink Normal View History

# OSTT voice-to-text for the Noctalia bar.
#
# A bar widget that toggles an ostt (https://github.com/kristoferlund/ostt)
# recording headlessly — no popup terminal — and shows a live record indicator
# while the microphone is capturing. Transcriptions are copied to the
# clipboard by default (switch to ostt --paste in the widget settings).
#
# recorder [[widget]] the bar capsule: indicator + click-to-toggle
# monitor [[service]] polls ostt's recording.pid and publishes status
#
# Hotkey integration (compositor keybind):
# noctalia msg plugin prdlk/ostt:recorder focused toggle
id = "prdlk/ostt"
name = "OSTT"
version = "1.0.0"
min_noctalia = "5.0.0"
author = "prdlk"
license = "MIT"
dependencies = []
tags = ["audio", "voice", "speech-to-text", "productivity"]
icon = "microphone"
description = "Voice-to-text with OSTT: click the mic (or bind a hotkey) to record, click again to transcribe straight to your clipboard — or paste into the focused app. Shows a red record indicator while the microphone is live."
[[widget]]
id = "recorder"
entry = "recorder.luau"
[[widget.setting]]
key = "output_mode"
type = "select"
label_key = "settings.output_mode.label"
description_key = "settings.output_mode.description"
default = "clipboard"
options = [
{ value = "clipboard", label_key = "settings.output_mode.clipboard" },
{ value = "paste", label_key = "settings.output_mode.paste" },
]
[[widget.setting]]
key = "model"
type = "string"
label_key = "settings.model.label"
description_key = "settings.model.description"
default = ""
[[widget.setting]]
key = "process_action"
type = "string"
label_key = "settings.process_action.label"
description_key = "settings.process_action.description"
default = ""
[[widget.setting]]
key = "show_elapsed"
type = "bool"
label_key = "settings.show_elapsed.label"
description_key = "settings.show_elapsed.description"
default = true
[[widget.setting]]
key = "notify_on_done"
type = "bool"
label_key = "settings.notify_on_done.label"
description_key = "settings.notify_on_done.description"
default = true
[[widget.setting]]
key = "extra_args"
type = "string"
label_key = "settings.extra_args.label"
description_key = "settings.extra_args.description"
default = ""
advanced = true
# Headless poller: watches ostt's recording.pid (works for recordings started
# by the widget, a hotkey IPC, or a plain `ostt launch` outside Noctalia) and
# publishes { phase, elapsed } to the plugin state channel for the widget(s).
[[service]]
id = "monitor"
entry = "monitor.luau"