feat(identity): rename user-visible identity to voculinux with one-time legacy import
The fork takes its own name everywhere a user can see it: binaries (voculinux, voculinux-gui), desktop entry, autostart, tray, D-Bus namespace (com.voculinux.Voculinux, no alias for the old name), config/data/cache dirs, single-instance lock, IBus engine identity, tray icons, resource prefixes, VOCULINUX_* environment names, and the update-checker user agent. The internal Python module stays vocalinux and the distribution metadata keeps the upstream URLs as provenance. On first run a previous Vocalinux install's config.json, custom dictionary, and portal restore token are copied once into the new locations (new config always wins, no merge, no write-back); models re-resolve through the pinned-checksum download path. An offline naming-sweep test proves no old-name strings remain on user-visible surfaces outside the allowlist. Refs #18
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Linux distribution compatibility
|
||||
|
||||
How Vocalinux behaves across distributions, what is tested, and what to install manually when needed.
|
||||
How Voculinux behaves across distributions, what is tested, and what to install manually when needed.
|
||||
|
||||
For install steps, prefer [INSTALL.md](INSTALL.md). Flatpak packaging (useful on immutable or non-standard layouts): [packaging/flatpak/README.md](../packaging/flatpak/README.md). Snap Store listing: [snapcraft.io/vocalinux](https://snapcraft.io/vocalinux) (`--edge`; pack/upload steps in [INSTALL.md](INSTALL.md)). Flatpak is not on Flathub: submission [flathub#9368](https://github.com/flathub/flathub/pull/9368) closed 2026-07-23 on policy grounds; channel tracked in [#167](https://github.com/VocaHQ/vocalinux/issues/167).
|
||||
For install steps, prefer [INSTALL.md](INSTALL.md). Flatpak packaging (useful on immutable or non-standard layouts): [packaging/flatpak/README.md](../packaging/flatpak/README.md). Snap Store listing: [snapcraft.io/voculinux](https://snapcraft.io/voculinux) (`--edge`; pack/upload steps in [INSTALL.md](INSTALL.md)). Flatpak is not on Flathub: submission [flathub#9368](https://github.com/flathub/flathub/pull/9368) closed 2026-07-23 on policy grounds; channel tracked in [#167](https://github.com/VocaHQ/vocalinux/issues/167).
|
||||
|
||||
## Cross-distro behavior
|
||||
|
||||
@@ -24,7 +24,7 @@ The installer uses a multi-step approach to detect the correct GI_TYPELIB_PATH:
|
||||
|
||||
### Wrapper Scripts
|
||||
|
||||
The installer creates wrapper scripts (`~/.local/bin/vocalinux` and `~/.local/bin/vocalinux-gui`) that:
|
||||
The installer creates wrapper scripts (`~/.local/bin/voculinux` and `~/.local/bin/voculinux-gui`) that:
|
||||
- Set the correct `GI_TYPELIB_PATH` environment variable
|
||||
- Handle input group permissions for Wayland keyboard shortcuts
|
||||
- Provide seamless cross-distro compatibility
|
||||
@@ -35,7 +35,7 @@ The `.desktop` entry is automatically configured with the detected `GI_TYPELIB_P
|
||||
|
||||
## Officially Supported Distributions
|
||||
|
||||
These distributions are tested and known to work well with Vocalinux. A
|
||||
These distributions are tested and known to work well with Voculinux. A
|
||||
derivative is judged by the Python and package repositories it ships rather
|
||||
than by its own version number, which rarely tracks the base release. In
|
||||
particular, `install.sh` does not interpret a Debian-based derivative's product
|
||||
@@ -94,7 +94,7 @@ sudo apt install -y python3-gi gir1.2-gtk-3.0 gir1.2-ibus-1.0 gir1.2-gdkpixbuf-2
|
||||
|
||||
### Debian-specific notes
|
||||
|
||||
Debian's standard repositories differ from Ubuntu in a few ways that matter for Vocalinux:
|
||||
Debian's standard repositories differ from Ubuntu in a few ways that matter for Voculinux:
|
||||
|
||||
**pywhispercpp build prerequisites.** On a clean Debian install the following packages are not
|
||||
pulled in transitively (unlike Ubuntu) but are required when `pywhispercpp` must be compiled
|
||||
@@ -125,16 +125,16 @@ package-scoped flag to avoid compiling unrelated deps like NumPy from source (wh
|
||||
long time and can fail):
|
||||
|
||||
```bash
|
||||
source ~/.local/share/vocalinux/venv/bin/activate
|
||||
source ~/.local/share/voculinux/venv/bin/activate
|
||||
PYWHISPERCPP_CLEAN=1 pip install --force-reinstall --no-binary=pywhispercpp pywhispercpp
|
||||
deactivate
|
||||
```
|
||||
|
||||
**Verifying libwhisper.so resolution.** If Vocalinux starts with
|
||||
**Verifying libwhisper.so resolution.** If Voculinux starts with
|
||||
`libwhisper.so.1: cannot open shared object file`, check for unresolved symbols:
|
||||
|
||||
```bash
|
||||
ldd $(find ~/.local/share/vocalinux/venv -name '*.so' -path '*/pywhispercpp*' 2>/dev/null | head -1) | grep 'not found'
|
||||
ldd $(find ~/.local/share/voculinux/venv -name '*.so' -path '*/pywhispercpp*' 2>/dev/null | head -1) | grep 'not found'
|
||||
```
|
||||
|
||||
If any libraries are listed, re-run the installer with `--rebuild-whispercpp` or switch to
|
||||
@@ -215,11 +215,11 @@ sudo urpmi -y python3-gobject gtk3-devel gobject-introspection-devel \
|
||||
## PyPI, pip, and pipx Installation
|
||||
|
||||
The PyPI package is useful when you want a standard Python package install, or
|
||||
when you want to manage Vocalinux with `pipx`. However, **Vocalinux requires
|
||||
when you want to manage Voculinux with `pipx`. However, **Voculinux requires
|
||||
system desktop packages** that cannot be installed by pip or pipx.
|
||||
|
||||
Use the official installer when possible. It installs the required system
|
||||
packages, creates the virtual environment, installs Vocalinux, sets up desktop
|
||||
packages, creates the virtual environment, installs Voculinux, sets up desktop
|
||||
integration, and downloads the default speech model:
|
||||
|
||||
```bash
|
||||
@@ -229,8 +229,8 @@ bash /tmp/vl.sh
|
||||
|
||||
### Important: Install System Packages First
|
||||
|
||||
Before running `pip install vocalinux`, `pip install "vocalinux[vosk]"`, or
|
||||
`pipx install vocalinux`, you **must** install the required system packages:
|
||||
Before running `pip install voculinux`, `pip install "voculinux[vosk]"`, or
|
||||
`pipx install voculinux`, you **must** install the required system packages:
|
||||
|
||||
#### Ubuntu/Debian
|
||||
```bash
|
||||
@@ -272,8 +272,8 @@ sudo zypper install "${PYVER}-gobject" "${PYVER}-gobject-cairo" gtk3 ibus typeli
|
||||
|
||||
2. **Create a virtual environment with system site-packages enabled**:
|
||||
```bash
|
||||
python3 -m venv ~/.local/share/vocalinux-pypi/venv --system-site-packages
|
||||
source ~/.local/share/vocalinux-pypi/venv/bin/activate
|
||||
python3 -m venv ~/.local/share/voculinux-pypi/venv --system-site-packages
|
||||
source ~/.local/share/voculinux-pypi/venv/bin/activate
|
||||
pip install --upgrade pip setuptools wheel
|
||||
```
|
||||
|
||||
@@ -281,15 +281,15 @@ sudo zypper install "${PYVER}-gobject" "${PYVER}-gobject-cairo" gtk3 ibus typeli
|
||||
as `python3-gi`, which are often more reliable than building PyGObject from
|
||||
source in a venv.
|
||||
|
||||
3. **Install Vocalinux from PyPI**:
|
||||
3. **Install Voculinux from PyPI**:
|
||||
```bash
|
||||
pip install vocalinux
|
||||
# vosk engine: pip install "vocalinux[vosk]"
|
||||
pip install voculinux
|
||||
# vosk engine: pip install "voculinux[vosk]"
|
||||
```
|
||||
|
||||
4. **Run Vocalinux**:
|
||||
4. **Run Voculinux**:
|
||||
```bash
|
||||
vocalinux
|
||||
voculinux
|
||||
```
|
||||
|
||||
### pipx Installation Steps
|
||||
@@ -311,20 +311,20 @@ sudo zypper install "${PYVER}-gobject" "${PYVER}-gobject-cairo" gtk3 ibus typeli
|
||||
pipx ensurepath
|
||||
```
|
||||
|
||||
3. **Install Vocalinux**:
|
||||
3. **Install Voculinux**:
|
||||
```bash
|
||||
pipx install vocalinux
|
||||
# vosk engine: pipx install "vocalinux[vosk]"
|
||||
pipx install voculinux
|
||||
# vosk engine: pipx install "voculinux[vosk]"
|
||||
```
|
||||
|
||||
4. **Run Vocalinux**:
|
||||
4. **Run Voculinux**:
|
||||
```bash
|
||||
vocalinux
|
||||
voculinux
|
||||
```
|
||||
|
||||
### Why System Packages Are Required
|
||||
|
||||
Vocalinux uses GTK3 for its GUI, AppIndicator/Ayatana for the system tray icon,
|
||||
Voculinux uses GTK3 for its GUI, AppIndicator/Ayatana for the system tray icon,
|
||||
PortAudio for microphone capture, and tools such as `xdotool`, `wtype`, and clipboard utilities (`wl-clipboard`, `xclip`, `xsel`) for
|
||||
text injection and layout-independent Wayland paste fallback. These are system libraries and desktop tools that must be
|
||||
installed with your distribution's package manager. Python packages from PyPI
|
||||
@@ -333,20 +333,20 @@ typelibs, tray support, audio development libraries, or text injection binaries.
|
||||
|
||||
### Troubleshooting pip/pipx Installation
|
||||
|
||||
If `vocalinux` fails to start:
|
||||
If `voculinux` fails to start:
|
||||
|
||||
1. **Check for missing system packages** - The error message will indicate which packages are missing
|
||||
2. **Verify GI_TYPELIB_PATH** - In rare cases, you may need to set this environment variable:
|
||||
```bash
|
||||
export GI_TYPELIB_PATH=/usr/lib/x86_64-linux-gnu/girepository-1.0
|
||||
vocalinux
|
||||
voculinux
|
||||
```
|
||||
3. **Check package metadata** - Run `pip show vocalinux` or
|
||||
`pipx runpip vocalinux show vocalinux` to confirm which version was installed.
|
||||
3. **Check package metadata** - Run `pip show voculinux` or
|
||||
`pipx runpip voculinux show voculinux` to confirm which version was installed.
|
||||
4. **Check Python dependencies** - Run `pip check` inside the venv, or
|
||||
`pipx runpip vocalinux check` for pipx.
|
||||
`pipx runpip voculinux check` for pipx.
|
||||
|
||||
If Vocalinux reports that a speech recognition model is missing, open Settings
|
||||
If Voculinux reports that a speech recognition model is missing, open Settings
|
||||
and download a model, or use the official installer to download the default model
|
||||
during setup.
|
||||
|
||||
@@ -362,7 +362,7 @@ This installer automatically detects your distribution and installs all required
|
||||
|
||||
## Text Injection Tools
|
||||
|
||||
Vocalinux requires text injection tools to work with X11 or Wayland:
|
||||
Voculinux requires text injection tools to work with X11 or Wayland:
|
||||
|
||||
### For X11
|
||||
- **xdotool**: Required for X11 sessions
|
||||
@@ -370,7 +370,7 @@ Vocalinux requires text injection tools to work with X11 or Wayland:
|
||||
### For Wayland
|
||||
- **IBus**: Recommended for KDE Plasma Wayland and generally the most reliable direct text input path
|
||||
- **wtype**: Recommended for wlroots-style Wayland compositors such as sway
|
||||
- **ydotool**: Universal alternative that works with both X11 and Wayland. Current distro packages use the per-user `ydotool.service`; source builds can install the system-level `ydotoold.service`. Vocalinux uses clipboard paste with `wl-clipboard`, `xclip`, or `xsel` to avoid non-US layout scrambling.
|
||||
- **ydotool**: Universal alternative that works with both X11 and Wayland. Current distro packages use the per-user `ydotool.service`; source builds can install the system-level `ydotoold.service`. Voculinux uses clipboard paste with `wl-clipboard`, `xclip`, or `xsel` to avoid non-US layout scrambling.
|
||||
- **xdotool**: May work via XWayland fallback
|
||||
|
||||
### Installation by Distribution
|
||||
@@ -383,7 +383,7 @@ sudo zypper install xdotool wtype wl-clipboard xclip xsel # openSUSE
|
||||
```
|
||||
|
||||
Ubuntu releases which package `ydotool` install a **user** unit named
|
||||
`ydotool.service`. Enable it only for the account running Vocalinux:
|
||||
`ydotool.service`. Enable it only for the account running Voculinux:
|
||||
|
||||
```bash
|
||||
sudo apt install ydotool
|
||||
@@ -443,13 +443,13 @@ For unsupported or experimental distributions:
|
||||
|
||||
### Autostart Compatibility
|
||||
|
||||
Vocalinux uses **XDG autostart desktop entries** for "Start on Login".
|
||||
Voculinux uses **XDG autostart desktop entries** for "Start on Login".
|
||||
|
||||
- Desktop-session autostart file location:
|
||||
- `$XDG_CONFIG_HOME/autostart/vocalinux.desktop`, or
|
||||
- `~/.config/autostart/vocalinux.desktop` (fallback)
|
||||
- This launches Vocalinux as a user GUI app after login.
|
||||
- Vocalinux does **not** create a `systemd` service/unit for this feature.
|
||||
- `$XDG_CONFIG_HOME/autostart/voculinux.desktop`, or
|
||||
- `~/.config/autostart/voculinux.desktop` (fallback)
|
||||
- This launches Voculinux as a user GUI app after login.
|
||||
- Voculinux does **not** create a `systemd` service/unit for this feature.
|
||||
|
||||
Practical caveat:
|
||||
|
||||
@@ -500,7 +500,7 @@ When reporting issues, please include:
|
||||
|
||||
5. **Error messages or logs:**
|
||||
- Any error messages from the installer
|
||||
- Output from running `vocalinux-gui` from terminal
|
||||
- Output from running `voculinux-gui` from terminal
|
||||
- Relevant journal logs if applicable
|
||||
|
||||
6. **Steps to reproduce:**
|
||||
@@ -525,7 +525,7 @@ Use this checklist when testing on a new distribution:
|
||||
- [ ] Check wrapper scripts exist
|
||||
|
||||
### Post-Install
|
||||
- [ ] Launch from terminal: `~/.local/bin/vocalinux-gui`
|
||||
- [ ] Launch from terminal: `~/.local/bin/voculinux-gui`
|
||||
- [ ] Launch from application menu
|
||||
- [ ] Verify tray icon appears
|
||||
- [ ] Test keyboard shortcuts (Hold Right Alt by default)
|
||||
@@ -543,7 +543,7 @@ Use this checklist when testing on a new distribution:
|
||||
|
||||
## Contributing Compatibility Fixes
|
||||
|
||||
If you successfully get Vocalinux working on an unsupported or experimental distribution:
|
||||
If you successfully get Voculinux working on an unsupported or experimental distribution:
|
||||
|
||||
1. Test thoroughly using the checklist above
|
||||
2. Document any distribution-specific requirements
|
||||
|
||||
Reference in New Issue
Block a user