[Bug] macOS app icon ignores Apple's icon template — full-bleed sharp-cornered square in Dock/Launchpad
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
**Describe the bug**
The packaged macOS app icon is a full-bleed, sharp-cornered, fully opaque square. In the Dock / Launchpad it sits next to apps that follow Apple's Big Sur+ icon template (rounded-rect tile, transparent margins, ~10% inset) and reads as clearly non-native: a hard-edged black square, larger-looking than every neighbor.
Pre-Tahoe macOS renders `.icns` artwork literally — the system applies no mask — so the icon artwork itself must ship the rounded-rect shape and margins. Buzz's doesn't.
**Evidence** (verified 2026-07-28)
Shipped artifact — Buzz.app **0.4.26** on macOS 15, `Contents/Resources/icon.icns`, 1024×1024 rep: all four corner pixels are opaque black `(0,0,0,255)`.
Repo assets on `main`:
- `desktop/src-tauri/icons/buzz-source.png` is 1024×1024 **RGB — no alpha channel at all** (full-bleed artwork).
- The generated sizes inherit it: `icon.png` (512) and `128x128.png` also have opaque corners, so every rep inside `icon.icns` is an unmasked square.
- `tauri.conf.json` → `bundle.icon` ships `icons/icon.icns` directly; nothing in the `tauri icon` pipeline applies the macOS shape.
Quick check from a checkout:
```bash
python3 -c "
from PIL import Image
im = Image.open('desktop/src-tauri/icons/icon.png').convert('RGBA')
w,h = im.size; px = im.load()
print([px[0,0], px[w-1,0], px[0,h-1], px[w-1,h-1]]) # all (0,0,0,255)
"
```
**Expected**
Apple's macOS icon template: on the 1024×1024 canvas, the tile is an ~824×824 rounded rectangle centered with ~100px transparent margins, artwork inside the tile. That's what 1Password, Wispr Flow, etc. ship, and why Buzz looks wrong next to them.
**Relationship to PR #2532**
#2532 ("Fix Buzz macOS app icon scale", open since 2026-07-23, unreviewed, no linked issue) rebuilds the icon with Icon Composer and **does fix the shape**: its `macos-icon.png` has transparent corners and a proper squircle. But the tile spans the *full* canvas — alpha bbox is `(0, 0, 1024, 1024)` and the edge midpoints are opaque (e.g. pixel `(512, 0)` = `(49,49,49,255)`) — instead of Apple's ~824×824 grid. Rendered at nominal size that's ~24% oversized versus neighboring icons: it trades "sharp black square" for "visibly fat tile". Given that PR's stated goal is optical size, it looks overcorrected; re-exporting the flattened macOS fallback on the standard grid would land it conformant in one shot.
**Fix cost**
Asset-only, no code change:
1. Re-export the macOS artwork on Apple's template (824×824 rounded tile, transparent margins, 1024 canvas) — #2532's `buzz.icon` Icon Composer bundle is the right source for this.
2. Regenerate `icon.icns` from that masked artwork. The existing full-bleed square source remains correct for Windows/Linux/Android/store tiles — only the macOS `.icns` needs the masked variant, and `tauri.conf.json` already takes `icon.icns` as a separate entry.
Search scope: I looked for existing reports under "app icon", "icon macos", "icns", "dock icon" and a broad "icon" pass over issues — #2532 is the only related work I found, with no issue attached.
Contributor guide
Research direction
Start with desktop/src-tauri/icons/buzz-source.png and the generated icon.png, then inspect tauri.conf.json and PR #2532's macos-icon.png. Run the provided Pillow corner-pixel check and compare the macOS artwork's transparent margins and tile size. Done means icon.icns uses the masked macOS artwork while the other platform assets remain unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, tauri
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100