From 9c14f17beed05419d0581f0d3d6b1c42623b722a Mon Sep 17 00:00:00 2001 From: forbes Date: Thu, 29 Jan 2026 22:30:21 -0600 Subject: [PATCH] Fix .deb desktop icon: use Kindred logo instead of FreeCAD icon The build-deb.sh was copying org.freecad.FreeCAD.svg as the desktop icon because it checked the install directory first, where only the FreeCAD icon exists. Reorder to prefer resources/branding/kindred-logo.svg. Also generate PNG icons from the SVG using rsvg-convert when available, for better desktop environment compatibility. --- package/debian/build-deb.sh | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/package/debian/build-deb.sh b/package/debian/build-deb.sh index 01f40c2bf4..11f055e5e5 100755 --- a/package/debian/build-deb.sh +++ b/package/debian/build-deb.sh @@ -176,22 +176,33 @@ StartupNotify=true StartupWMClass=FreeCAD EOF -# Copy or create icon files -if [ -f "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" ]; then - cp "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" \ +# Copy Kindred branding icons (prefer Kindred logo over FreeCAD default) +if [ -f "${PROJECT_ROOT}/resources/branding/kindred-logo.svg" ]; then + cp "${PROJECT_ROOT}/resources/branding/kindred-logo.svg" \ "${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg" -elif [ -f "${PROJECT_ROOT}/resources/branding/kindred-create.svg" ]; then - cp "${PROJECT_ROOT}/resources/branding/kindred-create.svg" \ +elif [ -f "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" ]; then + cp "${INSTALL_DIR}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg" \ "${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg" fi -# Copy PNG icons if available -for size in 48 256; do - if [ -f "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" ]; then - cp "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" \ - "${STAGING_DIR}/usr/share/icons/hicolor/${size}x${size}/apps/kindred-create.png" - fi -done +# Generate PNG icons from the Kindred SVG for better desktop integration +if command -v rsvg-convert > /dev/null 2>&1 && \ + [ -f "${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg" ]; then + for size in 48 256; do + rsvg-convert -w "$size" -h "$size" \ + "${STAGING_DIR}/usr/share/icons/hicolor/scalable/apps/kindred-create.svg" \ + -o "${STAGING_DIR}/usr/share/icons/hicolor/${size}x${size}/apps/kindred-create.png" \ + 2>/dev/null || true + done +else + # Fallback: copy FreeCAD PNGs if available + for size in 48 256; do + if [ -f "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" ]; then + cp "${INSTALL_DIR}/share/icons/hicolor/${size}x${size}/apps/org.freecad.FreeCAD.png" \ + "${STAGING_DIR}/usr/share/icons/hicolor/${size}x${size}/apps/kindred-create.png" + fi + done +fi # Create MIME type definition for .fcstd files cat > "${STAGING_DIR}/usr/share/mime/packages/kindred-create.xml" << 'EOF'