From 2ff5b9b61d591273b4ab2fddf7fbcc0fcbc8c67d Mon Sep 17 00:00:00 2001 From: The_miro Date: Fri, 26 Jun 2026 13:42:11 +0200 Subject: [PATCH] refactor(installer): move plymouth fully into optional apps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both plymouth and plymouth-custom are now optional — neither is strictly required, so removing plymouth from the core COMPONENTS checklist and treating it identically to plymouth-custom. - Remove plymouth from COMPONENTS checklist, counter, summary, and dispatch - Add plymouth back to modules.conf (default=on, excludes=plymouth-custom) - Regenerate all sentinel regions; plymouth now appears in optional apps checklist/summary/conflicts/dispatch alongside plymouth-custom Co-Authored-By: Claude Sonnet 4.6 --- docs/md/modules.md | 1 + setup/generate-answerfile.sh | 3 ++- setup/modules.conf | 3 ++- setup/tui-install.sh | 16 ++++++++++++---- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/docs/md/modules.md b/docs/md/modules.md index 60a0e19..bacc6bd 100644 --- a/docs/md/modules.md +++ b/docs/md/modules.md @@ -144,6 +144,7 @@ bash ~/Dotfiles/setup/install-modules.sh | `timeshift` | system snapshot and backup with autosnap | | `zfs` | zfs-dkms kernel module | | `wprs` | Wayland proxy for remote sessions (wprs-git, AUR) | +| `plymouth` | boot splash — bundled skull logo and spinner | | `plymouth-custom` | boot splash with a user-supplied image | diff --git a/setup/generate-answerfile.sh b/setup/generate-answerfile.sh index 8269a2e..2bf878b 100644 --- a/setup/generate-answerfile.sh +++ b/setup/generate-answerfile.sh @@ -219,7 +219,7 @@ if [[ "$AF_RUN_TUI" == "true" ]]; then # BEGIN GENERATED MODULES: module-checklist AF_APPS=$(dialog --backtitle "$BACKTITLE" \ --title " Applications " \ - --checklist "Optional applications — installed after base components:" 40 76 79 \ + --checklist "Optional applications — installed after base components:" 40 76 80 \ "ollama" "ollama local LLM runner and API server" off \ "llama-cpp" "llama-cpp standalone LLM inference CLI and server" off \ "open-webui" "open-webui browser UI for Ollama and LLM backends" off \ @@ -252,6 +252,7 @@ if [[ "$AF_RUN_TUI" == "true" ]]; then "timeshift" "timeshift system snapshot and backup with autosnap" off \ "zfs" "zfs zfs-dkms kernel module" off \ "wprs" "wprs Wayland proxy for remote sessions (wprs-git, AUR)" off \ + "plymouth" "plymouth boot splash — bundled skull logo and spinner" on \ "plymouth-custom" "plymouth-custom boot splash with a user-supplied image" off \ "steam" "steam Steam gaming platform" off \ "vesktop" "vesktop Discord client with Vencord theme" off \ diff --git a/setup/modules.conf b/setup/modules.conf index 2a8cb9a..8a63a52 100644 --- a/setup/modules.conf +++ b/setup/modules.conf @@ -49,7 +49,8 @@ localtunnel|system|expose localhost over a public URL|off| timeshift|system|system snapshot and backup with autosnap|off| zfs|system|zfs-dkms kernel module|off| wprs|system|Wayland proxy for remote sessions (wprs-git, AUR)|off| -plymouth-custom|system|boot splash with a user-supplied image|off| +plymouth|system|boot splash — bundled skull logo and spinner|on|plymouth-custom +plymouth-custom|system|boot splash with a user-supplied image|off|plymouth # ── Gaming ──────────────────────────────────────────────────────────────────── steam|gaming|Steam gaming platform|off| diff --git a/setup/tui-install.sh b/setup/tui-install.sh index 7599f0d..f1314df 100755 --- a/setup/tui-install.sh +++ b/setup/tui-install.sh @@ -156,7 +156,6 @@ count_steps() { [[ "$c" == *"core"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 )) - [[ "$c" == *"plymouth"* ]] && TOTAL=$(( TOTAL + 1 )) # A non-"none" DE selection always installs exactly one DE module. [[ "$de" != "none" ]] && TOTAL=$(( TOTAL + 1 )) # Optional app modules: one glob check per app, one increment per match. @@ -195,6 +194,7 @@ count_steps() { [[ "$a" == *"timeshift"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"zfs"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"wprs"* ]] && TOTAL=$(( TOTAL + 1 )) + [[ "$a" == *"plymouth"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"plymouth-custom"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"steam"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"vesktop"* ]] && TOTAL=$(( TOTAL + 1 )) @@ -407,7 +407,6 @@ else "core" "Core packages 100+ base system packages" on \ "svc" "Core services NetworkManager · cronie · fail2ban" on \ "shell" "Shell setup zsh · nvim · yazi · micro · starship" on \ - "plymouth" "Plymouth boot splash — skull logo + spinner" on \ 3>&1 1>&2 2>&3) || { clear; echo "Aborted."; exit 0; } fi @@ -479,6 +478,7 @@ else "timeshift" "timeshift system snapshot and backup with autosnap" off \ "zfs" "zfs zfs-dkms kernel module" off \ "wprs" "wprs Wayland proxy for remote sessions (wprs-git, AUR)" off \ + "plymouth" "plymouth boot splash — bundled skull logo and spinner" on \ "plymouth-custom" "plymouth-custom boot splash with a user-supplied image" off \ "steam" "steam Steam gaming platform" off \ "vesktop" "vesktop Discord client with Vencord theme" off \ @@ -552,7 +552,6 @@ if ! $ANSWERFILE_MODE; then [[ "$COMPONENTS" == *"core"* ]] && SUMMARY+=" ✦ Core packages\n" [[ "$COMPONENTS" == *"svc"* ]] && SUMMARY+=" ✦ Core services\n" [[ "$COMPONENTS" == *"shell"* ]] && SUMMARY+=" ✦ Shell setup\n" - [[ "$COMPONENTS" == *"plymouth"* ]] && SUMMARY+=" ✦ Plymouth boot splash\n" [[ "$DE" != "none" && "$DE" != "" ]] && SUMMARY+=" ✦ Desktop environment: $DE\n" [[ "$SHELL_RC" == "dotfiles" ]] && SUMMARY+=" ✦ Shell rc files → /etc/skel (dotfiles)\n" \ || SUMMARY+=" ✦ Shell rc files → /etc/skel (system defaults)\n" @@ -592,6 +591,7 @@ if ! $ANSWERFILE_MODE; then [[ "$SELECTED_APPS" == *"timeshift"* ]] && SUMMARY+=" ✦ timeshift\n" [[ "$SELECTED_APPS" == *"zfs"* ]] && SUMMARY+=" ✦ zfs\n" [[ "$SELECTED_APPS" == *"wprs"* ]] && SUMMARY+=" ✦ wprs\n" + [[ "$SELECTED_APPS" == *"plymouth"* ]] && SUMMARY+=" ✦ plymouth\n" [[ "$SELECTED_APPS" == *"plymouth-custom"* ]] && SUMMARY+=" ✦ plymouth-custom\n" [[ "$SELECTED_APPS" == *"steam"* ]] && SUMMARY+=" ✦ steam\n" [[ "$SELECTED_APPS" == *"vesktop"* ]] && SUMMARY+=" ✦ vesktop\n" @@ -661,7 +661,6 @@ count_steps "$COMPONENTS" "$DE" "$SELECTED_APPS" [[ "$COMPONENTS" == *"core"* ]] && run_module "Core Packages" "$MODULES/core-packages.sh" [[ "$COMPONENTS" == *"svc"* ]] && run_module "Core Services" "$MODULES/core.sh" [[ "$COMPONENTS" == *"shell"* ]] && run_module "Shell Setup" "$MODULES/shell-setup.sh" -[[ "$COMPONENTS" == *"plymouth"* ]] && run_module "Plymouth" "$APPS/plymouth.sh" # Route the single selected DE value to its corresponding install script. # "none" is the skip sentinel — no case branch matches it intentionally. @@ -684,6 +683,14 @@ fi # module script will be caught by run_module()'s error handling rather than # silently skipped — 'bash "$script"' will exit non-zero if the file is absent. # BEGIN GENERATED MODULES: module-conflicts +if [[ "$SELECTED_APPS" == *"plymouth"* && "$SELECTED_APPS" == *"plymouth-custom"* ]]; then + warn "plymouth and plymouth-custom are mutually exclusive — skipping plymouth-custom" + SELECTED_APPS="${SELECTED_APPS/plymouth-custom/}" +fi +if [[ "$SELECTED_APPS" == *"plymouth-custom"* && "$SELECTED_APPS" == *"plymouth"* ]]; then + warn "plymouth-custom and plymouth are mutually exclusive — skipping plymouth" + SELECTED_APPS="${SELECTED_APPS/plymouth/}" +fi # END GENERATED MODULES: module-conflicts # BEGIN GENERATED MODULES: module-dispatch [[ "$SELECTED_APPS" == *"ollama"* ]] && run_module "ollama" "$APPS/ollama.sh" @@ -718,6 +725,7 @@ fi [[ "$SELECTED_APPS" == *"timeshift"* ]] && run_module "timeshift" "$APPS/timeshift.sh" [[ "$SELECTED_APPS" == *"zfs"* ]] && run_module "zfs" "$APPS/zfs.sh" [[ "$SELECTED_APPS" == *"wprs"* ]] && run_module "wprs" "$APPS/wprs.sh" +[[ "$SELECTED_APPS" == *"plymouth"* ]] && run_module "plymouth" "$APPS/plymouth.sh" [[ "$SELECTED_APPS" == *"plymouth-custom"* ]] && run_module "plymouth-custom" "$APPS/plymouth-custom.sh" [[ "$SELECTED_APPS" == *"steam"* ]] && run_module "steam" "$APPS/steam.sh" [[ "$SELECTED_APPS" == *"vesktop"* ]] && run_module "vesktop" "$APPS/vesktop.sh"