icons: per-platform icon set — real Liquid Glass on macOS, flat design on Windows/Linux
The hand-packed icns was pixel-clean (verified by unpacking and scanning every size), but macOS 26 composites legacy .icns icons into the Liquid Glass system at render time; stacked on Icon Composer's baked PNG-export lighting, that clips the rim highlights into the near-corner specks and abrupt highlight ends (owner report 2026-10-13). The fix is the real layered icon: mac.icon now points at the Icon Composer document (build/icon.icon, copied from ~/Documents/Affinity/lh-logo) and electron-builder compiles it via actool into Assets.car — macOS 26+ renders the true Liquid Glass design (dark/tinted variants included). actool's backwards-compat icns caps at 256px, so scripts/after-pack.cjs swaps in the existing full-res build/icon.icns before signing: pre-Tahoe macOS keeps today's quality, Tahoe gets the layered icon. Windows/Linux get the owner's flat design (rounded squircle with baked transparency): scripts/make-icons.mjs renders build/icon-flat.svg via resvg into build/icon.ico (16→256 PNG entries) + build/icon.png (512), and electron-builder.yml pins win.icon/linux.icon. desktop:dist injects DEVELOPER_DIR (actool needs Xcode; the machine selects CommandLineTools by default, CI's setup-xcode takes precedence via the :- default). The release workflow's mac job selects Xcode 26+ explicitly. Verified locally: mac --dir build (Assets.car + checksummed full-res fallback + CFBundleIconName/IconFile) and the win-unpacked exe carries our ico bytes; NSIS/AppImage assembly is CI's (cross-build tooling can't run on arm64 macOS). Runbook updated. 1610/1610.
This commit is contained in:
@@ -12,7 +12,7 @@ Windows signing is deliberately disabled for this first release. SmartScreen may
|
||||
|
||||
The custom app bar stays on all three platforms. macOS keeps its left-side traffic lights; Windows/Linux use Electron's native right-side Window Controls Overlay, with CSS space reserved from the overlay's actual geometry. Windows/Linux hide the native menu until Alt is pressed. macOS keeps its system menu.
|
||||
|
||||
The existing `build/icon.icns` is the source for all platforms: electron-builder converts it to ICO/Linux PNGs. Linux's desktop identity is `learnharness.desktop`. Public package-maintainer metadata uses the owner's GitHub no-reply address; support goes through [GitHub Issues](https://github.com/amosblomqvist/learnharness/issues).
|
||||
Icons are per-platform (2026-10-13): macOS compiles the Icon Composer document `build/icon.icon` via actool into `Assets.car` (macOS 26 Liquid Glass) plus a fallback icns that `scripts/after-pack.cjs` replaces with the hand-packed full-res `build/icon.icns` (actool's caps at 256px); Windows embeds `build/icon.ico` and Linux uses `build/icon.png`, both generated from the flat design (`build/icon-flat.svg`) by `node scripts/make-icons.mjs`. Building the mac icon needs Xcode 26+ (`actool`) — `desktop:dist` injects `DEVELOPER_DIR` locally and the release workflow selects Xcode via setup-xcode. Linux's desktop identity is `learnharness.desktop`. Public package-maintainer metadata uses the owner's GitHub no-reply address; support goes through [GitHub Issues](https://github.com/amosblomqvist/learnharness/issues).
|
||||
|
||||
## Build pipeline
|
||||
|
||||
|
||||
Reference in New Issue
Block a user