(Diuji pada Ubuntu Gnome Shell 16.04+)
Dua arah. Jika Anda ingin tahu apa yang sebenarnya Anda lakukan, ikuti Solusi # 1 . Jika Anda ingin satu skrip untuk melakukan semua untuk Anda, ikuti Solusi # 2 (Semua itu melakukannya secara otomatis Solusi # 1)
Solusi 1
Info Latar Belakang: Latar Belakang Masuk Gnome bukanlah parameter yang dapat Anda ubah secara langsung (aneh!). Ini hadir dalam file CSS Gnome Shell yang hadir dalam file biner. Karenanya, Anda harus mengekstrak file biner, memodifikasinya, dan mengganti biner baru dengan file lama.
Langkah1: Mengekstrak file biner shell Gnome
Jalankan skrip berikut extractgst.sh
untuk mengekstrak Gnome shell theme ke ~/shell-theme
direktori
#!/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: Memodifikasinya
- Salin gambar latar belakang Anda ke folder ini
~/shell-theme/theme
.
- Buat file
~/shell-theme/theme/gnome-shell-theme.gresource.xml
dengan konten
- Ganti nama file dengan nama file gambar latar belakang Anda
Sekarang, buka gnome-shell.css
file di direktori dan ubah #lockDialogGroup
definisi sebagai berikut:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
Setel nama file menjadi nama gambar latar belakang dan ukuran latar belakang untuk resolusi Anda.
Langkah 3: Buat biner tema Gnome shell baru dan ganti yang sudah ada
Di dalam direktori tema, jalankan
glib-compile-resources gnome-shell-theme.gresource.xml
Anda akan mendapatkan file biner. Salin ke
/usr/share/gnome-shell
Sekarang mulai ulang GDM menggunakan
service gdm restart
Jika tidak berhasil atau macet, nyalakan ulang komputer Anda untuk melihat wallpaper masuk baru Anda :))
Solusi 2
Oke, seperti yang dijanjikan, ada cara sederhana untuk mengotomatisasi semua ini. Cukup simpan skrip ini sebagai 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
Jalankan skrip menggunakan
IMAGE=~/Bat.jpg sh login-background.sh
Sekarang restart gdm menggunakan service gdm restart
atau restart laptop untuk latar belakang login baru Anda :))
Referensi:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036