feat(installer): staged banner reveal at 40ms/line

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.
This commit is contained in:
veilor-org 2026-05-06 10:31:02 +01:00 committed by s8n
parent 55221a6af2
commit a3b3d29b38

View file

@ -69,6 +69,21 @@ banner() {
local vline="veilor-os ${ver} · ${d} · live" local vline="veilor-os ${ver} · ${d} · live"
if [[ -r $BANNER_FILE ]]; then 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 if [[ $TUI == gum ]]; then
# gum style: rounded border, banner + blank line + version line. # gum style: rounded border, banner + blank line + version line.
gum style --border rounded --margin "0 2" --padding "1 3" \ gum style --border rounded --margin "0 2" --padding "1 3" \