chore: point GitHub URLs at VocaHQ (#696)

Repo links, install one-liners, and release checks now use
github.com/VocaHQ/vocalinux. The site mentions VocaHQ without a redesign.

The Codeberg mirror, personal email, and X handle are unchanged.
This commit is contained in:
Jatin K Malik
2026-08-16 15:22:22 -07:00
committed by GitHub
parent edca65d22e
commit 32a17a9659
39 changed files with 219 additions and 151 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Questions & Discussions
url: https://github.com/jatinkrmalik/vocalinux/discussions
url: https://github.com/VocaHQ/vocalinux/discussions
about: Ask questions or discuss ideas in GitHub Discussions
- name: 📖 Documentation
url: https://github.com/jatinkrmalik/vocalinux/tree/main/docs
url: https://github.com/VocaHQ/vocalinux/tree/main/docs
about: Check out the documentation before opening an issue
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
mirror:
name: Push to Codeberg
runs-on: ubuntu-latest
if: github.repository == 'jatinkrmalik/vocalinux'
if: github.repository == 'VocaHQ/vocalinux'
steps:
- uses: actions/checkout@v5
with:
+3 -3
View File
@@ -184,7 +184,7 @@ jobs:
#### Using Install Script
\`\`\`bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
\`\`\`
#### AppImage (no install, no root)
@@ -221,8 +221,8 @@ jobs:
### Links
- [Documentation](https://vocalinux.com)
- [Report Issues](https://github.com/jatinkrmalik/vocalinux/issues)
- [Other Releases](https://github.com/jatinkrmalik/vocalinux/releases)
- [Report Issues](https://github.com/VocaHQ/vocalinux/issues)
- [Other Releases](https://github.com/VocaHQ/vocalinux/releases)
---
+3 -3
View File
@@ -102,12 +102,12 @@ jobs:
### Quick Install (Recommended)
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/${{ github.ref_name }}/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/${{ github.ref_name }}/install.sh | bash
```
### From Source
```bash
git clone https://github.com/jatinkrmalik/vocalinux.git
git clone https://github.com/VocaHQ/vocalinux.git
cd vocalinux
./install.sh
```
@@ -141,7 +141,7 @@ jobs:
Still requires `xdotool`/`wtype`/`ydotool` on the host for text injection, same as the PyPI path.
---
See [CHANGELOG](https://github.com/jatinkrmalik/vocalinux/releases) for detailed changes.
See [CHANGELOG](https://github.com/VocaHQ/vocalinux/releases) for detailed changes.
build-appimage-arm64:
name: Build and Attach AppImage (aarch64)
+6 -6
View File
@@ -23,15 +23,15 @@ We are committed to providing a welcoming and inclusive environment. Please be r
### Ways to Contribute
- 🐛 **Report bugs** - Found a bug? [Open an issue](https://github.com/jatinkrmalik/vocalinux/issues/new)
- 💡 **Suggest features** - Have an idea? [Start a discussion](https://github.com/jatinkrmalik/vocalinux/discussions)
- 🐛 **Report bugs** - Found a bug? [Open an issue](https://github.com/VocaHQ/vocalinux/issues/new)
- 💡 **Suggest features** - Have an idea? [Start a discussion](https://github.com/VocaHQ/vocalinux/discussions)
- 📖 **Improve documentation** - Docs can always be better!
- 🔧 **Fix bugs** - Check the [issues](https://github.com/jatinkrmalik/vocalinux/issues) for things to work on
- 🔧 **Fix bugs** - Check the [issues](https://github.com/VocaHQ/vocalinux/issues) for things to work on
- ✨ **Add features** - Pick up a feature from the roadmap
### Good First Issues
New to the project? Look for issues labeled [`good first issue`](https://github.com/jatinkrmalik/vocalinux/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
New to the project? Look for issues labeled [`good first issue`](https://github.com/VocaHQ/vocalinux/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
## Development Setup
@@ -322,8 +322,8 @@ We follow [Semantic Versioning](https://semver.org/):
### Getting Help
- 💬 [GitHub Discussions](https://github.com/jatinkrmalik/vocalinux/discussions) - Ask questions
- 🐛 [GitHub Issues](https://github.com/jatinkrmalik/vocalinux/issues) - Report bugs
- 💬 [GitHub Discussions](https://github.com/VocaHQ/vocalinux/discussions) - Ask questions
- 🐛 [GitHub Issues](https://github.com/VocaHQ/vocalinux/issues) - Report bugs
### Stay Connected
+25 -25
View File
@@ -9,8 +9,8 @@
<!-- Badge rows ordered narrowest → widest (steps out into the hero) -->
<!-- Values + packaging (narrow) -->
[![Privacy: 100% offline](https://img.shields.io/badge/privacy-100%25%20offline-success)](https://github.com/jatinkrmalik/vocalinux#features)
[![X11 & Wayland](https://img.shields.io/badge/display-X11%20%7C%20Wayland-lightgrey)](https://github.com/jatinkrmalik/vocalinux#features)
[![Privacy: 100% offline](https://img.shields.io/badge/privacy-100%25%20offline-success)](https://github.com/VocaHQ/vocalinux#features)
[![X11 & Wayland](https://img.shields.io/badge/display-X11%20%7C%20Wayland-lightgrey)](https://github.com/VocaHQ/vocalinux#features)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
@@ -18,11 +18,11 @@
[![VocaHQ](https://img.shields.io/badge/VocaHQ-vocahq.com-1a7f4e)](https://vocahq.com)
<!-- Identity + quality (medium) -->
[![GitHub release](https://img.shields.io/github/v/release/jatinkrmalik/vocalinux)](https://github.com/jatinkrmalik/vocalinux/releases)
[![GitHub release](https://img.shields.io/github/v/release/VocaHQ/vocalinux)](https://github.com/VocaHQ/vocalinux/releases)
[![PyPI](https://img.shields.io/pypi/v/vocalinux)](https://pypi.org/project/vocalinux/)
[![AUR](https://img.shields.io/aur/version/vocalinux)](https://aur.archlinux.org/packages/vocalinux)
[![Vocalinux CI](https://github.com/jatinkrmalik/vocalinux/actions/workflows/unified-pipeline.yml/badge.svg?branch=main)](https://github.com/jatinkrmalik/vocalinux/actions/workflows/unified-pipeline.yml?query=branch%3Amain)
[![codecov](https://codecov.io/gh/jatinkrmalik/vocalinux/branch/main/graph/badge.svg)](https://codecov.io/gh/jatinkrmalik/vocalinux)
[![Vocalinux CI](https://github.com/VocaHQ/vocalinux/actions/workflows/unified-pipeline.yml/badge.svg?branch=main)](https://github.com/VocaHQ/vocalinux/actions/workflows/unified-pipeline.yml?query=branch%3Amain)
[![codecov](https://codecov.io/gh/VocaHQ/vocalinux/branch/main/graph/badge.svg)](https://codecov.io/gh/VocaHQ/vocalinux)
[![Follow on X](https://img.shields.io/badge/Follow%20%40jatinkrmalik-000000?style=flat&logo=x&logoColor=white)](https://x.com/intent/user?screen_name=jatinkrmalik)
<!-- Distros (widest; base plate above the hero) -->
@@ -68,7 +68,7 @@ No internet required. No data leaves your machine. Just speak and type.
- KDE Plasma Wayland unbridged-IBus skip when ibus-wayland is absent (#577)
- xdotool focus preserve; installer / uninstall / AUR reliability fixes (#564, #583, #569, #597, #579, #586)
See [docs/UPDATE.md](docs/UPDATE.md) and the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.15.0).
See [docs/UPDATE.md](docs/UPDATE.md) and the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.15.0).
---
@@ -155,7 +155,7 @@ Vocalinux in action. Settings gallery shots may lag the searchable sidebar UI fr
Our new interactive installer guides you through setup with intelligent hardware detection:
```bash
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
curl -fsSL raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
```
**Choose your engine:**
@@ -170,25 +170,25 @@ The installer will:
- **Install neural VAD support** when ONNX Runtime is available
- **Install in ~1-2 minutes** (vs 5-10 min with old Whisper)
> **Note**: Always installs the latest release. For a specific version, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
> **Note**: Always installs the latest release. For a specific version, check [GitHub Releases](https://github.com/VocaHQ/vocalinux/releases).
### Installation Options
**Default (whisper.cpp - recommended):**
```bash
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
curl -fsSL raw.githubusercontent.com/VocaHQ/vocalinux/main/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/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper
curl -fsSL raw.githubusercontent.com/VocaHQ/vocalinux/main/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/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
curl -fsSL raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
```
Lightweight option (~40MB), works on systems with 4GB RAM.
@@ -221,7 +221,7 @@ is in progress.
```bash
# Clone the repository
git clone https://github.com/jatinkrmalik/vocalinux.git
git clone https://github.com/VocaHQ/vocalinux.git
cd vocalinux
# Run the installer (will prompt for Whisper)
@@ -235,7 +235,7 @@ The installer handles everything: system dependencies, Python environment, speec
### 🌙 Nightly Releases (Bleeding Edge)
For developers and early adopters who want to test the latest features, check out our [GitHub Releases page](https://github.com/jatinkrmalik/vocalinux/releases) which includes both beta and nightly builds.
For developers and early adopters who want to test the latest features, check out our [GitHub Releases page](https://github.com/VocaHQ/vocalinux/releases) which includes both beta and nightly builds.
> **⚠️ Warning**: Nightly releases contain the absolute latest code and may be unstable. For production use, we recommend using the latest beta release.
@@ -364,7 +364,7 @@ Restart Vocalinux after install. The Recognition tab in Settings shows which bac
```bash
# Clone and install in dev mode
git clone https://github.com/jatinkrmalik/vocalinux.git
git clone https://github.com/VocaHQ/vocalinux.git
cd vocalinux
./install.sh --dev
@@ -412,7 +412,7 @@ GitHub is the **primary** forge for issues, pull requests, CI, and releases.
| Role | URL |
|------|-----|
| Primary | https://github.com/jatinkrmalik/vocalinux |
| Primary | https://github.com/VocaHQ/vocalinux |
| Read-only mirror (Codeberg) | https://codeberg.org/jatinkrmalik/vocalinux |
The Codeberg copy is a read-only source backup. Open issues and PRs on GitHub only.
@@ -454,13 +454,13 @@ This script generates all three sounds using the same smooth glide algorithm. Yo
## 🌐 The Voca Ecosystem
Vocalinux is part of a family of privacy-first, offline voice dictation tools. Same mission, every operating system.
Vocalinux is part of [VocaHQ](https://vocahq.com). Same privacy-first, offline voice dictation idea, one app per operating system.
| Platform | Project | Website | GitHub | Status |
|----------|---------|---------|--------|--------|
| 🐧 Linux | **VocaLinux** | [vocalinux.com](https://vocalinux.com) | [jatinkrmalik/vocalinux](https://github.com/jatinkrmalik/vocalinux) | ✅ Stable v0.15.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 |
| 🐧 Linux | **VocaLinux** | [vocalinux.com](https://vocalinux.com) | [VocaHQ/vocalinux](https://github.com/VocaHQ/vocalinux) | ✅ Stable v0.15.0 |
| 🍎 macOS | **VocaMac** | [vocamac.com](https://vocamac.com) | [VocaHQ/vocamac](https://github.com/VocaHQ/vocamac) | 🚀 Beta |
| 🪟 Windows | **VocaWin** | [vocawin.com](https://vocawin.com) | [VocaHQ/vocawin](https://github.com/VocaHQ/vocawin) | 📋 Planned |
> Each platform uses native technologies for the best possible integration, while sharing the same privacy-first philosophy and offline-only architecture.
@@ -472,15 +472,15 @@ We welcome contributions! Whether it's bug reports, feature requests, or code co
Thanks to everyone who has contributed to Vocalinux! 🙌
<a href="https://github.com/jatinkrmalik/vocalinux/graphs/contributors">
<img src="https://contrib.rocks/image?repo=jatinkrmalik/vocalinux" />
<a href="https://github.com/VocaHQ/vocalinux/graphs/contributors">
<img src="https://contrib.rocks/image?repo=VocaHQ/vocalinux" />
</a>
### Quick Links
- 🐛 [Report a Bug](https://github.com/jatinkrmalik/vocalinux/issues/new?template=bug_report.md)
- 💡 [Request a Feature](https://github.com/jatinkrmalik/vocalinux/issues/new?template=feature_request.md)
- 💬 [Discussions](https://github.com/jatinkrmalik/vocalinux/discussions)
- 🐛 [Report a Bug](https://github.com/VocaHQ/vocalinux/issues/new?template=bug_report.md)
- 💡 [Request a Feature](https://github.com/VocaHQ/vocalinux/issues/new?template=feature_request.md)
- 💬 [Discussions](https://github.com/VocaHQ/vocalinux/discussions)
## ⭐ Support
@@ -505,7 +505,7 @@ corresponding source available.
## Star Chart
[![Star History Chart](https://api.star-history.com/chart?repos=jatinkrmalik/vocalinux&type=date&legend=top-left&sealed_token=ZWyQQLhSORoR4mKf6UXMGFSCBXRxM_yEZgc8MFCH_ysBjaFUm_OCH-bI3TD7OivczEzm-ADRIpF9xCWFOMHvBPW95eQBxzfRMpNksChz7rN_eiqL7AIMDw)](https://www.star-history.com/?type=date&repos=jatinkrmalik%2Fvocalinux)
[![Star History Chart](https://api.star-history.com/chart?repos=VocaHQ/vocalinux&type=date&legend=top-left&sealed_token=ZWyQQLhSORoR4mKf6UXMGFSCBXRxM_yEZgc8MFCH_ysBjaFUm_OCH-bI3TD7OivczEzm-ADRIpF9xCWFOMHvBPW95eQBxzfRMpNksChz7rN_eiqL7AIMDw)](https://www.star-history.com/?type=date&repos=VocaHQ%2Fvocalinux)
---
+1 -1
View File
@@ -97,4 +97,4 @@ pip install --upgrade -e .
For security concerns: jatinkrmalik@gmail.com
For general issues: https://github.com/jatinkrmalik/vocalinux/issues
For general issues: https://github.com/VocaHQ/vocalinux/issues
+3 -3
View File
@@ -219,7 +219,7 @@ packages, creates the virtual environment, installs Vocalinux, sets up desktop
integration, and downloads the default speech model:
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
```
### Important: Install System Packages First
@@ -346,7 +346,7 @@ during setup.
For the best experience with automatic dependency handling, use the official installer:
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
```
This installer automatically detects your distribution and installs all required system packages.
@@ -549,4 +549,4 @@ If you successfully get Vocalinux working on an unsupported or experimental dist
- [Installation Guide](../README.md#installation)
- [Manual Installation](MANUAL_INSTALL.md)
- [Troubleshooting](TROUBLESHOOTING.md)
- [GitHub Issue Tracker](https://github.com/jatinkrmalik/vocalinux/issues)
- [GitHub Issue Tracker](https://github.com/VocaHQ/vocalinux/issues)
+7 -7
View File
@@ -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/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
```
> **Note**: Always installs the latest release with **whisper.cpp** (our default engine). For a specific version, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
> **Note**: Always installs the latest release with **whisper.cpp** (our default engine). For a specific version, check [GitHub Releases](https://github.com/VocaHQ/vocalinux/releases).
That's it! The installer handles everything automatically:
- ✅ Installs whisper.cpp (~1-2 minutes, no heavy dependencies!)
@@ -24,13 +24,13 @@ That's it! The installer handles everything automatically:
### From Source
```bash
git clone https://github.com/jatinkrmalik/vocalinux.git && cd vocalinux && ./install.sh
git clone https://github.com/VocaHQ/vocalinux.git && cd vocalinux && ./install.sh
```
### AppImage (no install, no root)
Download the `.AppImage` for your CPU (`x86_64` or `aarch64`) from
[GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases), then:
[GitHub Releases](https://github.com/VocaHQ/vocalinux/releases), then:
```bash
chmod +x Vocalinux-*-x86_64.AppImage # or aarch64
@@ -704,12 +704,12 @@ Already have Vocalinux installed? See the [Update Guide](UPDATE.md) for instruct
Quick update command:
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
```
## Getting Help
- 📖 [User Guide](USER_GUIDE.md)
- 📖 [Update Guide](UPDATE.md)
- 🐛 [Report Issues](https://github.com/jatinkrmalik/vocalinux/issues)
- 💬 [Discussions](https://github.com/jatinkrmalik/vocalinux/discussions)
- 🐛 [Report Issues](https://github.com/VocaHQ/vocalinux/issues)
- 💬 [Discussions](https://github.com/VocaHQ/vocalinux/discussions)
+5 -5
View File
@@ -130,7 +130,7 @@ Use these rules for every GitHub Release body (and for the draft pasted into the
6. Optional: `## Improvements`, `## Docs`, `## Packaging`
7. `## Thanks` — external PR authors and issue reporters by `@handle`
8. `## Install / Upgrade` — `install.sh`, AUR, PyPI, **AppImage**, Flatpak status (honest)
9. Footer compare link: `https://github.com/jatinkrmalik/vocalinux/compare/vPREV...vX.Y.Z`
9. Footer compare link: `https://github.com/VocaHQ/vocalinux/compare/vPREV...vX.Y.Z`
#### Include / exclude
@@ -177,7 +177,7 @@ Use these rules for every GitHub Release body (and for the draft pasted into the
**Install Commands:**
Keep install commands on `main/install.sh` (installer resolves latest release tag automatically):
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
```
**Release Announcement (lines ~31-34):**
@@ -203,7 +203,7 @@ Add a new "What's New" section at the top:
- Feature 2
- Bug fix 1
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.5.0-beta).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.5.0-beta).
---
@@ -338,7 +338,7 @@ Key changes since 0.4.1-alpha:
- Feature 2
- Bug fix 1
Full changelog: https://github.com/jatinkrmalik/vocalinux/releases"
Full changelog: https://github.com/VocaHQ/vocalinux/releases"
# Push tag
git push origin v0.5.0-beta
@@ -354,7 +354,7 @@ After pushing the tag, the GitHub Actions workflow will automatically:
4. Deploy the website to vocalinux.com
5. Mark as pre-release if version contains alpha/beta/rc
Monitor at: https://github.com/jatinkrmalik/vocalinux/actions
Monitor at: https://github.com/VocaHQ/vocalinux/actions
### Step 9: Post-Release Tasks
+14 -14
View File
@@ -56,7 +56,7 @@ This guide explains how to update Vocalinux to the latest version.
- robots.txt no longer blocks indexable pages (#610)
- Website CI lint / action warning cleanup (#611)
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.15.0).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.15.0).
---
@@ -82,7 +82,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- **IBus**: Wait for FocusIn before commit on scoped injection. Cold first activation on GNOME Wayland could commit before mutter bound a client context, so the first dictation of a session was dropped while logs still reported success (#533, fixes #523)
- **Settings UI**: Wrap each notebook tab in a vertical ScrolledWindow so the dialog fits 1080p monitors instead of growing past the screen; forward wheel events from unfocused combos/spins to the tab scroller and drop nested Advanced ScrolledWindow shadows (#538, #541)
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.14.2).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.14.2).
---
@@ -114,7 +114,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- Refreshed v0.14 UI screenshots and website gallery (#521)
- README Star History and related polish
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.14.1).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.14.1).
---
@@ -149,7 +149,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- **Code style** — Removed an outdated long comment about whisper.cpp default thread counts (#505)
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.14.0-beta).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.14.0-beta).
---
@@ -185,7 +185,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- **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).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.13.0-beta).
---
@@ -223,7 +223,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- **Community** — GitHub Sponsors funding configuration added
- **Behavioral coverage** — CUDA diagnostics and release-facing reliability fixes include targeted tests
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.12.0-beta).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.12.0-beta).
---
@@ -253,7 +253,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- Clarify missing GNOME AppIndicator support on Debian (#385)
- Redesigned OG image for vocalinux.com (#392)
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.10.2-beta).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.10.2-beta).
---
@@ -293,7 +293,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- Bumped `brace-expansion` in development dependencies (#357)
- Disabled copy-to-clipboard by default in Settings (#370)
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.10.1-beta).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.10.1-beta).
---
@@ -328,7 +328,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- **Grouped shortcut selector** — Settings dropdown now organises shortcuts by Either/Left/Right side
- **pipx documentation** — New `DISTRO_COMPATIBILITY.md` section for pipx users
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.9.0-beta).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.9.0-beta).
---
@@ -363,7 +363,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
- **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.8.0-beta).
See the [full changelog](https://github.com/VocaHQ/vocalinux/releases/tag/v0.8.0-beta).
---
@@ -376,7 +376,7 @@ Vocalinux checks GitHub Releases in the background about every six hours (and sh
Simply re-run the installation command:
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
```
The installer will:
@@ -427,7 +427,7 @@ If your update doesn't go smoothly, try a clean reinstall:
./uninstall.sh
# Reinstall fresh
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash
```
### Old Version Still Running
@@ -467,5 +467,5 @@ sudo pacman -S python-gobject gtk3
## Need Help?
- 📖 [Installation Guide](INSTALL.md)
- 🐛 [Report Issues](https://github.com/jatinkrmalik/vocalinux/issues)
- 💬 [Discussions](https://github.com/jatinkrmalik/vocalinux/discussions)
- 🐛 [Report Issues](https://github.com/VocaHQ/vocalinux/issues)
- 💬 [Discussions](https://github.com/VocaHQ/vocalinux/discussions)
+8 -8
View File
@@ -351,7 +351,7 @@ resolve_install_tag() {
if command_exists curl; then
local latest
latest=$(curl -fsSL --connect-timeout 5 \
"https://api.github.com/repos/jatinkrmalik/vocalinux/releases/latest" \
"https://api.github.com/repos/VocaHQ/vocalinux/releases/latest" \
2>/dev/null | grep '"tag_name"' | head -1 | cut -d'"' -f4)
if [ -n "$latest" ]; then
INSTALL_TAG="$latest"
@@ -364,7 +364,7 @@ resolve_install_tag() {
resolve_install_tag
# Check if running from within the vocalinux repo or remotely (via curl)
REPO_URL="https://github.com/jatinkrmalik/vocalinux.git"
REPO_URL="https://github.com/VocaHQ/vocalinux.git"
INSTALL_DIR=""
CLEANUP_ON_EXIT="no"
@@ -776,7 +776,7 @@ detect_vulkan() {
# Check for incompatible Intel GPUs that don't support VK_KHR_16bit_storage
# These GPUs will fail with "device does not support 16-bit storage" error
# Affected: Intel Gen7 and older (Ivy Bridge, Haswell, Sandy Bridge)
# See: https://github.com/jatinkrmalik/vocalinux/issues/238
# See: https://github.com/VocaHQ/vocalinux/issues/238
#
# IMPORTANT: This check filters out software renderers (llvmpipe, etc.) and only
# evaluates real hardware GPUs. Modern AMD, Intel (Gen8+), and NVIDIA GPUs all
@@ -1414,7 +1414,7 @@ if [[ "$INTERACTIVE_MODE" == "yes" ]]; then
if [ ! -t 0 ]; then
print_error "Interactive mode requires a terminal (TTY)."
print_error "Download and run the installer directly from a terminal:"
print_error " curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh"
print_error " curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh"
exit 1
fi
@@ -2000,7 +2000,7 @@ install_system_dependencies() {
print_info " pip install -e .[whisper,vad]"
print_info ""
print_info "For more information, see the project wiki:"
print_info " https://github.com/jatinkrmalik/vocalinux/wiki"
print_info " https://github.com/VocaHQ/vocalinux/wiki"
print_info ""
if [[ "$NON_INTERACTIVE" != "yes" ]]; then
read -p "Continue anyway? (y/n) " -n 1 -r
@@ -4016,9 +4016,9 @@ EOF
echo " 📚 Need Help?"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "• Issues & Bugs: https://github.com/jatinkrmalik/vocalinux/issues"
echo "• Documentation: https://github.com/jatinkrmalik/vocalinux"
echo "• Star on GitHub: ⭐ https://github.com/jatinkrmalik/vocalinux"
echo "• Issues & Bugs: https://github.com/VocaHQ/vocalinux/issues"
echo "• Documentation: https://github.com/VocaHQ/vocalinux"
echo "• Star on GitHub: ⭐ https://github.com/VocaHQ/vocalinux"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
+2 -2
View File
@@ -8,7 +8,7 @@ _tag=0.15.0
pkgrel=1
pkgdesc="Free, offline voice dictation for Linux"
arch=('any')
url="https://github.com/jatinkrmalik/vocalinux"
url="https://github.com/VocaHQ/vocalinux"
license=('AGPL-3.0-only')
depends=(
'python>=3.9'
@@ -49,7 +49,7 @@ optdepends=(
'wtype: Wayland keystroke injection fallback'
)
conflicts=('vocalinux-git')
source=("${pkgname}-${_tag}.tar.gz::https://github.com/jatinkrmalik/vocalinux/archive/refs/tags/v${_tag}.tar.gz")
source=("${pkgname}-${_tag}.tar.gz::https://github.com/VocaHQ/vocalinux/archive/refs/tags/v${_tag}.tar.gz")
# SKIP until the v${_tag} tarball exists. release.yml sets updpkgsums=true on publish.
sha256sums=('SKIP')
+1 -1
View File
@@ -77,7 +77,7 @@ pipx run flatpak-pip-generator \
```yaml
sources:
- type: git
url: https://github.com/jatinkrmalik/vocalinux.git
url: https://github.com/VocaHQ/vocalinux.git
tag: v0.15.0
commit: <release-commit-sha>
```
@@ -71,8 +71,8 @@
</screenshots>
<url type="homepage">https://vocalinux.com</url>
<url type="bugtracker">https://github.com/jatinkrmalik/vocalinux/issues</url>
<url type="vcs-browser">https://github.com/jatinkrmalik/vocalinux</url>
<url type="bugtracker">https://github.com/VocaHQ/vocalinux/issues</url>
<url type="vcs-browser">https://github.com/VocaHQ/vocalinux</url>
<content_rating type="oars-1.1">
<content_attribute id="violence-cartoon">none</content_attribute>
+5 -5
View File
@@ -85,11 +85,11 @@ vocalinux = "vocalinux.main:main"
vocalinux-gui = "vocalinux.main:main"
[project.urls]
Homepage = "https://github.com/jatinkrmalik/vocalinux"
Documentation = "https://github.com/jatinkrmalik/vocalinux/tree/main/docs"
Repository = "https://github.com/jatinkrmalik/vocalinux"
Issues = "https://github.com/jatinkrmalik/vocalinux/issues"
Changelog = "https://github.com/jatinkrmalik/vocalinux/releases"
Homepage = "https://github.com/VocaHQ/vocalinux"
Documentation = "https://github.com/VocaHQ/vocalinux/tree/main/docs"
Repository = "https://github.com/VocaHQ/vocalinux"
Issues = "https://github.com/VocaHQ/vocalinux/issues"
Changelog = "https://github.com/VocaHQ/vocalinux/releases"
[tool.setuptools]
packages = ["vocalinux", "vocalinux.resources", "vocalinux.speech_recognition", "vocalinux.text_injection", "vocalinux.ui", "vocalinux.ui.keyboard_backends", "vocalinux.utils"]
+1 -1
View File
@@ -186,7 +186,7 @@ def check_dependencies():
logger.error("")
logger.error("For the best experience, use the recommended installer:")
logger.error(
" curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh | bash"
" curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh | bash"
)
return False
+1 -1
View File
@@ -96,7 +96,7 @@ _COMPONENT_META = {
"version": "1.0",
"license": "AGPL-3.0",
"author": "Vocalinux",
"homepage": "https://github.com/jatinkrmalik/vocalinux",
"homepage": "https://github.com/VocaHQ/vocalinux",
"textdomain": "vocalinux",
}
@@ -533,7 +533,7 @@ class TextInjector:
logger.info(
"IBus daemon not running. This is normal on some desktop environments "
"(e.g., KDE Plasma). Using alternative text injection method. "
"For IBus setup, see: https://github.com/jatinkrmalik/vocalinux/wiki/IBus-Setup"
"For IBus setup, see: https://github.com/VocaHQ/vocalinux/wiki/IBus-Setup"
)
# Some Wayland compositors (COSMIC, Sway, Hyprland, ...) do not deliver
# IBus commits to native Wayland apps, so IBus would silently drop the
+23 -3
View File
@@ -128,20 +128,40 @@ def is_update_available(
return is_newer_version(current, latest.version)
# github.com/jatinkrmalik/vocalinux redirects here after the org transfer.
_VOCALINUX_GITHUB_OWNERS = frozenset({"VocaHQ", "jatinkrmalik"})
def _trusted_path_prefixes(repo_url: str = __url__) -> tuple[str, ...]:
"""Return GitHub path prefixes that belong to this project."""
owner, repo = _repo_parts(repo_url)
prefixes = [f"/{owner}/{repo}"]
known_owners = {name.casefold() for name in _VOCALINUX_GITHUB_OWNERS}
if repo.casefold() == "vocalinux" and owner.casefold() in known_owners:
prefixes.extend(f"/{name}/vocalinux" for name in sorted(_VOCALINUX_GITHUB_OWNERS))
seen: set[str] = set()
unique: list[str] = []
for prefix in prefixes:
key = prefix.casefold()
if key not in seen:
seen.add(key)
unique.append(prefix)
return tuple(unique)
def is_trusted_release_url(url: str, repo_url: str = __url__) -> bool:
"""Return True when ``url`` points at this project's GitHub pages."""
if not url:
return False
try:
owner, repo = _repo_parts(repo_url)
parsed = urlparse(url)
prefixes = _trusted_path_prefixes(repo_url)
except ValueError:
return False
if parsed.scheme != "https" or parsed.netloc.lower() != "github.com":
return False
path = parsed.path.rstrip("/")
prefix = f"/{owner}/{repo}"
return path == prefix or path.startswith(prefix + "/")
return any(path == prefix or path.startswith(prefix + "/") for prefix in prefixes)
def _release_from_payload(
+1 -1
View File
@@ -8,5 +8,5 @@ __author__ = "Jatin K Malik"
__email__ = "jatinkrmalik@gmail.com"
__license__ = "AGPL-3.0"
__copyright__ = "Copyright 2023-2026 Jatin K Malik"
__url__ = "https://github.com/jatinkrmalik/vocalinux"
__url__ = "https://github.com/VocaHQ/vocalinux"
__description__ = "Free, offline voice dictation for Linux - speak and type anywhere"
+1 -1
View File
@@ -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/main/install.sh -o /tmp/vl.sh
curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh
```
- [ ] Run installer
+4 -4
View File
@@ -333,7 +333,7 @@ class TestTrayIndicator(unittest.TestCase):
tag_name="v0.99.0",
version="0.99.0",
name="v0.99.0",
html_url="https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.99.0",
html_url="https://github.com/VocaHQ/vocalinux/releases/tag/v0.99.0",
body="Notes",
published_at="2026-08-06T00:00:00Z",
prerelease=False,
@@ -384,7 +384,7 @@ class TestTrayIndicator(unittest.TestCase):
tag_name="v0.99.0",
version="0.99.0",
name="v0.99.0",
html_url="https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.99.0",
html_url="https://github.com/VocaHQ/vocalinux/releases/tag/v0.99.0",
body="Notes",
published_at="2026-08-06T00:00:00Z",
prerelease=False,
@@ -415,7 +415,7 @@ class TestTrayIndicator(unittest.TestCase):
tag_name="v0.99.0",
version="0.99.0",
name="v0.99.0",
html_url="https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.99.0",
html_url="https://github.com/VocaHQ/vocalinux/releases/tag/v0.99.0",
body="Notes",
published_at="2026-08-06T00:00:00Z",
prerelease=False,
@@ -458,7 +458,7 @@ class TestTrayIndicator(unittest.TestCase):
tag_name="v0.99.0",
version="0.99.0",
name="v0.99.0",
html_url="https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.99.0",
html_url="https://github.com/VocaHQ/vocalinux/releases/tag/v0.99.0",
body="Notes",
published_at="2026-08-06T00:00:00Z",
prerelease=False,
+11 -10
View File
@@ -51,7 +51,7 @@ class TestChannels:
tag_name="v0.15.0",
version="0.15.0",
name="v0.15.0",
html_url="https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.15.0",
html_url="https://github.com/VocaHQ/vocalinux/releases/tag/v0.15.0",
body="",
published_at="2026-08-02T00:00:00Z",
prerelease=False,
@@ -65,7 +65,7 @@ class TestChannels:
tag_name="nightly-2026-08-02",
version="nightly-2026-08-02",
name="Nightly Build - 0.14.2.dev20260802+27ecf88",
html_url="https://github.com/jatinkrmalik/vocalinux/releases/tag/nightly-2026-08-02",
html_url="https://github.com/VocaHQ/vocalinux/releases/tag/nightly-2026-08-02",
body="",
published_at="2026-08-02T00:00:00Z",
prerelease=True,
@@ -82,6 +82,9 @@ class TestChannels:
class TestTrustedUrls:
def test_accepts_project_urls(self):
assert is_trusted_release_url("https://github.com/VocaHQ/vocalinux")
assert is_trusted_release_url("https://github.com/VocaHQ/vocalinux/releases/tag/v0.15.0")
# Pre-transfer URLs still redirect and must stay trusted.
assert is_trusted_release_url("https://github.com/jatinkrmalik/vocalinux")
assert is_trusted_release_url(
"https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.15.0"
@@ -89,7 +92,7 @@ class TestTrustedUrls:
def test_rejects_untrusted_urls(self):
assert not is_trusted_release_url("https://evil.example/payload")
assert not is_trusted_release_url("http://github.com/jatinkrmalik/vocalinux")
assert not is_trusted_release_url("http://github.com/VocaHQ/vocalinux")
assert not is_trusted_release_url("https://github.com/evil/vocalinux")
assert not is_trusted_release_url("")
@@ -126,7 +129,7 @@ class TestFetchLatestRelease:
mock_response.json.return_value = {
"tag_name": "v0.15.0",
"name": "v0.15.0",
"html_url": "https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.15.0",
"html_url": "https://github.com/VocaHQ/vocalinux/releases/tag/v0.15.0",
"body": "Notes",
"published_at": "2026-08-02T22:29:58Z",
"prerelease": False,
@@ -170,7 +173,7 @@ class TestFetchLatestRelease:
{
"tag_name": "v0.15.0",
"name": "v0.15.0",
"html_url": "https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.15.0",
"html_url": "https://github.com/VocaHQ/vocalinux/releases/tag/v0.15.0",
"body": "Stable",
"published_at": "2026-08-02T22:29:58Z",
"prerelease": False,
@@ -179,7 +182,7 @@ class TestFetchLatestRelease:
{
"tag_name": "nightly-2026-08-02",
"name": "nightly-2026-08-02",
"html_url": "https://github.com/jatinkrmalik/vocalinux/releases/tag/nightly-2026-08-02",
"html_url": "https://github.com/VocaHQ/vocalinux/releases/tag/nightly-2026-08-02",
"body": "Nightly",
"published_at": "2026-08-02T05:00:00Z",
"prerelease": True,
@@ -205,7 +208,7 @@ class TestFetchLatestRelease:
{
"tag_name": f"v0.15.{i}",
"name": f"v0.15.{i}",
"html_url": f"https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.15.{i}",
"html_url": f"https://github.com/VocaHQ/vocalinux/releases/tag/v0.15.{i}",
"body": "",
"published_at": "2026-08-03T00:00:00Z",
"prerelease": False,
@@ -217,9 +220,7 @@ class TestFetchLatestRelease:
{
"tag_name": "nightly-2026-08-01",
"name": "nightly-2026-08-01",
"html_url": (
"https://github.com/jatinkrmalik/vocalinux/releases/tag/nightly-2026-08-01"
),
"html_url": ("https://github.com/VocaHQ/vocalinux/releases/tag/nightly-2026-08-01"),
"body": "Nightly",
"published_at": "2026-08-01T05:00:00Z",
"prerelease": True,
+1 -1
View File
@@ -11,7 +11,7 @@ def _release(tag: str = "v0.99.0") -> ReleaseInfo:
tag_name=tag,
version=tag.lstrip("v"),
name=tag,
html_url=f"https://github.com/jatinkrmalik/vocalinux/releases/tag/{tag}",
html_url=f"https://github.com/VocaHQ/vocalinux/releases/tag/{tag}",
body="Notes",
published_at="2026-08-06T00:00:00Z",
prerelease=False,
+1 -1
View File
@@ -532,7 +532,7 @@ print_uninstallation_summary() {
if [ "$ISSUES" -gt 0 ]; then
echo
print_warning "If you encounter any problems, please report them at:"
print_warning "https://github.com/jatinkrmalik/vocalinux/issues"
print_warning "https://github.com/VocaHQ/vocalinux/issues"
fi
}
+1 -1
View File
@@ -42,7 +42,7 @@ Offline-first Linux voice typing with real desktop integration (system tray, X11
## Brand commitments
- Name: Vocalinux (also part of the "Voca" family with VocaMac / VocaWin)
- Name: Vocalinux (part of [VocaHQ](https://vocahq.com) 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
+1 -1
View File
@@ -461,7 +461,7 @@ export default function ChangelogPage() {
<div className="mt-4 border-t border-border pt-4">
<a
href={`https://github.com/jatinkrmalik/vocalinux/releases/tag/${release.version}`}
href={`https://github.com/VocaHQ/vocalinux/releases/tag/${release.version}`}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1.5 text-sm font-medium text-primary hover:underline"
+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 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).",
a: "Run the one-liner installer: curl -fsSL https://raw.githubusercontent.com/VocaHQ/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?",
@@ -239,7 +239,7 @@ export default function FaqPage() {
<span className="inline-flex items-center gap-2">
<ChevronRight className="h-4 w-4 text-primary" />
<a
href="https://github.com/jatinkrmalik/vocalinux/issues"
href="https://github.com/VocaHQ/vocalinux/issues"
target="_blank"
rel="noopener noreferrer"
className="font-semibold text-primary hover:underline"
+3 -3
View File
@@ -48,7 +48,7 @@ const distroConfig: Record<DistroSlug, DistroConfig> = {
"Kubuntu and Linux Mint derivatives",
],
installCommand:
"curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive",
"curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive",
setupNotes: [
"Choose whisper.cpp for the fastest setup and cross-vendor GPU support.",
"On lower-RAM systems, pick VOSK for lightweight realtime dictation.",
@@ -79,7 +79,7 @@ const distroConfig: Record<DistroSlug, DistroConfig> = {
"Fedora KDE spin",
],
installCommand:
"curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive",
"curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive",
setupNotes: [
"If prompted for optional dependencies, accept defaults unless your desktop setup requires custom input tooling.",
"Keep the default whisper.cpp engine for best speed-to-accuracy tradeoff.",
@@ -110,7 +110,7 @@ const distroConfig: Record<DistroSlug, DistroConfig> = {
"Manjaro (X11 and Wayland sessions)",
],
installCommand:
"curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive",
"curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive",
setupNotes: [
"Prefer whisper.cpp for lower dependency footprint and faster cold start.",
"On custom compositor setups, verify text injection behavior in both terminal and browser contexts.",
+2 -2
View File
@@ -5,7 +5,7 @@ import { SeoSubpageShell } from "@/components/seo-subpage-shell";
import { buildPageMetadata } from "@/lib/seo";
const installCommand =
"curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive";
"curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive";
const distroGuides = [
{
@@ -68,7 +68,7 @@ export default function InstallGuidesPage() {
<p className="mt-4 text-sm text-muted-foreground">
Prefer no installer? Download an{" "}
<a
href="https://github.com/jatinkrmalik/vocalinux/releases"
href="https://github.com/VocaHQ/vocalinux/releases"
className="font-semibold text-primary hover:underline"
>
AppImage
+9 -2
View File
@@ -8,9 +8,11 @@ import {
absoluteUrl,
DEFAULT_OG_IMAGE_ALT,
DEFAULT_OG_IMAGE_PATH,
GITHUB_REPO_URL,
SITE_NAME,
SITE_URL,
TWITTER_HANDLE,
VOCAHQ_URL,
} from "@/lib/seo";
const display = Bricolage_Grotesque({
@@ -143,12 +145,17 @@ const organizationJsonLd = {
url: absoluteUrl("/"),
logo: absoluteUrl("/vocalinux.png"),
description: "Open-source, offline voice dictation software for Linux.",
sameAs: ["https://github.com/jatinkrmalik/vocalinux"],
sameAs: [GITHUB_REPO_URL, VOCAHQ_URL],
founder: {
"@type": "Person",
name: "Jatin K Malik",
url: "https://github.com/jatinkrmalik",
},
parentOrganization: {
"@type": "Organization",
name: "VocaHQ",
url: VOCAHQ_URL,
},
};
const webSiteJsonLd = {
@@ -168,7 +175,7 @@ const webSiteJsonLd = {
target: {
"@type": "EntryPoint",
urlTemplate:
"https://github.com/jatinkrmalik/vocalinux/issues?q={search_term_string}",
`${GITHUB_REPO_URL}/issues?q={search_term_string}`,
},
"query-input": {
"@type": "PropertyValueSpecification",
+1 -1
View File
@@ -258,7 +258,7 @@ export default function OfflinePage() {
<CheckCircle2 className="mt-0.5 h-4 w-4 flex-shrink-0" />
Read every line of code on{" "}
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="font-semibold hover:underline"
+12 -4
View File
@@ -141,9 +141,17 @@ export default function OpenSourcePage() {
Free & Open Source Voice Dictation
</h1>
<p className="mb-8 max-w-4xl text-lg text-muted-foreground">
Vocalinux is 100% open source under the AGPL-3.0 license, aligned with the other
VocaHQ distribution projects. No subscriptions, no vendor lock-in, no hidden costs.
Your voice data never leaves your machine.
Vocalinux is 100% open source under the AGPL-3.0 license, and part of{" "}
<a
href="https://vocahq.com"
target="_blank"
rel="noopener noreferrer"
className="font-medium text-primary hover:underline"
>
VocaHQ
</a>
. No subscriptions, no vendor lock-in, no hidden costs. Your voice data never
leaves your machine.
</p>
</section>
@@ -281,7 +289,7 @@ export default function OpenSourcePage() {
translations - join the community.
</p>
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 rounded-full border border-border bg-background px-4 py-2 text-sm font-semibold text-foreground hover:bg-muted"
+37 -19
View File
@@ -19,14 +19,14 @@ import { ThemeScreenshotImage } from "@/components/theme-screenshot";
// Always uses main/install.sh. The installer dynamically resolves the latest release tag via GitHub API
const installCommands = {
interactiveInstallCommand: `curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive`,
interactiveInstallCommand: `curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --interactive`,
interactiveInstallDisplayCommand: `curl -fsSL \\
https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh \\
https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh \\
-o /tmp/vl.sh && \\
bash /tmp/vl.sh --interactive`,
uninstallCommand: `curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/uninstall.sh -o /tmp/vul.sh && bash /tmp/vul.sh`,
uninstallCommand: `curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/uninstall.sh -o /tmp/vul.sh && bash /tmp/vul.sh`,
uninstallDisplayCommand: `curl -fsSL \\
https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/uninstall.sh \\
https://raw.githubusercontent.com/VocaHQ/vocalinux/main/uninstall.sh \\
-o /tmp/vul.sh && \\
bash /tmp/vul.sh`,
};
@@ -40,7 +40,7 @@ const homeJsonLd = [
applicationCategory: "UtilitiesApplication",
operatingSystem: "Linux",
isAccessibleForFree: true,
license: "https://github.com/jatinkrmalik/vocalinux/blob/main/LICENSE",
license: "https://github.com/VocaHQ/vocalinux/blob/main/LICENSE",
offers: {
"@type": "Offer",
price: "0",
@@ -55,7 +55,7 @@ const homeJsonLd = [
url: "https://github.com/jatinkrmalik",
},
url: "https://vocalinux.com/",
downloadUrl: "https://github.com/jatinkrmalik/vocalinux",
downloadUrl: "https://github.com/VocaHQ/vocalinux",
screenshot: "https://vocalinux.com/og-image.png",
featureList: [
"100% offline speech recognition",
@@ -320,7 +320,7 @@ export default function HomePage() {
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
useEffect(() => {
fetch("https://api.github.com/repos/jatinkrmalik/vocalinux")
fetch("https://api.github.com/repos/VocaHQ/vocalinux")
.then((res) => res.json())
.then((data) => {
if (data.stargazers_count) setStars(data.stargazers_count);
@@ -380,7 +380,7 @@ export default function HomePage() {
),
)}
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground"
@@ -433,7 +433,7 @@ export default function HomePage() {
),
)}
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 rounded-md px-2 py-2.5 text-sm font-medium"
@@ -480,7 +480,7 @@ export default function HomePage() {
Install Vocalinux
</a>
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="btn-secondary w-full sm:w-auto"
@@ -572,7 +572,7 @@ export default function HomePage() {
<code className="font-mono text-emerald-400">vocalinux</code>
</span>
<a
href="https://github.com/jatinkrmalik/vocalinux/releases"
href="https://github.com/VocaHQ/vocalinux/releases"
className="text-zinc-100 underline-offset-4 hover:underline"
>
AppImage downloads
@@ -1045,8 +1045,17 @@ export default function HomePage() {
<div className="mx-auto max-w-6xl min-w-0">
<h2 className="section-heading">Voca on other platforms</h2>
<p className="section-lede">
Related projects for macOS and Windows. This site is about the Linux
app.
Vocalinux is part of{" "}
<a
href="https://vocahq.com"
target="_blank"
rel="noopener noreferrer"
className="font-medium text-primary hover:underline"
>
VocaHQ
</a>
, with related apps for macOS and Windows. This site is about the
Linux app.
</p>
<div className="mt-10 grid gap-4 md:grid-cols-3">
{[
@@ -1055,7 +1064,7 @@ export default function HomePage() {
status: "Beta",
body: "Native macOS menu bar app. Offline voice-to-text with WhisperKit and CoreML.",
site: "https://vocamac.com",
gh: "https://github.com/jatinkrmalik/vocamac",
gh: "https://github.com/VocaHQ/vocamac",
primary: false,
},
{
@@ -1063,7 +1072,7 @@ export default function HomePage() {
status: "You are here",
body: "System tray app with whisper.cpp, Vulkan, and full offline support on Linux.",
site: "#install",
gh: "https://github.com/jatinkrmalik/vocalinux",
gh: "https://github.com/VocaHQ/vocalinux",
primary: true,
},
{
@@ -1071,7 +1080,7 @@ export default function HomePage() {
status: "Planned",
body: "Windows tray app with an offline-first design. Still in planning.",
site: "https://vocawin.com",
gh: "https://github.com/jatinkrmalik/vocawin",
gh: "https://github.com/VocaHQ/vocawin",
primary: false,
},
].map((item) => (
@@ -1130,7 +1139,7 @@ export default function HomePage() {
Install Vocalinux
</a>
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="btn-secondary"
@@ -1156,7 +1165,7 @@ export default function HomePage() {
Free open-source voice dictation for Linux. Offline by default.
</p>
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="text-zinc-400 transition-colors hover:text-white"
@@ -1244,7 +1253,16 @@ export default function HomePage() {
</div>
<div className="flex flex-col items-center justify-between gap-4 border-t border-zinc-800 pt-8 sm:flex-row">
<p className="text-sm text-zinc-400">
© {new Date().getFullYear()} Vocalinux. Open-source under AGPL-3.0.
© {new Date().getFullYear()} Vocalinux. Part of{" "}
<a
href="https://vocahq.com"
target="_blank"
rel="noopener noreferrer"
className="transition-colors hover:text-white"
>
VocaHQ
</a>
. Open-source under AGPL-3.0.
</p>
<p className="flex items-center gap-1 text-sm text-zinc-400">
Made with <Heart className="h-4 w-4 text-primary" /> by{" "}
+1 -1
View File
@@ -249,7 +249,7 @@ export default function PrivacyPage() {
please reach out:
</p>
<a
href="https://github.com/jatinkrmalik/vocalinux/issues"
href="https://github.com/VocaHQ/vocalinux/issues"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 text-primary hover:underline"
+2 -2
View File
@@ -320,7 +320,7 @@ export default function TroubleshootingPage() {
<ChevronRight className="mt-0.5 h-4 w-4 flex-shrink-0 text-primary" />
<span>
<a
href="https://github.com/jatinkrmalik/vocalinux/issues"
href="https://github.com/VocaHQ/vocalinux/issues"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1 font-semibold text-primary hover:underline"
@@ -334,7 +334,7 @@ export default function TroubleshootingPage() {
<ChevronRight className="mt-0.5 h-4 w-4 flex-shrink-0 text-primary" />
<span>
<a
href="https://github.com/jatinkrmalik/vocalinux/issues/new"
href="https://github.com/VocaHQ/vocalinux/issues/new"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1 font-semibold text-primary hover:underline"
+13 -1
View File
@@ -391,7 +391,7 @@ export function SeoSubpageShell({ children }: SeoSubpageShellProps) {
Install
</Link>
<a
href="https://github.com/jatinkrmalik/vocalinux"
href="https://github.com/VocaHQ/vocalinux"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1.5 rounded-full border border-zinc-700 px-4 py-2 text-sm font-medium text-zinc-100 transition-colors hover:border-zinc-500"
@@ -423,6 +423,18 @@ export function SeoSubpageShell({ children }: SeoSubpageShellProps) {
</div>
))}
</div>
<p className="mt-8 border-t border-zinc-800 pt-6 text-sm text-zinc-500">
Vocalinux is part of{" "}
<a
href="https://vocahq.com"
target="_blank"
rel="noopener noreferrer"
className="text-zinc-400 transition-colors hover:text-white"
>
VocaHQ
</a>
.
</p>
</div>
</footer>
</div>
+2
View File
@@ -5,6 +5,8 @@ export const SITE_NAME = "Vocalinux";
export const DEFAULT_OG_IMAGE_PATH = "/og-image.png";
export const DEFAULT_OG_IMAGE_ALT = "Vocalinux - Voice Dictation for Linux";
export const TWITTER_HANDLE = "@jatinkrmalik";
export const VOCAHQ_URL = "https://vocahq.com";
export const GITHUB_REPO_URL = "https://github.com/VocaHQ/vocalinux";
interface PageMetadataOptions {
title: string;