Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed assets/AppIcon.icns
Binary file not shown.
34 changes: 34 additions & 0 deletions assets/README.md
Original file line number Diff line number Diff line change
@@ -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`.
Binary file modified assets/icon.icns
Binary file not shown.
29 changes: 0 additions & 29 deletions assets/icon.svg

This file was deleted.

46 changes: 46 additions & 0 deletions assets/prep-icons.sh
Original file line number Diff line number Diff line change
@@ -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"