chore(release): prepare v0.15.0 (#609)

* chore(release): prepare v0.15.0

Bump version across app, web, AUR, and Flatpak metainfo. Document GitHub
release-notes rules, refresh README/UPDATE/INSTALL/USER_GUIDE for the 0.15
series (sidebar settings, AppImage, auto-pause/keepalive, Vulkan device
selection), and align website product surfaces with shipped features.

Co-authored-by: Jatin K Malik <jatinkrmalik@users.noreply.github.com>

* docs(release): fold latest main into v0.15.0 notes

Include dictation capitalization/trailing-space, ibus-wayland injection,
IBus teardown, and settings notice polish landed on main after the initial
release prep rebase.

Co-authored-by: Jatin K Malik <jatinkrmalik@users.noreply.github.com>

* docs(release): include Bluetooth mic crash fix in v0.15.0 notes

Fold #599 (PortAudio Bluetooth SCO probe heap corruption) into README,
UPDATE, changelog, AppStream, and release history after rebasing onto main.

Co-authored-by: Jatin K Malik <jatinkrmalik@users.noreply.github.com>

* docs(release): include language catalog expansion in v0.15.0 notes

Fold #616 (Hungarian and expanded speech languages, Fixes #565) into
README, UPDATE, changelog, AppStream, PRODUCT.md, and release history
after rebasing onto latest main.

Co-authored-by: Jatin K Malik <jatinkrmalik@users.noreply.github.com>

* docs(release): fold settings footer and language follow-ups into v0.15.0

Include #618 sidebar dictation footer, #619 Custom Shortcut Record/Set
restore, and #617 English (India) Whisper language mapping after rebasing
onto latest main.

Co-authored-by: Jatin K Malik <jatinkrmalik@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Jatin K Malik <jatinkrmalik@users.noreply.github.com>
This commit is contained in:
Jatin K Malik
2026-08-02 15:26:03 -07:00
committed by GitHub
co-authored by Jatin K Malik Cursor Agent
parent 27ecf880a8
commit fbb81238f5
24 changed files with 261 additions and 49 deletions
+3 -2
View File
@@ -108,7 +108,7 @@ export default function AdvancedSettingsPage() {
<section>
<p className="border-primary/30 bg-primary/10 mb-4 inline-flex items-center gap-2 rounded-full border px-4 py-1.5 text-sm font-medium text-primary">
<SlidersHorizontal className="h-4 w-4" />
v0.11.0 Advanced Tab
Advanced settings
</p>
<h1 className="mb-5 font-display text-4xl font-semibold tracking-tight sm:text-5xl">
Advanced Whisper.cpp Settings for Linux Dictation
@@ -116,7 +116,8 @@ export default function AdvancedSettingsPage() {
<p className="mb-8 max-w-4xl text-lg text-muted-foreground">
Vocalinux keeps the default setup simple, but power users can unlock
advanced whisper.cpp decoding controls for anti-hallucination tuning,
initial prompts, and Remote API server configuration.
initial prompts, Remote API server configuration, Vulkan GPU device
selection, and optional model keep-alive unload.
</p>
</section>
+21
View File
@@ -14,6 +14,27 @@ import { SeoSubpageShell } from "@/components/seo-subpage-shell";
import { absoluteUrl, buildPageMetadata } from "@/lib/seo";
const releases = [
{
version: "v0.15.0",
date: "2026-07-28",
type: "stable",
highlights: [
"Searchable sidebar settings with live search replace the seven-tab notebook (PR #601)",
"AppImage packages for x86_64 and aarch64 on GitHub Releases (PR #573, #602)",
"Expanded speech-language catalog (~33 languages + Auto-detect), including Hungarian; VOSK only lists languages with official models (PR #616, fixes #565)",
"Settings: dictation status / mic level / Test Dictation / Close live in the sidebar footer (PR #618)",
"Settings: Custom Shortcut Record/Set controls show again (PR #619)",
"Languages: English (India) maps to Whisper code en for whisper.cpp / Whisper / remote API (PR #617)",
"Auto-capitalize after sentence punctuation; trailing space so the next utterance does not glue on (PR #554, #608)",
"Auto-pause competing apps and idle model keep-alive unload for battery/GPU headroom (PR #592, closes #445, #591)",
"Vulkan: auto-select discrete GPU and pick a device in Advanced settings (PR #590, closes #589)",
"Wayland: use IBus on previously unbridged compositors when ibus-wayland is running (PR #614, closes #607)",
"IBus: keep engine teardown correct when parent destroy fails (PR #613, fixes #606)",
"CLI: vocalinux --version (PR #563, closes #555)",
"Settings info notices flattened; Bluetooth mic heap-corruption fix; KDE unbridged-IBus skip when ibus-wayland is absent; xdotool focus preserve; installer/AUR fixes (PR #615, #599, #577, #564, #583, #569, #597, #579, #586)",
"Marketing site redesign; languages page per-engine badges; robots.txt indexing fix (PR #582, #616, #610)",
],
},
{
version: "v0.14.2",
date: "2026-07-17",
+6 -1
View File
@@ -48,12 +48,17 @@ const reliabilityFeatures = [
{
title: "Tray and settings polish",
description:
"Bundled resources, lower dialog height, and an explicit close button improve behavior across desktop environments.",
"Bundled resources, searchable sidebar settings, and an explicit close button improve behavior across desktop environments.",
icon: Wrench,
},
];
const releaseMap = [
{
version: "v0.15.0",
highlights:
"Searchable settings with sidebar dictation footer, ibus-wayland on previously unbridged compositors, safer IBus teardown, Bluetooth mic capture crash fix, custom-shortcut Record/Set restore, and xdotool focus preserve.",
},
{
version: "v0.12.0-beta",
highlights:
+2 -2
View File
@@ -22,7 +22,7 @@ const faqCategories = [
questions: [
{
q: "How do I install Vocalinux?",
a: "Run the one-liner installer: curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash. The installer handles all dependencies and configuration automatically.",
a: "Run the one-liner installer: curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash. The installer handles dependencies and configuration. You can also download an AppImage from GitHub Releases if you prefer a no-root portable binary (host xdotool/wtype/ydotool still required for text injection).",
},
{
q: "Which Linux distributions are supported?",
@@ -114,7 +114,7 @@ const faqCategories = [
},
{
q: "Can I use GPU acceleration?",
a: "Yes! whisper.cpp supports GPU acceleration via Vulkan, which works with AMD, Intel, and NVIDIA GPUs. The installer auto-detects your hardware.",
a: "Yes. whisper.cpp supports GPU acceleration via Vulkan on AMD, Intel, and NVIDIA. On multi-GPU machines Vocalinux prefers a discrete device when possible; you can pick a device under Advanced settings.",
},
{
q: "What model size should I use?",
+3
View File
@@ -201,6 +201,9 @@ export default function GpuAccelerationPage() {
</div>
<p className="mt-3 text-sm text-muted-foreground">
If you see your GPU name, you&apos;re ready for accelerated dictation!
On multi-GPU machines Vocalinux prefers a discrete Vulkan device when
one is present; pick a specific device under Advanced settings if you
need to override auto-select.
</p>
</section>
+11
View File
@@ -65,6 +65,17 @@ export default function InstallGuidesPage() {
{installCommand}
</code>
</div>
<p className="mt-4 text-sm text-muted-foreground">
Prefer no installer? Download an{" "}
<a
href="https://github.com/jatinkrmalik/vocalinux/releases"
className="font-semibold text-primary hover:underline"
>
AppImage
</a>{" "}
for x86_64 or aarch64 from GitHub Releases (host text-injection tools
still required).
</p>
</section>
<section className="mt-12 grid gap-4 md:grid-cols-3">
+16 -2
View File
@@ -48,7 +48,7 @@ const homeJsonLd = [
},
description:
"Offline voice dictation and speech-to-text for Linux with whisper.cpp and VOSK.",
softwareVersion: "0.14.2",
softwareVersion: "0.15.0",
author: {
"@type": "Person",
name: "Jatin K Malik",
@@ -65,6 +65,14 @@ const homeJsonLd = [
"Toggle and push-to-talk shortcut modes",
"Left/right modifier key distinction for shortcuts",
"Optional voice commands with VOSK-aware defaults",
"Searchable sidebar settings",
"AppImage packages for x86_64 and aarch64",
"Expanded speech-language catalog including Hungarian (per-engine availability)",
"Auto-capitalize sentences after punctuation",
"Trailing space after completed transcriptions for continuous dictation",
"Auto-pause competing apps and idle model keep-alive unload",
"Vulkan discrete GPU auto-select with manual device selection",
"IBus via ibus-wayland on compositors that previously skipped IBus",
"Adaptive audio and IBus-aware text injection",
"Clipboard fallback for unsupported Wayland compositors",
"Sound effects toggle for audio feedback",
@@ -111,7 +119,7 @@ const homeJsonLd = [
name: "How do I switch between speech engines?",
acceptedAnswer: {
"@type": "Answer",
text: "Use the settings GUI or CLI flags for whisper.cpp, Whisper, VOSK, or Remote API. Remote API settings live under Advanced settings.",
text: "Use the settings GUI or CLI flags for whisper.cpp, Whisper, VOSK, or Remote API. Open Settings from the tray and use the sidebar (search works). Remote API options live under Advanced.",
},
},
{
@@ -562,6 +570,12 @@ export default function HomePage() {
Then launch:{" "}
<code className="font-mono text-emerald-400">vocalinux</code>
</span>
<a
href="https://github.com/jatinkrmalik/vocalinux/releases"
className="text-zinc-100 underline-offset-4 hover:underline"
>
AppImage downloads
</a>
<Link
href="/compare/"
className="text-zinc-100 underline-offset-4 hover:underline"
+6 -4
View File
@@ -98,7 +98,7 @@ const settingsShots: Screenshot[] = [
export const metadata: Metadata = buildPageMetadata({
title: "Vocalinux Screenshots | Linux Voice Dictation UI",
description:
"See Vocalinux in action: system tray, about dialog, log viewer, and the full settings tabs for speech engine, recognition, audio, shortcuts, general, and advanced options.",
"See Vocalinux in action: system tray, about dialog, log viewer, and settings pages for speech engine, recognition, audio, shortcuts, general, and advanced options.",
path: "/screenshots",
keywords: [
"Vocalinux screenshots",
@@ -143,15 +143,17 @@ export default function ScreenshotsPage() {
<section>
<p className="border-primary/30 bg-primary/10 mb-4 inline-flex items-center gap-2 rounded-full border px-4 py-1.5 text-sm font-medium text-primary">
<Camera className="h-4 w-4" />
v0.14.0 Beta UI
Settings gallery (refresh pending)
</p>
<h1 className="mb-5 font-display text-4xl font-semibold tracking-tight sm:text-5xl">
Vocalinux Screenshots
</h1>
<p className="mb-8 max-w-4xl text-lg text-muted-foreground">
A look at offline voice dictation on Linux: tray controls, debugging
tools, and the full settings dialog. Click any image to expand it and
browse the gallery. These shots match the current v0.14.0-beta UI.
tools, and the settings dialog. Click any image to expand it and browse
the gallery. Product shots are current; some settings images still show
the older tabbed layout while the app uses a searchable sidebar in
v0.15.0+.
</p>
</section>