Files
create/docs/src/development/repo-structure.md
forbes 3b37ff86bd
Some checks failed
Build and Test / build (pull_request) Has been cancelled
feat(icons): add icon theming infrastructure with Catppuccin color remapping
- Move kindred-icons/ to icons/kindred/ (better organization)
- Add icons/mappings/ with FCAD.csv (Tango palette) and kindred.csv (Catppuccin Mocha)
- Add icons/retheme.py script to remap upstream FreeCAD SVG colors
- Generate icons/themed/ with 795 auto-themed SVGs (24,698 color replacements)
- Update BitmapFactory.cpp to load icons/kindred (highest priority) then
  icons/themed (auto-remapped upstream icons) before default FreeCAD icons
- Update CMakeLists.txt to install both icon directories
- Update all documentation references to new paths

The 157-color mapping covers the full Tango palette used across FreeCAD's
icon set, interpolating between 4 luminance anchors per color family.
2026-02-15 20:31:00 -06:00

4.3 KiB

Repository Structure

create/
├── src/
│   ├── App/                    # Core application (C++)
│   ├── Base/                   # Base classes (C++)
│   ├── Gui/                    # GUI framework and stylesheets (C++)
│   ├── Main/                   # Application entry points
│   ├── Mod/                    # FreeCAD modules (~37)
│   │   ├── Create/             # Kindred bootstrap module
│   │   ├── Assembly/           # Assembly workbench (Kindred patches)
│   │   ├── PartDesign/         # Part Design workbench
│   │   ├── Sketcher/           # Sketcher workbench
│   │   ├── AddonManager/       # Addon manager (submodule)
│   │   └── ...                 # Other stock FreeCAD modules
│   └── 3rdParty/
│       ├── OndselSolver/       # Assembly solver (submodule)
│       └── GSL/                # Guidelines Support Library (submodule)
├── mods/                       # Kindred addon workbenches (submodules)
│   ├── ztools/                 # ztools workbench
│   └── silo/                   # Silo parts database
├── icons/                      # Icon theming (kindred overrides, palettes, retheme script)
│   ├── kindred/                # Hand-crafted Catppuccin Mocha SVG overrides (~1444 icons)
│   ├── mappings/               # Color palette CSVs (FCAD.csv, kindred.csv)
│   └── retheme.py              # Script to remap upstream icon colors
├── resources/                  # Branding, desktop integration
│   ├── branding/               # Logo, splash, icon generation scripts
│   └── icons/                  # Platform icons (.ico, .icns, hicolor)
├── package/                    # Packaging scripts
│   ├── debian/                 # Debian package
│   ├── ubuntu/                 # Ubuntu-specific
│   ├── fedora/                 # RPM package
│   ├── rattler-build/          # Cross-platform bundles (AppImage, DMG, NSIS)
│   └── WindowsInstaller/       # NSIS installer definition
├── .gitea/workflows/           # CI/CD pipelines
│   ├── build.yml               # Build + test on push/PR
│   └── release.yml             # Release on tag push
├── tests/                      # Test suite
│   ├── src/                    # C++ test sources
│   └── lib/                    # Google Test framework (submodule)
├── cMake/                      # CMake helper modules
├── docs/                       # Documentation (this book)
├── tools/                      # Dev utilities (build, lint, profile)
├── contrib/                    # IDE configs (VSCode, CLion, debugger)
├── data/                       # Example and test data
├── CMakeLists.txt              # Root build configuration
├── CMakePresets.json           # Platform build presets
├── pixi.toml                  # Pixi environment and tasks
├── CONTRIBUTING.md             # Contribution guide
├── README.md                   # Project overview
├── LICENSE                     # LGPL-2.1-or-later
└── .pre-commit-config.yaml     # Code quality hooks

Git submodules

Submodule Path Source Purpose
ztools mods/ztools git.kindred-systems.com/forbes/ztools Unified workbench
silo-mod mods/silo git.kindred-systems.com/kindred/silo-mod Parts database
OndselSolver src/3rdParty/OndselSolver git.kindred-systems.com/kindred/solver Assembly solver
GSL src/3rdParty/GSL github.com/microsoft/GSL C++ guidelines library
AddonManager src/Mod/AddonManager github.com/FreeCAD/AddonManager Extension manager
googletest tests/lib github.com/google/googletest Test framework

Key files

File Purpose
src/Mod/Create/Init.py Console-phase bootstrap — loads addons
src/Mod/Create/InitGui.py GUI-phase bootstrap — registers workbenches, deferred setup
src/Gui/FileOrigin.h Abstract file origin interface (Kindred addition)
src/Gui/Stylesheets/KindredCreate.qss Catppuccin Mocha theme
pixi.toml Build tasks and dependencies
CMakeLists.txt Root CMake configuration