Vocalinux v0.18.4
A patch release that closes the reports filed after 0.18.3. Long dictations keep all their audio, model downloads only happen when you say so, Test Dictation and the Dictation Pad stop competing for text, and GPU and thread selection now match what whisper.cpp actually runs on.
Highlights
| Fix | What changed |
|---|---|
| Long dictations kept whole | Push-to-talk recordings past the buffer cap are queued in segments, so a 44.1 kHz mic no longer loses audio after about two minutes |
| Explicit model downloads | Every download asks first with its size, Cancel cancels the whole change without freezing Settings, and switching models keeps your languages |
| Test Dictation gets its own result | The Dictation Pad no longer swallows Test Dictation text, and its routing toggle moved to Settings > Dictation |
| GPU picker and CPU threads | The GPU list follows ggml's own devices and CPU runs use most of your cores instead of 2 threads |
| Cancel a transcription | Press the recording hotkey again (or use the tray item or Test Dictation's Cancel) to drop a slow transcription |
| Slovenian | sl is a supported language
|
New Features
- Cancel an in-progress transcription with the recording hotkey, the tray menu or Test Dictation's Cancel button; nothing is typed or saved to history (#1004; fixes #991 reported by @hopsayer)
- Slovenian (
sl) in Settings and language shortcuts (#995; fixes #970 reported by @samodadela) - Update checks can be turned off in Settings, and they follow the build channel so stable installs only hear about stable releases (#999; fixes #977 reported by @hopsayer)
Bug Fixes
Recognition
- Long dictation segments are queued before the buffer cap instead of being truncated (#976 by @dishanood; fixes #975 reported by @dishanood)
- The GPU picker maps to ggml's device enumeration, logs report the backend really in use, and CPU thread count follows the effective backend (#1001; fixes #987, #990 reported by @hopsayer)
Settings and models
- Model downloads are explicit: no silent scheduling, "Use it" no longer drops the quantized variant, a cancelled download stays cancelled, Cancel does not freeze the dialog, and language settings survive a model change. New
docs/MODEL_SELECTION.mdhardware guide (#1006; fixes #979, #980, #981, #982, #985, #988 reported by @hopsayer) - Test Dictation keeps its result while the Dictation Pad is open, and "Dictate into Dictation Pad" moved to Settings > Dictation (#1005; fixes #983, #986 reported by @hopsayer)
Hotkeys
- Keyboards whose evdev node also reports pointer axes (Logitech K860 and friends) are monitored again, ungrabbed (#978 by @ikarius; fixes #953 reported by @dherdt)
- Flatpak on native X11 uses the X11 listener, so it no longer needs
--device=allthere (#997; fixes #971 reported by @samodadela)
Text injection (Wayland)
- Every RemoteDesktop portal request gets a unique handle token, fixing the missing GNOME consent dialog and 15 second timeout (#996; fixes #993 reported by @hal2100)
- XWayland apps not connected to IBus, such as SoftMaker TextMaker, get text through xdotool (#1003; fixes #972 reported by @kdseattlewa)
- On GNOME Wayland the overlay is mapped at startup so the first recording keeps focus in your app (#998; fixes #992 reported by @lavoie005)
Packaging and installer
- The Flatpak bundles onnxruntime, so Silero VAD works there (#1002; fixes #969 reported by @samodadela)
install.sh --engine=parakeetinstalls a working Parakeet engine again (#1000; fixes #973 reported by @Ma6nus)
Improvements
- Faster Settings, typing and dictation, and mypy as a CI gate (#968)
Thanks
Reporters: @hopsayer, @samodadela, @dishanood, @dherdt, @kdseattlewa, @Ma6nus, @lavoie005, @hal2100. Code: @dishanood (#976) and @ikarius (#978).
Install / Upgrade
Quick Install (Recommended)
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/v0.18.4/install.sh | bashFrom Source
git clone https://github.com/VocaHQ/vocalinux.git
cd vocalinux
./install.shFrom PyPI
# Install the Linux system packages first:
# GTK/AppIndicator, PortAudio, and xdotool/wtype are required.
python3 -m venv ~/.local/share/vocalinux-pypi/venv --system-site-packages
source ~/.local/share/vocalinux-pypi/venv/bin/activate
pip install vocalinux
vocalinuxPyPI installs the Python package only. For automatic system dependency,
desktop integration, and model setup, use the Quick Install command above.
See docs/INSTALL.md for distro-specific PyPI prerequisites.
Arch Linux (AUR)
yay -S vocalinuxAppImage (no install, no root)
Download the .AppImage matching your CPU (x86_64 or aarch64, the latter attached
shortly after this release is published) below:
chmod +x Vocalinux-0.18.4-x86_64.AppImage
./Vocalinux-0.18.4-x86_64.AppImageStill requires xdotool/wtype/ydotool on the host for text injection, same as the PyPI path.
Distro packages (.deb / .rpm)
Download the package matching your distro and CPU (amd64/x86_64, or arm64/aarch64
attached shortly after this release is published):
# Debian / Ubuntu
sudo apt install ./vocalinux_*_amd64.deb
# Fedora
sudo dnf install ./vocalinux-*.x86_64.rpmThin packages: Python, GTK, PyGObject and the AppIndicator typelib come from the
distro, and apt/dnf resolves them. Only pywhispercpp and pynput are
vendored (the first is packaged by neither distro, the second is missing on
Fedora). whisper.cpp runs on CPU in these packages; the Vulkan build is the
AppImage. A PPA and a COPR are not published yet.
On Wayland the default Right Alt hotkey uses evdev: sudo usermod -aG input $USER,
then log out and back in (the input group can read every keyboard and pointer
device; X11 needs nothing).
Flatpak
Install and auto-update via the self-hosted VocaHQ remote (flatpak update
picks up each release):
flatpak install https://vocahq.github.io/vocalinux-flatpak/com.vocalinux.Vocalinux.flatpakrefThe .flatpakref adds the vocahq remote and resolves org.gnome.Platform//50
through Flathub itself — no separate Flathub setup needed. To add the
pieces by hand instead:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --if-not-exists vocahq https://vocahq.github.io/vocalinux-flatpak/vocahq.flatpakrepo
flatpak install vocahq com.vocalinux.VocalinuxOr download the .flatpak matching your CPU (x86_64 or aarch64, attached
shortly after this release is published) — a bundle with no auto-update:
# once: Flathub remote + GNOME runtime (the app itself is not on Flathub)
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//50
flatpak install --user ./Vocalinux-0.18.4-x86_64.flatpak
flatpak run com.vocalinux.VocalinuxWhisper.cpp engine only. Hotkeys need device access as documented in
packaging/flatpak/README.md. Not on Flathub (flathub/flathub#9368).
Snap
Tagged releases also attach vocalinux_0.18.4_amd64.snap
and try the Snap Store (edge and candidate). stable is promoted
from candidate after QA by the snap-promote.yml dispatch workflow.
Wayland typing runs through the RemoteDesktop portal; the snap ships no uinput plug.
The GitHub .snap is also the sideload while a Store revision lags:
sudo snap install --dangerous ./vocalinux_0.18.4_amd64.snap--dangerous is required because this file is not a Store revision. It will not
refresh from the Store. amd64 only.
Verifying what you downloaded
SHA256SUMS covers every file here and is attached once the aarch64 AppImage,
both Flatpak builds, and the snap finish, a few minutes after this release appears.
The wheel and the sdist below are the same bytes published to PyPI.
sha256sum -c --ignore-missing SHA256SUMSEach artifact also carries GitHub build provenance, which ties it to this workflow run:
gh attestation verify Vocalinux-0.18.4-x86_64.AppImage \
--repo VocaHQ/vocalinuxWhat's Changed
- fix(release): recreate refs/remotes dropped by git on the Flatpak remote publish by @devin-ai-integration[bot] in #966
- perf: faster Settings, typing and dictation; mypy in CI, engine interface, architecture docs by @jatinkrmalik in #968
- feat(languages): add Slovenian (sl) to the supported languages by @jatinkrmalik in #995
- fix(hotkeys): use the X11 listener for Flatpak on native X11 sessions by @jatinkrmalik in #997
- fix(overlay): map the dictation overlay at startup on Wayland so the first recording keeps focus by @jatinkrmalik in #998
- fix(hotkeys): monitor keyboard nodes with pointer axes ungrabbed by @ikarius in #978
- fix(installer): pin sherpa-onnx-core so Parakeet installs import by @jatinkrmalik in #1000
- fix(injection): give every RemoteDesktop portal request a unique handle_token by @jatinkrmalik in #996
- fix(whispercpp): map GPU picker to ggml devices and size threads by effective backend by @jatinkrmalik in #1001
- fix(updates): follow the build channel and allow turning update checks off by @jatinkrmalik in #999
- fix(flatpak): bundle onnxruntime for Silero VAD by @devin-ai-integration[bot] in #1002
- fix(recognition): queue long dictation segments before the buffer cap by @dishanood in #976
- fix(text-injection): route XWayland clients without IBus through xdotool by @jatinkrmalik in #1003
- fix(settings): make model downloads explicit and cancel the whole intent by @devin-ai-integration[bot] in #1006
- fix(dictation-pad): keep Test Dictation results and move pad routing to Settings by @jatinkrmalik in #1005
- feat(recognition): cancel an in-progress transcription with the recording hotkey by @jatinkrmalik in #1004
- chore(release): v0.18.4 by @devin-ai-integration[bot] in #1007
New Contributors
- @ikarius made their first contribution in #978
- @dishanood made their first contribution in #976
Full Changelog: v0.18.3...v0.18.4