diff --git a/README.md b/README.md
index 4ba3f41..67d4258 100644
--- a/README.md
+++ b/README.md
@@ -32,41 +32,39 @@ It's a free, GPLv3-licensed desktop app that lets you dictate text into *any* ap
No internet required. No data leaves your machine. Just speak and type.
-## ๐ What's New in v0.12.0-beta
+## ๐ What's New in v0.13.0-beta
-> ๐ **Release: Remote API recognition, Silero VAD, and reliability hardening across threading, IBus, settings, installer, and model metadata.**
+> ๐ **Release: Guided whisper.cpp model selection, plus Wayland text-injection reliability, hotplug keyboard support, dictation spacing fixes, and refreshed website docs.**
### ๐ Highlights
| Feature | Description |
|---------|-------------|
-| **๐ Remote API Engine** | New speech recognition backend for self-hosted or compatible remote transcription services |
-| **๐๏ธ Silero VAD** | Neural voice activity detection drops silence-only buffers for cleaner, faster dictation |
-| **๐งต Thread Safety** | Hardened Remote API, IBus, and text injection threading behavior |
-| **๐ IBus Reliability** | Preserves user engines for dead keys and captures scoped engines during activation |
-| **โ๏ธ Settings Polish** | Remote Server section now respects the Advanced toggle and the dialog fits lower-resolution screens |
-| **๐ฆ Installer & Models** | CUDA diagnostics include auto-remediation and model download sizes are corrected |
+| **๐๏ธ Guided Whisper Models** | Pick a whisper.cpp **size** and **specialization** (English-only, quantized, Turbo) through split dropdowns with in-app guidance |
+| **๐ Hotplug Keyboard Support** | Shortcuts keep working on keyboards connected after startup, with automatic recovery from disconnects |
+| **โ๏ธ Dictation Spacing** | Spacing is preserved between speech segments separated by a pause in the same session |
+| **๐ฅ๏ธ Wayland Reliability** | Fixes silent text drops on wlroots/COSMIC compositors and garbled output on non-US keyboard layouts |
### โจ New Features
-- **Remote API speech recognition engine** โ Configure Vocalinux to use compatible remote transcription services while keeping existing local engines available (#335)
-- **Silero VAD** โ Neural voice activity detection filters silence-only buffers for cleaner recognition when ONNX Runtime support is installed (#447)
+- **Guided whisper.cpp model variants** โ The Settings dialog now splits whisper.cpp selection into **Model Size** and **Specialization**, exposing English-only, quantized (Q5/Q8), Large v3 Turbo, and legacy large models with language-aware recommendations and hover guidance. Exact model IDs (e.g. `medium.en-q5_0`, `large-v3-turbo`) can also be passed to `--model` (#465)
### ๐ Bug Fixes
-- **Threading**: Harden Remote API, IBus, and text injection thread safety (#452)
-- **IBus**: Preserve user engines for dead keys and capture the current engine during scoped activation (#457, #458)
-- **UI**: Keep the Remote Server section behind the Advanced toggle and reduce settings dialog height for lower-resolution screens (#454, #456)
-- **Installer**: Harden CUDA diagnostics with auto-remediation and behavioral tests (#451)
-- **Models**: Correct whisper.cpp and VOSK download size metadata (#453)
-- **Startup**: Allow launch without the pynput backend (#448)
-- **Website**: Clarify speech demo browser support (#449)
+- **Dictation**: Preserve spacing between speech segments separated by a pause, so words no longer run together after a silence within the same session (#464)
+- **Shortcuts**: The evdev keyboard backend rescans for hotplugged keyboards, so shortcuts work on devices connected after startup and disconnected devices can be replugged (#467)
+- **KDE Plasma Wayland**: Detect KDE Plasma Wayland sessions and guide you to enable IBus Wayland (System Settings โ Keyboard โ Virtual Keyboard) when `wtype` injection fails, with matching hints during install and in logs (#466)
+- **Wayland**: Fix garbled output on non-US keyboard layouts (AZERTY/QWERTZ/Dvorak) and a clipboard-copy hang; ydotool now pastes through the clipboard for layout-independent injection (#480)
+- **Wayland/IBus**: Use wtype/ydotool instead of IBus on compositors that don't bridge IBus to native apps (COSMIC, Sway, Hyprland, and similar), fixing silent text drops (#486)
+- **Wayland/IBus**: Require a real IM engine before using IBus on Wayland, so a bare `xkb` layout no longer causes silent text drops on GNOME/Mutter and other compositors (#478)
+- **Wayland**: Preserve the keyboard layout on Wayland by not running `setxkbmap`, which was flipping XWayland/Electron apps to `us` after dictation (#474)
+- **UI**: Cap the settings dialog height on high-resolution displays (#465)
### ๐ง Improvements
-- **Developer docs** โ Remote API test server instructions for easier backend testing (#455)
-- **Community** โ GitHub Sponsors funding configuration added
-- **Behavioral coverage** โ CUDA diagnostics and release-facing reliability fixes include targeted tests
+- **Performance** โ Faster ydotool text injection via an explicit `--key-delay` (#488)
+- **Website** โ New documentation pages for Remote API, Silero VAD, advanced whisper.cpp settings, and desktop reliability, plus responsive layout polish (#470)
+- **CI** โ Automatic pull-request labeling by changed files (#473)
---
@@ -388,7 +386,7 @@ Vocalinux is part of a family of privacy-first, offline voice dictation tools. S
| Platform | Project | Website | GitHub | Status |
|----------|---------|---------|--------|--------|
-| ๐ง Linux | **VocaLinux** | [vocalinux.com](https://vocalinux.com) | [jatinkrmalik/vocalinux](https://github.com/jatinkrmalik/vocalinux) | โ
Beta v0.12.0 |
+| ๐ง Linux | **VocaLinux** | [vocalinux.com](https://vocalinux.com) | [jatinkrmalik/vocalinux](https://github.com/jatinkrmalik/vocalinux) | โ
Beta v0.13.0 |
| ๐ macOS | **VocaMac** | [vocamac.com](https://vocamac.com) | [jatinkrmalik/vocamac](https://github.com/jatinkrmalik/vocamac) | ๐ Beta |
| ๐ช Windows | **VocaWin** | [vocawin.com](https://vocawin.com) | [jatinkrmalik/vocawin](https://github.com/jatinkrmalik/vocawin) | ๐ Planned |
diff --git a/SECURITY.md b/SECURITY.md
index 3f394d7..7ffb32e 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -4,7 +4,8 @@
| Version | Supported |
| ------- | ------------------ |
-| 0.12.x | :white_check_mark: |
+| 0.13.x | :white_check_mark: |
+| 0.12.x | :x: |
| 0.11.x | :x: |
| 0.10.x | :x: |
| 0.9.x | :x: |
diff --git a/docs/RELEASE_PROCESS.md b/docs/RELEASE_PROCESS.md
index 8fd42fa..4486fb2 100644
--- a/docs/RELEASE_PROCESS.md
+++ b/docs/RELEASE_PROCESS.md
@@ -343,6 +343,7 @@ git push origin v0.5.1-beta
| 0.10.2-beta | 2026-04-08 | Beta | Non-ASCII text injection, IBus Wayland detection, Pop!_OS deps, code quality refactor |
| 0.11.0-beta | 2026-05-30 | Beta | Advanced Settings tab, IBus/recognition hardening, installer fixes, distro compatibility |
| 0.12.0-beta | 2026-06-07 | Beta | Remote API engine, Silero VAD, threading/IBus hardening, settings and installer fixes |
+| 0.13.0-beta | 2026-06-30 | Beta | Guided whisper.cpp model variants, Wayland text-injection reliability, hotplug keyboard support, dictation spacing fix, website docs refresh |
## Questions?
diff --git a/docs/UPDATE.md b/docs/UPDATE.md
index 149e8fd..c616b52 100644
--- a/docs/UPDATE.md
+++ b/docs/UPDATE.md
@@ -2,6 +2,42 @@
This guide explains how to update Vocalinux to the latest version.
+## What's New in v0.13.0-beta
+
+### ๐ Highlights
+
+| Feature | Description |
+|---------|-------------|
+| **๐๏ธ Guided Whisper Models** | Pick a whisper.cpp size and specialization (English-only, quantized, Turbo) with in-app guidance |
+| **๐ Hotplug Keyboard Support** | Shortcuts keep working on keyboards connected after startup |
+| **โ๏ธ Dictation Spacing** | Spacing preserved between speech segments separated by a pause in the same session |
+| **๐ฅ๏ธ Wayland Reliability** | Fixes silent text drops on wlroots/COSMIC compositors and garbled non-US-layout output |
+
+### โจ New Features
+
+- **Guided whisper.cpp model variants** โ The Settings dialog now splits whisper.cpp selection into **Model Size** and **Specialization**, exposing English-only, quantized (Q5/Q8), Large v3 Turbo, and legacy large models with language-aware recommendations and hover guidance. Exact model IDs (e.g. `medium.en-q5_0`, `large-v3-turbo`) can also be passed to `--model` (#465)
+
+### ๐ Bug Fixes
+
+- **Dictation**: Preserve spacing between speech segments separated by a pause (#464)
+- **Shortcuts**: Rescan for hotplugged keyboards so shortcuts work on devices connected after startup (#467)
+- **KDE Plasma Wayland**: Detect KDE Plasma Wayland sessions and guide you to enable IBus Wayland when `wtype` injection fails (#466)
+- **Wayland**: Fix garbled output on non-US keyboard layouts and a clipboard-copy hang; ydotool now pastes through the clipboard (#480)
+- **Wayland/IBus**: Use wtype/ydotool instead of IBus on compositors that don't bridge IBus to native apps like COSMIC, Sway, and Hyprland (#486)
+- **Wayland/IBus**: Require a real IM engine on Wayland so a bare `xkb` layout no longer causes silent text drops on GNOME/Mutter and similar (#478)
+- **Wayland**: Preserve the keyboard layout on Wayland by not running `setxkbmap` (was flipping XWayland apps to `us`) (#474)
+- **UI**: Cap the settings dialog height on high-resolution displays (#465)
+
+### ๐ง Improvements
+
+- **Performance**: Faster ydotool text injection via an explicit `--key-delay` (#488)
+- **Website**: New documentation pages for Remote API, Silero VAD, advanced whisper.cpp settings, and desktop reliability (#470)
+- **CI**: Automatic pull-request labeling by changed files (#473)
+
+See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.13.0-beta).
+
+---
+
## What's New in v0.12.0-beta
### ๐ Highlights
@@ -202,7 +238,7 @@ The installer will:
```bash
cd vocalinux
git fetch origin
-git checkout v0.12.0-beta
+git checkout v0.13.0-beta
./install.sh
```
diff --git a/src/vocalinux/version.py b/src/vocalinux/version.py
index 2fae2a0..b86881f 100644
--- a/src/vocalinux/version.py
+++ b/src/vocalinux/version.py
@@ -2,8 +2,8 @@
Version information for Vocalinux.
"""
-__version__ = "0.12.0-beta"
-__version_info__ = (0, 12, 0, "beta")
+__version__ = "0.13.0-beta"
+__version_info__ = (0, 13, 0, "beta")
__author__ = "Jatin K Malik"
__email__ = "jatinkrmalik@gmail.com"
__license__ = "GPL-3.0"
diff --git a/web/package-lock.json b/web/package-lock.json
index 291fa62..8be8c55 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "vocalinux-website",
- "version": "0.12.0",
+ "version": "0.13.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "vocalinux-website",
- "version": "0.12.0",
+ "version": "0.13.0",
"dependencies": {
"@types/node": "^20.14.10",
"@types/react": "^18.3.3",
diff --git a/web/package.json b/web/package.json
index 2c2365e..409c96f 100644
--- a/web/package.json
+++ b/web/package.json
@@ -1,6 +1,6 @@
{
"name": "vocalinux-website",
- "version": "0.12.0",
+ "version": "0.13.0",
"private": true,
"type": "module",
"scripts": {
diff --git a/web/src/app/changelog/page.tsx b/web/src/app/changelog/page.tsx
index fd25376..34d1693 100644
--- a/web/src/app/changelog/page.tsx
+++ b/web/src/app/changelog/page.tsx
@@ -14,6 +14,24 @@ import { SeoSubpageShell } from "@/components/seo-subpage-shell";
import { absoluteUrl, buildPageMetadata } from "@/lib/seo";
const releases = [
+ {
+ version: "v0.13.0-beta",
+ date: "2026-06-30",
+ type: "beta",
+ highlights: [
+ "Guided whisper.cpp model selection: pick a size plus a specialization (English-only, quantized Q5/Q8, or Large v3 Turbo) through split Model Size and Specialization dropdowns with in-app guidance; the --model flag also accepts exact IDs like medium.en-q5_0 and large-v3-turbo (PR #465)",
+ "Dictation now keeps a space between segments spoken with a pause in between, so words no longer run together after a silence (PR #464)",
+ "Keyboard shortcuts now work on keyboards hotplugged after Vocalinux starts, with the evdev backend rescanning for new devices and recovering from disconnects (PR #467)",
+ "Vocalinux now detects KDE Plasma Wayland sessions and points you to enable IBus Wayland for reliable text injection, surfaced during install and when wtype injection fails (PR #466)",
+ "Wayland: fixed garbled text on non-US keyboard layouts (AZERTY/QWERTZ/Dvorak) and a clipboard-copy hang; ydotool now pastes through the clipboard, which is layout-independent (PR #480)",
+ "Wayland: use wtype/ydotool instead of IBus on compositors that don't bridge it to native apps like COSMIC, Sway, and Hyprland, fixing silent text drops (PR #486)",
+ "Wayland/IBus: require a real IM engine before using IBus, so a bare xkb layout no longer causes silent text drops on GNOME/Mutter and other compositors (#478)",
+ "Wayland: keep the keyboard layout intact by not running setxkbmap, which was flipping XWayland apps to us after dictation (#474)",
+ "Faster ydotool text injection via an explicit --key-delay (PR #488)",
+ "Settings dialog height capped on high-resolution displays (PR #465)",
+ "Refreshed website docs with new feature pages for Remote API, Silero VAD, advanced whisper.cpp settings, and desktop reliability, plus responsive layout polish (PR #470)",
+ ],
+ },
{
version: "v0.12.0-beta",
date: "2026-06-07",
@@ -276,7 +294,7 @@ export default function ChangelogPage() {
headline: "Vocalinux Changelog - Release History",
description:
"Complete release history for Vocalinux, the offline voice dictation software for Linux.",
- dateModified: "2026-06-11",
+ dateModified: "2026-06-30",
author: {
"@type": "Person",
name: "Jatin K Malik",
diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx
index 5545dfd..65d61cc 100644
--- a/web/src/app/page.tsx
+++ b/web/src/app/page.tsx
@@ -68,7 +68,7 @@ const homeJsonLd = [
},
description:
"Offline voice dictation and speech-to-text for Linux with whisper.cpp and VOSK.",
- softwareVersion: "0.12.0-beta",
+ softwareVersion: "0.13.0-beta",
author: {
"@type": "Person",
name: "Jatin K Malik",
@@ -340,7 +340,7 @@ export default function HomePage() {
/>
Vocalinux
- v0.12.0 Beta
+ v0.13.0 Beta