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)",