From 0469defae6c657b5a8830b9b7f5de3c1fe93522a Mon Sep 17 00:00:00 2001
From: Jatin K Malik
Date: Sat, 28 Feb 2026 20:58:55 -0800
Subject: [PATCH] chore(release): prepare v0.8.0-beta (#280)
* chore(release): prepare v0.8.0-beta
* docs(web): align release messaging with v0.8.0-beta features
* docs(web): tighten homepage messaging for v0.8.0-beta
---
README.md | 60 +++++++++++++--------------
SECURITY.md | 6 +--
docs/INSTALL.md | 6 +--
docs/RELEASE_PROCESS.md | 1 +
docs/UPDATE.md | 44 +++++++++-----------
docs/USER_GUIDE.md | 15 +++----
install.sh | 6 +--
src/vocalinux/main.py | 2 +-
src/vocalinux/version.py | 4 +-
tests/distro-testing-checklist.md | 2 +-
web/package-lock.json | 4 +-
web/package.json | 2 +-
web/src/app/changelog/page.tsx | 16 ++++++-
web/src/app/faq/page.tsx | 6 +--
web/src/app/install/[distro]/page.tsx | 8 ++--
web/src/app/install/page.tsx | 2 +-
web/src/app/page.tsx | 27 +++++++-----
web/src/app/rsi-prevention/page.tsx | 2 +-
web/src/app/shortcuts/page.tsx | 26 ++++++++----
web/src/app/troubleshooting/page.tsx | 2 +-
20 files changed, 132 insertions(+), 109 deletions(-)
diff --git a/README.md b/README.md
index 5e280bc..16a5aa2 100644
--- a/README.md
+++ b/README.md
@@ -28,48 +28,44 @@
**A seamless free open-source private voice dictation system for Linux**, comparable to built-in solutions on macOS and Windows.
-## ๐ What's New in v0.7.0-beta
+## ๐ What's New in v0.8.0-beta
-> ๐ **Major Release: Autostart, Tabbed Settings & Intel GPU Support!** โ The most feature-rich Vocalinux release yet.
+> ๐ **Major Release: Push-to-Talk, command controls, and reliability upgrades.**
-### ๐ Highlights (v0.6.3 โ v0.7.0)
+### ๐ Highlights (v0.7.0 โ v0.8.0)
| Feature | Description |
|---------|-------------|
-| **๐ฅ๏ธ Autostart Support** | Launch Vocalinux automatically on desktop session startup |
-| **โ๏ธ Tabbed Settings** | Completely redesigned settings dialog with organized tabs |
-| **๐ฎ Intel GPU Detection** | Automatically detects incompatible Intel GPUs and falls back to CPU |
-| **๐ Single Instance** | Prevents multiple Vocalinux instances from running simultaneously |
+| **๐ค Push-to-Talk Mode** | Hold the shortcut key to speak, release to stop |
+| **โ๏ธ Voice Commands Toggle** | Enable/disable command parsing with smart VOSK auto-enable |
+| **โจ๏ธ Shortcut Reliability** | Improved live mode switching and callback lifecycle stability |
+| **๐ง Better Input Handling** | More robust IBus detection and text injection behavior |
-### โจ New Features (v0.7.0)
+### โจ New Features (v0.8.0)
-- **Autostart on Login** โ Added XDG autostart support via settings dialog and system tray
-- **Tabbed Settings Dialog** โ reorganized settings into Speech Engine, Recognition, Text Injection, Audio Feedback, and General tabs
-- **Intel GPU Compatibility Detection** โ Detects incompatible Intel GPUs and automatically falls back to CPU processing
-- **Multiple Instance Prevention** โ Shows notification and exits if Vocalinux is already running
-- **Evdev Device Management** โ Automatically removes disconnected input devices to prevent CPU spin
+- **Push-to-Talk Shortcut Mode** โ Added a second shortcut mode alongside double-tap toggle
+- **Mode-aware Shortcut UI** โ Settings now clearly describe toggle vs push-to-talk behavior
+- **Voice Commands Optional Mode** โ Commands can be disabled, with auto mode optimized for VOSK
-### ๐ Bug Fixes (v0.7.0)
+### ๐ Bug Fixes (v0.8.0)
-- **#254**: Improved GPU detection to avoid false positives on systems without dev libraries
-- **#251**: Skip IBus setup when daemon is not running, enable fallback to other methods
-- **#243**: Prevent `dnf check-update` from exiting script on Fedora
-- **#240**: Raise exception on IBus setup failure to enable automatic fallback
-- **#234**: Removed leading space from first speech transcription
-- **#242/#253**: Removed disconnected evdev devices to prevent CPU spin
+- **#277**: Detect active IBus input method before using IBus injection path
+- **#275**: Auto-detect supported audio channel count for better microphone compatibility
+- **#268**: Prevent GTK startup dialog crash on Fedora
+- **#261**: Resolve text injection reliability issues across desktop environments
+- **#259**: Prevent recognition-thread state flicker
+- **#262/#263**: Auto-detect device sample rate for broader audio hardware support
### ๐ง Recent Improvements
-- **Web SEO Enhancements** โ Added 7 new optimized pages for organic traffic
-- **Mobile Responsiveness** โ Improved mobile and tablet layout for the website
-- **Better Fedora Support** โ Fixed dnf check-update behavior
-- **Improved Device Handling** โ More robust handling of input device connections/disconnections
+- **Web SEO Expansion** โ Added 8 additional optimized pages for discoverability
+- **Web Visual Refresh** โ Updated homepage gradients and voice-brand styling
---
## โจ Features
-- ๐ค **Double-tap Ctrl** to start/stop voice dictation
+- ๐ค **Toggle or Push-to-Talk** activation modes
- โก **Real-time transcription** with minimal latency
- ๐ **Universal compatibility** across all Linux applications
- ๐ **100% Offline operation** for privacy and reliability
@@ -121,7 +117,7 @@ Here are some screenshots showcasing Vocalinux in action:
Our new interactive installer guides you through setup with intelligent hardware detection:
```bash
-curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
```
**Choose your engine:**
@@ -135,25 +131,25 @@ The installer will:
- **Download the appropriate model** (~39MB for whisper.cpp tiny)
- **Install in ~1-2 minutes** (vs 5-10 min with old Whisper)
-> **Note**: Installs v0.7.0-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
+> **Note**: Installs v0.8.0-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
### Installation Options
**Default (whisper.cpp - recommended):**
```bash
-curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
```
Fastest installation (~1-2 min), universal GPU support via Vulkan.
**Whisper (OpenAI) - if you prefer PyTorch:**
```bash
-curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper
```
NVIDIA GPU only (~5-10 min, downloads PyTorch + CUDA).
**VOSK only - for low-RAM systems:**
```bash
-curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
```
Lightweight option (~40MB), works on systems with 4GB RAM.
@@ -214,9 +210,9 @@ Or launch it from your application menu!
### Voice Dictation
-1. **Double-tap Ctrl** to start recording
+1. **Toggle mode**: Double-tap the shortcut key (default Ctrl) to start recording
2. Speak clearly into your microphone
-3. **Double-tap Ctrl** again (or pause speaking) to stop
+3. **Toggle mode**: Double-tap again (or pause speaking) to stop, or **Push-to-Talk mode**: release the key to stop
### Voice Commands
diff --git a/SECURITY.md b/SECURITY.md
index 4cd9c1d..4630e6e 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -4,10 +4,10 @@
| Version | Supported |
| ------- | ------------------ |
-| 0.7.x | :white_check_mark: |
+| 0.8.x | :white_check_mark: |
+| 0.7.x | :x: |
| 0.6.x | :x: |
-| 0.5.x | :x: |
-| < 0.5 | :x: |
+| < 0.6 | :x: |
## Reporting a Vulnerability
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index 06bed21..950686f 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -7,10 +7,10 @@ This guide provides detailed instructions for installing Vocalinux on Linux syst
### One-liner Installation (Recommended)
```bash
-curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh | bash
```
-> **Note**: Installs v0.7.0-beta with **whisper.cpp** (our default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
+> **Note**: Installs v0.8.0-beta with **whisper.cpp** (our default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
That's it! The installer handles everything automatically:
- โ
Installs whisper.cpp (~1-2 minutes, no heavy dependencies!)
@@ -508,7 +508,7 @@ Already have Vocalinux installed? See the [Update Guide](UPDATE.md) for instruct
Quick update command:
```bash
-curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh | bash
```
## Getting Help
diff --git a/docs/RELEASE_PROCESS.md b/docs/RELEASE_PROCESS.md
index ab8773c..ef0ba4d 100644
--- a/docs/RELEASE_PROCESS.md
+++ b/docs/RELEASE_PROCESS.md
@@ -326,6 +326,7 @@ git push origin v0.5.1-beta
| 0.6.2-beta | 2026-02-17 | Beta | Bug fixes |
| 0.6.3-beta | 2026-02-19 | Beta | GPU detection improvements |
| 0.7.0-beta | 2026 | Beta | Autostart, tabbed settings, Intel GPU support, single instance |
+| 0.8.0-beta | 2026-03-01 | Beta | Push-to-talk mode, optional voice commands, input/audio compatibility fixes |
## Questions?
diff --git a/docs/UPDATE.md b/docs/UPDATE.md
index 24d9041..f9346a2 100644
--- a/docs/UPDATE.md
+++ b/docs/UPDATE.md
@@ -2,42 +2,38 @@
This guide explains how to update Vocalinux to the latest version.
-## What's New in v0.7.0-beta
+## What's New in v0.8.0-beta
### ๐ Highlights
| Feature | Description |
|---------|-------------|
-| **๐ฅ๏ธ Autostart Support** | Launch Vocalinux automatically on desktop session startup |
-| **โ๏ธ Tabbed Settings** | Completely redesigned settings dialog with organized tabs |
-| **๐ฎ Intel GPU Detection** | Automatically detects incompatible Intel GPUs and falls back to CPU |
-| **๐ Single Instance** | Prevents multiple Vocalinux instances from running simultaneously |
+| **๐ค Push-to-Talk Mode** | Hold the shortcut key to speak, release to stop |
+| **โ๏ธ Voice Commands Toggle** | Enable or disable voice commands, with VOSK auto-enable in auto mode |
+| **โจ๏ธ Shortcut Reliability** | Improved callback lifecycle and mode switching stability |
+| **๐ง Input Compatibility** | Better IBus detection and audio device/channel compatibility |
### โจ New Features
-- **Autostart on Login** โ Added XDG autostart support via settings dialog and system tray
-- **Tabbed Settings Dialog** โ Reorganized settings into Speech Engine, Recognition, Text Injection, Audio Feedback, and General tabs
-- **Intel GPU Compatibility Detection** โ Detects incompatible Intel GPUs and automatically falls back to CPU processing
-- **Multiple Instance Prevention** โ Shows notification and exits if Vocalinux is already running
-- **Evdev Device Management** โ Automatically removes disconnected input devices to prevent CPU spin
+- **Push-to-Talk Shortcut Mode** โ Added hold-to-speak mode alongside double-tap toggle mode
+- **Mode-aware Shortcut UI** โ Updated settings text and behavior for toggle vs push-to-talk workflows
+- **Voice Commands Optional** โ Voice commands can be disabled, with automatic enable behavior for VOSK
### ๐ Bug Fixes
-- **#254**: Improved GPU detection to avoid false positives on systems without dev libraries
-- **#251**: Skip IBus setup when daemon is not running, enable fallback to other methods
-- **#243**: Prevent `dnf check-update` from exiting script on Fedora
-- **#240**: Raise exception on IBus setup failure to enable automatic fallback
-- **#234**: Removed leading space from first speech transcription
-- **#242/#253**: Removed disconnected evdev devices to prevent CPU spin
+- **#277**: Detect active IBus input method before using IBus injection
+- **#275**: Detect and use device-supported channel count
+- **#268**: Prevent GTK startup dialog crash on Fedora
+- **#261**: Resolve text injection issues for better reliability
+- **#259**: Prevent recognition thread state flicker
+- **#262/#263**: Auto-detect audio sample rate for better hardware compatibility
### ๐ง Improvements
-- **Web SEO Enhancements** โ Added 7 new optimized pages for organic traffic
-- **Mobile Responsiveness** โ Improved mobile and tablet layout for the website
-- **Better Fedora Support** โ Fixed dnf check-update behavior
-- **Improved Device Handling** โ More robust handling of input device connections/disconnections
+- **Web SEO Enhancements** โ Added 8 additional optimized pages for discoverability
+- **Homepage Refresh** โ Updated voice-themed visual polish on the web landing page
-See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.7.0-beta).
+See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.8.0-beta).
---
@@ -48,7 +44,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
Simply re-run the installation command:
```bash
-curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh | bash
```
The installer will:
@@ -62,7 +58,7 @@ The installer will:
```bash
cd vocalinux
git fetch origin
-git checkout v0.7.0-beta
+git checkout v0.8.0-beta
./install.sh
```
@@ -98,7 +94,7 @@ If your update doesn't go smoothly, try a clean reinstall:
./uninstall.sh
# Reinstall fresh
-curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh | bash
```
### Old Version Still Running
diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md
index 9440c44..dfa7576 100644
--- a/docs/USER_GUIDE.md
+++ b/docs/USER_GUIDE.md
@@ -32,9 +32,9 @@ Vocalinux supports login autostart using the standard Linux desktop-session mech
1. **Launch the application**: Run `vocalinux` in a terminal or launch it from your application menu
2. **Find the tray icon**: Look for the microphone icon in your system tray
-3. **Start voice typing**: Click the tray icon and select "Start Voice Typing" from the menu, or use the double-tap Ctrl keyboard shortcut
+3. **Start voice typing**: Click the tray icon and select "Start Voice Typing", or use your configured shortcut mode (toggle or push-to-talk)
4. **Speak clearly**: As you speak, your words will be transcribed into the currently focused application
-5. **Stop voice typing**: Click the tray icon and select "Stop Voice Typing" when you're done, or use the double-tap Ctrl keyboard shortcut again
+5. **Stop voice typing**: Click the tray icon and select "Stop Voice Typing" when you're done, double-tap again in toggle mode, or release the key in push-to-talk mode
### Understanding the Status Icons
@@ -67,7 +67,7 @@ Vocalinux supports several commands that you can speak to control formatting:
4. **Quiet environment**: Minimize background noise when possible
5. **Learn commands**: Familiarize yourself with voice commands for punctuation and formatting
6. **Use GPU acceleration**: If you have a GPU (AMD, Intel, or NVIDIA), whisper.cpp will automatically use it for faster transcription
-7. **Choose the right model**:
+7. **Choose the right model**:
- For real-time dictation: Use `tiny` or `base` (fastest)
- For better accuracy: Use `vocalinux --model medium` or `--model large`
8. **Check debug logs**: Run `vocalinux --debug` to see which backend is being used (Vulkan, CUDA, or CPU)
@@ -76,10 +76,11 @@ Vocalinux supports several commands that you can speak to control formatting:
### Keyboard Shortcut
-Vocalinux uses a double-tap Ctrl keyboard shortcut for starting and stopping voice typing:
+Vocalinux supports two shortcut modes for controlling voice typing:
-- **Double-tap Ctrl**: Quickly press the Ctrl key twice to toggle voice typing on or off
-- The time between taps should be less than 0.3 seconds to be recognized as a double-tap
+- **Toggle mode (default)**: Double-tap the shortcut key (Ctrl by default) to start/stop voice typing
+- **Push-to-talk mode**: Hold the configured shortcut key to speak, then release to stop
+- Configure mode and key in **Settings -> Shortcuts**
### Model Settings
@@ -109,7 +110,7 @@ Vocalinux now offers **three speech recognition engines**:
### Changing Engine and Model
1. Open settings from the tray icon menu (right-click)
-2. Go to the "Recognition" tab
+2. Go to the "Speech Engine" tab
3. Select your **Speech Engine**:
- whisper_cpp (recommended)
- whisper
diff --git a/install.sh b/install.sh
index fcf29a7..d1c2ffe 100755
--- a/install.sh
+++ b/install.sh
@@ -174,7 +174,7 @@ while [[ $# -gt 0 ]]; do
echo " --test Run tests after installation"
echo " --venv-dir=PATH Specify custom virtual environment directory"
echo " --skip-models Skip downloading speech models during installation"
- echo " --tag=TAG Install specific release tag (default: v0.7.0-beta)"
+ echo " --tag=TAG Install specific release tag (default: v0.8.0-beta)"
echo " --help Show this help message"
echo ""
echo "Examples:"
@@ -215,7 +215,7 @@ echo ""
check_running_processes
-INSTALL_TAG="${INSTALL_TAG:-v0.7.0-beta}"
+INSTALL_TAG="${INSTALL_TAG:-v0.8.0-beta}"
# Check if running from within the vocalinux repo or remotely (via curl)
REPO_URL="https://github.com/jatinkrmalik/vocalinux.git"
@@ -1073,7 +1073,7 @@ if [[ "$INTERACTIVE_MODE" == "yes" ]]; then
if [ ! -t 0 ]; then
print_error "Interactive mode requires a terminal (TTY)."
print_error "Please run from a terminal, or use automatic mode:"
- print_error " curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash"
+ print_error " curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh | bash"
exit 1
fi
diff --git a/src/vocalinux/main.py b/src/vocalinux/main.py
index e7f984d..e93671d 100644
--- a/src/vocalinux/main.py
+++ b/src/vocalinux/main.py
@@ -128,7 +128,7 @@ def check_dependencies():
logger.error("")
logger.error("For the best experience, install using the recommended method:")
logger.error(
- " curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash"
+ " curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh | bash"
)
return False
diff --git a/src/vocalinux/version.py b/src/vocalinux/version.py
index 794c83c..83274c2 100644
--- a/src/vocalinux/version.py
+++ b/src/vocalinux/version.py
@@ -2,8 +2,8 @@
Version information for Vocalinux.
"""
-__version__ = "0.7.0-beta"
-__version_info__ = (0, 7, 0, "beta")
+__version__ = "0.8.0-beta"
+__version_info__ = (0, 8, 0, "beta")
__author__ = "Jatin K Malik"
__email__ = "jatinkrmalik@gmail.com"
__license__ = "GPL-3.0"
diff --git a/tests/distro-testing-checklist.md b/tests/distro-testing-checklist.md
index 62d8717..ec1e516 100644
--- a/tests/distro-testing-checklist.md
+++ b/tests/distro-testing-checklist.md
@@ -40,7 +40,7 @@ Use this checklist when testing Vocalinux on a new Linux distribution.
### Standard Installation
- [ ] Download installer
```bash
- curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh -o /tmp/vl.sh
+ curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.8.0-beta/install.sh -o /tmp/vl.sh
```
- [ ] Run installer
diff --git a/web/package-lock.json b/web/package-lock.json
index 7105d08..7cd7e20 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "vocalinux-website",
- "version": "0.7.0",
+ "version": "0.8.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "vocalinux-website",
- "version": "0.7.0",
+ "version": "0.8.0",
"dependencies": {
"@types/node": "^20.14.10",
"@types/react": "^18.3.3",
diff --git a/web/package.json b/web/package.json
index e893191..e71945b 100644
--- a/web/package.json
+++ b/web/package.json
@@ -1,6 +1,6 @@
{
"name": "vocalinux-website",
- "version": "0.7.0",
+ "version": "0.8.0",
"private": true,
"type": "module",
"scripts": {
diff --git a/web/src/app/changelog/page.tsx b/web/src/app/changelog/page.tsx
index 57e984d..fd9bedb 100644
--- a/web/src/app/changelog/page.tsx
+++ b/web/src/app/changelog/page.tsx
@@ -5,6 +5,20 @@ import { SeoSubpageShell } from "@/components/seo-subpage-shell";
import { absoluteUrl, buildPageMetadata } from "@/lib/seo";
const releases = [
+ {
+ version: "v0.8.0-beta",
+ date: "2026-03-01",
+ type: "beta",
+ highlights: [
+ "Push-to-talk shortcut mode (hold to speak, release to stop)",
+ "Optional voice commands with VOSK auto-enable behavior",
+ "Improved shortcut mode switching and callback reliability",
+ "IBus active-method detection before text injection",
+ "Audio hardware compatibility fixes (sample rate and channel count)",
+ "Fedora startup dialog stability fix",
+ "Web SEO expansion and homepage visual refresh",
+ ],
+ },
{
version: "v0.7.0-beta",
date: "2026-02-22",
@@ -146,7 +160,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-02-19",
+ dateModified: "2026-03-01",
author: {
"@type": "Person",
name: "Jatin K Malik",
diff --git a/web/src/app/faq/page.tsx b/web/src/app/faq/page.tsx
index 59f1f75..2b1ef1a 100644
--- a/web/src/app/faq/page.tsx
+++ b/web/src/app/faq/page.tsx
@@ -69,15 +69,15 @@ const faqCategories = [
questions: [
{
q: "How do I start and stop dictation?",
- a: "Double-tap the Ctrl key to toggle dictation on/off. You can customize this shortcut in the settings panel.",
+ a: "By default, toggle mode uses double-tap Ctrl to start/stop dictation. You can also switch to push-to-talk mode (hold key to speak, release to stop) in Settings.",
},
{
q: "Does Vocalinux work with Wayland?",
- a: "Yes! Vocalinux supports both X11 and Wayland through IBus text injection. The installer automatically configures the right backend for your system.",
+ a: "Yes. Vocalinux supports both X11 and Wayland, including IBus-based flows on Wayland with improved active-method detection for more reliable text injection.",
},
{
q: "Can I use voice commands?",
- a: "Yes. Vocalinux supports voice commands like 'new line', 'delete that', 'select all', and more. Commands are processed in real-time.",
+ a: "Yes. Vocalinux supports commands like 'new line', 'delete that', 'select all', and more. Voice commands are optional and can be enabled or disabled in Settings.",
},
],
},
diff --git a/web/src/app/install/[distro]/page.tsx b/web/src/app/install/[distro]/page.tsx
index 814b55b..7a5f5cb 100644
--- a/web/src/app/install/[distro]/page.tsx
+++ b/web/src/app/install/[distro]/page.tsx
@@ -56,7 +56,7 @@ const distroConfig: Record = {
],
postInstallChecks: [
"Run vocalinux and confirm the tray indicator appears.",
- "Double-tap Ctrl in a text field and verify speech-to-text starts.",
+ "Use toggle mode (double-tap Ctrl) or push-to-talk mode and verify dictation starts.",
"Set language and model size in the settings panel for your workload.",
],
},
@@ -87,7 +87,7 @@ const distroConfig: Record = {
],
postInstallChecks: [
"Run vocalinux from terminal and test transcription in GNOME Text Editor or VS Code.",
- "Verify push-to-dictate behavior with your preferred keyboard layout.",
+ "Verify toggle mode and push-to-talk behavior with your preferred keyboard layout.",
"Confirm startup behavior and language settings persist after reboot.",
],
},
@@ -119,7 +119,7 @@ const distroConfig: Record = {
postInstallChecks: [
"Run vocalinux and test dictation in multiple apps (terminal, browser, editor).",
"Confirm your chosen speech engine model balances latency and accuracy.",
- "Back up ~/.config/vocalinux/config.yaml after tuning preferences.",
+ "Back up ~/.config/vocalinux/config.json after tuning preferences.",
],
},
};
@@ -264,7 +264,7 @@ export default async function DistroInstallPage({
{
"@type": "HowToStep",
name: "Start dictating",
- text: "Launch vocalinux and double-tap Ctrl to begin dictation.",
+ text: "Launch vocalinux and use toggle mode or push-to-talk mode to begin dictation.",
url: absoluteUrl(`/install/${distro}`),
},
],
diff --git a/web/src/app/install/page.tsx b/web/src/app/install/page.tsx
index 428b021..81ba509 100644
--- a/web/src/app/install/page.tsx
+++ b/web/src/app/install/page.tsx
@@ -110,7 +110,7 @@ export default function InstallGuidesPage() {
Launch with
vocalinux.
- Double-tap Ctrl to start or stop dictation in any text field.
+ Use toggle mode (double-tap Ctrl) or push-to-talk mode to control dictation in any text field.
Choose whisper.cpp for speed, Whisper for maximum model compatibility, or VOSK for
low-RAM systems.
diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx
index 1e27a95..fb941b4 100644
--- a/web/src/app/page.tsx
+++ b/web/src/app/page.tsx
@@ -65,7 +65,7 @@ const homeJsonLd = [
},
description:
"Offline voice dictation and speech-to-text for Linux with whisper.cpp and VOSK.",
- "softwareVersion": "0.7.0-beta",
+ "softwareVersion": "0.8.0-beta",
author: {
"@type": "Person",
name: "Jatin K Malik",
@@ -77,7 +77,9 @@ const homeJsonLd = [
featureList: [
"100% offline speech recognition",
"Works with X11 and Wayland",
- "Double-tap Ctrl activation",
+ "Toggle and push-to-talk shortcut modes",
+ "Optional voice commands with VOSK-aware defaults",
+ "Adaptive audio and IBus-aware text injection",
"whisper.cpp, Whisper, and VOSK support",
"Linux desktop integration",
],
@@ -134,7 +136,7 @@ const homeJsonLd = [
{
"@type": "HowToStep",
name: "Start dictating",
- text: "Launch vocalinux and double-tap Ctrl to begin voice dictation.",
+ text: "Launch vocalinux and use toggle or push-to-talk shortcut mode to begin dictation.",
url: "https://vocalinux.com/#install",
},
],
@@ -290,7 +292,7 @@ export default function HomePage() {
/>
Vocalinux
- v0.7.0 Beta
+ v0.8.0 Beta
@@ -408,7 +410,7 @@ export default function HomePage() {
100% offline voice dictation for Linux.
- Just double-tap Ctrl and speak.
+ Use toggle mode or push-to-talk and start speaking.
{/* CTA Buttons */}
@@ -553,8 +555,8 @@ export default function HomePage() {
{[
{
icon: ,
- title: "Double-tap Ctrl",
- description: "In the real app, just double-tap Ctrl to start dictating anywhere",
+ title: "Flexible Shortcut Modes",
+ description: "Use toggle mode (double-tap) or push-to-talk mode to dictate anywhere",
},
{
icon: ,
@@ -617,7 +619,7 @@ export default function HomePage() {
}
title="Simple Activation"
- description="Double-tap Ctrl to start, double-tap again to stop. No complex keyboard shortcuts to memorize."
+ description="Choose toggle mode (double-tap) or push-to-talk mode (hold key). Simple, predictable control."
/>
}
@@ -627,7 +629,7 @@ export default function HomePage() {
}
title="Fully Configurable"
- description="Adjust model size, language, activation method, and more. GUI settings panel or config file โ your choice."
+ description="Adjust model size, language, activation mode, and voice command behavior. GUI settings panel or config file โ your choice."
/>
@@ -1086,7 +1088,12 @@ export default function HomePage() {
{
question: "How do I customize the activation shortcut?",
answer:
- "The default is double-tap Ctrl. You can customize this via the GUI settings dialog or by editing ~/.config/vocalinux/config.yaml. Any key combination is supported.",
+ "The default is toggle mode with double-tap Ctrl, and you can switch to push-to-talk in Settings. You can also customize this via the GUI settings dialog or by editing ~/.config/vocalinux/config.json.",
+ },
+ {
+ question: "Can I disable voice commands?",
+ answer:
+ "Yes. Voice commands are optional and can be enabled or disabled in Settings. VOSK-focused setups can use auto behavior while keeping full control over command parsing.",
},
{
question: "Is Vocalinux free?",
diff --git a/web/src/app/rsi-prevention/page.tsx b/web/src/app/rsi-prevention/page.tsx
index c5e4876..66cd9dc 100644
--- a/web/src/app/rsi-prevention/page.tsx
+++ b/web/src/app/rsi-prevention/page.tsx
@@ -235,7 +235,7 @@ export default function RsiPreventionPage() {
-
- Double-tap Ctrl to start/stopโno mouse required
+ Toggle mode or push-to-talk controlโno mouse required
-
diff --git a/web/src/app/shortcuts/page.tsx b/web/src/app/shortcuts/page.tsx
index 11c5077..d3d97ef 100644
--- a/web/src/app/shortcuts/page.tsx
+++ b/web/src/app/shortcuts/page.tsx
@@ -10,8 +10,8 @@ const shortcutCategories = [
icon: Mic,
iconColor: "text-blue-500",
shortcuts: [
- { keys: ["Ctrl", "Ctrl"], action: "Toggle dictation on/off (double-tap)", note: "Primary activation" },
- { keys: ["Ctrl", "Ctrl"], action: "Start/stop recording", note: "Same as toggle" },
+ { keys: ["Ctrl", "Ctrl"], action: "Toggle mode: start/stop dictation", note: "Default mode" },
+ { keys: ["Hold Ctrl"], action: "Push-to-talk mode: speak while held", note: "Release to stop" },
],
},
{
@@ -27,6 +27,7 @@ const shortcutCategories = [
{ keys: ["\"paste here\""], action: "Paste clipboard", note: "Voice command" },
{ keys: ["\"undo\""], action: "Undo last action", note: "Voice command" },
{ keys: ["\"redo\""], action: "Redo last action", note: "Voice command" },
+ { keys: ["Settings Toggle"], action: "Enable/disable voice commands", note: "Optional in v0.8.0-beta" },
],
},
{
@@ -43,7 +44,7 @@ const shortcutCategories = [
icon: Settings,
iconColor: "text-violet-500",
shortcuts: [
- { keys: ["Config File"], action: "~/.config/vocalinux/config.yaml", note: "Manual editing" },
+ { keys: ["Config File"], action: "~/.config/vocalinux/config.json", note: "Manual editing" },
],
},
];
@@ -61,7 +62,7 @@ function Mic(props: { className?: string }) {
export const metadata: Metadata = buildPageMetadata({
title: "Keyboard Shortcuts & Voice Commands - Vocalinux",
description:
- "Learn Vocalinux keyboard shortcuts and voice commands. Double-tap Ctrl to dictate, use voice commands for editing, and customize your workflow.",
+ "Learn Vocalinux keyboard shortcut modes and voice commands. Use toggle mode or push-to-talk, then customize activation and command behavior.",
path: "/shortcuts",
keywords: [
"vocalinux shortcuts",
@@ -78,7 +79,7 @@ export default function ShortcutsPage() {
headline: "Vocalinux Keyboard Shortcuts & Voice Commands",
description:
"Complete guide to Vocalinux keyboard shortcuts and voice commands for efficient Linux voice dictation.",
- dateModified: "2026-02-19",
+ dateModified: "2026-03-01",
author: {
"@type": "Person",
name: "Jatin K Malik",
@@ -111,8 +112,8 @@ export default function ShortcutsPage() {
Keyboard Shortcuts & Voice Commands
- Master Vocalinux with keyboard shortcuts and voice commands. Double-tap Ctrl to start
- dictating, then use voice commands to edit and format.
+ Master Vocalinux with keyboard shortcuts and voice commands. Use toggle mode (double-tap)
+ or push-to-talk mode, then apply voice commands for editing and formatting.
@@ -130,8 +131,15 @@ export default function ShortcutsPage() {
โ
- Start/Stop Dictation
+ Toggle Mode: Start/Stop Dictation
+
+ Push-to-talk mode is also available: hold your configured key to dictate, release to stop.
+ You can switch modes in Settings.
+
+
+ Voice commands can be enabled or disabled from Settings depending on your workflow.
+
{/* Shortcut Categories */}
@@ -188,7 +196,7 @@ export default function ShortcutsPage() {
configuration file directly:
- ~/.config/vocalinux/config.yaml
+ ~/.config/vocalinux/config.json
Open Vocalinux and access Settings from the tray icon to change keyboard shortcuts
diff --git a/web/src/app/troubleshooting/page.tsx b/web/src/app/troubleshooting/page.tsx
index 38d35cc..ec3b6c3 100644
--- a/web/src/app/troubleshooting/page.tsx
+++ b/web/src/app/troubleshooting/page.tsx
@@ -72,7 +72,7 @@ const troubleshootingItems = [
},
{
title: "Keyboard shortcut not working",
- symptoms: ["Double-tap Ctrl doesn't start dictation", "Custom shortcuts ignored"],
+ symptoms: ["Shortcut mode doesn't start dictation", "Custom shortcuts ignored"],
solutions: [
"Check if another application is capturing the shortcut",
"Verify Vocalinux is running (check system tray)",