Voice typing for Linux that cleans up your words
Double-tap Ctrl in any app and talk. Your words land where your cursor is, and every time you pause, the sentence is tidied up: the "um"s go, the punctuation arrives, and it reads the way you meant it. The speech recognition runs on your own machine, and it works under Wayland and X11.
It types everywhere, even where Wayland says no
Most dictation tools broke when Linux moved to Wayland: the compositor no longer lets one app watch keys or type into another. Talk goes underneath. The trigger key and the typing both use the kernel's own input layer, so they work in every app on GNOME, KDE and Hyprland alike, the same way a physical keyboard does.
Private by design
Your voice is transcribed on your own device. It never leaves your machine to become text.
Any app
Talk types into whatever field has your focus: mail, chat, documents, your AI tools.
Cleaned as you pause
Each finished sentence lands polished: capitals, punctuation, no fillers, phrased how you asked.
Every alphabet
Text is inserted in a way that keeps any script intact, whatever language you speak.
Ubuntu and other Debian based systems
sudo apt install ./talk_amd64.deb
The package sets up the input permissions Talk needs to trigger and type. Log out and back in once after installing, then launch Talk from your app grid, sign in, and download the speech pack for your language.
One command. Everything set up.
A deb can't configure itself on Arch, so this script does what the Ubuntu installer does for you: unpack Talk, install the runtime packages, and grant the input access dictation needs to type. No group, no logout.
curl -fsSL https://talk.letbe.ai/install-omarchy.sh | bash
Then run talk-desktop. Sign in, pick your spoken language, download the pack, and double-tap Ctrl in any text field.
Prefer to do it by hand?
# unpack the app mkdir -p /tmp/talk && cd /tmp/talk ar x ~/Downloads/talk_amd64.deb sudo tar -C / -xf data.tar.gz # runtime packages sudo pacman -S --needed wl-clipboard wtype webkit2gtk-4.1 gtk3 libayatana-appindicator gtk-layer-shell pipewire-alsa gst-plugins-base gst-plugins-good gst-libav gstreamer # input access: the 'input' group owns /dev/uinput AND /dev/input, so it grants # both typing and the trigger. (uaccess can't: /dev/uinput has no seat.) sudo tee /etc/udev/rules.d/99-talk-uinput.rules <<'RULE' KERNEL=="uinput", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput" RULE echo uinput | sudo tee /etc/modules-load.d/talk-uinput.conf sudo modprobe uinput sudo udevadm control --reload-rules && sudo udevadm trigger sudo gpasswd -a "$USER" input
Log out and back in once (for the input group), then run talk-desktop.
How Talk behaves on Linux
Sentences, not letters. On Linux your words appear a finished sentence at a time, each one landing when you pause, already cleaned up.
It types while it listens. Double-tap Ctrl to stop dictation before you click elsewhere, so your words only ever land where you meant them.
Your clipboard is safe. Talk briefly uses the clipboard to insert text so every alphabet arrives intact, and puts your own clipboard back when it is done.
If typing does nothing: you are probably not in the input group yet. Log out and back in once after installing.
Why the trigger is a double-tap of Ctrl: single keys collide — F8 jumps to the browser's address bar, F9 is bound by Omarchy, function keys vary by keyboard. A lone modifier does nothing in any app, is on every keyboard, and two quick taps never fire by accident. You can rebind to any key in Talk's settings; on Hyprland, hyprctl binds shows what a key is already used for.