J'ai enfin compris pourquoi il ne suffit pas de remplacer l'image "login-background.png" dans le dossier "/usr/share/themes/gnome-shell" par une autre image du même nom (au format .png ou .jpg) pour modifier l'arrière-plan de l'écran de connexion GDM dans Zorin 17 Core !
Les fichiers du répertoire "/usr/share/themes/gnome-shell" servent à définir le thème, qui est ensuite empaqueté dans un fichier d'un format spécial "gnome-shell-theme-gresource".
Il faut donc extraire le contenu de ce fichier pour pouvoir apporter les modifications souhaitées (comme le fond d'écran), puis le recompiler.
La faute à GNOME, mais aussi à Zorin dont la customisation poussée rend inopérants les scripts qui marchent sur d'autres distributions Ubuntu, comme
ubuntu-change-login-background ou comme l'application
GDM Settings. Il faudrait que la base "dconf" de Zorin contienne les entrées nécessaires. La méthode ci-dessous risque donc d'être encore valable avec Zorin 18 Core, qu'il soit basé sur Ubuntu 24.04... ou 26.04.
J'ai essayé de rendre la tâche aussi simple que possible (quatre copier-coller qu'on pourrait réunir dans un même script) tout en veillant à ce que le processus soit compréhensible.
Ouvrez le terminal (Ctrl Alt t).

TIP
- Pour éviter les problèmes d'affichage, commencez par maximiser le terminal !
- Pour garantir des copies sans erreur, sélectionnez l'ensemble des lignes affichées dans chacune des zones de code en cliquant sur le lien "Tout sélectionner" et copiez-les en tapant "Ctrl c".
- Faites ensuite "Ctrl Shift v" pour les coller dans le terminal et appuyez sur "Entrée" pour les exécuter.
1. Extraction du fichier "gnome-shell-theme-gresource"
Après plusieurs essais, j'en suis venu à la conclusion que c'est le thème "ZorinBlue-Dark" qu'il faut modifier dans le cadre d'une configuration standard.
Les lignes suivantes enregistreront un script à la racine de votre répertoire personnel, puis le lanceront.
Il extraira les fichiers contenus dans "gnome-shell-theme-gresource" dans un répertoire "shell-theme" créé là-encore dans votre espace personnel — vous pourrez ainsi supprimer facilement le script et le répertoire après usage :
Code : Tout sélectionner
cat << 'EOF' > extract.sh
#!/bin/sh
gst=/usr/share/themes/ZorinBlue-Dark/gnome-shell/gnome-shell-theme.gresource
workdir=${HOME}/shell-theme
for r in `gresource list $gst`; do
r=${r#\/org\/gnome\/shell/}
if [ ! -d $workdir/${r%/*} ]; then
mkdir -p $workdir/${r%/*}
fi
done
for r in `gresource list $gst`; do
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
done
EOF
chmod +x extract.sh
./extract.sh
2. Choix d'une nouvelle image
Placez le fond d'écran souhaité (au format .png ou .jpg) à la racine du dossier "Images".
Collez ces trois lignes dans le terminal, en remplaçant "xxxxx" par le nom de votre fond d'écran dans la deuxième ligne. Si votre image est au format ".jpg", modifiez également les quatre extensions "png" des deux lignes 2 et 3.
La première ligne créera une copie de sauvegarde (.bak) du fond d'écran de Zorin "login-background.png".
Les deux dernières renommeront votre image et la copieront aux deux emplacements où elle doit se trouver.
Code : Tout sélectionner
sudo cp /usr/share/themes/ZorinBlue-Dark/gnome-shell/assets/login-background.png{,.bak" $(date +"(%Y-%m-%d à %R)")"}
sudo cp ~/Images/xxxxx.png ~/shell-theme/theme/assets/login-background.png
sudo cp ~/shell-theme/theme/assets/login-background.png /usr/share/themes/ZorinBlue-Dark/gnome-shell/assets/login-background.png
3. Création du fichier "gnome-shell/gnome-shell-theme.gresource.xml"
Ce fichier, nécessaire à la compilation, sera placé dans le répertoire "/usr/share/themes/ZorinBlue-Dark/gnome-shell".
Là encore, ceux qui ont choisi une image ".jpg" devront modifier l'extension dans la ligne "<file>assets/login-background.png</file>", à la fin du code :
Code : Tout sélectionner
echo "<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix=\"/org/gnome/shell/theme\">
<file>assets/activities-dark.svg</file>
<file>assets/activities.svg</file>
<file>assets/calendar-event-dark.svg</file>
<file>assets/calendar-event-today-dark.svg</file>
<file>assets/calendar-event-today.svg</file>
<file>assets/calendar-event.svg</file>
<file>assets/checkbox-dark.svg</file>
<file>assets/checkbox-focused-dark.svg</file>
<file>assets/checkbox-focused.svg</file>
<file>assets/checkbox-off-dark.svg</file>
<file>assets/checkbox-off-focused-dark.svg</file>
<file>assets/checkbox-off-focused.svg</file>
<file>assets/checkbox-off.svg</file>
<file>assets/checkbox.svg</file>
<file>assets/gnome-shell-start.svg</file>
<file>assets/texture-dark.svg</file>
<file>assets/texture.svg</file>
<file>assets/toggle-off-dark.svg</file>
<file>assets/toggle-off.svg</file>
<file>assets/toggle-on-dark.svg</file>
<file>assets/toggle-on.svg</file>
<file>assets/workspace-placeholder-dark.svg</file>
<file>assets/workspace-placeholder.svg</file>
<file>gnome-shell.css</file>
<file>pad-osd.css</file>
<file>process-working.svg</file>
<file>assets/login-background.png</file>
</gresource>
</gresources>" | sudo tee /usr/share/themes/ZorinBlue-Dark/gnome-shell/gnome-shell-theme.gresource.xml> /dev/null
4. Compilation du fichier "gnome-shell-theme-gresource"
Ces lignes créeront une copie de sauvegarde du thème de Zorin avant de le remplacer par le thème modifié :
Code : Tout sélectionner
sudo cp /usr/share/themes/ZorinBlue-Dark/gnome-shell/gnome-shell-theme.gresource{,.bak" $(date +"(%Y-%m-%d à %R)")"}
cd /usr/share/themes/ZorinBlue-Dark/gnome-shell
sudo glib-compile-resources /usr/share/themes/ZorinBlue-Dark/gnome-shell/gnome-shell-theme.gresource.xml
5. Redémarrage
Merci à Aravisian, le
Community Leader du
forum officiel, pour ses indications qui m'ont mis sur la voie et au
Wiki d'Arch Linux pour le script !