INTEGRATIONS / DBUS

DBus control

Control voxctrl from external scripts, Waybar, Rofi, or any DBus-capable program.

Service

The DBus service name is ai.voxctrl.Dictation, with object path /ai/voxctrl/Dictation and interface ai.voxctrl.Dictation.

Methods

Method Signature What it does
start_recording () → () Begin recording
stop_recording () → () Stop recording and process audio
toggle_recording () → () Toggle recording state
get_status () → s Returns "idle", "recording", or "transcribing"
get_word_count () → u Total words dictated this session

Signals

Signal Signature What it does
status_changed (s) Emitted when recording state changes
text_injected (s) Emitted after text is delivered to a target

Example usage

# Start recording
dbus-send --session --dest=ai.voxctrl.Dictation \
  /ai/voxctrl/Dictation \
  ai.voxctrl.Dictation.start_recording

# Watch for injected text
dbus-monitor --session "type='signal',interface='ai.voxctrl.Dictation'"

# Get current status ("idle", "recording", or "transcribing")
dbus-send --session --print-reply \
  --dest=ai.voxctrl.Dictation \
  /ai/voxctrl/Dictation \
  ai.voxctrl.Dictation.get_status

Bind toggle_recording to a click handler on a Waybar status indicator, and get_word_count to a tooltip. qdbus and dbus-send both work — use --session.

The DBus service is Linux-only — it's a stub on other platforms (compiles but does nothing).