Skip to content
Merged
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
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -350,8 +350,8 @@ jobs:

echo ""
echo "=== Verify release-info.json ==="
echo "Reading release-info.json directly from OSS..."
ossutil cat oss://valuecell-clawx/latest/release-info.json | jq .
ossutil cp oss://valuecell-clawx/latest/release-info.json /tmp/release-info.json -f
jq . /tmp/release-info.json

echo ""
echo "✅ All files uploaded and verified successfully!"
12 changes: 9 additions & 3 deletions electron/main/tray.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ export function createTray(mainWindow: BrowserWindow): Tray {
// Windows: use .ico for best quality in system tray
iconPath = join(iconsDir, 'icon.ico');
} else if (process.platform === 'darwin') {
// macOS: use 16x16 PNG as template image
iconPath = join(iconsDir, '16x16.png');
// macOS: use Template.png for proper status bar icon
// The "Template" suffix tells macOS to treat it as a template image
iconPath = join(iconsDir, 'tray-icon-Template.png');
} else {
// Linux: use 32x32 PNG
iconPath = join(iconsDir, '32x32.png');
Expand All @@ -41,9 +42,14 @@ export function createTray(mainWindow: BrowserWindow): Tray {
// Fallback to icon.png if platform-specific icon not found
if (icon.isEmpty()) {
icon = nativeImage.createFromPath(join(iconsDir, 'icon.png'));
// Still try to set as template for macOS
if (process.platform === 'darwin') {
icon.setTemplateImage(true);
}
}

// On macOS, set as template image for proper dark/light mode support
// Note: Using "Template" suffix in filename automatically marks it as template image
// But we can also explicitly set it for safety
if (process.platform === 'darwin') {
icon.setTemplateImage(true);
}
Expand Down
Binary file modified resources/icons/128x128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/icons/16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/icons/256x256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/icons/32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/icons/48x48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/icons/512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/icons/64x64.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 15 additions & 4 deletions resources/icons/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ This directory contains the application icons for all supported platforms.
| `icon.ico` | Windows | Windows ICO format |
| `icon.png` | All | 512x512 PNG fallback |
| `16x16.png` - `512x512.png` | Linux | PNG set for Linux |
| `tray-icon-template.svg` | Source | macOS tray icon template source |
| `tray-icon-Template.png` | macOS | 22x22 status bar icon (note: "Template" suffix required) |

## Generating Icons

Expand Down Expand Up @@ -55,14 +57,23 @@ If you prefer to generate icons manually:

## Design Guidelines

- **Background**: Gradient from #6366f1 to #8b5cf6 (Indigo to Violet)
### Application Icon
- **Corner Radius**: ~20% of width (200px on 1024px canvas)
- **Foreground**: White claw symbol with "X" accent
- **Safe Area**: Keep 10% margin from edges

### macOS Tray Icon
- **Format**: Single-color (black) on transparent background
- **Size**: 22x22 pixels (system automatically handles @2x retina)
- **Naming**: Must end with "Template.png" for automatic template mode
- **Design**: Simplified monochrome version of main icon (ClawX logo)
- **Source**: Use `tray-icon-template.svg` as the source
- **Important**: Must be pure black (#000000) on transparent background - no gradients or colors

## Updating the Icon

1. Edit `icon.svg` with your vector editor (Figma, Illustrator, Inkscape)
2. Run `./scripts/generate-icons.sh`
3. Verify generated icons look correct
4. Commit all generated files
2. For macOS tray icon, edit `tray-icon-template.svg` (must be single-color black on transparent)
3. Run `node scripts/generate-icons.mjs`
4. Verify generated icons look correct
5. Commit all generated files
Binary file modified resources/icons/icon.icns
Binary file not shown.
Binary file modified resources/icons/icon.ico
Binary file not shown.
Binary file modified resources/icons/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 21 additions & 3 deletions resources/icons/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/icons/tray-icon-Template.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions resources/icons/tray-icon-template.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions scripts/generate-icons.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,20 @@ try {
}
echo` ✅ Created ${generatedCount} Linux PNG icons`;

// 5. Generate macOS Tray Icon Template
echo`📍 Generating macOS tray icon template...`;
const TRAY_SVG_SOURCE = path.join(ICONS_DIR, 'tray-icon-template.svg');

if (fs.existsSync(TRAY_SVG_SOURCE)) {
await sharp(TRAY_SVG_SOURCE)
.resize(22, 22)
.png()
.toFile(path.join(ICONS_DIR, 'tray-icon-Template.png'));
echo` ✅ Created tray-icon-Template.png (22x22)`;
} else {
echo` ⚠️ tray-icon-template.svg not found, skipping tray icon generation`;
}

echo`\n✨ Icon generation complete! Files located in: ${ICONS_DIR}`;

} catch (error) {
Expand Down