ASCII-only spinner frames and output (VM locale rendered braille as garbage)

The braille spinner frames and the em-dash separator are multibyte
UTF-8; on the VM session they rendered as changing random letters, not
a spinner. Frames are now the classic | / - \ cycle, the separator is
':', and the two user-facing info lines that carried em-dashes are
ASCII too. Verified under LANG=C LC_ALL=C in a pty: zero non-ASCII
bytes in the entire output.
This commit is contained in:
Pathfinder
2026-10-27 19:42:30 +01:00
parent 0050f3a4a8
commit 4cf680b854
2 changed files with 7 additions and 4 deletions
+5 -2
View File
@@ -107,14 +107,17 @@ ui_quiet_run() {
# animates independently of gum and shows real progress, not just motion.
"$@" >>"$log" 2>&1 &
local pid=$!
local frames=( '⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏' )
# ASCII frames ONLY: braille/em-dash are multibyte UTF-8 and rendered as
# garbage letters when the session locale is not UTF-8 (VM-proven: the
# spinner appeared as changing random chars, not as a spinner).
local frames=( '|' '/' '-' '\\' )
local f=0 cur
while kill -0 "$pid" 2>/dev/null; do
cur=$(sed -n "$((before+1)),\$p" "$log" 2>/dev/null \
| grep -E '^(Installing|Upgrading|Downgrading|Removing|Verifying|Preparing|Cleanup):' \
| tail -n 1 || true)
if [[ -n "$cur" ]]; then
printf '\r %s %s — %s' "${frames[$f]}" "$msg" "$cur" >&2
printf '\r %s %s: %s' "${frames[$f]}" "$msg" "$cur" >&2
else
printf '\r %s %s' "${frames[$f]}" "$msg" >&2
fi
+2 -2
View File
@@ -220,7 +220,7 @@ if [[ -z "$SELINUX_OPT" ]]; then
[[ "$choice" == "yes" ]] && SELINUX_DISABLED=true
printf "\n"
if findmnt -n -o FSTYPE / 2>/dev/null | grep -q btrfs; then
ok "Root filesystem is btrfs — snapshots + zstd compression will be set up."
ok "Root filesystem is btrfs: snapshots + zstd compression will be set up."
BTRFS_SNAPPER=true
else
info "Root filesystem is not btrfs; skipping snapshot setup."
@@ -259,7 +259,7 @@ pause_if_debug
if [[ -z "$DE" ]]; then
step "4 Desktop environment"
rule
color_gray " Bare Fedora install — picking a DE is what gives you a graphical login."
color_gray "Bare Fedora install: picking a DE is what gives you a graphical login."
choice=$(ui_choose "Desktop environment" "Select desktop environment:" \
"None (TWM only, SDDM via TWM module)" \
"GNOME (gdm)" "Plasma (sddm)" "XFCE (sddm)" "None (TWM only, SDDM via TWM module)")