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:
soubarnak
2026-11-06 01:29:39 +05:30
parent c565e6d946
commit ea7be5f111
251 changed files with 2449 additions and 1991 deletions
+3 -3
View File
@@ -38,7 +38,7 @@ from vocalinux.audio.pulse_sources import (
from vocalinux.utils import whispercpp_model_info
from vocalinux.utils.snap import SNAP_GPU_NOTE, running_in_snap
SNAP_ENV = {"SNAP": "/snap/vocalinux/42", "SNAP_NAME": "vocalinux"}
SNAP_ENV = {"SNAP": "/snap/voculinux/42", "SNAP_NAME": "voculinux"}
PACTL_JSON = [
{
@@ -108,7 +108,7 @@ def _runner(
def _have_pactl(name: str) -> Optional[str]:
return "/snap/vocalinux/42/usr/bin/pactl" if name == "pactl" else None
return "/snap/voculinux/42/usr/bin/pactl" if name == "pactl" else None
class TestPactlParsing:
@@ -503,7 +503,7 @@ class TestSnapGpuReporting:
def test_running_in_snap(self) -> None:
assert running_in_snap(SNAP_ENV)
assert running_in_snap({"SNAP": "/snap/vocalinux/42"})
assert running_in_snap({"SNAP": "/snap/voculinux/42"})
assert not running_in_snap({})
def test_snap_reports_cpu_without_probing_host_gpu_tools(