Dictation is a solved problem on macOS and Windows and an unsolved one on Linux, for a structural reason rather than a lack of effort. Wayland deliberately refuses to let an application read the keyboard while it is unfocused or type into a window it does not own — the two capabilities a dictation tool is built out of. Anything that works has to ask the desktop's portal for perproject instead, and the portals disagree with each other: KDE and GNOME present a dialog, Hyprland presents nothing, X11 has no such interface at all. The second half of the problem is distribution. A dictation tool that a user has to clone, create a virtualenv for, and start by hand is a script, not an application on their machine.
Voisu runs as a set of systemd user services rather than a login-session process, so it is supervised, restartable, and — deliberately — not auto-started until the user enables it. The trigger key is registered through the desktop's xdg-desktop-portal GlobalShortcuts interface, which is the only sanctioned way to hold a key binding while unfocused, and the transcript is injected through the RemoteDesktop portal. Rust was chosen mainly for what it does to distribution: it compiles to a single native binary with no interpreter and no runtime to ship alongside it, which is precisely why the same artefact drops into a Fedora COPR, an AUR package and a GPG-signed apt repository, and why installing it is one package-manager command with no dependency chain behind it. For a process that stays resident for the length of a login session, having the compiler reject whole categories of fault before the binary exists is worth more than it would be in a short-lived script.



