176 lines
5.3 KiB
Bash
Executable File
176 lines
5.3 KiB
Bash
Executable File
#! /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
|