From a3b3d29b38bacf34709f13c5692a998a97bfe36b Mon Sep 17 00:00:00 2001 From: veilor-org Date: Wed, 6 May 2026 10:31:02 +0100 Subject: [PATCH] feat(installer): staged banner reveal at 40ms/line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Read banner.txt line by line with a 40ms sleep between each, then clear and redraw the bordered gum-style version. 5-line banner × 40ms = 200ms total reveal — slow enough to land an aesthetic on the first frame, fast enough that the operator never feels it as lag. Pure cosmetic; no functional change to the install flow. --- overlay/usr/local/bin/veilor-installer | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/overlay/usr/local/bin/veilor-installer b/overlay/usr/local/bin/veilor-installer index be00dd0..817ebb1 100644 --- a/overlay/usr/local/bin/veilor-installer +++ b/overlay/usr/local/bin/veilor-installer @@ -69,6 +69,21 @@ banner() { local vline="veilor-os ${ver} · ${d} · live" if [[ -r $BANNER_FILE ]]; then + # v0.6: staged line-by-line reveal of the banner before the + # gum-style border draws around it. 40ms/line gives a subtle + # "typewriter" feel — 5 lines × 40ms = 200ms total, fast enough + # not to feel laggy but slow enough to land an aesthetic on the + # very first frame the user sees. Once the reveal finishes we + # clear and re-draw with the bordered gum-style version so the + # operator never sees both stacked on top of each other. + local line + while IFS= read -r line; do + printf ' %s\n' "$line" + sleep 0.04 + done < "$BANNER_FILE" + sleep 0.08 + clear + if [[ $TUI == gum ]]; then # gum style: rounded border, banner + blank line + version line. gum style --border rounded --margin "0 2" --padding "1 3" \