Linux terminal voice typing

On the Linux command line, dictation that types beats dictation that pastes.

Linux terminals reserve Ctrl+C and Ctrl+V for the shell and paste with Ctrl+Shift+V, and each Wayland desktop exposes keyboard simulation differently. A voice tool has two choices: guess the right paste chord for every terminal, or type the characters through a helper program that suits your session. This guide covers terminal paste keys, the five common typing helpers, Wayland shortcut limits, and a few terminal settings that change where dictated text lands.

Source-reviewed

1. Why Ctrl+V does nothing useful in a Linux terminal

GNOME's Terminal help says paste is Shift+Ctrl+V and that “the standard keyboard shortcuts, such as Ctrl + C, cannot be used to copy and paste text.” KDE's Konsole documents Edit → Paste as Ctrl+Shift+V. kitty maps ctrl+shift+v to paste_from_clipboard, and its Shift+Insert pastes the primary selection, not the clipboard. Terminals keep Ctrl+C free to interrupt a running program.

A plain Ctrl+V therefore reaches the shell. In bash, readline binds Ctrl+Q and Ctrl+V to quoted-insert, which adds the next character typed to the line verbatim. A dictation tool that pastes with the desktop-standard Ctrl+V gets no text in a terminal, or a stray control character. Tools that let you pick Ctrl+Shift+V per app can work around it, and typing tools avoid the question.

2. The five typing helpers and when each one works

A typing helper creates keystrokes on behalf of another program. Which one works depends on your display server, and on Wayland it also depends on your compositor. None of them recognizes speech; they only type the text another program gives them.

The X11 helper is the oldest. xdotool's README says it simulates input through X11's XTEST extension and warns, “If you are using Wayland, please be aware this software will not work correctly.” On Wayland, wtype is “xdotool type for Wayland” and works through the virtual-keyboard Wayland protocol, which wlroots compositors such as Sway and Hyprland provide. KWtype's README describes it as virtual keyboard input for KDE Plasma Wayland, using a privileged Fake Input protocol that only KWin implements.

  • xdotool: X11 sessions only, using the XTEST extension.
  • wtype: Wayland compositors with the virtual-keyboard protocol, such as Sway and Hyprland.
  • kwtype: KDE Plasma on Wayland, using KWin's Fake Input protocol.
  • dotool: any session, through the kernel's uinput module; it handles keyboard layouts.
  • ydotool: any session, through uinput, with the ydotoold daemon required since v1.0.0.

3. Find your session type and install a helper

Run echo $XDG_SESSION_TYPE in a terminal; it prints x11 or wayland. On GNOME's Wayland session, wtype and kwtype don't apply, which leaves the uinput helpers. dotool's README says it “works systemwide and supports keyboard layouts”; dotool was written for the Numen project, and a source install ends by reloading udev rules with sudo udevadm control --reload && sudo udevadm trigger. ydotool's README says its daemon needs access to /dev/uinput, which “usually requires root permissions.”

On Ubuntu, packages.ubuntu.com lists wtype, xdotool, and ydotool in the universe repository for both 22.04 (jammy) and 24.04 (noble) as of October 2026, so sudo apt install wtype or sudo apt install xdotool is enough. dotool isn't in the Ubuntu archive, so build it from source with Go, libxkbcommon-dev, and scdoc. Ubuntu's ydotool package is version 0.1.8, older than the 1.0 releases that the project's README now describes.

  • X11: sudo apt install xdotool.
  • Sway or Hyprland: sudo apt install wtype.
  • KDE Plasma Wayland: build KWtype (Qt6, KWayland, xkbcommon) with meson.
  • GNOME Wayland: dotool from source or ydotool, with /dev/uinput access.

4. Wayland and global push-to-talk keys

On Wayland, an app can't always grab a key system-wide, so a hold-to-talk shortcut that works on X11 may never fire. The reliable workaround is to let the desktop own the key and run a command. GNOME's help describes it: Settings → Keyboard → View and Customize Shortcuts → Custom Shortcuts, then Add Shortcut. Enter a name and a command, press the key combination, and click Add. GNOME notes that the command must be a valid system command, so test it in a terminal first.

Choose a key no terminal uses. Ctrl+Shift+C and Ctrl+Shift+V are taken in nearly every Linux terminal, and Konsole also uses Ctrl+Shift+. and Ctrl+Shift+/ for input copying. A desktop-level shortcut fires before the terminal sees the key, so a collision silently takes the key away from the terminal.

5. Terminal settings that change where dictated text goes

Konsole has Edit → Copy Input To → All Tabs in Current Window, which “allows input from the current session to be sent simultaneously to all sessions in current window,” and Select Tabs… (Ctrl+Shift+.) to choose specific tabs. With either on, dictated text reaches every selected shell at once, which is useful for fleets and dangerous by accident. Edit → Copy Input To → None (Ctrl+Shift+/) turns it off.

kitty applies paste_actions to pasted and dropped text. The default, quote-urls-at-prompt,confirm, asks before pasting text that contains terminal control codes, and confirm-if-large asks before pastes above 16 KB. Text from a typing helper arrives as keystrokes rather than a paste, so these checks don't see it. Review what you dictate the same way you'd review anything you type.

6. IraVoice on Linux (beta): typed, not pasted

IraVoice 1.2.2 runs on Linux as a beta, alongside macOS and Windows. It installs with one command, curl -fsSL https://iravoice.com/install.sh | bash, as an AppImage that runs on any 64-bit distribution from 2022 or later and updates itself; you can also download the AppImage, make it executable with chmod +x, and run it. A .deb (sudo apt install ./IraVoice-*.deb) and an .rpm (sudo dnf install ./IraVoice-*.rpm) are offered too; they install the command /usr/bin/iravoice and don't update themselves. There is no Flatpak, Snap, or AUR package. Speech recognition runs on the computer with NVIDIA Parakeet and works offline once the model has downloaded.

IraVoice types the words directly through a typing helper it picks automatically: wtype, kwtype, dotool, ydotool, or xdotool. Because nothing is pasted, the Ctrl+V versus Ctrl+Shift+V problem never arises in GNOME Terminal, Konsole, kitty, or any other terminal. You may need to install one of the helpers yourself, and the uinput helpers need permission to /dev/uinput. Wayland support is limited in the beta.

The default key is Ctrl+Space; you can change it under General. If it doesn't reach IraVoice on Wayland, bind iravoice --toggle-transcription (or, with the AppImage, its full path followed by --toggle-transcription) to a GNOME or KDE custom shortcut, which starts and stops dictation in the running app. Two limits apply on Linux: code names aren't available, because the beta can't detect the focused app, and the Esc cancel shortcut isn't offered there (Cancel is in IraVoice's tray menu). To correct a misheard word so IraVoice learns it, press Ctrl+Alt+Shift+F or, if Wayland keeps that key from reaching IraVoice too, choose Fix Last Dictation… from the tray menu.

Decision guide

Which typing helper fits your Linux session?

Start from your display server and compositor; the terminal matters less once text is typed rather than pasted.

If you needChooseWhy
An X11 session (any desktop)xdotoolIt uses X11's XTEST extension; its README warns it won't work correctly on Wayland.
Sway, Hyprland, or another wlroots compositorwtypeIt uses the virtual-keyboard Wayland protocol those compositors provide.
KDE Plasma on WaylandkwtypeIt uses KWin's Fake Input protocol, which only KWin implements.
GNOME on Waylanddotool or ydotoolBoth use the kernel's uinput, which works under any compositor if you have /dev/uinput access.
On-device dictation in any terminal, on any distroIraVoice (Linux beta)It types through the helper automatically; there are no code names on Linux.

Primary sources

Use the current documentation.

This guide was reviewed October 2, 2026. Product versions, settings, policies, and availability can change.

  1. GNOME Terminal help: Copy and paste ↗

    Paste is Shift+Ctrl+V; standard shortcuts such as Ctrl+C can't copy or paste.

  2. kitty: Configuration reference ↗

    ctrl+shift+v paste_from_clipboard, Shift+Insert pastes the selection, and paste_actions confirm behavior.

  3. wtype manual page (GitHub) ↗

    Keyboard simulation for Wayland through the virtual-keyboard protocol.

  4. ydotool README ↗

    uinput-based input, the ydotoold daemon required since v1.0.0, and /dev/uinput permissions.

  5. dotool README ↗

    uinput-based keyboard input that works systemwide and supports layouts; packages and source install.

Questions

What readers usually ask next.

Why doesn't Ctrl+V paste in my Linux terminal?

Linux terminals keep Ctrl+C and Ctrl+V for the shell and paste with Ctrl+Shift+V. In bash, readline binds Ctrl+V to quoted-insert, which inserts the next character literally.

Which typing tool works on GNOME Wayland?

The uinput helpers: dotool or ydotool. Both need access to /dev/uinput. wtype needs the virtual-keyboard protocol that wlroots compositors provide, and kwtype needs KWin, so neither fits GNOME.

Does xdotool work on Wayland?

Not correctly. Its README says it uses X11's XTEST extension and warns that it won't work correctly under Wayland. Use wtype, kwtype, dotool, or ydotool there.

How do I start dictation from a keyboard shortcut on Wayland?

Let the desktop own the key. In GNOME, go to Settings → Keyboard → View and Customize Shortcuts → Custom Shortcuts, add a command, and assign a key. For IraVoice, the command is iravoice --toggle-transcription, or the AppImage's full path followed by --toggle-transcription.

Does IraVoice spell code names in Linux terminals?

No. The Linux beta can't detect the focused app, so code names are Mac and Windows only. Dictation, learned corrections, and on-device recognition work on Linux.

Is IraVoice available for Fedora or Arch?

Yes, in beta. Run curl -fsSL https://iravoice.com/install.sh | bash: it installs the AppImage, which runs on Fedora, Arch, and any other 64-bit distribution from 2022 or later and updates itself. On Fedora you can install the .rpm instead with sudo dnf install ./IraVoice-*.rpm. There is no Flatpak, Snap, or AUR package.

Mac, Windows, and Linux

Try private, on-device dictation for yourself.

Hold one key, speak, and the words are typed where your cursor is. The 3-day free trial starts with your first dictation.