v0.5.4: installer UX polish — terse menu, VEILOR OS wordmark, hostname auto

User boot-tested v0.5.2 + in-VM patch. Requested polish:

- Banner: replace slant-figlet `veilor-os` + "hardened. branded. yours."
  tagline with figlet ANSI Regular `VEILOR OS` wordmark (5-line block).
  No tagline. Border preserved by gum style call.
- Menu header: "Welcome. What would you like to do?" → "Welcome"
- Menu labels:
    "Install veilor-os to disk"     → "Install"
    "Try live — desktop (KDE Plasma)" → "live - (KDE)"
    "Try live — shell"              → "live - shell"
    "Reboot" / "Power off"          unchanged
- Hostname prompt removed — hardcoded to "veilor". User can change
  post-install via hostnamectl. Cuts one prompt from install flow.
  Confirmation summary drops the Hostname row.
- Locale options trimmed: en_GB.UTF-8, en_US.UTF-8 only (was 4 incl
  de_DE, fr_FR). i18n not v0.5 priority.

Verified in-VM rendering of the menu changes via sed-patch on v0.5.2
ISO. ksvalidator + bash -n clean.
This commit is contained in:
veilor-org 2026-05-02 21:10:04 +01:00
parent 736ca59fe3
commit 3dc78b38f1
2 changed files with 15 additions and 19 deletions

View file

@ -1,7 +1,5 @@
_ __ ██ ██ ███████ ██ ██ ██████ ██████ ██████ ███████
_ _____ (_) /___ _____ ____ _____ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
| | / / _ \/ / / __ \/ ___/_____/ __ \/ ___/ ██ ██ █████ ██ ██ ██ ██ ██████ ██ ██ ███████
| |/ / __/ / / /_/ / / /_____/ /_/ (__ ) ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|___/\___/_/_/\____/_/ \____/____/ ████ ███████ ██ ███████ ██████ ██ ██ ██████ ███████
hardened. branded. yours.

View file

@ -180,10 +180,10 @@ prompt_error() {
} }
main_menu() { main_menu() {
prompt_choose "Welcome. What would you like to do?" \ prompt_choose "Welcome" \
"Install veilor-os to disk" \ "Install" \
"Try live — desktop (KDE Plasma)" \ "live - (KDE)" \
"Try live — shell" \ "live - shell" \
"Reboot" \ "Reboot" \
"Power off" "Power off"
} }
@ -205,7 +205,8 @@ collect_answers() {
disk=$(prompt_choose_pairs "Select install disk (will be ERASED)" "${disks_pairs[@]}") || return 1 disk=$(prompt_choose_pairs "Select install disk (will be ERASED)" "${disks_pairs[@]}") || return 1
# ── Hostname ── # ── Hostname ──
hostname=$(prompt_input "Set hostname" "veilor") || return 1 # Hardcoded for branded consistency. Post-install: `hostnamectl set-hostname`.
hostname="veilor"
# Reject shell-special and sed-special chars in passwords. Generated # Reject shell-special and sed-special chars in passwords. Generated
# kickstart writes them via heredoc + sed substitution; bare $, ", \, ` # kickstart writes them via heredoc + sed substitution; bare $, ", \, `
@ -240,15 +241,12 @@ collect_answers() {
# ── Locale ── # ── Locale ──
locale=$(prompt_choose "Choose locale" \ locale=$(prompt_choose "Choose locale" \
"en_GB.UTF-8" \ "en_GB.UTF-8" \
"en_US.UTF-8" \ "en_US.UTF-8") || return 1
"de_DE.UTF-8" \
"fr_FR.UTF-8") || return 1
# ── Confirmation ── # ── Confirmation ──
prompt_confirm "About to install veilor-os: prompt_confirm "About to install veilor-os:
Disk: $disk (will be ERASED) Disk: $disk (will be ERASED)
Hostname: $hostname
Locale: $locale Locale: $locale
LUKS: set LUKS: set
Admin pw: set Admin pw: set
@ -572,13 +570,13 @@ banner
while true; do while true; do
case "$(main_menu)" in case "$(main_menu)" in
"Install veilor-os to disk") "Install")
if collect_answers && generate_ks; then if collect_answers && generate_ks; then
run_install || continue run_install || continue
fi fi
;; ;;
"Try live — desktop (KDE Plasma)") launch_desktop ;; "live - (KDE)") launch_desktop ;;
"Try live — shell") drop_to_shell ;; "live - shell") drop_to_shell ;;
"Reboot") systemctl reboot ;; "Reboot") systemctl reboot ;;
"Power off") systemctl poweroff ;; "Power off") systemctl poweroff ;;
*) drop_to_shell ;; *) drop_to_shell ;;