diff --git a/assets/AppIcon.icns b/assets/AppIcon.icns deleted file mode 100644 index aa6206cf..00000000 Binary files a/assets/AppIcon.icns and /dev/null differ diff --git a/assets/README.md b/assets/README.md new file mode 100644 index 00000000..098ee7d4 --- /dev/null +++ b/assets/README.md @@ -0,0 +1,34 @@ +# Assets Directory + +## File Structure + +```text +assets/ +├── AppIcon.png # Mac master source (1024x1024) - for icns generation & SetApp +├── prep-icons.sh # Generate icon.icns from AppIcon.png +├── README.md # This file +│ +├── icon.icns # Mac app icon (generated by prep-icons.sh) +├── icon.ico # Windows app icon +├── icon.png # Linux/Windows BrowserWindow icon (256x256) +├── iconTemplate.png # macOS tray icon +├── iconTemplate@2x.png # macOS tray icon (Retina) +├── iconTemplate@2x.ico # Windows tray icon (high DPI) +│ +├── icons/ # Linux icons ONLY (electron-builder auto-uses) +│ ├── 16x16.png +│ ├── 32x32.png +│ ├── 64x64.png +│ ├── 128x128.png +│ ├── 256x256.png +│ ├── 512x512.png +│ └── 1024x1024.png +│ +├── entitlements.mac.plist # macOS entitlements for code signing +├── requirement.rqset # macOS code signing requirements +└── assets.d.ts # TypeScript declarations for asset imports +``` + +## Regenerating macOS Icons + +After updating `AppIcon.png`, run `prep-icons.sh`. diff --git a/assets/icon.icns b/assets/icon.icns index 2fda15af..91728f4c 100644 Binary files a/assets/icon.icns and b/assets/icon.icns differ diff --git a/assets/icon.svg b/assets/icon.svg deleted file mode 100644 index 2df6fa76..00000000 --- a/assets/icon.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/prep-icons.sh b/assets/prep-icons.sh new file mode 100755 index 00000000..afbd745d --- /dev/null +++ b/assets/prep-icons.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env sh + +# Generate icon.icns from AppIcon.png for macOS +# This script creates a temporary iconset folder, generates all required sizes, +# converts to icns, then cleans up. + +set -e + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +SOURCE="$SCRIPT_DIR/AppIcon.png" +OUTPUT="$SCRIPT_DIR/icon.icns" +ICONSET="$SCRIPT_DIR/icon.iconset" + +if [ ! -f "$SOURCE" ]; then + echo "Error: Source file not found: $SOURCE" + exit 1 +fi + +echo "Generating icon.icns from AppIcon.png..." + +# Remove existing iconset if present +rm -rf "$ICONSET" +mkdir "$ICONSET" + +# Generate all required icon sizes for macOS +# Format: filename - size +# @2x variants are double the base size + +sips -z 16 16 "$SOURCE" --out "$ICONSET/icon_16x16.png" +sips -z 32 32 "$SOURCE" --out "$ICONSET/icon_16x16@2x.png" +sips -z 32 32 "$SOURCE" --out "$ICONSET/icon_32x32.png" +sips -z 64 64 "$SOURCE" --out "$ICONSET/icon_32x32@2x.png" +sips -z 128 128 "$SOURCE" --out "$ICONSET/icon_128x128.png" +sips -z 256 256 "$SOURCE" --out "$ICONSET/icon_128x128@2x.png" +sips -z 256 256 "$SOURCE" --out "$ICONSET/icon_256x256.png" +sips -z 512 512 "$SOURCE" --out "$ICONSET/icon_256x256@2x.png" +sips -z 512 512 "$SOURCE" --out "$ICONSET/icon_512x512.png" +sips -z 1024 1024 "$SOURCE" --out "$ICONSET/icon_512x512@2x.png" + +# Convert to icns (macOS only) +iconutil -c icns "$ICONSET" -o "$OUTPUT" + +# Clean up +rm -rf "$ICONSET" + +echo "Successfully generated: $OUTPUT"