(Save those fingers!)

Dictation in Linux is so easy and effective now. Give it a try, I think you'll ike it. Check out the video below. In the video I show how to install and configure Vocalinux, and use it with a microphone.

It's free and open source and rivals the best paid programs out there.

šŸ“ŗ Watch on YouTube

šŸ“„ Lab Document on GitHub


Watch for CLIde the parrot - he's a nut.


What Vocalinux does

Hold a key (Right Alt by default), speak, release, and the transcribed text is typed into whatever app has focus. The default engine is whisper.cpp with optional Vulkan GPU acceleration, and all processing happens on your machine. Vocalinux is open source under AGPL-3.0, (as of October 13, 2026).

Other engines available from the README include OpenAI Whisper, Faster Whisper, VOSK and Parakeet.

How the text gets typed

Transcription is only half the job. Vocalinux also has to inject keystrokes into other windows, and the right tool depends on your display server:

Session Tool the installer uses
X11 xdotool
Wayland wtype, and it tries to install ydotool

On Wayland, the installer also adds your user to the input group and writes a udev rule for /dev/uinput. Log out and back in afterward. It does not enable the ydotool service.

ydotool types through the Linux kernel's uinput framework instead of talking to a display server, so it isn't limited to Wayland. The project's README says it also works on X11 and the text console. The ydotoold daemon is mandatory since v1.0.0, and it needs access to /dev/uinput. That's why Part 1 of the video installs ydotool by hand, enables its service and checks the permissions on /dev/uinput. It's optional, since the Vocalinux installer will usually try to handle it for you. I show it so you understand what's happening.

sudo apt install ydotool
sudo usermod -aG input $USER
systemctl --user enable --now ydotool

Security note: Membership in the input group lets a user create virtual input devices through uinput. That's a real privilege, so don't add accounts you don't trust.

Install the careful way

The installer's install.sh is a bootstrap script. It clones the Vocalinux repository to ~/.local/share/vocalinux-install and loads its helper modules from there. In the video I download it, read it, then run it, instead of piping from the internet into bash:

curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vocalinux-install.sh
cat /tmp/vocalinux-install.sh
bash /tmp/vocalinux-install.sh

Models

You choose a Whisper model in Settings → Speech Model. Bigger means more accurate, but slower and heavier. I use Small (EN) in the video as a good balance. whisper.cpp's README lists approximate memory use of 273 MB for Tiny, 388 MB for Base, 852 MB for Small, 2.1 GB for Medium and 3.9 GB for Large.

Voice commands

Turn them on at Settings → Dictation → Voice Commands. From the User Guide: new line, new paragraph, period, comma, question mark, exclamation point, semicolon, colon, delete that (or scratch that), capitalize and all caps. In my testing on Debian Sid with GNOME 50.4, dictating into a terminal worked with the default Clipboard Paste Shortcut setting (Auto-detect).

Remote API (optional)

Vocalinux can send audio to a server you control, but it's off by default.
ā€¼ļø WARNING ā€¼ļø When you enable it, audio leaves your machine.
It supports whisper.cpp's /inference endpoint and OpenAI-compatible /v1/audio/transcriptions servers. If you use it:

  • The API key is stored in plain text in ~/.config/vocalinux/config.json.
  • Use HTTPS and an API key for anything beyond a trusted LAN.

Thanks to the Vocalinux, ydotool and whisper.cpp projects, and to Georgi Gerganov, who created whisper.cpp. Open source software at its best.

ENJOY! šŸ˜Ž