From be618cc73bbf709f87cf3ba4b4436eebe0bf3d81 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 10 Aug 2026 13:51:31 -0700 Subject: [PATCH] Send the installer off with laseretch again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Smoke read as a puff of glyphs rather than a finish. Go back to laseretch at the 260fps it ran at before the ttfx swap, where it takes about four seconds on this logo — still well inside the 8s cap, which is a stuck-process guard rather than a trim. Hold it to the 256-index palette with --xterm-colors, the way the greeter holds its own: the framebuffer console reduces indexed codes well and truecolor ones badly, and the laser and sparks carry their hot palette through the reduction intact. Settle on indexed 2 so the effect ends on the same green gum drew the static logo in a few lines above, instead of recoloring a logo that is already on screen. Log a failing effect to the support log rather than dropping it. ttfx is in the ISO's package list so this should not fire there, but a silent `|| true` is why a missing binary looks like a still logo and no reason. Co-Authored-By: Claude Opus 5 (1M context) --- .../usr/local/bin/omarchy-install-dashboard | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/configs/airootfs/usr/local/bin/omarchy-install-dashboard b/configs/airootfs/usr/local/bin/omarchy-install-dashboard index c40721d..0048b4c 100755 --- a/configs/airootfs/usr/local/bin/omarchy-install-dashboard +++ b/configs/airootfs/usr/local/bin/omarchy-install-dashboard @@ -519,16 +519,21 @@ render_finish() { # Reuse mode restores a saved cursor before moving up over its input. Save # this anchor so the effect redraws the same logo rows shown above. printf '%s%d;1H\0337' "$CSI" "$((FINISH_TOP_ROW + LOGO_HEIGHT))" >"$TTY_PATH" - # Smoke runs ~4s at 60fps, so the 8s cap is a stuck-process guard rather than - # a trim. The rate is the effect's pacing: the 260 this carried for laseretch - # finishes smoke in under a second, which reads as a flicker, not a send-off. + # Laseretch runs ~4s at 260fps, so the 8s cap is a stuck-process guard rather + # than a trim. --xterm-colors keeps the whole effect in the 256-index palette + # the way the greeter does, since the console reduces indexed codes well and + # truecolor ones badly, and it settles on indexed 2 — the green gum already + # drew the logo in above, so the send-off ends on the frame it started from + # instead of recoloring it. The laser and sparks keep their own hot palette. timeout 8s ttfx -i "$LOGO_PATH" \ --canvas-width "$effect_canvas_width" \ --anchor-text c \ - --frame-rate 60 \ + --frame-rate 260 \ --reuse-canvas \ - smoke \ - >"$TTY_PATH" 2>/dev/null || true + --xterm-colors \ + laseretch \ + --final-gradient-stops 2 \ + >"$TTY_PATH" 2>/dev/null || dashboard_log "logo effect skipped (ttfx exited $?)" printf '%s%d;1H' "$CSI" "$((FINISH_TOP_ROW + LOGO_HEIGHT + 5))" >"$TTY_PATH" fi }