Ceci est une ancienne révision du document !
Personnaliser l'arrière-plan de GDM
GDM est le gestionnaire de sessions de l'environnement GNOME et son bureau GNOME Shell.
Son arrière-plan par défaut est (selon les versions) soit gris avec une légère texture, soit violet uniforme. Ce n'est pas forcément très chaleureux, on va donc voir comment modifier cet arrière-plan.
- Avoir sauvegardé une version originale des données que vous modifiez ;
- Avoir la version concernée par la partie que vous appliquez ;
- Ne pas faire la moindre faute de frappe.
Cette manipulation n'aura pas un rendu adapté sur les configurations avec plusieurs écrans.
Pré-requis
Ce tutoriel a été écrit et testé à partir d'installations d'Ubuntu 17.04 et 17.10 (GNOME Shell 3.24 et 3.26), les versions plus anciennes pourraient rencontrer des problèmes.
Les droits d'administrations seront nécessaires afin d'utiliser la commande sudo.
L'image à mettre en arrière-plan doit être au format .png
(et si possible ne pas contenir de transparence). L'image doit être assez sombre (au moins en son centre) pour que les informations affichées par dessus soient lisibles.
Remarques à propos du thème utilisé
À partir d'Ubuntu 17.10, le thème de GDM est modifié par les développeurs d'Ubuntu afin d'assurer une cohérence visuelle avec la session "Ubuntu" par défaut1).
update-alternatives --config gdm3.css
Choisissez alors gnome-shell.css
en tapant le numéro adéquat.
En fonction de si vous utilisez (ou non) un thème GDM "violet-orange", les manipulations vont différer :
Si votre GDM est violet-orange
L'image
Par défaut, l'image utilisée par gdm est l'image noise-texture.png du thème principal (par exemple /usr/share/gnome-shell/theme/Yaru/). Il est possible de la remplacer par une autre, renommée (en mode administrateur. Avec Wayland, vous pouvez accéder aux privilèges d'administration dans Nautilus en faisant précéder le chemin de "admin:") noise-texture.png et placée dans le répertoire du thème d'origine mais il est tout à fait possible de pointer vers une autre image présente sur le disque.
Dans l'hypothèse où vous décidez de ne pas modifier noise-texture.png, passez à l'étape suivante une fois repérée l'image choisie (au format png comme rappelé ci-dessus) et son chemin.
Le fichier CSS
Pour personnaliser l'affichage, vous devez intervenir en en tant qu'administrateur dans le fichier css
de gdm. Suivant les versions d'Ubuntu, il peut s'agir de :
Version | Nom du fichier | Remarque |
---|---|---|
17.10 | /usr/share/gnome-shell/theme/ubuntu.css | |
18.04 | /etc/alternatives/gdm3.css | |
18.10 | /etc/alternatives/gdm3.css | |
19.04 | /etc/alternatives/gdm3.css | Ce fichier est également accessible par un lien symbolique dans le répertoire /usr/share/gnome-shell/theme/ voire /usr/share/gnome-shell/theme/Yaru/ |
19.04 | /usr/share/gnome-shell/theme/gnome-shell.css | Selon les versions et les configurations, il faudra soit modifier ce fichier, soit le fichier gdm3.css. Testez les deux options. |
Avant toute intervention, réalisez une copie de secours du fichier css
d'origine. En cas de problème, vous pourrez ainsi rétablir le système dans son état d'origine :
usr@pc:~$ sudo cp /etc/alternatives/gdm3.css /etc/alternatives/gdm3.css.anc
Vous devez éditer (avec un éditeur de texte, vim pour les amateurs de la ligne de commande mais gedit fait aussi bien les choses en mode graphique avec sudo -H gedit /etc/alternatives/gdm3.css
) le fichier css pour faire correspondre (en remplaçant /usr/share/backgrounds/Aardvark_Wallpaper_Grey_4096x2304.png
par le chemin absolu de l'image que vous avez choisie, ou par /usr/share/gnome-shell/theme/noise-texture.png
si vous avez choisi de remplacer ce fichier par le votre) la section #lockDialogGroup
à :
#lockDialogGroup { background: #2c001e url(file:///usr/share/backgrounds/Aardvark_Wallpaper_Grey_4096x2304.png); background-repeat: no-repeat; background-size: cover; background-position: center; }
url(resource:
par url(file:
.
Si l'option "cover"
ne vous convient pas (image trop déformée),vous devrez sans doute spécifier la résolution de GDM - ce n'est pas forcément celle de l'image - avec le paramètre ci-dessous à intégrer dans la section #lockDialogGroup
(bien sûr, [WIDTH] et [HEIGHT] sont à remplacer par vos valeurs) :
background-size: [WIDTH]px [HEIGHT]px;
Un script pour automatiser la modification de l'écran de connexion
Un ubuntero belge propose sur son site en anglais un script permettant d'automatiser ces modifications en mode graphique. Le script utilise le paquet zenity pour fonctionner.
################################################################ # Script_Name : Modification-fond-d-ecran-Gdm-1.0.sh # Description : Personnalisation du fond d'écran de la fenêtre de connexion de GDM sur Ubuntu 19.04 # Date : December 2017 # écrit par : Griffon (traduit en français et un peu revu lors de sa publication sur le site ubuntu-fr.org) # Web Site :http://www.c-nergy.be - http://www.c-nergy.be/blog # Version : 1.0 # Remarque importante : Ce script est mis à disposition sans aucune garantie, à utiliser à vos risques et périls.... ################################################################## #---------------------------------------------------# # Étape 0 - Credits .... #---------------------------------------------------# /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" /bin/echo -e "\e[1;32mModification-fond-d-ecran-Gdm-1.0.sh\e[0m" /bin/echo -e "\e[1;32mwritten by Griffon - December 2017 - Version 1.0 - Modification-fond-d-ecran-Gdm-1.0.sh\e[0m" /bin/echo -e "\e[1;32mTraduit en français et un peu revu lors de sa publication sur le site ubuntu-fr.org\e[0m" /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" echo #---------------------------------------------------# # Étape 1 - Vérification de la présence du paquet zenity #---------------------------------------------------# if [[ $(dpkg -s zenity 2>/dev/null | grep Status | cut -d' ' -f4) != "installed" ]]; zenity --error --title="Installez le paquet zenity" --text="Le paquet <b>zenity</b> est nécessaire au bon fonctionnement de ce script.\n\nInstallez le paquet par <b>sudo apt-get install zenity</b>\n\nArrêt du traitement" --width=400 exit 10; fi #---------------------------------------------------# # Étape 2 - Choix de l'image retenue.... #---------------------------------------------------# echo /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" /bin/echo -e "\e[1;32mChoix du fond d'écran...En cours\e[0m" /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" echo pix=$(zenity --file-selection --title="Choisissez le nouveau fond d'écran de la fenêtre de connexion") # get just name of the file fname=$(basename $pix) repDest="/usr/share/background/" if [[ -e "$repDest$fname" ]]; then # Si une image du même nom existe déjà dans le répertoire de destination NvNom=$(zenity --entry --title="Le fichier image existe déjà" --text="Une image portant le nom $fname existe déjà dans le répertoire $repDest.\n Saisissez un nouveau nom :"); while [[ "${NvNom: -3}" == "${fname: -3}" ]]; do NomPropose="${NvNom:0: -3}${fname: -3}"; zenity --question --text="Saisie incorrecte. Acceptez vous le nom suivant : \n<b>$NomPropose</b>" --title="Erreur de suffixe. Modification du nom du fichier image" --width=400 if [[ "$?" != "0" ]]; then exit 20 ; else NvNom="$NomPropose" fi done fname="$NvNom" fi echo $fname #---------------------------------------------------# # Étape 3 - Copie du fichier image dans le répertoire /usr/share/background #---------------------------------------------------# echo /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" /bin/echo -e "\e[1;32mCopie du fichier dans le répertoire /usr/share/background....En cours\e[0m" /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" echo sudo cp "$pix" "$repDest$fname" #---------------------------------------------------# # Étape 4 - Mise à jour du fichier css #---------------------------------------------------# echo /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" /bin/echo -e "\e[1;32mMise à jour du fichier gdm3.css....En cours\e[0m" /bin/echo -e "\e[1;32m!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\e[0m" echo if [[ ! -e "/etc/alternatives/gdm3.css.anc" ]]; then # Conservation de toutes les versions du fichier modifié sudo cp /etc/alternatives/gdm3.css /etc/alternatives/gdm3.css.anc else i=0 while [[ ! -e "/etc/alternatives/gdm3.css.anc$i" ]]; do let "i+=1" done fi sudo sed -i "/#lockDialogGroup/a background: #2c001e url(file:///usr/share/backgrounds/${fname});\nbackground-repeat: no-repeat;\nbackground-size: cover;\nbackground-position: center;\n}\nGriffonToDel" /etc/alternatives/gdm3.css sudo sed -i '/GriffonToDel/,+2d' /etc/alternatives/gdm3.css #---------------------------------------------------# # Étape 5 - Inviter l'utilisateur à réinitialiser le système #---------------------------------------------------# echo echo "Vous devez redémarrer votre appareil pour voir les effets de la mise à jour....:-)" echo
Une copie de sauvegarde du fichier sauvegardé est réalisée.
Si votre GDM est gris-bleu
Depuis la version GNOME 3.16, les thèmes de GNOME Shell (et donc de GDM) sont par défaut stockés dans des fichiers binaires (au format gresource)2). On va extraire le thème de ce fichier, le modifier, puis le recompiler.
Extraire le thème utilisé
Pour extraire le thème par défaut, vous pouvez utiliser le script extractgst.sh
suivant :
#!/bin/sh workdir=${HOME}/shell-theme if [ ! -d ${workdir}/theme ]; then mkdir -p ${workdir}/theme fi gst=/usr/share/gnome-shell/gnome-shell-theme.gresource for r in `gresource list $gst`; do gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/} done
Exécutez ce script.
Modifier le thème
Après avoir exécuté le script, ouvrez le répertoire shell-theme
créé dans votre dossier personnel. Vous devriez y trouver, dans un dossier theme
, les fichiers du thème qui ont été extraits.
L'image
Renommer votre image de fond d'écran en noise-texture.png
, puis copiez-la dans le dossier shell-theme
(écrasez l'ancienne version).
Le fichier XML
Ensuite vous devez créer, toujours dans ce répertoire, le fichier gnome-shell-theme.gresource.xml
avec le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?> <gresources> <gresource prefix="/org/gnome/shell/theme"> <file>calendar-arrow-left.svg</file> <file>calendar-arrow-right.svg</file> <file>calendar-today.svg</file> <file>checkbox-focused.svg</file> <file>checkbox-off-focused.svg</file> <file>checkbox-off.svg</file> <file>checkbox.svg</file> <file>close-window.svg</file> <file>close.svg</file> <file>corner-ripple-ltr.png</file> <file>corner-ripple-rtl.png</file> <file>dash-placeholder.svg</file> <file>filter-selected-ltr.svg</file> <file>filter-selected-rtl.svg</file> <file>gnome-shell.css</file> <file>gnome-shell-high-contrast.css</file> <file>logged-in-indicator.svg</file> <file>more-results.svg</file> <file>no-events.svg</file> <file>no-notifications.svg</file> <file>noise-texture.png</file> <file>page-indicator-active.svg</file> <file>page-indicator-inactive.svg</file> <file>page-indicator-checked.svg</file> <file>page-indicator-hover.svg</file> <file>process-working.svg</file> <file>running-indicator.svg</file> <file>source-button-border.svg</file> <file>summary-counter.svg</file> <file>toggle-off-us.svg</file> <file>toggle-off-intl.svg</file> <file>toggle-on-hc.svg</file> <file>toggle-on-us.svg</file> <file>toggle-on-intl.svg</file> <file>ws-switch-arrow-up.png</file> <file>ws-switch-arrow-down.png</file> </gresource> </gresources>
Le fichier CSS
Ouvrez le fichier gnome-shell.css
pour vérifier que la section #lockDialogGroup
correspond bien à :
#lockDialogGroup { background: #2e3436 url(resource:///org/gnome/shell/theme/noise-texture.png); background-repeat: no-repeat; }
Vous devrez sans doute spécifier la résolution de GDM - ce n'est pas forcément celle de l'image - avec le paramètre ci-dessous à ajouter à la section #lockDialogGroup
(bien sûr, [WIDTH] et [HEIGHT] sont à remplacer par vos valeurs) :
background-size: [WIDTH]px [HEIGHT]px;
Compiler
Enfin, ouvrez un terminal pour recompiler votre thème avec les commandes suivantes :
cd ~/shell-theme/theme/ glib-compile-resources gnome-shell-theme.gresource.xml
more-results.svg
, retirez la ligne suivante du fichier XML précédemment créé :
<file>more-results.svg</file>
Puis recompilez.
Mettre le thème en place
Il ne vous reste plus qu'à déplacer vers /usr/share/gnome-shell
le fichier gnome-shell-theme.gresource
qui vient de se créer.
cp /usr/share/gnome-shell/gnome-shell-theme.gresource ~/shell-theme/gnome-shell-theme.gresource.old
sudo mv ~/shell-theme/theme/gnome-shell-theme.gresource /usr/share/gnome-shell
Redémarrer
Les modifications prendront effet au redémarrage de l'ordinateur.