* feat(shortcuts): default to hold Right Alt push-to-talk on first install Double-tap Ctrl conflicts with many desktop and app shortcuts, so new installs now use hold Right Alt (Option) in push-to-talk mode. Existing config.json values are preserved unchanged. Updates README, user guide, AGENTS.md, first-run dialog, website copy, and tests to match the new defaults. * refactor(shortcuts): trim redundant default-change test and comments Drop the fresh-install assertion that duplicated DEFAULT_CONFIG coverage, remove the duplicated Right-Alt rationale from config_manager, and drop a vacuous source-string check from the settings shortcuts test. * fix(shortcuts): align install.sh seeds and preserve legacy toggle mode install.sh still wrote ctrl+ctrl without mode, so merges with the new push_to_talk default became hold-Ctrl. Seed right_alt + push_to_talk for new installs, and migrate existing shortcut-only configs to mode=toggle so prior behavior is unchanged. * style(config): fix black formatting after shortcuts migration * fix(shortcuts): preserve legacy defaults when shortcuts section is missing Existing config files without a shortcuts section previously inherited ctrl+ctrl toggle from DEFAULT_CONFIG. Pin those historical defaults on upgrade so the new first-install Right Alt push-to-talk defaults do not silently change behavior. * docs(agents): unwrap hard-broken dictation control paragraph Keep the AGENTS.md paragraph as a single line like the surrounding prose.
69 lines
3.8 KiB
Markdown
69 lines
3.8 KiB
Markdown
# Product (vocalinux.com)
|
|
|
|
## Platform
|
|
|
|
web (Next.js marketing site under `web/`)
|
|
|
|
## Users
|
|
|
|
Linux desktop users who want voice dictation that stays on their machine: developers, writers, and people reducing keyboard strain. They already live in terminals, browsers, IDEs, and GTK/Qt apps.
|
|
|
|
## Product purpose
|
|
|
|
Vocalinux is free, open-source offline voice dictation for Linux. It turns speech into typed text in whatever app has focus, using local engines (whisper.cpp default, Whisper, VOSK) or an optional user-configured remote API. Success is: install once, dictate in any app, without cloud transcription or telemetry.
|
|
|
|
## Positioning
|
|
|
|
Offline-first Linux voice typing with real desktop integration (system tray, X11 and Wayland text injection, toggle and push-to-talk, Silero VAD, suspend recovery). A cloud SaaS voice product cannot truthfully claim local-only models plus no usage telemetry from the installed app.
|
|
|
|
## Operating context
|
|
|
|
- Install via a one-line shell installer, AppImage from GitHub Releases, AUR, or local Flatpak build; then run from PATH, app menu, or the AppImage binary
|
|
- System tray indicator and settings GUI (GTK) with searchable sidebar navigation and an always-visible sidebar footer for dictation status / Test Dictation / Close
|
|
- Dictation into terminals, browsers, IDEs, office apps
|
|
- Engines and models chosen for hardware (CPU, optional Vulkan GPU with discrete-device preference)
|
|
- Guides and comparison pages on vocalinux.com; source on GitHub
|
|
|
|
## Capabilities and constraints
|
|
|
|
- Engines: whisper.cpp (default), OpenAI Whisper, VOSK, optional Remote API
|
|
- Speech languages: large selectable catalog (~33 + Auto-detect) shared by Settings/CLI; VOSK only lists languages with official Alphacephei models; remaining Whisper languages available via Auto-detect
|
|
- Display servers: X11 and Wayland
|
|
- Shortcut modes: push-to-talk default (hold Right Alt / Option); toggle available; left/right modifier distinction; configurable modifier+key combos
|
|
- Optional voice commands (English-only); Silero neural VAD with amplitude fallback
|
|
- Continuous dictation polish: capitalize after sentence punctuation; trailing space after each completed utterance
|
|
- Optional auto-pause while configured apps run; optional idle model keep-alive unload
|
|
- Vulkan discrete GPU auto-select with manual device override in Advanced settings
|
|
- Wayland: IBus when `ibus-wayland` is running, including on compositors previously treated as unbridged
|
|
- Packaging: install.sh, AppImage (x86_64/aarch64), AUR, Flatpak (local/Flathub status as documented)
|
|
- No usage telemetry in the installed app
|
|
- GPL-3.0; marketing version string is tracked in site package/version surfaces
|
|
- Website is Next.js marketing + SEO guides (static export); languages page documents per-engine support honestly
|
|
|
|
## Brand commitments
|
|
|
|
- Name: Vocalinux (also part of the "Voca" family with VocaMac / VocaWin)
|
|
- Mark: microphone logo assets under `public/`
|
|
- Emerald accent in the project green family (not purple SaaS defaults)
|
|
- Voice: practical, specific, Linux-native; not hype-first SaaS copy
|
|
|
|
## Evidence on hand
|
|
|
|
- Real app screenshots in `public/screenshots/`
|
|
- Install/uninstall commands pointing at GitHub raw install scripts
|
|
- JSON-LD on the home page (software application, FAQ, how-to)
|
|
- Do not invent user counts, testimonials, or benchmarks
|
|
|
|
## Product principles
|
|
|
|
1. Privacy is default: local engines process audio on-device; remote only when the user opts in.
|
|
2. Ship the install path and real desktop proof, not abstract feature theater.
|
|
3. Stay honest about engines, hardware, and what runs offline vs remote.
|
|
4. Prefer Linux craft and clarity over generic AI-startup marketing patterns.
|
|
|
|
## Accessibility
|
|
|
|
- Respect `prefers-reduced-motion`
|
|
- Body text contrast at least 4.5:1; large text at least 3:1
|
|
- Keyboard-reachable install copy controls and navigation
|