Custom installer: Prism-style frameless video setup - #15
Merged
Merged
Conversation
Ports Prism's custom NSIS kit: a frameless, DPI-aware window that plays a defocused video loop (JPEG frames decoded through GDI+ every tick) with the UI rendered from over.html into alpha overlays and composited on top. No real controls anywhere - the same tick hit-tests the pointer for hover, clicks, and caption dragging. Four screens: Welcome, Where-it-goes (own folder enforced, Browse dialog), Installing (one frame + the real progress bar re-themed indigo on the drawn trough), and Done with Run / Start-menu / Desktop options (checkbox states stamped at runtime from two cut-out images). No run-at-startup option, deliberately. Silent installs (/S) skip every custom page and install straight through. Filesmith adaptations vs Prism: the app's own mark in the caption, Filesmith copy, no file-type registration, plain launch (no --setup flag). The current loop is a PLACEHOLDER (a drifting defocused indigo gradient synthesized with ffmpeg) until the owner's clip arrives - swapping is: node build/installer/make-loop.cjs "path\to\clip.mp4" then update FRAMES in video.nsh with the number it prints, and rebuild. Overlays regenerate with make-over.cjs (960 + 1440) after any over.html change. Generated media is committed, as in Prism. Refs #14 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Replaces the placeholder gradient with the owner-supplied clip (1080p60, cover-cropped to 4:3, resampled to 24 fps, tail crossfaded into the head over 36 frames). 380 frames, 17.5 MB; FRAMES was already 380 so video.nsh is unchanged. Refs #14 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two things users read as broken: - The progress bar filled, then snapped back to ~70% and froze for a minute. electron-builder extracts the 7z into TEMP (Nsis7z pumps the bar to 100%) and then copies 1.4 GB to $INSTDIR in ONE blocking CopyFiles instruction (nothing pumps; instruction-based progress takes the bar backwards). Patched (patch-package + postinstall) to extract STRAIGHT into $INSTDIR - upstream's own last-resort branch, safe here because the app is closed and the old version uninstalled before extraction. Install time roughly halves (~53s measured) and the bar now fills exactly once, truthfully. - The finish screen's checkboxes are DRAWN with GDI+ paths instead of being stamped from captured images. The cut-outs kept the shade's half-opaque pixels outside the border radius (a dark square behind the rounded box), the alpha solve left a pale fringe, and the half-pixel rescale at 225% smeared both. Vector paths are exact at any DPI: solid indigo + anti- aliased check when on, a .34-white ring around a translucent well when off. The box cut-outs are gone from make-over.cjs and the media. Refs #14 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #14.
Ports Prism's installer kit to Filesmith: a frameless, DPI-aware setup window playing a defocused video loop through GDI+, with the UI rendered from
over.htmlinto alpha overlays, composited per tick, and hit-tested by hand. Four screens (Welcome / Where / Installing / Done), Run + Start-menu + Desktop options on finish — and deliberately no run-at-startup option.Filesmith adaptations: the app's own mark in the caption, Filesmith copy, indigo accent (shared with Prism already), no file-type registration, plain launch on finish.
Verified:
/S): custom pages skip themselves; exe + uninstaller + start-menu shortcut + all 140 magick coders land; registry shows 0.2.1Placeholder footage: the loop is currently a synthesized drifting indigo gradient. When the real clip arrives, swapping it is:
then set
FRAMESinvideo.nshto the number it prints and rebuild. Overlay copy/layout changes go inover.html, regenerated withmake-over.cjs 1440+960.🤖 Generated with Claude Code