Skip to content

ZenNotes 2.22.1: the Dock icon falls in line

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Aug 13:38

ZenNotes 2.22.1: the Dock icon falls in line

One fix, a visible one: the macOS Dock icon now sits on Apple's icon grid instead of looming about 9% over its neighbors. Installers for macOS, Windows, and Linux (x64 + arm64) are attached below.

🐛 Fixes

  • The macOS Dock icon sits on Apple's icon grid. ZenNotes loomed about 9% larger than every other icon in the Dock. Apple's grid draws a Dock icon as an 824px tile centered on the 1024px canvas; ours was drawn at 896px. Christian measured it from the outside with screenshot rulers, 17.5px of headroom in the Dock slot where stock apps get 23, which is exactly that extra 72px of tile. (Reported by @Christian-SC26 in #544.)

    There were two causes, and fixing only the obvious one would not have been enough. The artwork itself was off the grid, so icon.png and icon.icns are regenerated with the tile scaled to exactly 824px with 100px margins, plus the soft drop shadow Apple's own icns icons bake in (Notes.app carries one; without it the tile reads slightly flat next to system neighbors). And the installed app was quietly overriding its own bundle icon at runtime: a dev-mode workaround (npm run dev shows Electron's default icon, so the app force-sets its own) also ran in packaged builds, replacing the .icns with a raw NSImage and bypassing the system's icon treatment. That call now runs only in dev.

    What this deliberately does not do: the light appearance variant Christian also asked about. Appearance-aware icons need the macOS 26 Icon Composer pipeline (a .icon file compiled into Assets.car), which electron-builder cannot produce yet. That stays open as a follow-up rather than blocking the size fix.

    How to test locally: npm run pack, open dist/mac-arm64/ZenNotes.app, and park it in the Dock next to any stock app. Before this the enso tile poked above its neighbors' top edges; now the edges align, shadow and all. media/dock-icon-before-after.png is the side-by-side.

🧰 For contributors

  • build/icon.png is the single master: electron-builder derives the Windows ico from it and the non-mac window icons read it at runtime, so both inherit the new padding with this release. The Linux launcher icons in build/icons/ are deliberately untouched; there is no macOS-style grid convention on Linux desktops, and shrinking them would trade a closed complaint for a new one.
  • The grid numbers, for the next time the artwork changes: 1024 canvas, 824 tile, 100px margins, corner geometry preserved by uniform scaling, template shadow at y=10 blur=10 30% black (1024 scale). Verify with a solid-alpha span (alpha > 250) at mid-height, not a bounding box; the shadow pollutes the bbox.
  • app.dock.setIcon is gated to !app.isPackaged now. A packaged app must advertise its bundle .icns untouched: macOS applies its own icon treatments to the bundle icon (and any future Icon Composer work depends on that), while a runtime NSImage bypasses all of it.

Keyboard-first and local-first, as always.