From 6fa530e297a48f6ed1554fbe31cd7bf7024c60aa Mon Sep 17 00:00:00 2001 From: sky Date: Thu, 11 Sep 2025 03:39:26 +0200 Subject: [PATCH] =?UTF-8?q?Divers=20am=C3=A9liorations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files_to_inject/preseeds/default.preseed | 48 +- files_to_inject/preseeds/gaming_installer.log | 8 + files_to_inject/preseeds/install_gaming.sh | 517 +++++------------- 3 files changed, 183 insertions(+), 390 deletions(-) create mode 100644 files_to_inject/preseeds/gaming_installer.log diff --git a/files_to_inject/preseeds/default.preseed b/files_to_inject/preseeds/default.preseed index 6c13aec..7d7805e 100755 --- a/files_to_inject/preseeds/default.preseed +++ b/files_to_inject/preseeds/default.preseed @@ -1,6 +1,3 @@ -# Locale et langue par défaut : français suisse -d-i debian-installer/locale string fr_CH.UTF-8 - # Configuration réseau automatique d-i netcfg/choose_interface select auto d-i netcfg/get_hostname string skylanix @@ -36,38 +33,52 @@ tasksel tasksel/first multiselect minimal # Paquets essentiels Skylanix : environnement GNOME et outils système d-i pkgsel/include string \ gnome-core \ + gnome-tweaks \ vim \ fish \ git \ wget \ curl \ gpg \ - htop \ btop \ fastfetch \ flatpak \ + pavucontrol \ + easyeffects \ + gnome-software-plugin-flatpak \ ffmpeg \ libavcodec-extra \ libavformat-extra \ spice-vdagent \ - cmatrix + dkms \ + libdw-dev \ + clang \ + lld \ + llvm -# gnome: environnement de bureau GNOME +# gnome-core: Environnement de bureau GNOME +# gnome-tweaks: Outil de personnalisation GNOME # vim: Éditeur de texte # fish: Shell moderne # git: Gestionnaire de versions # wget: Téléchargeur HTTP/FTP # curl: Client HTTP/FTP # gpg: Chiffrement/signatures -# htop: Moniteur système interactif # btop: Moniteur système moderne # fastfetch: Info système colorée # flatpak: Gestionnaire d'apps universelles +# pavucontrol: Contrôleur audio PulseAudio +# easyeffects: Effets audio avancés +# gnome-software-plugin-flatpak: Plugin Flatpak pour GNOME Software # ffmpeg: Codecs audio/vidéo # libavcodec-extra: Codecs supplémentaires # libavformat-extra: Formats multimédias supplémentaires # spice-vdagent: Agent SPICE pour machine virtuelle -# cmatrix: Effet Matrix dans terminal +# dkms: Système de modules kernel dynamiques +# libdw-dev: Bibliothèque de débogage DWARF +# clang: Compilateur C/C++/Objective-C +# lld: Éditeur de liens LLVM +# llvm: Infrastructure de compilation modulaire # Installation GRUB avec support multi-OS d-i grub-installer/only_debian boolean true @@ -78,7 +89,7 @@ d-i grub-installer/bootdev string default # Configuration post-installation : suppression navigateurs par défaut, installation Firefox Mozilla, kernel XanMod et configuration système d-i preseed/late_command string \ - in-target apt-get remove --purge -y firefox-esr konqueror ; \ + in-target apt-get remove --purge -y firefox-esr ; \ in-target mkdir -p /etc/apt/keyrings ; \ in-target timeout 30 wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O /etc/apt/keyrings/packages.mozilla.org.asc ; \ in-target sh -c 'echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" > /etc/apt/sources.list.d/mozilla.list' ; \ @@ -94,13 +105,20 @@ d-i preseed/late_command string \ sh -c 'cp /cdrom/preseeds/install_gaming.sh /target/usr/bin/install_gaming.sh ; \ chmod +x /target/usr/bin/install_gaming.sh' ; \ sh -c 'cp "/cdrom/preseeds/Debian Gaming Deployment Tool.desktop" /target/usr/share/applications/ ; \ - chmod 644 /target/usr/share/applications/"Debian Gaming Deployment Tool.desktop"' ; \ - sh -c 'mkdir -p /target/etc/apt/keyrings' ; \ - sh -c 'mkdir -p /target/etc/apt/sources.list.d' ; \ - sh -c 'wget -qO /target/etc/apt/keyrings/xanmod-archive-keyring.gpg https://dl.xanmod.org/archive.key' ; \ - sh -c 'echo "deb [signed-by=/etc/apt/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org trixie main" > /target/etc/apt/sources.list.d/xanmod.list' ; \ + chmod 644 /target/usr/share/applications/"Debian Gaming Deployment Tool.desktop"' ; \ in-target mkdir -p /etc/apt/keyrings ; \ + in-target mkdir -p /etc/apt/sources.list.d ; \ + in-target wget -qO /etc/apt/keyrings/xanmod-archive-keyring.gpg https://dl.xanmod.org/archive.key ; \ + in-target sh -c 'echo "deb [signed-by=/etc/apt/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org trixie main non-free" > /etc/apt/sources.list.d/xanmod.list' ; \ in-target apt-get update ; \ - in-target apt-get install -y linux-xanmod-x64v3 ; + in-target apt-get install -y linux-xanmod-x64v3 ; \ + in-target mkdir -p /etc/skel/.config/autostart ; \ + in-target sh -c 'printf "[Desktop Entry]\nType=Application\nName=Skylanix Setup\nExec=sh -c \"gsettings set org.gnome.desktop.wm.preferences button-layout \":minimize,maximize,close\" && rm ~/.config/autostart/skylanix-setup.desktop\"\nNoDisplay=true\nStartupNotify=false\n" > /etc/skel/.config/autostart/skylanix-setup.desktop' ; \ + in-target mkdir -p /etc/dconf/profile ; \ + in-target sh -c 'echo "user-db:user\nsystem-db:local" > /etc/dconf/profile/user' ; \ + in-target mkdir -p /etc/dconf/db/local.d ; \ + in-target sh -c 'printf "[org/gnome/desktop/wm/preferences]\nbutton-layout=\":minimize,maximize,close\"\n" > /etc/dconf/db/local.d/00-skylanix-wm' ; \ + in-target dconf update ; + in-target sh -c 'if lspci | grep -i nvidia | grep -E "(GTX 16[0-9]{2}|RTX [2-4][0-9]{3}|RTX [5-9][0-9]{3}|Tesla|Quadro.*T[0-9]{3,4}|A[0-9]{2,4})" > /dev/null; then echo "Carte NVIDIA compatible détectée"; lspci | grep -i nvidia; echo "Installation des drivers NVIDIA 580 open source..."; in-target apt-get update && in-target apt-get install -y nvidia-driver-580-open; echo "Installation terminée. Redémarrage requis."; else echo "Aucune carte NVIDIA série 1600+ détectée"; lspci | grep -i vga; fi' ; # Finalisation : redémarrage automatique d-i finish-install/reboot_in_progress note diff --git a/files_to_inject/preseeds/gaming_installer.log b/files_to_inject/preseeds/gaming_installer.log new file mode 100644 index 0000000..2efe35d --- /dev/null +++ b/files_to_inject/preseeds/gaming_installer.log @@ -0,0 +1,8 @@ +=== Debian Gaming Deployment Tool Log - Démarré le mer 10 sep 2025 21:21:44 CEST === +Fichier de log: ./gaming_installer.log +Utilisateur: sky +Répertoire de travail: /home/sky/Documents/gitea/custom-debian-iso/files_to_inject/preseeds + +[2025-09-10 21:21:44] INFO: Script démarré avec succès +[2025-09-10 21:21:44] INFO: Vérification du système de logging +[2025-09-10 21:21:44] INFO: Fichier de log créé dans: /home/sky/Documents/gitea/custom-debian-iso/files_to_inject/preseeds/gaming_installer.log diff --git a/files_to_inject/preseeds/install_gaming.sh b/files_to_inject/preseeds/install_gaming.sh index 09bb90b..d5ba44b 100755 --- a/files_to_inject/preseeds/install_gaming.sh +++ b/files_to_inject/preseeds/install_gaming.sh @@ -123,9 +123,6 @@ show_installation_summary() { summary_text+="\n📝 Note : Redémarrage de session recommandé pour Flatpak\n" fi - if [[ " ${INSTALLED_APPS[*]} " =~ " Drivers NVIDIA " ]]; then - summary_text+="\n🔄 Important : Redémarrage système requis pour les drivers NVIDIA\n" - fi zenity 2>/dev/null --info --title="Installation achevée" --text="$summary_text" --width=500 --extra-button="Voir les logs" if [ $? -eq 1 ]; then @@ -341,6 +338,72 @@ show_progress() { fi } +# Fonction pour créer une progression continue pendant l'exécution d'une commande +run_with_continuous_progress() { + local title="$1" + local message="$2" + local command="$3" + + if [ "$BATCH_INSTALL_MODE" = "true" ]; then + # En mode groupé, pas de barre de progression individuelle + log_info "[$BATCH_CURRENT_APP/$BATCH_TOTAL_APPS] $title: $message" + eval "$command" + return $? + fi + + # Créer un pipe nommé pour la communication + local progress_pipe=$(mktemp -u) + mkfifo "$progress_pipe" + + # Fonction de progression continue en arrière-plan + continuous_progress() { + local percent=0 + local direction=1 + + while true; do + echo "$percent" + echo "# $message" + + # Augmenter ou diminuer le pourcentage + percent=$((percent + direction * 2)) + + # Inverser la direction aux extrêmes + if [ $percent -ge 95 ]; then + direction=-1 + elif [ $percent -le 5 ]; then + direction=1 + fi + + sleep 0.1 + done > "$progress_pipe" & + + local progress_pid=$! + + # Afficher la barre de progression + zenity 2>/dev/null --progress \ + --title="$title" \ + --text="$message" \ + --percentage=0 \ + --width=400 \ + --auto-close < "$progress_pipe" & + + local zenity_pid=$! + + # Exécuter la commande + eval "$command" > /dev/null 2>&1 + local result=$? + + # Nettoyer les processus en arrière-plan + kill $progress_pid 2>/dev/null || true + kill $zenity_pid 2>/dev/null || true + rm -f "$progress_pipe" + + return $result + } + + continuous_progress +} + # Fonction wrapper pour zenity 2>/dev/null progress en mode individuel run_individual_progress() { local app_name="$1" @@ -376,7 +439,6 @@ ensure_flathub_sources() { # Vérifier si Flatpak est installé if ! command -v flatpak &> /dev/null; then log_info "Flatpak n'est pas installé, installation en cours..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 echo "$password" | timeout $TIMEOUT_INSTALL sudo -S apt-get install -y flatpak >> "$LOG_FILE" 2>&1 if ! check_apt_success $? "flatpak" "installation"; then log_error "Échec de l'installation de Flatpak" @@ -410,15 +472,13 @@ show_unified_selection() { --extra-button="Désinstaller" \ --cancel-label="Annuler" \ --separator="|" \ - FALSE "ACTION_UNINSTALL" "SPECIAL" "🗑️ MODE DÉSINSTALLATION - Cochez ceci pour désinstaller au lieu d'installer" \ - FALSE "nvidia" "APT" "💻 NVIDIA + CUDA - Pilotes graphiques professionnels" \ FALSE "flatpak" "APT" "📦 Flatpak + Flathub - Gestionnaire d'applications universelles" \ FALSE "steam" "APT" "🎮 Steam - Plateforme de jeux numériques Valve" \ FALSE "heroic" "GitHub" "🎮 Heroic Game Launcher - Client Epic Games et GOG" \ FALSE "lutris" "APT" "🎮 Lutris - Gestionnaire de bibliothèque de jeux" \ FALSE "retroarch" "Flatpak" "🕹️ RetroArch - Plateforme d'émulation multi-systèmes" \ FALSE "goverlay" "APT" "⚡ GOverlay - Monitoring des performances (FPS, CPU, GPU)" \ - FALSE "protonup" "Flatpak" "🔄 ProtonUp-Qt - Gestionnaire de versions Proton" \ + FALSE "proton plus" "Flatpak" "🔄 ProtonUp-Qt - Gestionnaire de versions Proton" \ FALSE "wine" "APT" "🍷 Wine + Winetricks - Couche de compatibilité Windows" \ FALSE "bottles" "Flatpak" "🍷 Bottles - Gestionnaire Wine moderne" \ FALSE "discord" "Flatpak" "💬 Discord - Plateforme de communication gaming" \ @@ -450,41 +510,30 @@ install_steam() { # Fonction interne pour l'installation install_steam_steps() { - show_progress "Steam" 10 "Mise à jour des sources..." - log_info "Début mise à jour des sources pour Steam" - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - local result=$? - log_info "Résultat apt-get update: $result" - if ! check_apt_success $result "sources" "mise à jour"; then - log_error "Échec mise à jour des sources pour Steam" + if ! run_with_continuous_progress "Steam" "Installation des dépendances..." \ + "echo '$password' | timeout $TIMEOUT_APT sudo -S apt-get install -y wget curl >> '$LOG_FILE' 2>&1"; then + log_error "Échec installation dépendances Steam" return 1 fi - show_progress "Steam" 30 "Installation des dépendances..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get install -y wget curl >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "wget curl" "installation"; then + if ! run_with_continuous_progress "Steam" "Ajout de l'architecture 32-bit..." \ + "echo '$password' | timeout $TIMEOUT_APT sudo -S dpkg --add-architecture i386 >> '$LOG_FILE' 2>&1"; then + log_error "Échec ajout architecture i386 Steam" return 1 fi - show_progress "Steam" 50 "Ajout de l'architecture 32-bit..." - echo "$password" | timeout $TIMEOUT_APT sudo -S dpkg --add-architecture i386 >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "architecture i386" "ajout"; then + if ! run_with_continuous_progress "Steam" "Mise à jour après ajout architecture..." \ + "echo '$password' | timeout $TIMEOUT_APT sudo -S apt-get update >> '$LOG_FILE' 2>&1"; then + log_error "Échec mise à jour sources Steam" return 1 fi - show_progress "Steam" 70 "Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then + if ! run_with_continuous_progress "Steam" "Installation de steam-installer..." \ + "echo '$password' | timeout $TIMEOUT_INSTALL sudo -S apt-get install -y steam-installer >> '$LOG_FILE' 2>&1"; then + log_error "Échec installation steam-installer" return 1 fi - show_progress "Steam" 90 "Installation de steam-installer..." - echo "$password" | timeout $TIMEOUT_INSTALL sudo -S apt-get install -y steam-installer >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "steam-installer" "installation"; then - return 1 - fi - - show_progress "Steam" 100 "Vérification de l'installation..." return 0 } @@ -531,11 +580,11 @@ install_steam() { } # Fonction d'installation ProtonUp-Qt -install_protonup() { +install_proton_plus() { log_info "Début de l'installation de ProtonUp-Qt" # Vérifier si ProtonUp-Qt est déjà installé - if flatpak list | grep -q "net.davidotek.pupgui2"; then + if flatpak list | grep -q "com.vysp3r.ProtonPlus"; then log_info "ProtonUp-Qt déjà installé" zenity 2>/dev/null --info --title="Composant déjà présent" --text="ProtonUp-Qt est déjà installé sur le système." return @@ -546,37 +595,36 @@ install_protonup() { return fi - ( - echo "40" ; echo "# Vérification des sources Flathub..." + # Installation avec barres de progression continues + if [ "$BATCH_INSTALL_MODE" = "true" ]; then + # Mode groupé: installation directe sans barres individuelles if ! ensure_flathub_sources; then - echo "# Erreur lors de la configuration de Flathub" - exit 1 + log_error "Échec de la configuration de Flathub pour ProtonUp-Qt" + return fi - echo "70" ; echo "# Installation de ProtonUp-Qt via Flatpak..." - echo "$password" | timeout $TIMEOUT_INSTALL sudo -S flatpak install -y flathub net.davidotek.pupgui2 >> "$LOG_FILE" 2>&1 + echo "$password" | timeout $TIMEOUT_INSTALL sudo -S flatpak install -y flathub com.vysp3r.ProtonPlus >> "$LOG_FILE" 2>&1 if [ $? -ne 0 ]; then log_error "Échec de l'installation de ProtonUp-Qt" - echo "# Erreur lors de l'installation de ProtonUp-Qt" - exit 1 + return + fi + else + # Mode individuel: utiliser les barres de progression continues + if ! run_with_continuous_progress "ProtonUp-Qt" "Vérification des sources Flathub..." \ + "ensure_flathub_sources"; then + log_error "Échec de la configuration de Flathub pour ProtonUp-Qt" + return fi - echo "100" ; echo "# Vérification de l'installation..." - ) | zenity 2>/dev/null --progress \ - --title="Installation de ProtonUp-Qt" \ - --text="Initialisation..." \ - --percentage=0 \ - --width=400 \ - --auto-close - - # Vérifier le code de sortie du processus - if [ ${PIPESTATUS[0]} -ne 0 ]; then - show_error_logs "Échec de l'installation de ProtonUp-Qt" - return + if ! run_with_continuous_progress "ProtonUp-Qt" "Installation de ProtonUp-Qt via Flatpak..." \ + "echo '$password' | timeout $TIMEOUT_INSTALL sudo -S flatpak install -y flathub com.vysp3r.ProtonPlus >> '$LOG_FILE' 2>&1"; then + log_error "Échec de l'installation de ProtonUp-Qt" + return + fi fi # Vérifier si l'installation a réussi - if flatpak list | grep -q "net.davidotek.pupgui2"; then + if flatpak list | grep -q "com.vysp3r.ProtonPlus"; then log_info "Installation ProtonUp-Qt réussie" INSTALLED_APPS+=("ProtonUp-Qt") INSTALLATION_MESSAGES+=("ProtonUp-Qt a été installé avec succès via Flatpak") @@ -603,30 +651,23 @@ install_lutris() { fi ( - echo "10" ; echo "# Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then - echo "# Erreur lors de la mise à jour des sources" - exit 1 - fi - - echo "20" ; echo "# Installation des dépendances..." + echo "15" ; echo "# Installation des dépendances..." echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get install -y wget curl >> "$LOG_FILE" 2>&1 if ! check_apt_success $? "dépendances" "installation"; then echo "# Erreur lors de l'installation des dépendances" exit 1 fi - echo "50" ; echo "# Ajout de l'architecture 32-bit..." + echo "35" ; echo "# Ajout de l'architecture 32-bit..." echo "$password" | timeout $TIMEOUT_APT sudo -S dpkg --add-architecture i386 >> "$LOG_FILE" 2>&1 if ! check_apt_success $? "architecture i386" "ajout"; then echo "# Erreur lors de l'ajout de l'architecture i386" exit 1 fi - echo "70" ; echo "# Mise à jour des sources..." + echo "55" ; echo "# Mise à jour après ajout architecture..." echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then + if ! check_apt_success $? "sources après i386" "mise à jour"; then echo "# Erreur lors de la mise à jour des sources" exit 1 fi @@ -739,13 +780,6 @@ install_wine() { fi ( - echo "5" ; echo "# Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then - echo "# Erreur lors de la mise à jour des sources" - exit 1 - fi - echo "10" ; echo "# Installation des dépendances..." echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get install -y wget curl >> "$LOG_FILE" 2>&1 if ! check_apt_success $? "dépendances" "installation"; then @@ -916,14 +950,7 @@ install_flatpak() { fi ( - echo "20" ; echo "# Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then - echo "# Erreur lors de la mise à jour des sources" - exit 1 - fi - - echo "50" ; echo "# Installation de Flatpak..." + echo "30" ; echo "# Installation de Flatpak..." echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get install -y flatpak >> "$LOG_FILE" 2>&1 if ! check_apt_success $? "flatpak" "installation"; then echo "# Erreur lors de l'installation de Flatpak" @@ -990,23 +1017,18 @@ install_flatseal() { # Fonction interne pour l'installation install_flatseal_steps() { - show_progress "Flatseal" 40 "Vérification des sources Flathub..." - if ! ensure_flathub_sources; then + if ! run_with_continuous_progress "Flatseal" "Vérification des sources Flathub..." \ + "ensure_flathub_sources"; then log_error "Échec de la configuration de Flathub pour Flatseal" return 1 fi - show_progress "Flatseal" 70 "Installation de Flatseal via Flatpak..." - log_info "Installation de Flatseal via Flatpak" - echo "$password" | timeout $TIMEOUT_INSTALL sudo -S flatpak install -y flathub com.github.tchx84.Flatseal >> "$LOG_FILE" 2>&1 - local result=$? - log_info "Résultat installation Flatseal: $result" - if [ $result -ne 0 ]; then + if ! run_with_continuous_progress "Flatseal" "Installation de Flatseal via Flatpak..." \ + "echo '$password' | timeout $TIMEOUT_INSTALL sudo -S flatpak install -y flathub com.github.tchx84.Flatseal >> '$LOG_FILE' 2>&1"; then log_error "Échec de l'installation de Flatseal via Flatpak" return 1 fi - show_progress "Flatseal" 100 "Vérification de l'installation..." return 0 } @@ -1298,27 +1320,12 @@ install_mumble() { # Fonction interne pour l'installation install_mumble_steps() { - show_progress "Mumble" 20 "Mise à jour des sources..." - log_info "Début mise à jour des sources pour Mumble" - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - local result=$? - log_info "Résultat apt-get update: $result" - if ! check_apt_success $result "sources" "mise à jour"; then - log_error "Échec mise à jour des sources pour Mumble" - return 1 - fi - - show_progress "Mumble" 70 "Installation de Mumble..." - log_info "Installation du paquet Mumble" - echo "$password" | timeout $TIMEOUT_INSTALL sudo -S apt-get install -y mumble >> "$LOG_FILE" 2>&1 - local result=$? - log_info "Résultat installation Mumble: $result" - if ! check_apt_success $result "mumble" "installation"; then + if ! run_with_continuous_progress "Mumble" "Installation de Mumble..." \ + "echo '$password' | timeout $TIMEOUT_INSTALL sudo -S apt-get install -y mumble >> '$LOG_FILE' 2>&1"; then log_error "Échec installation Mumble" return 1 fi - show_progress "Mumble" 100 "Vérification de l'installation..." return 0 } @@ -1383,14 +1390,7 @@ install_heroic() { fi ( - echo "10" ; echo "# Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then - echo "# Erreur lors de la mise à jour des sources" - exit 1 - fi - - echo "20" ; echo "# Installation des dépendances..." + echo "15" ; echo "# Installation des dépendances..." echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get install -y wget curl >> "$LOG_FILE" 2>&1 if ! check_apt_success $? "wget curl" "installation"; then echo "# Erreur lors de l'installation des dépendances" @@ -1449,101 +1449,6 @@ install_heroic() { fi } -# Fonction d'installation drivers NVIDIA -install_nvidia() { - log_info "Début de l'installation des drivers NVIDIA" - - # Vérifier si les drivers NVIDIA sont déjà installés - if dpkg -l | grep -q "^ii.*nvidia-open" || dpkg -l | grep -q "^ii.*cuda-toolkit"; then - log_info "Drivers NVIDIA déjà installés" - zenity 2>/dev/null --info --title="Composants déjà présents" --text="Les drivers NVIDIA ou CUDA sont déjà installés sur le système." - return - fi - - # Utiliser le mot de passe global ou demander un nouveau - if ! use_global_password_or_ask "drivers NVIDIA"; then - return - fi - - ( - echo "5" ; echo "# Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then - echo "# Erreur lors de la mise à jour des sources" - exit 1 - fi - - echo "15" ; echo "# Installation de wget..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get install -y wget >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "wget" "installation"; then - echo "# Erreur lors de l'installation de wget" - exit 1 - fi - - echo "25" ; echo "# Téléchargement de la clé CUDA..." - timeout $TIMEOUT_DOWNLOAD wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb -P /tmp/ >> "$LOG_FILE" 2>&1 - if [ $? -ne 0 ]; then - log_error "Échec du téléchargement de la clé CUDA" - echo "# Erreur lors du téléchargement de la clé CUDA" - exit 1 - fi - - echo "35" ; echo "# Installation du paquet de clé..." - echo "$password" | timeout $TIMEOUT_APT sudo -S dpkg -i /tmp/cuda-keyring_1.1-1_all.deb >> "$LOG_FILE" 2>&1 - if [ $? -ne 0 ]; then - log_error "Échec de l'installation du paquet de clé CUDA" - echo "# Erreur lors de l'installation du paquet de clé" - exit 1 - fi - - echo "45" ; echo "# Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources après ajout clé CUDA" "mise à jour"; then - echo "# Erreur lors de la mise à jour après ajout de clé" - exit 1 - fi - - echo "65" ; echo "# Installation de CUDA Toolkit..." - echo "$password" | timeout $TIMEOUT_INSTALL sudo -S apt-get -y install cuda-toolkit-12-9 >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "cuda-toolkit-12-9" "installation"; then - echo "# Erreur lors de l'installation de CUDA Toolkit" - exit 1 - fi - - echo "85" ; echo "# Installation des drivers NVIDIA..." - echo "$password" | timeout $TIMEOUT_INSTALL sudo -S apt-get install -y nvidia-open >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "nvidia-open" "installation"; then - echo "# Erreur lors de l'installation des drivers NVIDIA" - exit 1 - fi - - echo "95" ; echo "# Nettoyage..." - rm -f /tmp/cuda-keyring_1.1-1_all.deb - - echo "100" ; echo "# Vérification de l'installation..." - ) | zenity 2>/dev/null --progress \ - --title="Installation des drivers NVIDIA" \ - --text="Initialisation..." \ - --percentage=0 \ - --width=400 \ - --auto-close - - # Vérifier le code de sortie du processus - if [ ${PIPESTATUS[0]} -ne 0 ]; then - show_error_logs "Échec de l'installation des drivers NVIDIA" - return - fi - - # Vérifier si l'installation a réussi - if dpkg -l | grep -q "^ii.*nvidia-open" && dpkg -l | grep -q "^ii.*cuda-toolkit"; then - log_info "Installation drivers NVIDIA réussie" - INSTALLED_APPS+=("Drivers NVIDIA") - INSTALLATION_MESSAGES+=("Les drivers NVIDIA ont été installés avec succès (redémarrage requis)") - else - log_error "Drivers NVIDIA non trouvés après installation" - show_error_logs "Drivers NVIDIA non trouvés après installation" - fi -} # Fonction d'installation des GOverlay install_GOverlay() { @@ -1566,14 +1471,7 @@ install_GOverlay() { fi ( - echo "15" ; echo "# Mise à jour des sources..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "sources" "mise à jour"; then - echo "# Erreur lors de la mise à jour des sources" - exit 1 - fi - - echo "40" ; echo "# Installation de gamemode..." + echo "25" ; echo "# Installation de gamemode..." echo "$password" | timeout $TIMEOUT_INSTALL sudo -S apt-get install -y gamemode >> "$LOG_FILE" 2>&1 gamemode_success=$? @@ -1727,11 +1625,11 @@ uninstall_steam_silent() { } # Fonction de désinstallation ProtonUp-Qt -uninstall_protonup() { +uninstall_proton_plus() { log_info "Début de la désinstallation de ProtonUp-Qt" # Vérifier si ProtonUp-Qt est installé - if ! flatpak list | grep -q "net.davidotek.pupgui2"; then + if ! flatpak list | grep -q "com.vysp3r.ProtonPlus"; then log_info "ProtonUp-Qt non installé" zenity 2>/dev/null --info --title="Non installé" --text="ProtonUp-Qt n'est pas installé sur le système." return @@ -1756,7 +1654,7 @@ uninstall_protonup() { ( echo "50" ; echo "# Désinstallation de ProtonUp-Qt..." - echo "$password" | timeout $TIMEOUT_APT sudo -S flatpak uninstall -y net.davidotek.pupgui2 >> "$LOG_FILE" 2>&1 + echo "$password" | timeout $TIMEOUT_APT sudo -S flatpak uninstall -y com.vysp3r.ProtonPlus >> "$LOG_FILE" 2>&1 if [ $? -ne 0 ]; then log_error "Échec de la désinstallation de ProtonUp-Qt" echo "# Erreur lors de la désinstallation de ProtonUp-Qt" @@ -1778,7 +1676,7 @@ uninstall_protonup() { fi # Vérifier si la désinstallation a réussi - if ! flatpak list | grep -q "net.davidotek.pupgui2"; then + if ! flatpak list | grep -q "com.vysp3r.ProtonPlus"; then log_info "Désinstallation ProtonUp-Qt réussie" zenity 2>/dev/null --info --title="Succès" --text="ProtonUp-Qt a été désinstallé avec succès !" else @@ -1787,25 +1685,25 @@ uninstall_protonup() { fi } -uninstall_protonup_silent() { +uninstall_proton_plus_silent() { local password="$1" log_info "Début de la désinstallation de ProtonUp-Qt (mode silencieux)" # Vérifier si ProtonUp-Qt est installé - if ! flatpak list | grep -q "net.davidotek.pupgui2"; then + if ! flatpak list | grep -q "com.vysp3r.ProtonPlus"; then log_info "ProtonUp-Qt non installé" return 0 fi # Désinstaller sans confirmation ni interface graphique - echo "$password" | timeout $TIMEOUT_APT sudo -S flatpak uninstall -y net.davidotek.pupgui2 >> "$LOG_FILE" 2>&1 + echo "$password" | timeout $TIMEOUT_APT sudo -S flatpak uninstall -y com.vysp3r.ProtonPlus >> "$LOG_FILE" 2>&1 if [ $? -ne 0 ]; then log_error "Échec de la désinstallation de ProtonUp-Qt" return 1 fi # Vérifier si la désinstallation a réussi - if ! flatpak list | grep -q "net.davidotek.pupgui2"; then + if ! flatpak list | grep -q "com.vysp3r.ProtonPlus"; then log_info "ProtonUp-Qt désinstallé avec succès" return 0 else @@ -2924,126 +2822,7 @@ uninstall_heroic_silent() { fi } -# Fonction de désinstallation drivers NVIDIA -uninstall_nvidia() { - log_info "Début de la désinstallation des drivers NVIDIA" - - # Vérifier si les drivers NVIDIA sont installés - if ! dpkg -l | grep -q "^ii.*nvidia-open" && ! dpkg -l | grep -q "^ii.*cuda-toolkit"; then - log_info "Drivers NVIDIA non installés" - zenity 2>/dev/null --info --title="Non installés" --text="Les drivers NVIDIA ne sont pas installés sur le système." - return - fi - - # Demander confirmation avec avertissement - if ! zenity 2>/dev/null --question --title="Confirmation - ATTENTION" --text="ATTENTION: La désinstallation des drivers NVIDIA peut affecter votre affichage.\n\nÊtes-vous sûr de vouloir continuer ?"; then - return - fi - - # Demander le mot de passe sudo - password=$(zenity 2>/dev/null --password --title="Authentification - Désinstallation NVIDIA" --text="Mot de passe sudo requis pour désinstaller les drivers NVIDIA:") - - if [ $? -eq 1 ]; then - return - fi - - # Vérifier le mot de passe sudo - if ! check_sudo_password "$password"; then - return - fi - - ( - echo "20" ; echo "# Désinstallation de CUDA Toolkit..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get purge -y cuda-toolkit-12-9 >> "$LOG_FILE" 2>&1 - cuda_remove_result=$? - - echo "50" ; echo "# Désinstallation des drivers NVIDIA..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get purge -y nvidia-open >> "$LOG_FILE" 2>&1 - nvidia_remove_result=$? - - # Logger les résultats individuels - check_apt_success $cuda_remove_result "cuda-toolkit-12-9" "désinstallation" - check_apt_success $nvidia_remove_result "nvidia-open" "désinstallation" - - # Vérifier si au moins une désinstallation a échoué - if [ $cuda_remove_result -ne 0 ] || [ $nvidia_remove_result -ne 0 ]; then - echo "# Erreur lors de la désinstallation des composants NVIDIA" - exit 1 - fi - - echo "80" ; echo "# Nettoyage des paquets orphelins..." - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get autoremove -y >> "$LOG_FILE" 2>&1 - if ! check_apt_success $? "paquets orphelins" "nettoyage"; then - echo "# Avertissement: Erreur lors du nettoyage des paquets orphelins" - fi - - echo "100" ; echo "# Vérification de la désinstallation..." - ) | zenity 2>/dev/null --progress \ - --title="Désinstallation des drivers NVIDIA" \ - --text="Initialisation..." \ - --percentage=0 \ - --width=400 \ - --auto-close - - # Vérifier le code de sortie du processus - if [ ${PIPESTATUS[0]} -ne 0 ]; then - show_error_logs "Échec de la désinstallation des drivers NVIDIA" - return - fi - - # Vérifier si la désinstallation a réussi - if ! dpkg -l | grep -q "^ii.*nvidia-open" && ! dpkg -l | grep -q "^ii.*cuda-toolkit"; then - log_info "Désinstallation drivers NVIDIA réussie" - zenity 2>/dev/null --info --title="Succès" --text="Les drivers NVIDIA ont été désinstallés avec succès !\nUn REDÉMARRAGE est recommandé." - else - log_error "Échec de la désinstallation des drivers NVIDIA" - show_error_logs "Échec de la désinstallation des drivers NVIDIA" - fi -} -uninstall_nvidia_silent() { - local password="$1" - log_info "Début de la désinstallation des drivers NVIDIA (mode silencieux)" - - # Vérifier si les drivers NVIDIA sont installés - if ! dpkg -l | grep -q "^ii.*nvidia-open" && ! dpkg -l | grep -q "^ii.*cuda-toolkit"; then - log_info "Drivers NVIDIA non installés" - return 0 - fi - - # Désinstaller CUDA Toolkit - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get purge -y cuda-toolkit-12-9 >> "$LOG_FILE" 2>&1 - cuda_remove_result=$? - - # Désinstaller les drivers NVIDIA - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get purge -y nvidia-open >> "$LOG_FILE" 2>&1 - nvidia_remove_result=$? - - # Logger les résultats individuels - check_apt_success $cuda_remove_result "cuda-toolkit-12-9" "désinstallation" - check_apt_success $nvidia_remove_result "nvidia-open" "désinstallation" - - # Vérifier si au moins une désinstallation a échoué - if [ $cuda_remove_result -ne 0 ] || [ $nvidia_remove_result -ne 0 ]; then - log_error "Erreur lors de la désinstallation des composants NVIDIA" - return 1 - fi - - # Nettoyage des paquets orphelins - echo "$password" | timeout $TIMEOUT_APT sudo -S apt-get autoremove -y >> "$LOG_FILE" 2>&1 - - # Vérifier si la désinstallation a réussi - cuda_ok=$(dpkg -l | grep -q "^ii.*cuda-toolkit" && echo "non" || echo "oui") - nvidia_ok=$(dpkg -l | grep -q "^ii.*nvidia-open" && echo "non" || echo "oui") - - if [ "$cuda_ok" = "oui" ] && [ "$nvidia_ok" = "oui" ]; then - log_info "Désinstallation des drivers NVIDIA réussie" - return 0 - else - log_info "Désinstallation partielle des drivers NVIDIA" - return 1 - fi -} # Fonction de désinstallation des GOverlay uninstall_GOverlay() { @@ -3228,27 +3007,20 @@ fi IFS='|' read -ra SELECTED <<< "$selection" # Vérifier si le mode désinstallation est demandé via la checkbox -uninstall_mode=false -if [[ " ${SELECTED[*]} " =~ " ACTION_UNINSTALL " ]]; then - uninstall_mode=true - # Retirer ACTION_UNINSTALL de la liste - SELECTED=("${SELECTED[@]/ACTION_UNINSTALL}") -fi - # Déterminer le mode final -if [ "$uninstall_mode" = "true" ] || [ $exit_code -eq 1 ]; then +if [ $exit_code -eq 1 ]; then # Mode désinstallation (bouton extra) # Créer la liste des composants pour confirmation uninstall_display="" for component in "${SELECTED[@]}"; do # Ignorer les éléments qui ne sont pas des applications (boutons, etc.) case $component in - "Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;; + "Désinstaller"|"Installer"|"") continue ;; esac case $component in "steam") uninstall_display="$uninstall_display\n• Steam" ;; - "protonup") uninstall_display="$uninstall_display\n• ProtonUp-Qt" ;; + "proton plus") uninstall_display="$uninstall_display\n• ProtonUp-Qt" ;; "heroic") uninstall_display="$uninstall_display\n• Heroic Game Launcher" ;; "lutris") uninstall_display="$uninstall_display\n• Lutris" ;; "bottles") uninstall_display="$uninstall_display\n• Bottles" ;; @@ -3261,7 +3033,6 @@ if [ "$uninstall_mode" = "true" ] || [ $exit_code -eq 1 ]; then "teamspeak") uninstall_display="$uninstall_display\n• TeamSpeak" ;; "mumble") uninstall_display="$uninstall_display\n• Mumble" ;; "flatseal") uninstall_display="$uninstall_display\n• Flatseal" ;; - "nvidia") uninstall_display="$uninstall_display\n• Drivers NVIDIA (ATTENTION: peut affecter l'affichage)" ;; "GOverlay") uninstall_display="$uninstall_display\n• GOverlay (GameMode, MangoHUD, GOverlay)" ;; esac done @@ -3299,7 +3070,7 @@ if [ "$uninstall_mode" = "true" ] || [ $exit_code -eq 1 ]; then for component in "${SELECTED[@]}"; do # Ignorer les éléments qui ne sont pas des applications (boutons, etc.) case $component in - "Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;; + "Désinstaller"|"Installer"|"") continue ;; esac log_info "Traitement du composant: $component" @@ -3311,8 +3082,8 @@ if [ "$uninstall_mode" = "true" ] || [ $exit_code -eq 1 ]; then failed_components="$failed_components\n• Steam" fi ;; - "protonup") - if uninstall_with_progress "$component" "$password" "ProtonUp-Qt" "uninstall_protonup_silent"; then + "proton plus") + if uninstall_with_progress "$component" "$password" "ProtonUp-Qt" "uninstall_proton_plus_silent"; then ((success_count++)) else failed_components="$failed_components\n• ProtonUp-Qt" @@ -3402,13 +3173,6 @@ if [ "$uninstall_mode" = "true" ] || [ $exit_code -eq 1 ]; then failed_components="$failed_components\n• Flatseal" fi ;; - "nvidia") - if uninstall_with_progress "$component" "$password" "Drivers NVIDIA" "uninstall_nvidia_silent"; then - ((success_count++)) - else - failed_components="$failed_components\n• Drivers NVIDIA" - fi - ;; "GOverlay") if uninstall_with_progress "$component" "$password" "GOverlay" "uninstall_GOverlay_silent"; then ((success_count++)) @@ -3462,12 +3226,12 @@ else for component in "${SELECTED[@]}"; do # Ignorer les éléments qui ne sont pas des applications (boutons, etc.) case $component in - "Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;; + "Désinstaller"|"Installer"|"") continue ;; esac case $component in "steam") install_display="$install_display\n• Steam" ;; - "protonup") install_display="$install_display\n• ProtonUp-Qt" ;; + "proton plus") install_display="$install_display\n• ProtonUp-Qt" ;; "heroic") install_display="$install_display\n• Heroic Game Launcher" ;; "lutris") install_display="$install_display\n• Lutris" ;; "bottles") install_display="$install_display\n• Bottles" ;; @@ -3480,7 +3244,6 @@ else "teamspeak") install_display="$install_display\n• TeamSpeak" ;; "mumble") install_display="$install_display\n• Mumble" ;; "flatseal") install_display="$install_display\n• Flatseal" ;; - "nvidia") install_display="$install_display\n• NVIDIA + CUDA" ;; "GOverlay") install_display="$install_display\n• Goverlay (FPS, CPU, GPU, température)" ;; esac done @@ -3495,6 +3258,14 @@ else exit 0 fi + # Mise à jour globale des sources une seule fois pour éviter les délais + log_info "Mise à jour globale des sources APT" + echo "$GLOBAL_SUDO_PASSWORD" | timeout $TIMEOUT_APT sudo -S apt-get update >> "$LOG_FILE" 2>&1 + if ! check_apt_success $? "sources globales" "mise à jour"; then + zenity 2>/dev/null --error --title="Erreur" --text="Échec de la mise à jour des sources APT.\nVérifiez votre connexion Internet." + exit 1 + fi + # Activer le mode installation groupée si plusieurs applications sont sélectionnées if [ ${#SELECTED[@]} -gt 1 ]; then start_batch_install ${#SELECTED[@]} "$install_display" @@ -3505,15 +3276,15 @@ else for component in "${SELECTED[@]}"; do # Ignorer les éléments qui ne sont pas des applications (boutons, etc.) case $component in - "Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;; + "Désinstaller"|"Installer"|"") continue ;; esac case $component in "steam") install_steam ;; - "protonup") - install_protonup + "proton plus") + install_proton_plus ;; "heroic") install_heroic @@ -3551,9 +3322,6 @@ else "flatseal") install_flatseal ;; - "nvidia") - install_nvidia - ;; "GOverlay") install_GOverlay ;; @@ -3563,7 +3331,7 @@ else if [ "$BATCH_INSTALL_MODE" = "true" ]; then case $component in "steam") next_batch_app "Steam" ;; - "protonup") next_batch_app "ProtonUp-Qt" ;; + "proton plus") next_batch_app "ProtonUp-Qt" ;; "heroic") next_batch_app "Heroic Game Launcher" ;; "lutris") next_batch_app "Lutris" ;; "bottles") next_batch_app "Bottles" ;; @@ -3576,7 +3344,6 @@ else "teamspeak") next_batch_app "TeamSpeak" ;; "mumble") next_batch_app "Mumble" ;; "flatseal") next_batch_app "Flatseal" ;; - "nvidia") next_batch_app "NVIDIA + CUDA" ;; "GOverlay") next_batch_app "Goverlay (performances)" ;; esac fi