(Getestet auf Ubuntu Gnome Shell 16.04+)
Zwei Wege. Wenn Sie genau wissen möchten, was Sie tun, folgen Sie Lösung 1 . Wenn Sie möchten, dass ein einzelnes Skript alles für Sie erledigt , befolgen Sie Lösung 2 (alles, was es tut, automatisiert Lösung 1).
Lösung 1
Hintergrundinfo: Gnome Login Hintergrund ist kein Parameter, den Sie direkt ändern können (seltsam!). Es ist in der Gnome Shell CSS-Datei vorhanden, die in der Binärdatei vorhanden ist. Daher müssen Sie die Binärdatei extrahieren, ändern und die neue Binärdatei durch die alte ersetzen.
Schritt 1: Extrahieren der Gnome-Shell-Binärdatei
Führen Sie das folgende Skript aus extractgst.sh
, um das Gnome-Shell-Design in das ~/shell-theme
Verzeichnis zu extrahieren
#!/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
Schritt 2: Ändern
- Kopieren Sie Ihr Hintergrundbild in diesen Ordner
~/shell-theme/theme
.
- Datei
~/shell-theme/theme/gnome-shell-theme.gresource.xml
mit Inhalt erstellen
- Ersetzen Sie den Dateinamen durch Ihren Dateinamen im Hintergrundbild
Öffnen Sie nun die gnome-shell.css
Datei im Verzeichnis und ändern Sie die #lockDialogGroup
Definition wie folgt:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
Stellen Sie den Dateinamen als Namen des Hintergrundbilds und die Hintergrundgröße Ihrer Auflösung ein.
Schritt 3: Erstellen Sie eine neue Gnome-Shell-Theme-Binärdatei und ersetzen Sie die vorhandene
Führen Sie im Themenverzeichnis aus
glib-compile-resources gnome-shell-theme.gresource.xml
Sie erhalten eine Binärdatei. Kopieren Sie es nach
/usr/share/gnome-shell
Starten Sie nun GDM mit neu
service gdm restart
Wenn es nicht funktioniert oder stecken bleibt, starten Sie Ihren Computer neu, um Ihr neues Login-Hintergrundbild zu sehen :))
Lösung 2
Ok, wie versprochen, gibt es eine einfachere Möglichkeit, dies alles zu automatisieren. Speichern Sie dieses Skript einfach als 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
Führen Sie das Skript mit aus
IMAGE=~/Bat.jpg sh login-background.sh
Starten Sie jetzt gdm neu service gdm restart
oder starten Sie den Laptop für Ihren neuen Login-Hintergrund neu :))
Referenzen:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036