From ec42e542e909ba0ff75a4efb9a95012be11124ee Mon Sep 17 00:00:00 2001 From: Xus Badia Date: Thu, 8 Oct 2026 15:12:32 +0200 Subject: [PATCH] macOS DMG: branded window background and icon layout The DMG opened as a plain Finder window. It now shows the app icon's figure on the DesignCraft colour, with DesignCraft.app and the Applications link side by side. Same approach as PhotoCraft's and VectorCraft's (storytold/photocraft#1201, storytold/vectorcraft#493). - packaging/macos/dmg/: background.svg (source; text outlined, no paper grain, the figure an of assets/app-icon), background.tiff (1x + 2x HiDPI, 16-colour palette, Deflate, sRGB; ~90 KB) and dmg-layout.DS_Store (Finder view settings: window, icon size 128, positions, background). - generate.py writes the TIFF and the layout on any OS, byte-for-byte reproducible, with nothing from the machine that ran it (no paths, users, disk names or volume UUIDs). - package.sh copies them into the staging folder; the image is still built with hdiutil makehybrid. Nothing extra runs in the signing job. - The volume name drops the version: the layout finds the background through an alias that includes the volume name. The DMG file name keeps the version. Co-Authored-By: Claude Opus 5.5 --- ASSETS.md | 2 + packaging/macos/dmg/README.md | 44 +++++++ packaging/macos/dmg/background.svg | 31 +++++ packaging/macos/dmg/background.tiff | Bin 0 -> 92736 bytes packaging/macos/dmg/dmg-layout.DS_Store | Bin 0 -> 16388 bytes packaging/macos/dmg/generate.py | 158 ++++++++++++++++++++++++ packaging/macos/package.sh | 7 +- 7 files changed, 241 insertions(+), 1 deletion(-) create mode 100644 packaging/macos/dmg/README.md create mode 100644 packaging/macos/dmg/background.svg create mode 100644 packaging/macos/dmg/background.tiff create mode 100644 packaging/macos/dmg/dmg-layout.DS_Store create mode 100644 packaging/macos/dmg/generate.py diff --git a/ASSETS.md b/ASSETS.md index cfe1f80..f243fdb 100644 --- a/ASSETS.md +++ b/ASSETS.md @@ -60,3 +60,5 @@ Generated-in-code art is original and has no file to list: the UI icon set (`cra | `docs/brand/artcraft-mark.svg`, `docs/brand/artcraft-mark.png` | ArtCraft / Storyteller | ArtCraft brand kit (project owner) | ArtCraft trademark, see docs/brand/LICENSE-brand.txt (not open source) | The mark; its outline is drawn in code by `crates/ui-egui/src/about.rs` (About splash, start screen) | | `docs/brand/artcraft-mark-black.svg`, `docs/brand/artcraft-mark-black.png` | ArtCraft / Storyteller | ArtCraft brand kit (project owner) | ArtCraft trademark, see docs/brand/LICENSE-brand.txt (not open source) | Mark for light backgrounds | | `docs/brand/LICENSE-brand.txt` | (licence text) | ArtCraft Team | — | Terms for the ArtCraft Marks in `docs/brand/` | +| `packaging/macos/dmg/background.svg` | @XusBadia | original work for this repository, derived from the DesignCraft app icon (`assets/app-icon/designcraft.svg`, referenced via ``, not copied); text is outlined Inter / JetBrains Mono glyph paths | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | DesignCraft macOS DMG window background for the Finder window; `packaging/macos/dmg/generate.py` renders it to `background.tiff` (2026-10-08) | +| `packaging/macos/dmg/background.tiff` | @XusBadia | Rendered from `packaging/macos/dmg/background.svg` by `packaging/macos/dmg/generate.py` | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | 1x + 2x HiDPI TIFF for the macOS DMG window; includes the app icon (see its row) and LittleCMS's built-in sRGB profile ("No copyright, use freely") | diff --git a/packaging/macos/dmg/README.md b/packaging/macos/dmg/README.md new file mode 100644 index 0000000..85bfcc7 --- /dev/null +++ b/packaging/macos/dmg/README.md @@ -0,0 +1,44 @@ +# macOS DMG window + +What Finder shows when the DMG opens: a 660 × 400 pt background with the app icon and the +`Applications` link side by side. `package.sh` copies these files into the image; nothing here is +generated at build time, so the DMG still builds with `hdiutil makehybrid` (no mounted device, no +Finder scripting on CI, nothing extra installed in the signing job). + +| File | What | +|---|---| +| `background.svg` | Source of the background: the app icon (`assets/app-icon/designcraft.svg`, linked, not copied) cropped as a cover on the DesignCraft colour field (`#7bb51c`), Ink and Paper. Its text (Inter, JetBrains Mono) is outlined, so rendering it needs no fonts. No paper grain: noise doesn't compress, and this keeps `background.tiff` small. | +| `background.tiff` | The background at 1x (660 × 400 px, 72 dpi) and 2x (1320 × 800 px, 144 dpi) in one HiDPI TIFF (16-colour palette, Deflate, sRGB). Goes to `.background/background.tiff`. | +| `dmg-layout.DS_Store` | Finder's view settings for the volume: window size, icon size 128, DesignCraft.app at (326, 205), `Applications` at (574, 205), and the background. Goes to `.DS_Store` in the image; named so it isn't mistaken for (or ignored like) a Finder-generated `.DS_Store`. | +| `generate.py` | Writes `background.tiff` and `dmg-layout.DS_Store` from the SVG and the layout above. | + +## The volume name has no version + +The mounted volume is called `DesignCraft`, not `DesignCraft `. The layout points at the background +through an alias that includes the volume name, and Finder resolves it by that name: with a +versioned name the window keeps its size and icon positions but shows no background (tested). +The DMG file name (`designcraft--macos-.dmg`) still carries the version. + +## Rules + +- **Finder draws the icon labels in black in light and dark mode** when a window has a background, + so the area under both icons stays light (Paper). +- **Nothing goes inside the icon boxes:** artwork keeps 10 pt clear of each 128 pt icon box and of + the label strip under it. + +## Regenerate + +Edit `background.svg` (or the layout constants in `generate.py`), then run, on any OS: + +```sh +pip install 'pillow>=12' ds_store==1.3.3 mac_alias==2.2.3 +python3 packaging/macos/dmg/generate.py # needs resvg on PATH +``` + +Both outputs are byte-for-byte reproducible and carry nothing from the machine that ran it: the +SVG renders without any fonts, and `dmg-layout.DS_Store` is written from scratch, its background +alias holding only the volume name and `/.background/background.tiff`. If you add text to the SVG, +outline it (`usvg` from resvg converts text to paths). The window is 660 × 432 with Finder's 32 pt +title bar; the content area is 660 × 400. + +This follows VectorCraft's `packaging/macos/dmg/` (storytold/vectorcraft#493). diff --git a/packaging/macos/dmg/background.svg b/packaging/macos/dmg/background.svg new file mode 100644 index 0000000..99c2fa2 --- /dev/null +++ b/packaging/macos/dmg/background.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/macos/dmg/background.tiff b/packaging/macos/dmg/background.tiff new file mode 100644 index 0000000000000000000000000000000000000000..0a38d639ecdd71858e1663570e90d97c8ee5a8a2 GIT binary patch literal 92736 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%0Ae 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 JPi2M8`9Glnu+IPh literal 0 HcmV?d00001 diff --git a/packaging/macos/dmg/dmg-layout.DS_Store b/packaging/macos/dmg/dmg-layout.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b9847fa15b84433675339c47b804e7285e9bf76c GIT binary patch literal 16388 zcmeI2J!}&(6o8+v1ya(IOH-f)hM))uM3sgDRn-APS`{)Ck*c)fr`#pZaq88M?k+8* zs??1ICd7oq%F54(5GxBSD;r{9U||KG&li$LLPCfI@qCKkv;Cg!_nq?NmjeJ+YSvBx zB%u8=`>}BkAe%&~ilGJULdgKkxJiNt5CI}U1c(3;_=gGf=)EV@_x&;a-XHjfW1+1R z0V42c1X%A(Wu}C__#^+9MU55lrR27jkvUe;IRRxac1H#EpN9q1i>edlww9=2Ve#>T z#cnJ*i>Q9>${-ut6=S)rrFI7vt%~;Xs!Sbau&{V#mQ^im7b8Ix5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW4z9|`FH_Vf07(6BveBZ6mk!*heMP2!K9Gc>gSz`=vVBZrnO-?xOrOB>5(#}j<5DLEj{U% zye7w}yLvDBoQq|1u&etDukElcuUZbj;JH?Cvu!!Q(csq{->uEn>j4iJJM^VUuQaTx zE1X5QDn-S;%Wrs=&AmBMl3^%Um(5gw^?K9}`D$6zY*NQ*B?JW*uHc!dIV%7)ea>e zy7hY7>bJE+YQC2BcPsz{aU!?X3(0(Y9hFGN#BS`B?$CAKcm(%%RsVl{d;Saz zjV(y8xypmFj!mg3O(WL|FjrjCYOZ)oD}9Mvv7l8`<-t$DX(+=j+}nM43{T-Dyn(my z9zMZW_{K79m>o498jp-8##7^&@!WV}ywcuA>rHZ4w_COG8Z~^AtW|vBN#R5-fPT0D z4ZJ*zw2Cn*1`;C<%ATyo9|xFDH_oB`J9W2IBv?|v;FHHWaK4@1Y_`ignu01KKm>>Y s5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1pXp{A7aEL)Bpeg literal 0 HcmV?d00001 diff --git a/packaging/macos/dmg/generate.py b/packaging/macos/dmg/generate.py new file mode 100644 index 0000000..6bad87a --- /dev/null +++ b/packaging/macos/dmg/generate.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +"""Regenerate background.tiff and dmg-layout.DS_Store for the macOS DMG window (see README.md here). + +Needs resvg on PATH and: + pip install 'pillow>=12' ds_store==1.3.3 mac_alias==2.2.3 + +Runs on any OS, no Mac needed. Both outputs come from this script alone, so they carry nothing +from the machine that made them: no local paths, user or disk names, dates or volume UUIDs. + + python3 packaging/macos/dmg/generate.py +""" + +import datetime +import os +import shutil +import subprocess +import sys +import tempfile + +from ds_store import DSStore +from mac_alias import Alias, TargetInfo, VolumeInfo +from PIL import Image, ImageCms + +HERE = os.path.dirname(os.path.abspath(__file__)) + +# Keep in sync with package.sh (volume name) and README.md (layout). +VOLUME = "DesignCraft" +WIDTH, HEIGHT = 660, 400 # window content, pt; the background's 1x size +TITLE_BAR = 32 +ICON_SIZE = 128 +PALETTE = 16 # colours in background.tiff +ICONS = {"DesignCraft.app": (326, 205), "Applications": (574, 205)} +# A fixed date for the alias and the colour profile. Finder never matches it against the image +# (each build is a new volume): it finds the background by volume name and path. +FIXED_DATE = datetime.datetime(2026, 10, 8, tzinfo=datetime.timezone.utc) + + +def render(svg, width, out): + # The SVG's text is already outlined and no fonts are loaded, so every machine draws the + # same pixels. + subprocess.run( + ["resvg", "--skip-system-fonts", "-w", str(width), svg, out], + check=True, + ) + with Image.open(out) as im: + return im.convert("RGB") + + +def quantize(im): + # No dithering: dither noise compresses badly and the artwork has flat fills. + return im.quantize(PALETTE, method=Image.Quantize.FASTOCTREE, dither=Image.Dither.NONE) + + +def srgb_profile(): + # LittleCMS's built-in sRGB ("No copyright, use freely"), with its creation date fixed. + icc = bytearray(ImageCms.ImageCmsProfile(ImageCms.createProfile("sRGB")).tobytes()) + d = FIXED_DATE + icc[24:36] = b"".join(v.to_bytes(2, "big") for v in (d.year, d.month, d.day, 0, 0, 0)) + if icc[84:100] != bytes(16): + sys.exit("error: the sRGB profile has an ID; recompute it after fixing the date") + return bytes(icc) + + +def write_tiff(svg, out): + """1x (72 dpi) and 2x (144 dpi) in one TIFF, as `tiffutil -cathidpicheck` writes them.""" + with tempfile.TemporaryDirectory() as tmp: + one, two = ( + quantize(render(svg, WIDTH * s, os.path.join(tmp, f"{s}x.png"))) for s in (1, 2) + ) + two.encoderinfo = {"dpi": (144, 144)} # the rest as the first page + # Opaque 16-colour palette, Deflate: the artwork is three inks plus antialiasing, and a palette + # keeps the file under ~100 KB (repository assets must stay small). As PhotoCraft's. + one.save( + out, + "TIFF", + save_all=True, + append_images=[two], + compression="tiff_adobe_deflate", # brand-ok: Pillow's name for TIFF compression 8 (Deflate) + dpi=(72, 72), + icc_profile=srgb_profile(), + ) + with Image.open(out) as im: + im.seek(1) + if im.info.get("dpi") != (144, 144): + sys.exit("error: the 2x page isn't 144 dpi (needs Pillow 12 or later)") + strips = [] + for page in (0, 1): + im.seek(page) + strips += zip(im.tag_v2[273], im.tag_v2[279]) # StripOffsets, StripByteCounts + # TIFF keeps directories and tag data on even offsets. When a strip ends on an odd one, libtiff + # leaves the padding byte after it uninitialised, so the file changed from run to run with + # identical pixels. Zero it: nothing refers to that byte. + starts = {o for o, _ in strips} + with open(out, "r+b") as f: + for o, n in strips: + if (o + n) % 2 and o + n not in starts: + f.seek(o + n) + f.write(bytes(1)) + + +def background_alias(): + # What Finder stores for /.background/background.tiff on the volume, minus anything about the + # machine (dmgbuild writes the same kind of alias from a mounted image). Disk type 5 (ejectable), + # the volume flags and the folder/file ids (25, 26) are what Finder wrote on a test image; the ids + # are only hints, as the volume's creation date. + volume = VolumeInfo(VOLUME, FIXED_DATE, b"H+", 5, 0x0D02, b"\0\0") + volume.posix_path = f"/Volumes/{VOLUME}" + target = TargetInfo(0, "background.tiff", 25, 26, FIXED_DATE, b"\0\0\0\0", b"\0\0\0\0") + target.folder_name = ".background" + target.cnid_path = [25] + target.carbon_path = f"{VOLUME}:.background:\0background.tiff" + target.posix_path = "/.background/background.tiff" + return Alias(volume=volume, target=target).to_bytes() + + +def write_ds_store(out): + if os.path.exists(out): + os.remove(out) + with DSStore.open(out, "w+") as d: + d["."]["bwsp"] = { + "ShowStatusBar": False, + "ShowToolbar": False, + "ShowTabView": False, + "ContainerShowSidebar": False, + "ShowSidebar": False, + "WindowBounds": f"{{{{200, 528}}, {{{WIDTH}, {HEIGHT + TITLE_BAR}}}}}", + } + d["."]["icvp"] = { + "viewOptionsVersion": 1, + "backgroundType": 2, + "backgroundImageAlias": background_alias(), + "backgroundColorRed": 1.0, + "backgroundColorGreen": 1.0, + "backgroundColorBlue": 1.0, + "gridOffsetX": 0.0, + "gridOffsetY": 0.0, + "gridSpacing": 100.0, + "arrangeBy": "none", + "showIconPreview": True, + "showItemInfo": False, + "labelOnBottom": True, + "textSize": 16.0, + "iconSize": float(ICON_SIZE), + } + d["."]["vSrn"] = ("long", 1) + for name, pos in ICONS.items(): + d[name]["Iloc"] = pos + + +def main(): + if not shutil.which("resvg"): + sys.exit("error: resvg not found (brew install resvg / cargo install resvg --locked)") + write_tiff(os.path.join(HERE, "background.svg"), os.path.join(HERE, "background.tiff")) + write_ds_store(os.path.join(HERE, "dmg-layout.DS_Store")) + + +if __name__ == "__main__": + main() diff --git a/packaging/macos/package.sh b/packaging/macos/package.sh index 42dea96..38fa2af 100755 --- a/packaging/macos/package.sh +++ b/packaging/macos/package.sh @@ -131,10 +131,15 @@ STAGE="$WORK/dmg" mkdir -p "$STAGE" ditto "$APP" "$STAGE/DesignCraft.app" ln -s /Applications "$STAGE/Applications" +# Finder window layout: background, icon size and positions (packaging/macos/dmg/README.md). +mkdir -p "$STAGE/.background" +cp "$HERE/dmg/background.tiff" "$STAGE/.background/background.tiff" +cp "$HERE/dmg/dmg-layout.DS_Store" "$STAGE/.DS_Store" rm -f "$DMG" "$WORK/raw.dmg" # makehybrid + convert builds the image without attaching a device, unlike `create -srcfolder`, # which is flaky on CI runners ("Resource busy") and hangs in sandboxed sessions. -hdiutil makehybrid -hfs -hfs-volume-name "DesignCraft $VERSION" -hfs-openfolder "$STAGE" -o "$WORK/raw.dmg" "$STAGE" +# The volume name has no version: .DS_Store finds the background through an alias that includes it. +hdiutil makehybrid -hfs -hfs-volume-name "DesignCraft" -hfs-openfolder "$STAGE" -o "$WORK/raw.dmg" "$STAGE" hdiutil convert "$WORK/raw.dmg" -format UDZO -imagekey zlib-level=9 -o "$DMG" rm -f "$WORK/raw.dmg" sign "$DMG"