(Testato su Ubuntu Gnome Shell 16.04+)
Due strade. Se vuoi sapere esattamente cosa stai facendo, segui la Soluzione n . 1 . Se vuoi che un singolo script faccia tutto per te, segui la Soluzione n. 2 (Tutto ciò che fa automatizza la Soluzione n. 1)
Soluzione 1
Informazioni sullo sfondo: Gnome Login Background non è un parametro che puoi cambiare direttamente (strano!). È presente nel file CSS di Gnome Shell che è presente nel file binario. Quindi, devi estrarre il file binario, modificarlo e sostituire il nuovo binario con il vecchio file.
Step1: Estrarre il file binario della shell Gnome
Esegui il seguente script extractgst.shper estrarre il tema della shell Gnome nella ~/shell-themedirectory
#!/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
Step2: modificarlo
- Copia l'immagine di sfondo in questa cartella
~/shell-theme/theme.
- Crea file
~/shell-theme/theme/gnome-shell-theme.gresource.xmlcon contenuto
- Sostituisci il nome file con il nome file dell'immagine di sfondo
Ora, apri il gnome-shell.cssfile nella directory e modifica la #lockDialogGroupdefinizione come segue:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
Impostare il nome file in modo che sia il nome dell'immagine di sfondo e la dimensione dello sfondo in base alla propria risoluzione.
Step3: Crea un nuovo binario per il tema della shell Gnome e sostituisci quello esistente
Nella directory dei temi, esegui
glib-compile-resources gnome-shell-theme.gresource.xml
Otterrai un file binario. Copia su
/usr/share/gnome-shell
Ora riavvia GDM usando
service gdm restart
Se non funziona o si blocca, riavvia il computer per vedere il tuo nuovo sfondo di accesso :))
Soluzione 2
Ok, come promesso, c'è un modo più semplice per automatizzare tutto questo. Basta salvare questo script come 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
Esegui lo script utilizzando
IMAGE=~/Bat.jpg sh login-background.sh
Ora riavvia gdm usando service gdm restarto riavvia il laptop per il tuo nuovo sfondo di accesso :))
Riferimenti:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036