Contenu | Rechercher | Menus

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.

GDM n'a pas été conçu d'une manière facilement configurable. Les manipulations qui vont suivre sont par conséquent risquées pour votre système. Faites attention à :
  • 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.
Les mises à jour de GNOME Shell vont systématiquement réinitialiser vos configurations : il faudra alors les refaire.

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).

Si vous installez le paquet gnome-session, il est possible de récupérer le thème par défaut "gris-bleu" de GDM en lançant la commande suivante en tant qu'administrateur :
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

Exemple de résultat obtenu
Exemple de résultat obtenu (GDM 3.26)

L'image

Renommez votre image noise-texture.png, puis en tant qu'administrateur copiez-la vers l'emplacement /usr/share/gnome-shell/theme/noise-texture.png (avec Wayland, vous pouvez accéder aux privilèges d'administration dans Nautilus en faisant précéder le chemin de "admin:").

Le fichier CSS

Puis en tant qu'administrateur, éditez le fichier /usr/share/gnome-shell/theme/ubuntu.css pour que la section #lockDialogGroup corresponde bien à :

#lockDialogGroup {
  background: #2c001e url(/usr/share/gnome-shell/theme/noise-texture.png);
  background-repeat: no-repeat;
}
Le "#2c001e" correspond à la couleur, en hexadécimal, qui s'affiche si l'image est mal cadrée ou transparente, sa valeur (violet) n'est pas très importante ici.

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;

Si votre GDM est gris-bleu

Exemple de résultat obtenu
Exemple de résultat obtenu (GDM 3.24)

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;
}
Le "#2e3436" correspond à la couleur, en hexadécimal, qui s'affiche si l'image est mal cadrée ou transparente, sa valeur (gris) n'est pas très importante ici.

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
Si la compilation renvoie une erreur à propos de 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.

Il est prudent de faire une copie de sauvegarde de son thème par défaut avant d'écraser le fichier d'origine :
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.

Voir aussi

2)
Ce comportement n'est pas présent avec la session "Ubuntu", mais il impacte les sessions "GNOME", notamment dans feu Ubuntu GNOME.


Le contenu de ce wiki est sous licence : CC BY-SA v3.0