Installing Sotto
Install Sotto from the AppImage or build it with the GPU backend that matches your hardware, then complete first-run setup.
The AppImage
The download on mauvely.com is a single-file AppImage:
chmod +x Sotto-x86_64.AppImage
./Sotto-x86_64.AppImage
Nothing to install, nothing to uninstall — delete the file to remove it.
Recommended companion packages
Sotto needs a way to put text into other applications. On Arch:
sudo pacman -S --needed wl-clipboard ydotool
| Package | Why |
|---|---|
wl-clipboard |
Setting and restoring the clipboard on Wayland |
ydotool |
Synthesising the paste keystroke, or typing text directly |
Without either, Sotto can still transcribe — the text just ends up somewhere you have to fetch it from. See Dictating.
Setting up ydotool
Once:
sudo systemctl enable --now ydotool
Your user needs write access to /dev/uinput; the ydotool package ships udev rules for that.
If you would rather not run ydotool, Sotto can use the desktop’s RemoteDesktop portal instead — it asks for permission once and remembers it.
Building from source
Building lets you pick the GPU backend, which is the single biggest factor in transcription speed.
Dependencies (Arch)
sudo pacman -S --needed base-devel cmake ninja git \
qt6-base qt6-declarative qt6-multimedia qt6-svg layer-shell-qt
Pick a backend
| Backend | Packages | Flag |
|---|---|---|
| ROCm (AMD) | rocm-hip-sdk |
-DSOTTO_GPU=hip |
| Vulkan (any GPU) | vulkan-headers vulkan-icd-loader glslang shaderc |
-DSOTTO_GPU=vulkan |
| CUDA (NVIDIA) | cuda |
-DSOTTO_GPU=cuda |
| CPU only | — | -DSOTTO_GPU=cpu |
Build
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DSOTTO_GPU=vulkan
cmake --build build -j$(nproc)
./build/sotto # first run opens Settings
sudo cmake --install build # optional
whisper.cpp is fetched during configuration and linked statically, so the result is one binary.
First run
- 1Download a model
Settings opens automatically. Nothing works until a speech model is installed.
Large v3 Turbo (~1.6 GB) is the recommended default on a discrete GPU. Small (~488 MB) if you want something lighter. See Speech models.
- 2Confirm the shortcut
KDE asks you to confirm the global shortcut binding — Meta+Alt+D by default. You can change or disable it at any time; it also appears in System Settings → Shortcuts.
- 3Try it
Focus any text field, press the shortcut, talk, and press it again. Watch the pill at the bottom of your active screen.
Desktop support
| Desktop | State |
|---|---|
| KDE Plasma / KWin (Wayland) | The primary target. Fully supported. |
| Hyprland and other wlroots compositors | The overlay works; text injection needs ydotool. On the roadmap. |
| GNOME | Layer-shell is unsupported, so the overlay falls back to an ordinary always-on-top window. Portals work. |
| X11 | Works, with the fallback overlay positioned on the screen under the pointer. |
Verifying your GPU is being used
The bottom of the Settings window names the active backend. If it says cpu, transcription will be
noticeably slow — rebuild with -DSOTTO_GPU=vulkan or hip.