Skip to content

Lived-in walkman app icon + reproducible icon pipeline - #6

Merged
hellno merged 2 commits into
mainfrom
walkman-app-icon
Jun 10, 2026
Merged

Lived-in walkman app icon + reproducible icon pipeline#6
hellno merged 2 commits into
mainfrom
walkman-app-icon

Conversation

@hellno

@hellno hellno commented Jun 10, 2026

Copy link
Copy Markdown
Owner

What

Replaces Deck's placeholder app icon with a new "lived-in walkman" icon, and makes the icon toolchain reproducible and fork-clean.

Changes

New icon

  • assets/icon.{png,icns} — desert "used-future" walkman (warm cream/tan + burnt-orange, hazard decal, matte tactile buttons), baked into the macOS squircle tile with Apple-style padding + a soft drop shadow.
  • Cargo.toml bundle config now points at assets/icon.icns directly — cargo-bundle 0.11 can't build an .icns from a lone 1024² PNG (No matching IconType: 1024 only exists as 512@2x), which silently broke just bundle.

Reproducible, fork-clean pipeline

  • scripts/make-app-icon.py — turns any source image into a squircle-masked, padded, shadowed .icns (true continuous-corner superellipse, pure Pillow). --linux also emits a freedesktop hicolor tree + .desktop; --web a full-bleed rounded PNG.
  • assets/icon-source.png — committed source art, so just icon is reproducible.
  • justfileicon now runs the script; added icon-linux.
  • README / docs/LEARNINGS.md / Cargo.toml — document the image → squircle → icns flow and the icon-source.png drop point.
  • .gitignore — ignore /dist (generated Linux/web extras).

Fork flow (the point of this PR)

  1. drop a 1024×1024 image at assets/icon-source.png
  2. just icon (bakes the macOS squircle + rebuilds icon.icns)
  3. just bundle

Test plan

  • python3 scripts/make-app-icon.py → regenerates assets/icon.png + assets/icon.icns
  • python3 scripts/make-app-icon.py --linux --webdist/linux/hicolor/** + dist/icon-rounded.png
  • cargo bundle → valid Deck.app, icon shows in the Dock ✓

hellno added 2 commits June 5, 2026 00:11
- assets/icon.png: new 1024px squircle master (Apple padding + soft shadow)
- assets/icon.icns: regenerated multi-res icon (16-1024, @1x/@2x)
- Cargo.toml: point cargo-bundle at the .icns directly; a lone 1024px PNG
  has no matching icns IconType in cargo-bundle 0.11, which broke 'just bundle'
- scripts/make-app-icon.py: any source image -> squircle-masked, padded,
  shadowed .icns (true superellipse, pure Pillow) + optional Linux hicolor
  tree (--linux) and web rounded PNG (--web)
- assets/icon-source.png: committed source so 'just icon' is reproducible
- justfile: 'icon' now runs the script from icon-source.png; add 'icon-linux'
- README / LEARNINGS / Cargo.toml: document image->squircle->icns, the
  icon-source.png drop point, and why the bundle points at icon.icns directly
  (cargo-bundle 0.11 can't build an icns from a lone 1024px PNG)
- .gitignore: ignore /dist (generated Linux/web extras)
@hellno
hellno merged commit be2d9f4 into main Jun 10, 2026
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant