Updating the App Icon
assets/app_icon.png is the single source for the application icon. JUCE
consumes it via ICON_BIG / ICON_SMALL in magda/daw/CMakeLists.txt and
generates the platform icons at configure time:
- macOS ->
Icon.icns(referenced byCFBundleIconFilein the app bundle) - Windows -> embedded
.ico - Linux ->
release.ymlcopiesapp_icon.pngto the 256x256 hicolor path directly
There is no separate .icns/.ico to edit and no generation script to run by
hand. Update the icon by replacing app_icon.png and rebuilding.
Conventions
- The source must be a square PNG, 1024x1024.
- Each iteration is kept in
assets/asBold-M,Bold-M2,Bold-M3, ... (the current mark at the time of writing isBold-M5). Add the next mark asBold-M<N>.pngand keep the prior ones as history.app_icon.pngis always a byte-for-byte copy of the chosen mark.
Steps
Drop the new mark into
assets/(e.g.assets/Bold-M6.png).Point
app_icon.pngat it:.claude/skills/app-icon/update-app-icon.sh assets/Bold-M6.pngThe script validates the PNG is square (1024x1024 by convention), copies it over
assets/app_icon.png, and prints an md5 so you can confirm the swap.Reconfigure and rebuild so the embedded icon regenerates:
make configure && make debugCMake regenerates
Icon.icns(macOS) and the.ico(Windows) fromapp_icon.pngat configure time, then the build copies the fresh icns into the app bundle. A plainmake debugwill not pick up the change -- ninja does not trackapp_icon.pngas a dependency, so the reconfigure is required. (make rebuildalso works, since it cleans and reconfigures.)Commit
app_icon.pngand the new source together:git add assets/app_icon.png assets/Bold-M6.png git commit -m "chore: new app icon (Bold-M6)"