#!/bin/bash set -e ######################################## # Vérification des privilèges root ######################################## if [ "$EUID" -ne 0 ]; then echo "Erreur : ce script doit être exécuté en tant que root." exit 1 fi ######################################## # Configuration ######################################## PLYMOUTH_DIR="/usr/share/plymouth/themes" PLYMOUTH_THEME="InnotexBootloarder" THEME_DIR="InnotexBootloarder" THEME_IMAGE="$THEME_DIR/InnotexBootloarder.png" BGRTLEFT=0 BGRTTOP=100 ######################################## # Détection du gestionnaire de paquets ######################################## if command -v apt-get >/dev/null 2>&1; then PKG_INSTALL="apt-get install -y" PKG_UPDATE="apt-get update" elif command -v dnf >/dev/null 2>&1; then PKG_INSTALL="dnf install -y" PKG_UPDATE="dnf makecache" elif command -v pacman >/dev/null 2>&1; then PKG_INSTALL="pacman -Sy --noconfirm" PKG_UPDATE="pacman -Sy" else echo "Gestionnaire de paquets non supporté." exit 1 fi ######################################## # Installation de Plymouth si nécessaire ######################################## if ! command -v plymouthd >/dev/null 2>&1; then echo "Installation de Plymouth..." $PKG_UPDATE $PKG_INSTALL plymouth plymouth-themes fi ######################################## # Vérification des dépendances ######################################## for cmd in convert install awk; do if ! command -v "$cmd" >/dev/null 2>&1; then echo "Installation des dépendances manquantes..." $PKG_UPDATE $PKG_INSTALL imagemagick coreutils gawk break fi done ######################################## # Vérification des fichiers du thème ######################################## if [[ ! -f "$THEME_IMAGE" ]]; then echo "Erreur : image du thème introuvable : $THEME_IMAGE" exit 1 fi ######################################## # Génération du script Plymouth ######################################## echo "Génération du script Plymouth..." awk -v BGRTLEFT="$BGRTLEFT" -v BGRTTOP="$BGRTTOP" \ '{gsub(/\$BGRTLEFT\$/, BGRTLEFT); gsub(/\$BGRTTOP\$/, BGRTTOP); print}' \ < "$THEME_DIR/InnotexBootloarder.script.in" \ > "$THEME_DIR/InnotexBootloarder.script" ######################################## # Installation du thème Plymouth ######################################## echo "Installation du thème Plymouth..." install -d "$PLYMOUTH_DIR/$PLYMOUTH_THEME" install -m 644 "$THEME_DIR/InnotexBootloarder.plymouth" \ "$PLYMOUTH_DIR/$PLYMOUTH_THEME/" install -m 644 "$THEME_DIR/InnotexBootloarder.script" \ "$THEME_DIR/InnotexBootloarder.png" \ "$PLYMOUTH_DIR/$PLYMOUTH_THEME/" install -m 644 "$THEME_DIR"/{box,bullet,progress_{bar,box}}.png \ "$PLYMOUTH_DIR/$PLYMOUTH_THEME/" ######################################## # Scripts complémentaires (si présents) ######################################## [ -d /lib/lsb/init-functions.d ] && \ install -m 644 scripts/init-functions \ /lib/lsb/init-functions.d/999-bgrt [ -d /etc/initramfs-tools/hooks ] && \ install -m 755 scripts/initramfs-hook \ /etc/initramfs-tools/hooks/bgrt-fonts ######################################## # Configuration automatique de GRUB ######################################## if [ -f /etc/default/grub ]; then echo "Configuration de GRUB..." CURRENT_CMDLINE=$(grep '^GRUB_CMDLINE_LINUX_DEFAULT=' /etc/default/grub | cut -d'"' -f2) [[ "$CURRENT_CMDLINE" != *quiet* ]] && CURRENT_CMDLINE="$CURRENT_CMDLINE quiet" [[ "$CURRENT_CMDLINE" != *splash* ]] && CURRENT_CMDLINE="$CURRENT_CMDLINE splash" sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"${CURRENT_CMDLINE}\"|" /etc/default/grub if command -v update-grub >/dev/null 2>&1; then update-grub elif command -v grub-mkconfig >/dev/null 2>&1; then grub-mkconfig -o /boot/grub/grub.cfg fi else echo "GRUB non détecté, configuration ignorée." fi ######################################## # Activation du thème + initramfs ######################################## echo "Activation du thème Plymouth..." plymouth-set-default-theme -R "$PLYMOUTH_THEME" ######################################## # Fin ######################################## echo "======================================" echo "Installation terminée avec succès." echo "Thème Plymouth activé : $PLYMOUTH_THEME" echo "Redémarre la machine pour voir le résultat." echo "======================================"