refactor(installer): move plymouth fully into optional apps

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 <noreply@anthropic.com>
main
Amir Alexander Abdelbaki 2026-06-26 13:42:11 +02:00
parent 69aacec8fa
commit 2ff5b9b61d
4 changed files with 17 additions and 6 deletions

View File

@ -144,6 +144,7 @@ bash ~/Dotfiles/setup/install-modules.sh
| `timeshift` | system snapshot and backup with autosnap | | `timeshift` | system snapshot and backup with autosnap |
| `zfs` | zfs-dkms kernel module | | `zfs` | zfs-dkms kernel module |
| `wprs` | Wayland proxy for remote sessions (wprs-git, AUR) | | `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 | | `plymouth-custom` | boot splash with a user-supplied image |
<!-- END GENERATED MODULES: system --> <!-- END GENERATED MODULES: system -->

View File

@ -219,7 +219,7 @@ if [[ "$AF_RUN_TUI" == "true" ]]; then
# BEGIN GENERATED MODULES: module-checklist # BEGIN GENERATED MODULES: module-checklist
AF_APPS=$(dialog --backtitle "$BACKTITLE" \ AF_APPS=$(dialog --backtitle "$BACKTITLE" \
--title " Applications " \ --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 \ "ollama" "ollama local LLM runner and API server" off \
"llama-cpp" "llama-cpp standalone LLM inference CLI and 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 \ "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 \ "timeshift" "timeshift system snapshot and backup with autosnap" off \
"zfs" "zfs zfs-dkms kernel module" off \ "zfs" "zfs zfs-dkms kernel module" off \
"wprs" "wprs Wayland proxy for remote sessions (wprs-git, AUR)" 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 \ "plymouth-custom" "plymouth-custom boot splash with a user-supplied image" off \
"steam" "steam Steam gaming platform" off \ "steam" "steam Steam gaming platform" off \
"vesktop" "vesktop Discord client with Vencord theme" off \ "vesktop" "vesktop Discord client with Vencord theme" off \

View File

@ -49,7 +49,8 @@ localtunnel|system|expose localhost over a public URL|off|
timeshift|system|system snapshot and backup with autosnap|off| timeshift|system|system snapshot and backup with autosnap|off|
zfs|system|zfs-dkms kernel module|off| zfs|system|zfs-dkms kernel module|off|
wprs|system|Wayland proxy for remote sessions (wprs-git, AUR)|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 ──────────────────────────────────────────────────────────────────── # ── Gaming ────────────────────────────────────────────────────────────────────
steam|gaming|Steam gaming platform|off| steam|gaming|Steam gaming platform|off|

View File

@ -156,7 +156,6 @@ count_steps() {
[[ "$c" == *"core"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"core"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"svc"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$c" == *"shell"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$c" == *"plymouth"* ]] && TOTAL=$(( TOTAL + 1 ))
# A non-"none" DE selection always installs exactly one DE module. # A non-"none" DE selection always installs exactly one DE module.
[[ "$de" != "none" ]] && TOTAL=$(( TOTAL + 1 )) [[ "$de" != "none" ]] && TOTAL=$(( TOTAL + 1 ))
# Optional app modules: one glob check per app, one increment per match. # Optional app modules: one glob check per app, one increment per match.
@ -195,6 +194,7 @@ count_steps() {
[[ "$a" == *"timeshift"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"timeshift"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"zfs"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"zfs"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"wprs"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"wprs"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"plymouth"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"plymouth-custom"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"plymouth-custom"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"steam"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"steam"* ]] && TOTAL=$(( TOTAL + 1 ))
[[ "$a" == *"vesktop"* ]] && TOTAL=$(( TOTAL + 1 )) [[ "$a" == *"vesktop"* ]] && TOTAL=$(( TOTAL + 1 ))
@ -407,7 +407,6 @@ else
"core" "Core packages 100+ base system packages" on \ "core" "Core packages 100+ base system packages" on \
"svc" "Core services NetworkManager · cronie · fail2ban" on \ "svc" "Core services NetworkManager · cronie · fail2ban" on \
"shell" "Shell setup zsh · nvim · yazi · micro · starship" 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; } 3>&1 1>&2 2>&3) || { clear; echo "Aborted."; exit 0; }
fi fi
@ -479,6 +478,7 @@ else
"timeshift" "timeshift system snapshot and backup with autosnap" off \ "timeshift" "timeshift system snapshot and backup with autosnap" off \
"zfs" "zfs zfs-dkms kernel module" off \ "zfs" "zfs zfs-dkms kernel module" off \
"wprs" "wprs Wayland proxy for remote sessions (wprs-git, AUR)" 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 \ "plymouth-custom" "plymouth-custom boot splash with a user-supplied image" off \
"steam" "steam Steam gaming platform" off \ "steam" "steam Steam gaming platform" off \
"vesktop" "vesktop Discord client with Vencord theme" off \ "vesktop" "vesktop Discord client with Vencord theme" off \
@ -552,7 +552,6 @@ if ! $ANSWERFILE_MODE; then
[[ "$COMPONENTS" == *"core"* ]] && SUMMARY+=" ✦ Core packages\n" [[ "$COMPONENTS" == *"core"* ]] && SUMMARY+=" ✦ Core packages\n"
[[ "$COMPONENTS" == *"svc"* ]] && SUMMARY+=" ✦ Core services\n" [[ "$COMPONENTS" == *"svc"* ]] && SUMMARY+=" ✦ Core services\n"
[[ "$COMPONENTS" == *"shell"* ]] && SUMMARY+=" ✦ Shell setup\n" [[ "$COMPONENTS" == *"shell"* ]] && SUMMARY+=" ✦ Shell setup\n"
[[ "$COMPONENTS" == *"plymouth"* ]] && SUMMARY+=" ✦ Plymouth boot splash\n"
[[ "$DE" != "none" && "$DE" != "" ]] && SUMMARY+=" ✦ Desktop environment: $DE\n" [[ "$DE" != "none" && "$DE" != "" ]] && SUMMARY+=" ✦ Desktop environment: $DE\n"
[[ "$SHELL_RC" == "dotfiles" ]] && SUMMARY+=" ✦ Shell rc files → /etc/skel (dotfiles)\n" \ [[ "$SHELL_RC" == "dotfiles" ]] && SUMMARY+=" ✦ Shell rc files → /etc/skel (dotfiles)\n" \
|| SUMMARY+=" ✦ Shell rc files → /etc/skel (system defaults)\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" == *"timeshift"* ]] && SUMMARY+=" ✦ timeshift\n"
[[ "$SELECTED_APPS" == *"zfs"* ]] && SUMMARY+=" ✦ zfs\n" [[ "$SELECTED_APPS" == *"zfs"* ]] && SUMMARY+=" ✦ zfs\n"
[[ "$SELECTED_APPS" == *"wprs"* ]] && SUMMARY+=" ✦ wprs\n" [[ "$SELECTED_APPS" == *"wprs"* ]] && SUMMARY+=" ✦ wprs\n"
[[ "$SELECTED_APPS" == *"plymouth"* ]] && SUMMARY+=" ✦ plymouth\n"
[[ "$SELECTED_APPS" == *"plymouth-custom"* ]] && SUMMARY+=" ✦ plymouth-custom\n" [[ "$SELECTED_APPS" == *"plymouth-custom"* ]] && SUMMARY+=" ✦ plymouth-custom\n"
[[ "$SELECTED_APPS" == *"steam"* ]] && SUMMARY+=" ✦ steam\n" [[ "$SELECTED_APPS" == *"steam"* ]] && SUMMARY+=" ✦ steam\n"
[[ "$SELECTED_APPS" == *"vesktop"* ]] && SUMMARY+=" ✦ vesktop\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" == *"core"* ]] && run_module "Core Packages" "$MODULES/core-packages.sh"
[[ "$COMPONENTS" == *"svc"* ]] && run_module "Core Services" "$MODULES/core.sh" [[ "$COMPONENTS" == *"svc"* ]] && run_module "Core Services" "$MODULES/core.sh"
[[ "$COMPONENTS" == *"shell"* ]] && run_module "Shell Setup" "$MODULES/shell-setup.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. # Route the single selected DE value to its corresponding install script.
# "none" is the skip sentinel — no case branch matches it intentionally. # "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 # 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. # silently skipped — 'bash "$script"' will exit non-zero if the file is absent.
# BEGIN GENERATED MODULES: module-conflicts # 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 # END GENERATED MODULES: module-conflicts
# BEGIN GENERATED MODULES: module-dispatch # BEGIN GENERATED MODULES: module-dispatch
[[ "$SELECTED_APPS" == *"ollama"* ]] && run_module "ollama" "$APPS/ollama.sh" [[ "$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" == *"timeshift"* ]] && run_module "timeshift" "$APPS/timeshift.sh"
[[ "$SELECTED_APPS" == *"zfs"* ]] && run_module "zfs" "$APPS/zfs.sh" [[ "$SELECTED_APPS" == *"zfs"* ]] && run_module "zfs" "$APPS/zfs.sh"
[[ "$SELECTED_APPS" == *"wprs"* ]] && run_module "wprs" "$APPS/wprs.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" == *"plymouth-custom"* ]] && run_module "plymouth-custom" "$APPS/plymouth-custom.sh"
[[ "$SELECTED_APPS" == *"steam"* ]] && run_module "steam" "$APPS/steam.sh" [[ "$SELECTED_APPS" == *"steam"* ]] && run_module "steam" "$APPS/steam.sh"
[[ "$SELECTED_APPS" == *"vesktop"* ]] && run_module "vesktop" "$APPS/vesktop.sh" [[ "$SELECTED_APPS" == *"vesktop"* ]] && run_module "vesktop" "$APPS/vesktop.sh"