mouthtype

EARLY DAYS. ANOTHER DESKTOP.

Mouthtype for Linux.

An experimental dictation client for Arch/Omarchy, with a bar menu, floating pill and paste delivery.
Install from source, or point your coding agent at the step-by-step install file.

LINUX x86_64 · ARCH/OMARCHY · HYPRLAND · PIPEWIRE · DEVELOPMENT CLIENT

  1. Start with the right setup.

    The target is Linux x86_64, Arch/Omarchy, Hyprland and PipeWire. The client is a terminal-driven service; the Omarchy plugin gives it a bar menu, a floating pill and settings. Other compositors and architectures are not supported by this client.

    Use your distro’s signed package management for python, python-pip, curl, pipewire-audio, ffmpeg, wl-clipboard, wtype and libnotify. Optional AI cleanup additionally needs git, cmake and base-devel. Keep ~/.local/bin on your PATH.

  2. Install the client.

    The download is the GPL-3.0 source archive for the current Mac release. It includes the Linux client, the Omarchy plugin under tools/omarchy-plugin (in archives that contain that directory), the setup guides and license notices, with no models or personal data bundled. It is not a packaged desktop release.

    Extract it and open a terminal in the extracted source directory. Read tools/linux-desktop/README.md, then run python3 tools/linux-desktop/install.py --prefix "$HOME/.local".

    This installs ~/.local/bin/mouthtype-linux and its payload. The installer refuses to overwrite an existing installation; move an old one aside to upgrade. Check it with mouthtype-linux capabilities.

  3. Prepare speech explicitly.

    From the same source directory, run python3 tools/linux-desktop/setup_speech.py --destination "$HOME/.local/share/mouthtype/speech-candidate". The destination must be new.

    This downloads and verifies the pinned speech model, creates a dedicated Python environment and writes a local configuration. It does not record or start anything. Confirm the setup with mouthtype-linux --config "$HOME/.local/share/mouthtype/speech-candidate/linux.json" doctor.

  4. Install the Omarchy plugin.

    Run python3 tools/omarchy-plugin/install.py. It adds the Mouthtype widget to the right side of the bar, enables a systemd user service so dictation starts with every login and is restarted if it stops, starts it now, and restarts the Omarchy shell. Pass --no-autostart to keep the service manual; Launch at Login in the menu toggles it later.

    From the menu: start, stop and cancel dictation, read and copy recent takes, retry saved audio, transcribe one audio file, choose the Classic or Hi-Fi floating pill and the text font, and pick Basic, Fast or Thorough cleanup. Fast and Thorough download verified local models and build the pinned llama.cpp server on your explicit request.

  5. Choose delivery and a key, then speak.

    The default delivery is recovery-only: a take is saved locally and nothing is typed. In Paste Options, choose Paste into the active window to paste each take into the window that was active when you started, with your previous text clipboard restored. Terminals get Ctrl+Shift+V and no multi-line pastes.

    Under Change Dictation Shortcut…, pick press-to-toggle or hold-to-talk on any key, including a lone modifier such as Right Ctrl. Keys Hyprland already binds are refused. Then press the key, speak, and watch the pill at the bottom of the display. Every take also stays readable with list and recover ID.

    Linux cannot detect password fields, so pasting goes wherever the cursor is, and insertion is not verified. Audio and text never leave the machine.