(Testé sur Ubuntu Gnome Shell 16.04+)
Deux manières. Si vous voulez savoir exactement ce que vous faites, suivez la solution n ° 1 . Si vous voulez qu'un seul script fasse tout pour vous, suivez la solution n ° 2 (tout cela automatise la solution n ° 1)
Solution 1
Informations générales: Gnome Login Background n'est pas un paramètre que vous pouvez modifier directement (bizarre!). Il est présent dans le fichier CSS Gnome Shell qui est présent dans le fichier binaire. Par conséquent, vous devez extraire le fichier binaire, le modifier et remplacer le nouveau binaire par l'ancien fichier.
Étape 1: Extraire le fichier binaire du shell Gnome
Exécutez le script suivant extractgst.sh
pour extraire le thème du shell Gnome dans le ~/shell-theme
répertoire
#!/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
Étape 2: le modifier
- Copiez votre image d'arrière-plan dans ce dossier
~/shell-theme/theme
.
- Créer un fichier
~/shell-theme/theme/gnome-shell-theme.gresource.xml
avec du contenu
- Remplacez le nom de fichier par le nom de fichier de votre image d'arrière-plan
Maintenant, ouvrez le gnome-shell.css
fichier dans le répertoire et modifiez la #lockDialogGroup
définition comme suit:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
Définissez le nom de fichier comme étant le nom de l'image d'arrière-plan et la taille de l'arrière-plan à votre résolution.
Étape 3: Créer un nouveau binaire de thème de shell Gnome et remplacer l'existant
Dans le répertoire du thème, exécutez
glib-compile-resources gnome-shell-theme.gresource.xml
Vous obtiendrez un fichier binaire. Copiez-le dans
/usr/share/gnome-shell
Redémarrez maintenant GDM en utilisant
service gdm restart
Si cela ne fonctionne pas ou est bloqué, redémarrez votre ordinateur pour voir votre nouveau fond d'écran de connexion :))
Solution 2
D'accord, comme promis, il existe un moyen plus simple d'automatiser tout cela. Enregistrez simplement ce script sous login-background.sh
WORKDIR=~/tmp/gdm-login-background
GST=/usr/share/gnome-shell/gnome-shell-theme.gresource
GSTRES=$(basename $GST)
mkdir -p $WORKDIR
cd $WORKDIR
mkdir theme
for r in `gresource list $GST`; do
gresource extract $GST $r >$WORKDIR$(echo $r | sed -e 's/^\/org\/gnome\/shell\//\//g')
done
cd theme
cp "$IMAGE" ./
echo "
#lockDialogGroup {
background: #2e3436 url(resource:///org/gnome/shell/theme/$(basename $IMAGE));
background-size: cover;
background-repeat: no-repeat;
}" >>gnome-shell.css
echo '<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/theme">' >"${GSTRES}.xml"
for r in `ls *.*`; do
echo " <file>$r</file>" >>"${GSTRES}.xml"
done
echo ' </gresource>
</gresources>' >>"${GSTRES}.xml"
glib-compile-resources "${GSTRES}.xml"
sudo mv "/usr/share/gnome-shell/$GSTRES" "/usr/share/gnome-shell/${GSTRES}.backup"
sudo mv "$GSTRES" /usr/share/gnome-shell/
rm -r $WORKDIR
if [ "$CREATED_TMP" = "1" ]; then
rm -r ~/tmp
fi
Exécutez le script en utilisant
IMAGE=~/Bat.jpg sh login-background.sh
Redémarrez maintenant gdm en utilisant service gdm restart
ou redémarrez l'ordinateur portable pour votre nouveau fond de connexion :))
Références:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036