From 1b01762a1c935cd411e37696b1efb59ead2ef953 Mon Sep 17 00:00:00 2001 From: forbes Date: Mon, 2 Mar 2026 08:06:36 -0600 Subject: [PATCH] chore: rebrand XDGData and icon installs to Kindred Create (#367) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace org.freecad.FreeCAD.desktop with kindred-create.desktop - Replace org.freecad.FreeCAD.metainfo.xml.in with Kindred Create metainfo (new description, Kindred URLs, kindred-create app ID) - Replace org.freecad.FreeCAD.xml with kindred-create.xml (adds .kc MIME type alongside .fcstd) - Replace FreeCAD.thumbnailer.in with kindred-create.thumbnailer.in - Update XDGData/CMakeLists.txt for new filenames - Update src/Gui/CMakeLists.txt icon installs: use kindred-create icons from resources/ (all sizes 16-512 + SVG) instead of renaming freecad-icon-*.png to org.freecad.FreeCAD.png - Update freecad-thumbnailer.in default icon to kindred-create.png - Update AppImage create_bundle.sh to use kindred-create desktop/icon Remaining org.freecad.FreeCAD references are macOS bundle IDs (MainWindow.cpp, MacAppBundle/) and packaging fallbacks — separate rebranding tasks. --- package/rattler-build/linux/create_bundle.sh | 6 +- src/Gui/CMakeLists.txt | 15 ++-- src/Tools/freecad-thumbnailer.in | 5 +- src/XDGData/CMakeLists.txt | 16 ++-- src/XDGData/kindred-create.desktop | 13 +++ src/XDGData/kindred-create.metainfo.xml.in | 42 ++++++++++ ...ailer.in => kindred-create.thumbnailer.in} | 2 +- src/XDGData/kindred-create.xml | 18 ++++ src/XDGData/org.freecad.FreeCAD.desktop | 22 ----- .../org.freecad.FreeCAD.metainfo.xml.in | 82 ------------------- src/XDGData/org.freecad.FreeCAD.xml | 9 -- 11 files changed, 97 insertions(+), 133 deletions(-) create mode 100644 src/XDGData/kindred-create.desktop create mode 100644 src/XDGData/kindred-create.metainfo.xml.in rename src/XDGData/{FreeCAD.thumbnailer.in => kindred-create.thumbnailer.in} (65%) create mode 100644 src/XDGData/kindred-create.xml delete mode 100644 src/XDGData/org.freecad.FreeCAD.desktop delete mode 100644 src/XDGData/org.freecad.FreeCAD.metainfo.xml.in delete mode 100644 src/XDGData/org.freecad.FreeCAD.xml diff --git a/package/rattler-build/linux/create_bundle.sh b/package/rattler-build/linux/create_bundle.sh index 7f0e432ccc..18db25e2fd 100755 --- a/package/rattler-build/linux/create_bundle.sh +++ b/package/rattler-build/linux/create_bundle.sh @@ -29,9 +29,9 @@ rm -rf ${conda_env}/bin_tmp sed -i '1s|.*|#!/usr/bin/env python|' ${conda_env}/bin/pip echo -e "\nCopying Icon and Desktop file" -cp ${conda_env}/share/applications/org.freecad.FreeCAD.desktop AppDir/ -sed -i 's/Exec=FreeCAD/Exec=AppRun/g' AppDir/org.freecad.FreeCAD.desktop -cp ${conda_env}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg AppDir/ +cp ${conda_env}/share/applications/kindred-create.desktop AppDir/ +sed -i 's/Exec=kindred-create/Exec=AppRun/g' AppDir/kindred-create.desktop +cp ${conda_env}/share/icons/hicolor/scalable/apps/kindred-create.svg AppDir/ # Remove __pycache__ folders and .pyc files find . -path "*/__pycache__/*" -delete diff --git a/src/Gui/CMakeLists.txt b/src/Gui/CMakeLists.txt index 1949574784..f003fcc3bb 100644 --- a/src/Gui/CMakeLists.txt +++ b/src/Gui/CMakeLists.txt @@ -1587,12 +1587,15 @@ else(WIN32) INSTALL(TARGETS FreeCADGui LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) - INSTALL(FILES Icons/freecad-icon-16.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps RENAME org.freecad.FreeCAD.png) - INSTALL(FILES Icons/freecad-icon-32.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps RENAME org.freecad.FreeCAD.png) - INSTALL(FILES Icons/freecad-icon-48.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps RENAME org.freecad.FreeCAD.png) - INSTALL(FILES Icons/freecad-icon-64.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps RENAME org.freecad.FreeCAD.png) - INSTALL(FILES Icons/freecad.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps RENAME org.freecad.FreeCAD.svg) - INSTALL(FILES Icons/freecad.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/16x16/apps/kindred-create.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/32x32/apps/kindred-create.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/48x48/apps/kindred-create.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/64x64/apps/kindred-create.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/128x128/apps/kindred-create.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/256x256/apps/kindred-create.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/512x512/apps/kindred-create.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/scalable/apps/kindred-create.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps) + INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/icons/hicolor/scalable/apps/kindred-create.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps) INSTALL(FILES Icons/freecad-doc.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/mimetypes RENAME application-x-extension-fcstd.svg) endif(WIN32) diff --git a/src/Tools/freecad-thumbnailer.in b/src/Tools/freecad-thumbnailer.in index 1cfeae0676..45e77ba685 100644 --- a/src/Tools/freecad-thumbnailer.in +++ b/src/Tools/freecad-thumbnailer.in @@ -32,14 +32,15 @@ NOTE: To make sure FreeCAD saves thumbnail information: Edit → Preferences → Document → Save thumbnail into project when saving document """ + +import getopt import sys import zipfile -import getopt opt, par = getopt.getopt(sys.argv[1:], "-s:") input_file = par[0] output_file = par[1] -default_icon = "@CMAKE_INSTALL_DATAROOTDIR@/icons/hicolor/48x48/apps/org.freecad.FreeCAD.png" +default_icon = "@CMAKE_INSTALL_DATAROOTDIR@/icons/hicolor/48x48/apps/kindred-create.png" try: # Read compressed file diff --git a/src/XDGData/CMakeLists.txt b/src/XDGData/CMakeLists.txt index 837381554a..711fd51a3d 100644 --- a/src/XDGData/CMakeLists.txt +++ b/src/XDGData/CMakeLists.txt @@ -12,30 +12,30 @@ if(NOT DEFINED APPDATA_RELEASE_DATE) endif() configure_file( - org.freecad.FreeCAD.metainfo.xml.in - ${CMAKE_BINARY_DIR}/org.freecad.FreeCAD.metainfo.xml + kindred-create.metainfo.xml.in + ${CMAKE_BINARY_DIR}/kindred-create.metainfo.xml ) install( - FILES ${CMAKE_BINARY_DIR}/org.freecad.FreeCAD.metainfo.xml + FILES ${CMAKE_BINARY_DIR}/kindred-create.metainfo.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo ) install( - FILES org.freecad.FreeCAD.desktop + FILES kindred-create.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications ) install( - FILES org.freecad.FreeCAD.xml + FILES kindred-create.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages ) configure_file( - FreeCAD.thumbnailer.in - ${CMAKE_BINARY_DIR}/FreeCAD.thumbnailer + kindred-create.thumbnailer.in + ${CMAKE_BINARY_DIR}/kindred-create.thumbnailer ) install( - FILES ${CMAKE_BINARY_DIR}/FreeCAD.thumbnailer + FILES ${CMAKE_BINARY_DIR}/kindred-create.thumbnailer DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers ) diff --git a/src/XDGData/kindred-create.desktop b/src/XDGData/kindred-create.desktop new file mode 100644 index 0000000000..85c0038732 --- /dev/null +++ b/src/XDGData/kindred-create.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Name=Kindred Create +GenericName=CAD Application +Comment=Parametric 3D CAD modeler based on FreeCAD +Exec=kindred-create %U +Icon=kindred-create +Terminal=false +Type=Application +Categories=Graphics;Science;Engineering; +MimeType=application/x-extension-fcstd;application/x-kindred-create;x-scheme-handler/kindred; +Keywords=CAD;3D;modeling;engineering;design;parametric; +StartupNotify=true +StartupWMClass=KindredCreate diff --git a/src/XDGData/kindred-create.metainfo.xml.in b/src/XDGData/kindred-create.metainfo.xml.in new file mode 100644 index 0000000000..46e392bcd9 --- /dev/null +++ b/src/XDGData/kindred-create.metainfo.xml.in @@ -0,0 +1,42 @@ + + + kindred-create + LGPL-2.1-or-later + CC0-1.0 + Kindred Systems + kindred-create.desktop + Kindred Create + Parametric 3D CAD modeler for professional engineering workflows + +

+ Kindred Create is a parametric 3D CAD modeler built for professional engineering + workflows. Based on FreeCAD, it adds a context-aware UI system, integrated PLM + connectivity via Silo, and a pluggable file origin layer on top of FreeCAD's + parametric modeling core. +

+

+ Create constrained 2D sketches as the basis for 3D models, use PartDesign for + feature-based solid modeling, and assemble multi-part designs with the Assembly + workbench. Kindred Create supports STEP, IGES, STL, OBJ, DXF, and other standard + CAD formats. +

+
+ + engineering + cad + design + 3d + parametric-modeler + assembly + part + plm + + https://git.kindred-systems.com/kindred/create + https://git.kindred-systems.com/kindred/create/issues + https://git.kindred-systems.com/kindred/create + https://git.kindred-systems.com/kindred/create/src/branch/main/CONTRIBUTING.md + + + + +
diff --git a/src/XDGData/FreeCAD.thumbnailer.in b/src/XDGData/kindred-create.thumbnailer.in similarity index 65% rename from src/XDGData/FreeCAD.thumbnailer.in rename to src/XDGData/kindred-create.thumbnailer.in index f334368d4a..b645c39be2 100644 --- a/src/XDGData/FreeCAD.thumbnailer.in +++ b/src/XDGData/kindred-create.thumbnailer.in @@ -1,4 +1,4 @@ [Thumbnailer Entry] TryExec=@CMAKE_INSTALL_BINDIR@/freecad-thumbnailer Exec=@CMAKE_INSTALL_BINDIR@/freecad-thumbnailer -s %s %i %o -MimeType=application/x-extension-fcstd; +MimeType=application/x-extension-fcstd;application/x-kindred-create; diff --git a/src/XDGData/kindred-create.xml b/src/XDGData/kindred-create.xml new file mode 100644 index 0000000000..652dfca9e6 --- /dev/null +++ b/src/XDGData/kindred-create.xml @@ -0,0 +1,18 @@ + + + + FreeCAD Document + FreeCAD Document + + + + + + + Kindred Create Document + Kindred Create Document + + + + + diff --git a/src/XDGData/org.freecad.FreeCAD.desktop b/src/XDGData/org.freecad.FreeCAD.desktop deleted file mode 100644 index fc9c3019b2..0000000000 --- a/src/XDGData/org.freecad.FreeCAD.desktop +++ /dev/null @@ -1,22 +0,0 @@ -[Desktop Entry] -Name=FreeCAD -Comment=Feature based Parametric Modeler -Comment[de]=Feature-basierter parametrischer Modellierer -Comment[es]=Modelador paramétrico basado en operaciones -Comment[ko]=형상 기반 파라메트릭 모델링 도구 -Comment[pl]=Modeler parametryczny oparty na cechach -Comment[ru]=Система автоматизированного проектирования -GenericName=CAD Application -GenericName[de]=CAD-Anwendung -GenericName[es]=Aplicación CAD -GenericName[ko]=CAD 응용프로그램 -GenericName[pl]=Aplikacja CAD -GenericName[ru]=Система автоматизированного проектирования -Exec=FreeCAD - --single-instance %F -Terminal=false -Type=Application -Icon=org.freecad.FreeCAD -Categories=Graphics;Science;Education;Engineering;X-CNC; -StartupNotify=true -StartupWMClass=FreeCAD -MimeType=application/x-extension-fcstd;model/obj;image/vnd.dwg;image/vnd.dxf;model/vnd.collada+xml;application/iges;model/iges;model/step;model/step+zip;model/stl;application/vnd.shp;model/vrml; diff --git a/src/XDGData/org.freecad.FreeCAD.metainfo.xml.in b/src/XDGData/org.freecad.FreeCAD.metainfo.xml.in deleted file mode 100644 index c12ab15941..0000000000 --- a/src/XDGData/org.freecad.FreeCAD.metainfo.xml.in +++ /dev/null @@ -1,82 +0,0 @@ - - - org.freecad.FreeCAD - LGPL-2.1 - CC0-1.0 - The FreeCAD Team - org.freecad.FreeCAD.desktop - FreeCAD - An open source parametric 3D CAD modeler - -

- FreeCAD is an open-source parametric 3D modeler built to help you design real-world objects of - any size. With parametric modeling, you can easily modify your designs by adjusting parameters - in the model history. FreeCAD is suitable for a wide range of uses, from product design and - mechanical engineering to architecture and 3D printing. -

-

- The software allows you to create constrained 2D sketches, which can be used as the basis for more - complex 3D models. It includes tools to adjust dimensions, extract design details, and produce - production-ready technical drawings. FreeCAD is available on Windows, Mac, and Linux, and - supports various file formats like STEP, IGES, STL, SVG, DXF, OBJ, IFC, and more, making it easy to - fit into existing workflows. It also supports customization through Python scripting for those - who want to automate tasks or develop custom features. -

-

- FreeCAD offers several specialized workbenches, including tools for Finite Element Analysis - (FEA), Building Information Modeling (BIM), CAM / CNC and robot movement simulation. You can expand its - capabilities with add-ons, plugins, and macros created by the FreeCAD community, which can be - installed directly from the application. This flexibility makes it a practical choice for both - professionals and hobbyists. -

-
- - - Part Design - https://raw.githubusercontent.com/FreeCAD/FreeCAD/main/.github/images/partdesign.png - - - Assembly - https://raw.githubusercontent.com/FreeCAD/FreeCAD/main/.github/images/assembly.png - - - BIM - https://raw.githubusercontent.com/FreeCAD/FreeCAD/main/.github/images/bim.png - - - FEM - https://raw.githubusercontent.com/FreeCAD/FreeCAD/main/.github/images/fem.png - - - - engineering - cad - bim - fea - fem - cam - cnc - design - 3d - 3d-printing - opencascade - parametric-modeler - architecture - assembly - part - coin - - https://www.freecad.org/ - https://github.com/FreeCAD/FreeCAD/issues - https://wiki.freecad.org/Frequently_asked_questions - https://wiki.freecad.org/User_hub - https://www.freecad.org/sponsor.php - https://crowdin.com/project/freecad - https://github.com/FreeCAD/FreeCAD - https://github.com/FreeCAD/FreeCAD/blob/master/CONTRIBUTING.md - yorik_AT_uncreated.net - - - - -
diff --git a/src/XDGData/org.freecad.FreeCAD.xml b/src/XDGData/org.freecad.FreeCAD.xml deleted file mode 100644 index cea07e7181..0000000000 --- a/src/XDGData/org.freecad.FreeCAD.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - FreeCAD document files - - - -