I wanted to start dictation from a script and found there is no way to do it.
vocalinux takes flags at startup — --debug, --wayland, engine and model selection — but once it is running there is no handle on it. D-Bus appears in two places and both are inbound: main.py asks org.freedesktop.DBus whether the name is already taken, for single-instance, and suspend_handler.py listens to logind. Nothing is exported. The IBus engine is an input method, not an interface to the app.
A small D-Bus interface — start, stop, toggle, current state, maybe the last transcript — would make dictation scriptable, bindable to a hardware key through the desktop's own shortcut system instead of through evdev, and reachable from anything else on the session bus.
For reference, VoiceInk does the equivalent on macOS through App Intents, which is how it ends up inside Shortcuts and Raycast flows. I have filed the same thought for VocaMac and VocaWin, since it is one capability with three different mechanisms.
I wanted to start dictation from a script and found there is no way to do it.
vocalinuxtakes flags at startup —--debug,--wayland, engine and model selection — but once it is running there is no handle on it. D-Bus appears in two places and both are inbound:main.pyasksorg.freedesktop.DBuswhether the name is already taken, for single-instance, andsuspend_handler.pylistens to logind. Nothing is exported. The IBus engine is an input method, not an interface to the app.A small D-Bus interface — start, stop, toggle, current state, maybe the last transcript — would make dictation scriptable, bindable to a hardware key through the desktop's own shortcut system instead of through evdev, and reachable from anything else on the session bus.
For reference, VoiceInk does the equivalent on macOS through App Intents, which is how it ends up inside Shortcuts and Raycast flows. I have filed the same thought for VocaMac and VocaWin, since it is one capability with three different mechanisms.