merge Brice branch + clean up

This commit is contained in:
Grégory Lebreton 2026-01-28 11:35:44 +01:00
parent 1a54f548f6
commit 90e58bfa0a
10 changed files with 401 additions and 284 deletions

Binary file not shown.

View File

@ -1,30 +0,0 @@
echo "Installation du thème d'icônes Colloid..."
# Variables
ICON_THEME_NAME="Colloid"
ICON_DEST="/usr/share/icons" # où installer pour tous les utilisateurs
TMPDIR="$(mktemp -d)"
# 1. Cloner le repo
git clone https://github.com/vinceliuice/Colloid-icon-theme.git "$TMPDIR/Colloid-icon-theme"
# 2. Exécuter le script d'installation
cd "$TMPDIR/Colloid-icon-theme"
# Tu peux choisir les variantes de couleur/folder que tu veux, ou utiliser les valeurs défauts
# Exemple : installer toutes les variantes
sudo ./install.sh --dest "$ICON_DEST" --scheme default --theme default
# 3. Nettoyer
cd /
rm -rf "$TMPDIR"
# 4. Appliquer au user courant
gsettings set org.gnome.desktop.interface icon-theme "$ICON_THEME_NAME"
# 5. Définir comme thème par défaut pour tous les nouveaux utilisateurs
sudo mkdir -p /etc/dconf/db/local.d
sudo tee /etc/dconf/db/local.d/00-gnome-icon-theme-colloid > /dev/null <<EOF
[org/gnome/desktop/interface]
icon-theme='$ICON_THEME_NAME'
EOF
sudo dconf update

View File

@ -1,11 +0,0 @@
// Dans Virtualbox, pour monter un dossier partagé du système hôte
// Contexte : user=visiteur / Nom du périphérique tel que configuré dans Configuration > Shared folders : GN-post_install-Trixie
mkdir /home/visiteur/share
sudo mount -t vboxsf -o uid=0000,gid=1000 trixie-gn-postinstall /home/visiteur/share
# Montage automatique du dossier partagé au boot
sudo su -c "echo 'trixie-gn-postinstall /home/visiteur/share vboxsf defaults 0 0' >> /etc/fstab"
>> passer par un cron tab @reboot

View File

@ -1,125 +0,0 @@
#!/bin/bash
source ./install_apps.sh
LOGFILE="$HOME/postinstall.log"
> "$LOGFILE"
run_step() {
local description="$1"
local command="$2"
echo -n "$description... "
if eval "$command" >>"$LOGFILE" 2>&1; then
echo "✅"
else
echo "❌ (voir $LOGFILE)"
fi
}
#################################
# 🎯 POST-INSTALL DEBIAN 13 #
#################################
run_step '📦 Configuration des sources APT' "
sudo cp files/debian.sources /etc/apt/sources.list.d/ &&
if [ -f /etc/apt/sources.list ]; then
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo rm /etc/apt/sources.list
fi
"
run_step "🆙 Mise à jour du système" "
sudo apt update &&
sudo apt upgrade -y
"
# 🧰 BASE TOOLS
run_step "🔧 Installation des outils de base" "
sudo apt install -y libgettextpo-dev gettext git wget curl build-essential linux-image-amd64 make ttf-mscorefonts-installer rsyslog unzip bash-completion flatpak libxdo3 extrepo
"
# FRENCH LANGUAGE & KEYBOARD
run_step "Passage du système en français et clavier AZERTY" "
sudo cp files/keyboard /etc/default/
export LANG=fr_FR.UTF-8
echo "LANG=fr_FR.UTF-8" | sudo tee -a /etc/default/locale > /dev/null
"
run_step "🛒 Ajout du dépôt Flathub" "
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak update -y
"
# 🌐 DNS
run_step "🌐 Configuration DNS Cloudflare" "
echo -e '[main]\ndns=none' | sudo tee /etc/NetworkManager/conf.d/90-dns-none.conf &&
sudo systemctl reload NetworkManager &&
sudo sed -i '1,4 s/^/#/' /etc/resolv.conf &&
sudo sed -i -e '\$anameserver 1.1.1.2\nameserver 2606:4700:4700::1112' /etc/resolv.conf &&
sudo systemctl reload NetworkManager
"
# 🎨 LIBREOFFICE
run_step "🎨 Icônes LibreOffice (Colibre)" "
sudo chown $USER:$USER files/registrymodifications.xcu &&
mkdir -p \$HOME/.config/libreoffice/4/user/ &&
cp files/registrymodifications.xcu \$HOME/.config/libreoffice/4/user/ &&
sudo mkdir -p /etc/skel/.config/libreoffice/4/user/ &&
sudo cp files/registrymodifications.xcu /etc/skel/.config/libreoffice/4/user/
"
# 🦊 FIREFOX
run_step "🦊 Installation de Firefox (script)" "
bash firefox.sh
"
# 🖥️ GNOME
if whiptail --title "Configuration GNOME" --yesno "Souhaitez-vous configurer GNOME maintenant ?" 10 60; then
run_step "🖥️ Configuration de GNOME (script)" "
bash gnome.sh
"
else
echo "⏭️ Configuration GNOME ignorée."
fi
##################################
# ACITVATION DU BUREAU A DISTANCE
##################################
## A FAIRE
##############################
## SELECTION DES LOGICIELS ##
##############################
CHOIX=$(whiptail --title "Installation de logiciels" --checklist \
"Choisissez les logiciels à installer :" 20 78 10 \
"freetube" "FreeTube (YouTube sans pub)" ON \
"zoom" "Zoom (visioconférence)" OFF \
"element" "Element (messagerie Matrix)" OFF \
"chrome" "Google Chrome (navigateur)" OFF \
"vscodium" "VSCodium (éditeur de code)" ON \
3>&1 1>&2 2>&3)
# Nettoyage des guillemets doubles de la sortie de whiptail
CHOIX=$(echo $CHOIX | tr -d '"')
for APP in $CHOIX; do
case $APP in
freetube) install_freetube ;;
zoom) install_zoom ;;
element) install_element ;;
chrome) install_chrome ;;
vscodium) install_vscodium ;;
*) echo "❓ Logiciel inconnu : $APP" ;;
esac
done
echo -e "\n🎉 Post-installation terminée."
echo "📄 Rapport des erreurs (s'il y en a) : $LOGFILE"

View File

@ -1,111 +0,0 @@
#!/bin/bash
source ./install_apps.sh
LOGFILE="$HOME/postinstall.log"
> "$LOGFILE"
run_step() {
local description="$1"
local command="$2"
echo -n "$description... "
eval "$command" > /dev/null 2>>"$LOGFILE"
if [ $? -eq 0 ]; then
echo "✅"
else
echo "❌ (voir $LOGFILE)"
fi
}
#################################
# 🎯 POST-INSTALL DEBIAN 13 #
#################################
run_step '📦 Configuration des sources APT' "
sudo cp files/debian.sources /etc/apt/sources.list.d/ &&
if [ -f /etc/apt/sources.list ]; then
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo rm /etc/apt/sources.list
fi
"
run_step "🆙 Mise à jour du système" "
sudo apt update &&
sudo apt upgrade -y
"
# 🧰 BASE TOOLS
run_step "🔧 Installation des outils de base" "
sudo apt install -y libgettextpo-dev gettext git wget curl build-essential linux-image-amd64 make ttf-mscorefonts-installer rsyslog unzip bash-completion flatpak libxdo3 extrepo
"
run_step "🛒 Ajout du dépôt Flathub" "
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
"
# 🌐 DNS
run_step "🌐 Configuration DNS Cloudflare" "
echo -e '[main]\ndns=none' | sudo tee /etc/NetworkManager/conf.d/90-dns-none.conf &&
sudo systemctl reload NetworkManager &&
sudo sed -i '1,4 s/^/#/' /etc/resolv.conf &&
sudo sed -i -e '\$anameserver 1.1.1.2\nameserver 2606:4700:4700::1112' /etc/resolv.conf &&
sudo systemctl reload NetworkManager
"
# 🎨 LIBREOFFICE
run_step "🎨 Icônes LibreOffice (Colibre)" "
sudo chown $USER:$USER files/registrymodifications.xcu &&
mkdir -p \$HOME/.config/libreoffice/4/user/ &&
cp files/registrymodifications.xcu \$HOME/.config/libreoffice/4/user/ &&
sudo mkdir -p /etc/skel/.config/libreoffice/4/user/ &&
sudo cp files/registrymodifications.xcu /etc/skel/.config/libreoffice/4/user/
"
# 🦊 FIREFOX
run_step "🦊 Installation de Firefox (script)" "
bash firefox.sh
"
# 🖥️ GNOME
if whiptail --title "Configuration GNOME" --yesno "Souhaitez-vous configurer GNOME maintenant ?" 10 60; then
run_step "🖥️ Configuration de GNOME (script)" "
bash gnome.sh
"
else
echo "⏭️ Configuration GNOME ignorée."
fi
##############################
## SELECTION DES LOGICIELS ##
##############################
CHOIX=$(whiptail --title "Installation de logiciels" --checklist \
"Choisissez les logiciels à installer :" 20 78 10 \
"freetube" "FreeTube (YouTube sans pub)" ON \
"zoom" "Zoom (visioconférence)" OFF \
"element" "Element (messagerie Matrix)" OFF \
"chrome" "Google Chrome (navigateur)" OFF \
"vscodium" "VSCodium (éditeur de code)" ON \
3>&1 1>&2 2>&3)
# Nettoyage des guillemets doubles de la sortie de whiptail
CHOIX=$(echo $CHOIX | tr -d '"')
for APP in $CHOIX; do
case $APP in
freetube) install_freetube ;;
zoom) install_zoom ;;
element) install_element ;;
chrome) install_chrome ;;
vscodium) install_vscodium ;;
*) echo "❓ Logiciel inconnu : $APP" ;;
esac
done
echo -e "\n🎉 Post-installation terminée."
echo "📄 Rapport des erreurs (s'il y en a) : $LOGFILE"

View File

@ -1,4 +0,0 @@
Looking for matches…
Required runtime for io.freetubeapp.FreeTube/x86_64/stable (runtime/org.freedesktop.Platform/x86_64/25.08) found in remote flathub
Do you want to install it? [Y/n]: n
error: The application io.freetubeapp.FreeTube/x86_64/stable requires the runtime org.freedesktop.Platform/x86_64/25.08 which is not installed

113
scripts/firefox.sh Executable file
View File

@ -0,0 +1,113 @@
#!/bin/bash
## Vérifier la présence de firefox-esr, le désinstaler.
## Installer firefox via les dépôts Mozilla.
## Modifier en conséquence ci-dessous le chemin dans /usr/lib/
#!/usr/bin/env bash
# ================================
# Fonctions utilitaires
# ================================
echo_info() { echo -e "\e[1;34m[INFO]\e[0m $*"; }
echo_warn() { echo -e "\e[1;33m[WARN]\e[0m $*"; }
echo_err() { echo -e "\e[1;31m[ERROR]\e[0m $*"; }
# ================================
# Étape 1 : Détection de Firefox ESR
# ================================
if dpkg -l | grep -qw firefox-esr; then
echo_info "Firefox ESR est détecté."
# ================================
# Étape 2 : Sauvegarde du profil utilisateur
# ================================
FIREFOX_DIR="${HOME}/.mozilla/firefox"
BACKUP_DIR="${HOME}/firefox_esr_backup_$(date +%Y%m%d_%H%M%S)"
if [[ -d "$FIREFOX_DIR" ]]; then
echo_info "Sauvegarde du profil Firefox ESR depuis : $FIREFOX_DIR"
mkdir -p "$BACKUP_DIR"
cp -a "$FIREFOX_DIR" "$BACKUP_DIR/"
echo_info "Profil sauvegardé dans : $BACKUP_DIR"
else
echo_warn "Aucun répertoire de profil Firefox trouvé dans $FIREFOX_DIR."
fi
# ================================
# Étape 3 : Suppression de Firefox ESR
# ================================
echo_info "Suppression de Firefox ESR..."
sudo apt remove --purge -y firefox-esr
#sudo apt autoremove -y
else
echo_info "Firefox ESR nest pas installé — aucune sauvegarde ni suppression nécessaire."
fi
# ================================
# Étape 4 : Ajout du dépôt officiel Mozilla
# ================================
echo_info "Ajout du dépôt officiel Mozilla pour Firefox."
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | \
sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
DEB_CODENAME=$(lsb_release -cs)
echo_info "Code-nom Debian détecté : ${DEB_CODENAME}"
if [[ "${DEB_CODENAME}" == "trixie" || "${DEB_CODENAME}" == "bookworm" ]]; then
sudo tee /etc/apt/sources.list.d/mozilla.sources > /dev/null <<EOF
Types: deb
URIs: https://packages.mozilla.org/apt
Suites: mozilla
Components: main
Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc
EOF
else
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | \
sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null
fi
sudo tee /etc/apt/preferences.d/mozilla > /dev/null <<EOF
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
EOF
# ================================
# Étape 5 : Installation de Firefox standard
# ================================
echo_info "Mise à jour des dépôts et installation de Firefox."
sudo apt update
sudo apt install -y firefox
echo_info "Installation terminée. Version installée :"
firefox --version
echo_info "✅ Script terminé avec succès."
### Installation de ublock Origin
mkdir tmp
# On télécharge l'extension depuis addons.mozilla.org
wget https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi -O tmp/latest.xpi
# On renomme le fichier avec l'uid de l'extension
mv tmp/latest.xpi tmp/uBlock0@raymondhill.net.xpi
# On crée
sudo mkdir -p /usr/lib/firefox/distribution/extensions/
sudo cp tmp/uBlock0@raymondhill.net.xpi /usr/lib/firefox/distribution/extensions/
# On force les droits en lecture du fichier.
# A vérifier si c'est vraiment utile...
sudo chmod 644 /usr/lib/firefox/distribution/extensions/uBlock0@raymondhill.net.xpi
## TO BE CONTINUED
# Homepage custom avec liens vers service publics + + google search + background
#

175
scripts/gnome.sh Executable file
View File

@ -0,0 +1,175 @@
#! /bin/bash
##################
# GNOME #
##################
# Définir la variable DBUS_SESSION_BUS_ADDRESS si elle n'existe pas
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u)/bus"
fi
# Lancer dbus-launch si nécessaire
if ! dbus-launch --sh-syntax >/dev/null 2>&1; then
eval $(dbus-launch --sh-syntax)
fi
# Installation des paquets
sudo apt update
sudo apt install -y \
gir1.2-gmenu-3.0 \
pipx \
libgnome-menu-3-0 \
gnome-shell-extensions \
dconf-cli \
dbus-x11
# Configuration utilisateur
echo "🔧 Configuration des paramètres GNOME pour l'utilisateur actuel..."
gsettings set org.gnome.desktop.wm.preferences button-layout 'appmenu:minimize,maximize,close'
gsettings set org.gnome.shell favorite-apps "['firefox-esr.desktop', 'org.gnome.Nautilus.desktop', 'libreoffice-startcenter.desktop', 'org.gnome.Software.desktop']"
sudo mkdir -p /usr/share/wallpapers/GN
sudo cp -r files/wallpapers/* /usr/share/wallpapers/GN/
gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/wallpapers/GN/clouds.png"
# Configuration système
echo "Application des paramètres par défaut pour tous les utilisateurs..."
sudo mkdir -p /etc/dconf/db/local.d/ && sudo cp files/00-defaults $_
sudo cp files/user /etc/dconf/profile/user
sudo dconf update
########################
## EXTENSIONS GNOME ##
# Installation via pipx > gnome-extensions-cli/gext
# Paramétrage
########################
# Extensions à installer (IDs officiels)
EXTENSIONS=(
"dash-to-panel@jderose9.github.com"
"arcmenu@arcmenu.com"
)
# S'assurer que pipx est installé
if ! command -v pipx &>/dev/null; then
echo "pipx n'est pas installé. Installation..."
sudo apt install pipx -y
pipx ensurepath
export PATH="$HOME/.local/bin:$PATH"
hash -r
fi
# Installation de gnome-extensions-cli (gext)
pipx install gnome-extensions-cli --system-site-packages --force
export PATH="$HOME/.local/bin:$PATH"
hash -r
# Paramétrage des extensions
sudo cp files/logo_icon_gn.png /usr/share/icons/
echo "Importation des préférences de dash-to-panel..."
dconf load /org/gnome/shell/extensions/dash-to-panel/ < files/dconf/dash-to-panel.conf
sudo dconf update
# Vérification de la version de GNOME Shell
GNOME_SHELL_VERSION=$(gnome-shell --version | cut -d' ' -f3)
echo "Version de GNOME Shell détectée : $GNOME_SHELL_VERSION"
# Installation et activation des extensions
echo "Installation et activation des extensions GNOME..."
for ext in "${EXTENSIONS[@]}"; do
echo "Installation de l'extension $ext..."
if ! gext install "$ext" ; then
echo "Échec de l'installation de $ext. Vérifiez votre connexion internet ou l'ID de l'extension."
else
echo "Activation de l'extension $ext..."
gnome-extensions enable "$ext"
fi
done
echo "Installation terminée. Redémarrez GNOME Shell (Alt+F2 puis 'r') pour appliquer les changements."
##################
# GNOME - Mise en place pour les nouveaux utilisateurs
##################
echo "🔧 Mise en place des paramètres de Gnome pour les (futurs) nouveaux utilisateurs."
mkdir -p tmp
dconf dump /org/gnome/shell/ > tmp/gnome-extensions.conf
sudo mkdir -p /etc/skel/.config/dconf/ && sudo cp tmp/gnome-extensions.conf $_
# Copie des extensions dans /usr/share
sudo cp -r ~/.local/share/gnome-shell/extensions/* /usr/share/gnome-shell/extensions/
# Modification des droits sur le fichier 'metadata.json' de chaque extension
for ext in "${EXTENSIONS[@]}"; do
metadata_path="/usr/share/gnome-shell/extensions/$ext/metadata.json"
if [ -f "$metadata_path" ]; then
echo "Modification des droits sur $metadata_path"
sudo chmod 644 "$metadata_path"
else
echo "⚠️ Fichier $metadata_path introuvable, extension peut-être non copiée correctement."
fi
done
# Création du script de post-login GNOME qui active les extensions
sudo tee /usr/local/bin/activate-gnome-extensions.sh > /dev/null << 'EOF'
#!/bin/bash
exec >> ~/.config/gnome-extensions-activate.log 2>&1
set -e
# Fonction pour activer une extension et vérifier son succès
activate_extension() {
local ext="$1"
if gnome-extensions info "$ext" >/dev/null 2>&1; then
echo "[+] Activation de l'extension : $ext"
gnome-extensions enable "$ext"
else
echo "[!] Extension introuvable : $ext"
return 1
fi
}
echo "[*] Chargement des paramètres GNOME..."
dconf load /org/gnome/shell/ < ~/.config/dconf/gnome-extensions.conf
# Liste des extensions
EXTENSIONS=(
"dash-to-panel@jderose9.github.com"
"arcmenu@arcmenu.com"
)
# Activation des extensions
for ext in "${EXTENSIONS[@]}"; do
activate_extension "$ext"
done
# Suppression du .desktop uniquement si tout a réussi
echo "[✓] Toutes les opérations ont réussi. Suppression du .desktop."
rm -f ~/.config/autostart/gnome-extensions-activate.desktop
EOF
# Rendre le script exécutable
sudo chmod +x /usr/local/bin/activate-gnome-extensions.sh
# Création du fichier .desktop pour autostart dans /etc/skel
sudo mkdir -p /etc/skel/.config/autostart
sudo tee /etc/skel/.config/autostart/gnome-extensions-activate.desktop > /dev/null << 'EOF'
[Desktop Entry]
Type=Application
Name=GNOME Extensions Auto-Activate
Exec=/usr/local/bin/activate-gnome-extensions.sh
X-GNOME-Autostart-enabled=true
NoDisplay=true
EOF
# Modification du pack d'icônes
#bash change-icons.sh

110
scripts/install_apps.sh Executable file
View File

@ -0,0 +1,110 @@
#!/bin/bash
sudo cp files/extrepo.config.yaml /etc/extrepo/config.yaml
# Vérifie si une commande ou un Flatpak est installé
is_installed() {
local app_name="$1"
local flatpak_ref="${2:-}" # valeur vide si non fournie
if command -v "$app_name" &> /dev/null; then
return 0
fi
if [[ -n "$flatpak_ref" ]] && flatpak info --show-ref "$flatpak_ref" &> /dev/null; then
return 0
fi
return 1
}
# 📺 FreeTube (Flatpak)
install_freetube() {
local flatpak_ref="io.freetubeapp.FreeTube"
local runtime="org.freedesktop.Platform//25.08"
# Vérifie si FreeTube est déjà installé
if is_installed freetube "$flatpak_ref"; then
echo "📺 FreeTube est déjà installé (Flatpak ou système)."
return
fi
echo "🔄 Mise à jour des métadonnées Flathub..."
flatpak update --appstream -y
echo "📦 Installation du runtime nécessaire..."
if ! flatpak list --runtime | grep -qw "org.freedesktop.Platform.*25.08"; then
flatpak install -y flathub "$runtime"
else
echo "✅ Runtime déjà installé."
fi
echo "📦 Installation de FreeTube..."
flatpak install -y flathub "$flatpak_ref"
# Vérifie que l'installation a réussi
if is_installed freetube "$flatpak_ref"; then
echo "🎉 FreeTube a été installé avec succès !"
else
echo "❌ Échec de l'installation de FreeTube."
fi
}
# 🎥 Zoom (via .deb)
install_zoom() {
if is_installed zoom; then
echo "🎥 Zoom est déjà installé."
return
fi
run_step "🎥 Installation de Zoom (.deb officiel)" "
wget -q https://zoom.us/client/latest/zoom_amd64.deb -O /tmp/zoom.deb &&
sudo apt install -y /tmp/zoom.deb &&
rm /tmp/zoom.deb
"
}
# 💬 Element (via extrepo)
install_element() {
if is_installed element-desktop; then
echo "💬 Element est déjà installé."
return
fi
run_step "💬 Installation de Element (Extrepo)" "
sudo extrepo enable element.io &&
sudo apt update &&
sudo apt install -y element-desktop
"
}
# 🌐 Google Chrome (via extrepo)
install_chrome() {
if is_installed google-chrome; then
echo "🌐 Google Chrome est déjà installé."
return
fi
run_step "🌐 Installation de Google Chrome (Extrepo)" "
sudo extrepo enable google_chrome &&
sudo apt update &&
sudo apt install -y google-chrome-stable
"
}
# 🧑‍💻 VSCodium (via extrepo)
install_vscodium() {
if is_installed codium; then
echo "🧑‍💻 VSCodium est déjà installé."
return
fi
run_step "🧑‍💻 Installation de VSCodium (Extrepo)" "
sudo extrepo enable vscodium &&
sudo apt update &&
sudo apt install -y codium
"
}

6
trixie-toolbox.sh Normal file → Executable file
View File

@ -81,7 +81,7 @@ post_install_base() {
"
run_step "🦊 Installation de Firefox" "
bash firefox.sh
bash scripts/firefox.sh
"
}
@ -89,12 +89,12 @@ post_install_base() {
configure_gnome() {
echo "🖥️ Configuration de GNOME..."
run_step "Configuration de GNOME (script externe)" "
bash gnome.sh
bash scripts/gnome.sh
"
}
# --- Fichiers annexes
source ./install_apps.sh
source ./scripts/install_apps.sh
install_apps_menu() {