From 32a17a9659988eb2001c3244f906ae28c00aa68c Mon Sep 17 00:00:00 2001 From: Jatin K Malik Date: Sun, 16 Aug 2026 15:22:22 -0700 Subject: [PATCH] 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. --- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/workflows/codeberg-mirror.yml | 2 +- .github/workflows/nightly.yml | 6 +- .github/workflows/release.yml | 6 +- CONTRIBUTING.md | 12 ++-- README.md | 50 ++++++++--------- SECURITY.md | 2 +- docs/DISTRO_COMPATIBILITY.md | 6 +- docs/INSTALL.md | 14 ++--- docs/RELEASE_PROCESS.md | 10 ++-- docs/UPDATE.md | 28 +++++----- install.sh | 16 +++--- packaging/aur/vocalinux/PKGBUILD | 4 +- packaging/flatpak/README.md | 2 +- .../com.vocalinux.Vocalinux.metainfo.xml | 4 +- pyproject.toml | 10 ++-- src/vocalinux/main.py | 2 +- src/vocalinux/text_injection/ibus_engine.py | 2 +- src/vocalinux/text_injection/text_injector.py | 2 +- src/vocalinux/utils/update_checker.py | 26 ++++++++- src/vocalinux/version.py | 2 +- tests/distro-testing-checklist.md | 2 +- tests/test_tray_indicator.py | 8 +-- tests/test_update_checker.py | 21 +++---- tests/test_update_monitor.py | 2 +- uninstall.sh | 2 +- web/PRODUCT.md | 2 +- web/src/app/changelog/page.tsx | 2 +- web/src/app/faq/page.tsx | 4 +- web/src/app/install/[distro]/page.tsx | 6 +- web/src/app/install/page.tsx | 4 +- web/src/app/layout.tsx | 11 +++- web/src/app/offline/page.tsx | 2 +- web/src/app/open-source/page.tsx | 16 ++++-- web/src/app/page.tsx | 56 ++++++++++++------- web/src/app/privacy/page.tsx | 2 +- web/src/app/troubleshooting/page.tsx | 4 +- web/src/components/seo-subpage-shell.tsx | 14 ++++- web/src/lib/seo.ts | 2 + 39 files changed, 219 insertions(+), 151 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 115f764..df44567 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -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 diff --git a/.github/workflows/codeberg-mirror.yml b/.github/workflows/codeberg-mirror.yml index ec07e31..38edc3b 100644 --- a/.github/workflows/codeberg-mirror.yml +++ b/.github/workflows/codeberg-mirror.yml @@ -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: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e291f77..9e6c6de 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -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) --- diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d174c8c..930c9bd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5141d96..16caecf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 diff --git a/README.md b/README.md index b797dd5..c341aef 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ -[![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) -[![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) @@ -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! 🙌 - - + + ### 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) --- diff --git a/SECURITY.md b/SECURITY.md index 67a678a..d78c7f1 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -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 diff --git a/docs/DISTRO_COMPATIBILITY.md b/docs/DISTRO_COMPATIBILITY.md index 0bbe87f..caf2989 100644 --- a/docs/DISTRO_COMPATIBILITY.md +++ b/docs/DISTRO_COMPATIBILITY.md @@ -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) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 15350f2..4cb80bc 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/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) diff --git a/docs/RELEASE_PROCESS.md b/docs/RELEASE_PROCESS.md index 1038ae7..c900485 100644 --- a/docs/RELEASE_PROCESS.md +++ b/docs/RELEASE_PROCESS.md @@ -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 diff --git a/docs/UPDATE.md b/docs/UPDATE.md index c111900..0eb98ff 100644 --- a/docs/UPDATE.md +++ b/docs/UPDATE.md @@ -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) diff --git a/install.sh b/install.sh index 17292d9..df7b333 100755 --- a/install.sh +++ b/install.sh @@ -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 "" diff --git a/packaging/aur/vocalinux/PKGBUILD b/packaging/aur/vocalinux/PKGBUILD index f014f2a..e97437b 100644 --- a/packaging/aur/vocalinux/PKGBUILD +++ b/packaging/aur/vocalinux/PKGBUILD @@ -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') diff --git a/packaging/flatpak/README.md b/packaging/flatpak/README.md index 2a7c373..9218da8 100644 --- a/packaging/flatpak/README.md +++ b/packaging/flatpak/README.md @@ -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: ``` diff --git a/packaging/flatpak/com.vocalinux.Vocalinux.metainfo.xml b/packaging/flatpak/com.vocalinux.Vocalinux.metainfo.xml index 920bebc..ac9d8ba 100644 --- a/packaging/flatpak/com.vocalinux.Vocalinux.metainfo.xml +++ b/packaging/flatpak/com.vocalinux.Vocalinux.metainfo.xml @@ -71,8 +71,8 @@ https://vocalinux.com - https://github.com/jatinkrmalik/vocalinux/issues - https://github.com/jatinkrmalik/vocalinux + https://github.com/VocaHQ/vocalinux/issues + https://github.com/VocaHQ/vocalinux none diff --git a/pyproject.toml b/pyproject.toml index 07a1884..2ab961a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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"] diff --git a/src/vocalinux/main.py b/src/vocalinux/main.py index 8fec11e..00ef03b 100644 --- a/src/vocalinux/main.py +++ b/src/vocalinux/main.py @@ -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 diff --git a/src/vocalinux/text_injection/ibus_engine.py b/src/vocalinux/text_injection/ibus_engine.py index 8b25345..ab4460c 100644 --- a/src/vocalinux/text_injection/ibus_engine.py +++ b/src/vocalinux/text_injection/ibus_engine.py @@ -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", } diff --git a/src/vocalinux/text_injection/text_injector.py b/src/vocalinux/text_injection/text_injector.py index 6f29e5d..58dca9e 100644 --- a/src/vocalinux/text_injection/text_injector.py +++ b/src/vocalinux/text_injection/text_injector.py @@ -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 diff --git a/src/vocalinux/utils/update_checker.py b/src/vocalinux/utils/update_checker.py index 6afa88b..2f47c4e 100644 --- a/src/vocalinux/utils/update_checker.py +++ b/src/vocalinux/utils/update_checker.py @@ -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( diff --git a/src/vocalinux/version.py b/src/vocalinux/version.py index 041b302..85922ad 100644 --- a/src/vocalinux/version.py +++ b/src/vocalinux/version.py @@ -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" diff --git a/tests/distro-testing-checklist.md b/tests/distro-testing-checklist.md index dd6ef4e..5d19be4 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/main/install.sh -o /tmp/vl.sh + curl -fsSL https://raw.githubusercontent.com/VocaHQ/vocalinux/main/install.sh -o /tmp/vl.sh ``` - [ ] Run installer diff --git a/tests/test_tray_indicator.py b/tests/test_tray_indicator.py index cd141f9..0196389 100644 --- a/tests/test_tray_indicator.py +++ b/tests/test_tray_indicator.py @@ -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, diff --git a/tests/test_update_checker.py b/tests/test_update_checker.py index bbd8660..6370b16 100644 --- a/tests/test_update_checker.py +++ b/tests/test_update_checker.py @@ -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, diff --git a/tests/test_update_monitor.py b/tests/test_update_monitor.py index 445b853..812a368 100644 --- a/tests/test_update_monitor.py +++ b/tests/test_update_monitor.py @@ -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, diff --git a/uninstall.sh b/uninstall.sh index c630460..67813ad 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -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 } diff --git a/web/PRODUCT.md b/web/PRODUCT.md index d223bbb..fb0f903 100644 --- a/web/PRODUCT.md +++ b/web/PRODUCT.md @@ -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 diff --git a/web/src/app/changelog/page.tsx b/web/src/app/changelog/page.tsx index 631d1c3..6cdb79f 100644 --- a/web/src/app/changelog/page.tsx +++ b/web/src/app/changelog/page.tsx @@ -461,7 +461,7 @@ export default function ChangelogPage() {
= { "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 = { "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 = { "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.", diff --git a/web/src/app/install/page.tsx b/web/src/app/install/page.tsx index 7e9011e..481f226 100644 --- a/web/src/app/install/page.tsx +++ b/web/src/app/install/page.tsx @@ -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() {

Prefer no installer? Download an{" "} AppImage diff --git a/web/src/app/layout.tsx b/web/src/app/layout.tsx index 9945c4a..a03a754 100644 --- a/web/src/app/layout.tsx +++ b/web/src/app/layout.tsx @@ -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", diff --git a/web/src/app/offline/page.tsx b/web/src/app/offline/page.tsx index 0736556..e6b1373 100644 --- a/web/src/app/offline/page.tsx +++ b/web/src/app/offline/page.tsx @@ -258,7 +258,7 @@ export default function OfflinePage() { Read every line of code on{" "}

- 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{" "} + + VocaHQ + + . No subscriptions, no vendor lock-in, no hidden costs. Your voice data never + leaves your machine.

@@ -281,7 +289,7 @@ export default function OpenSourcePage() { translations - join the community.

{ - 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() { ), )} vocalinux AppImage downloads @@ -1045,8 +1045,17 @@ export default function HomePage() {

Voca on other platforms

- Related projects for macOS and Windows. This site is about the Linux - app. + Vocalinux is part of{" "} + + VocaHQ + + , with related apps for macOS and Windows. This site is about the + Linux app.

{[ @@ -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

- © {new Date().getFullYear()} Vocalinux. Open-source under AGPL-3.0. + © {new Date().getFullYear()} Vocalinux. Part of{" "} + + VocaHQ + + . Open-source under AGPL-3.0.

Made with by{" "} diff --git a/web/src/app/privacy/page.tsx b/web/src/app/privacy/page.tsx index 41d9623..4952dba 100644 --- a/web/src/app/privacy/page.tsx +++ b/web/src/app/privacy/page.tsx @@ -249,7 +249,7 @@ export default function PrivacyPage() { please reach out:

))}
+

+ Vocalinux is part of{" "} + + VocaHQ + + . +

diff --git a/web/src/lib/seo.ts b/web/src/lib/seo.ts index 3078c6d..af74e52 100644 --- a/web/src/lib/seo.ts +++ b/web/src/lib/seo.ts @@ -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;