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
+14 -14
View File
@@ -7,8 +7,8 @@ install_desktop_entry() {
print_info "Installing desktop entry..."
# Check if desktop entry file exists
if [ ! -f "vocalinux.desktop" ]; then
print_error "Desktop entry file not found: vocalinux.desktop"
if [ ! -f "voculinux.desktop" ]; then
print_error "Desktop entry file not found: voculinux.desktop"
return 1
fi
@@ -19,27 +19,27 @@ install_desktop_entry() {
}
# Copy desktop entry
cp vocalinux.desktop "$DESKTOP_DIR/" || {
cp voculinux.desktop "$DESKTOP_DIR/" || {
print_error "Failed to copy desktop entry to $DESKTOP_DIR"
return 1
}
# Update the desktop entry to use the wrapper script with GI_TYPELIB_PATH
WRAPPER_SCRIPT="$HOME/.local/bin/vocalinux-gui"
WRAPPER_SCRIPT="$HOME/.local/bin/voculinux-gui"
if [ ! -f "$WRAPPER_SCRIPT" ]; then
print_warning "Wrapper script not found at $WRAPPER_SCRIPT"
print_warning "Desktop entry may not work correctly"
else
# Update Exec line to include GI_TYPELIB_PATH for PyGObject
# Use the detected path for cross-distro compatibility
sed -i "s|^Exec=vocalinux|Exec=env GI_TYPELIB_PATH=$GI_TYPELIB_DETECTED $WRAPPER_SCRIPT|" "$DESKTOP_DIR/vocalinux.desktop" || {
sed -i "s|^Exec=voculinux|Exec=env GI_TYPELIB_PATH=$GI_TYPELIB_DETECTED $WRAPPER_SCRIPT|" "$DESKTOP_DIR/voculinux.desktop" || {
print_warning "Failed to update desktop entry path"
}
print_info "Updated desktop entry to use wrapper script with GI_TYPELIB_PATH"
fi
# Make desktop entry executable
chmod +x "$DESKTOP_DIR/vocalinux.desktop" || {
chmod +x "$DESKTOP_DIR/voculinux.desktop" || {
print_warning "Failed to make desktop entry executable"
}
@@ -64,10 +64,10 @@ install_icons() {
# List of icons to install
local ICONS=(
"vocalinux.svg"
"vocalinux-microphone.svg"
"vocalinux-microphone-off.svg"
"vocalinux-microphone-process.svg"
"voculinux.svg"
"voculinux-microphone.svg"
"voculinux-microphone-off.svg"
"voculinux-microphone-process.svg"
)
# Install each icon
@@ -85,10 +85,10 @@ install_icons() {
done
if [ "$INSTALLED_COUNT" -eq "${#ICONS[@]}" ]; then
print_success "Installed all custom Vocalinux icons"
print_success "Installed all custom Voculinux icons"
return 0
elif [ "$INSTALLED_COUNT" -gt 0 ]; then
print_warning "Installed $INSTALLED_COUNT/${#ICONS[@]} custom Vocalinux icons"
print_warning "Installed $INSTALLED_COUNT/${#ICONS[@]} custom Voculinux icons"
return 0
else
print_error "Failed to install any icons"
@@ -125,8 +125,8 @@ update_icon_cache() {
install_resources_to_venv() {
print_info "Installing resources to virtual environment..."
# Target directory: $VENV_DIR/share/vocalinux/resources
local VENV_RESOURCES_DIR="$VENV_DIR/share/vocalinux/resources"
# Target directory: $VENV_DIR/share/voculinux/resources
local VENV_RESOURCES_DIR="$VENV_DIR/share/voculinux/resources"
# Create directories
mkdir -p "$VENV_RESOURCES_DIR/icons/scalable" || {