chore(release): prepare v0.19.0
CI / security (pull_request) Successful in 1m13s
CI / lint (pull_request) Successful in 24s
CI / ai-review (pull_request) Successful in 7s

The first Voculinux release. It has no phase suffix, so the tag is v0.19.0
and the xbps version is 0.19.0_1.

- src/vocalinux/version.py, the Void template (version and _tag), the web
  softwareVersion and package version, the README badge and current-release
  blurb
- docs/UPDATE.md: What's New in v0.19.0, and the source checkout tag
- CHANGELOG.md: v0.19.0 entry from v0.18.5..main, the fork's changes and the
  upstream fixes carried after 0.18.5
- SECURITY.md: 0.19.x is the supported line
- pyproject.toml: project URLs point at git.bongbetic.com/xavierk/voculinux
This commit is contained in:
2026-11-07 01:46:38 +05:30
parent dc7e964981
commit 6c09812271
10 changed files with 58 additions and 17 deletions
+17
View File
@@ -12,6 +12,23 @@ Release history for Vocalinux.
## Current stable
**[v0.19.0](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.0)** (2026-11-07)
The first Voculinux release: a hard fork of 0.18.5 for Void Linux (glibc, x86_64), published as a signed xbps repository from the fork's Gitea host. Changes since v0.18.5, from the commit subjects and PR titles on `main`:
- **Void Linux packaging:** signed xbps repository and release pipeline, a package smoke gate across all templates, the `voculinux` template built from the release tag (#37, #39), and carried templates for `python3-pywhispercpp` 1.5.0 with CPU variants loaded at runtime (#49), `python3-pynput`, `python3-PyAudio` and `python3-pysocks`. The Void package is the only published install channel, and upstream install references are gone (#38, #40).
- **Identity:** user-visible names are Voculinux, with the identity centralised in one module (#17). An existing configuration and custom dictionary are imported once on first run (#18), and the migrated dictionary points at the fork (#36).
- **Model default:** a memory-aware whisper.cpp ladder with a conditional backend order (CUDA only with a complete toolkit, then Vulkan, then CPU). Free-memory thresholds are per backend, from the installed-build measurement in #19. A load failure steps down one rung and retries once (#20).
- **Dictation on niri:** a niri keybind pack and Dank Material Shell notes (#22), a niri-aware inject probe and conflict-free example keybinds (#47). The injection fallback ladder is portal, direct typing, virtual-input tool, XWayland, then clipboard (#31).
- **Audio:** system audio is captured from PipeWire sink monitors. A configured microphone is never swapped, and the microphone is never opened for system audio (#48).
- **Interface and scripting:** a dictation state signal and property on D-Bus (#21), a brand accent hook in the GTK colour scheme (#23), and the installed-build performance baseline protocol (#19).
- **Website:** rebranded to Voculinux, with Google Analytics removed and site links pointing at the fork (#24, #35).
- **Fixes:** CUDA detection outside `PATH`, an IBus warning on niri, update checks against the fork's Gitea repository (#36), and the review findings for the Void port (#34).
Carried from upstream after 0.18.5 (VocaHQ/vocalinux PR numbers): overlay Wayland detection (#1030, #1035), quitting when the dock closes the overlay window (#1028, #1036), the selected microphone's full name in the device tooltip (#1029, #1037), escaped device names in the audio status label (#1043), Parakeet Underdog Bark 3.0 models (#1031), the snap build from locked inputs (#1041), the GitHub Actions dependency bump (#1042), and the website's 404 page and SEO work (#1038, #1039, #1040).
See [docs/UPDATE.md](docs/UPDATE.md#whats-new-in-v0190) for the highlight table.
**[v0.18.5](https://github.com/VocaHQ/vocalinux/releases/tag/v0.18.5)** (2026-10-27)
Patch on the stable line: a stop that races a recording start can no longer leave the microphone recording with no way to halt it, and a stalled microphone read can no longer hang Stop forever, keyboards survive suspend and the GNOME lock screen again because the evdev grab is released when forwarding cannot run, Dictation Pad and Settings no longer bind to other windows or travel workspaces together on Wayland, Ctrl+mouse-wheel zoom works again, the installer gains an upgrade mode that keeps your existing configuration, paste-injection copies are marked sensitive on wl-clipboard 2.2+ so clipboard managers that honor the hint keep them out of history, and AUR source publication is gated on attested release sdists.
+2 -2
View File
@@ -11,7 +11,7 @@
[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Privacy: on-device](https://img.shields.io/badge/privacy-on--device-success)](#privacy-and-security)
[![X11 & Wayland](https://img.shields.io/badge/display-X11%20%7C%20Wayland-lightgrey)](#features)
[![Release](https://img.shields.io/badge/release-v0.18.5-478061)](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.18.5)
[![Release](https://img.shields.io/badge/release-v0.19.0-478061)](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.0)
[Website](https://voculinux.com) · [Install](#install) · [Docs](#documentation) · [Releases](https://git.bongbetic.com/xavierk/voculinux/releases) · [Issues](https://git.bongbetic.com/xavierk/voculinux/issues)
@@ -21,7 +21,7 @@ Voculinux turns speech into typed text in whatever app has focus. It is a free,
No account is required. Models download once. After that, speech-to-text stays on your machine.
**Current release:** [v0.18.5](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.18.5). Patch: a stop that races a recording start can no longer leave the mic recording forever, keyboards stay alive through suspend and the GNOME lock screen, Ctrl+mouse-wheel zoom works again, Dictation Pad and Settings stop travelling workspaces together, and paste-injection copies are marked sensitive for clipboard history on wl-clipboard 2.2+. Details: [docs/UPDATE.md](docs/UPDATE.md).
**Current release:** [v0.19.0](https://git.bongbetic.com/xavierk/voculinux/releases/tag/v0.19.0). The first Voculinux release: a Void Linux package from the signed repository above, niri and Dank Material Shell support, a model default chosen by free GPU memory, and a fix that keeps system-audio capture from ever opening the microphone. Details: [docs/UPDATE.md](docs/UPDATE.md).
## Features
+2 -1
View File
@@ -6,7 +6,8 @@ Only the current stable minor line receives security fixes:
| Version | Supported |
| ------- | --------- |
| 0.18.x | Yes |
| 0.19.x | Yes |
| 0.18.x | No |
| 0.17.x | No |
| 0.16.x | No |
| 0.15.x | No |
+24 -1
View File
@@ -25,7 +25,7 @@ installer as below.
```bash
cd voculinux
git fetch origin
git checkout v0.18.5
git checkout v0.19.0
./install.sh
```
@@ -90,6 +90,29 @@ Missing system packages: see [INSTALL.md](INSTALL.md) or [DISTRO_COMPATIBILITY.m
---
## What's New in v0.19.0
0.19.0 is the first Voculinux release: a hard fork of the 0.18.5 line for Void Linux
(glibc, x86_64), installed and updated through the signed xbps repository. The default
engine is still whisper.cpp, and the speech models still download on first run against
pinned checksums.
### 0.19.0 highlights
| Area | Change |
|------|--------|
| Packaging | Signed Void xbps repository with the `voculinux` package. Carried templates for pywhispercpp 1.5.0 (with CPU variants), pynput, PyAudio and PySocks. Install and update with `xbps-install`. |
| Names and first run | User-visible names are Voculinux. An existing configuration and custom dictionary are copied once on first run; the Voculinux configuration always wins after that. |
| Model default | The whisper.cpp model is chosen at load time from free memory: VRAM on a GPU build, system RAM otherwise. Thresholds are per backend, measured on a 4 GB RTX 2050. A load failure steps down one size and retries once. |
| niri and Dank Material Shell | A niri keybind pack for dictation toggles. On niri, typing goes straight to the cursor with no permission prompt. The tray is a standard StatusNotifier item. |
| Audio | System-audio sources come from PipeWire. A saved system-audio source that disappears is an error, never a silent switch to the microphone. |
| Scripting | The D-Bus interface reports dictation state (idle, listening, processing) for bars and scripts. |
| Fixes | CUDA detection outside `PATH`, the IBus warning on niri, and update checks against this fork's Gitea repository. |
Full change list: [CHANGELOG.md](../CHANGELOG.md).
---
## What's New in v0.18.5
0.18.5 is a **patch** on the stable line. Default engine is still whisper.cpp. It closes the reports filed after 0.18.4: a stop pressed while a recording is starting can no longer leave the microphone recording forever, microphones that stall mid-read can no longer wedge dictation, keyboards survive suspend and the GNOME lock screen, Ctrl+mouse-wheel zoom works again, and the installer learns an upgrade mode that keeps your settings.
+2 -2
View File
@@ -1,11 +1,11 @@
# Template file for 'voculinux'
pkgname=voculinux
version=0.18.5
version=0.19.0
revision=1
# The release tag this template names: v + __version__, with the pre-release
# hyphen kept (the tag is v0.19.0-beta while version is 0.19.0beta). The release
# gate (packaging/void/build-release.sh check-tag) refuses any mismatch.
_tag=v0.18.5
_tag=v0.19.0
# The release sdist ships no setup.py (setuptools pyproject-only), so the
# build goes through the PEP 517 wheel (cf. Solaar, PhotoCollage).
build_style=python3-pep517
+5 -5
View File
@@ -123,11 +123,11 @@ voculinux = "vocalinux.main:main"
voculinux-gui = "vocalinux.main:main"
[project.urls]
Homepage = "https://github.com/VocaHQ/vocalinux"
Documentation = "https://github.com/VocaHQ/vocalinux/tree/main/docs"
Repository = "https://github.com/VocaHQ/vocalinux"
Issues = "https://github.com/VocaHQ/vocalinux/issues"
Changelog = "https://github.com/VocaHQ/vocalinux/releases"
Homepage = "https://git.bongbetic.com/xavierk/voculinux"
Documentation = "https://git.bongbetic.com/xavierk/voculinux/src/branch/main/docs"
Repository = "https://git.bongbetic.com/xavierk/voculinux"
Issues = "https://git.bongbetic.com/xavierk/voculinux/issues"
Changelog = "https://git.bongbetic.com/xavierk/voculinux/releases"
[tool.uv]
# Contributors may use uv 0.12 or 0.13. CI and lock/export generation use
+2 -2
View File
@@ -2,8 +2,8 @@
Version information for Voculinux.
"""
__version__ = "0.18.5"
__version_info__ = (0, 18, 5)
__version__ = "0.19.0"
__version_info__ = (0, 19, 0)
__author__ = "Jatin K Malik"
__email__ = "jatinkrmalik@gmail.com"
__license__ = "AGPL-3.0-only"
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "voculinux-website",
"version": "0.18.5",
"version": "0.19.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "voculinux-website",
"version": "0.18.5",
"version": "0.19.0",
"dependencies": {
"@types/node": "^20.14.10",
"@types/react": "^18.3.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "voculinux-website",
"version": "0.18.5",
"version": "0.19.0",
"private": true,
"type": "module",
"scripts": {
+1 -1
View File
@@ -29,7 +29,7 @@ const homeJsonLd = [
},
description:
"Offline voice dictation and speech-to-text for Linux with whisper.cpp, Faster Whisper, Whisper, VOSK, and Parakeet.",
softwareVersion: "0.18.5",
softwareVersion: "0.19.0",
author: {
"@type": "Person",
name: "Xavier Karma",