(Тестовано на Ubuntu Gnome Shell 16.04+)
Два способи. Якщо ви хочете знати, що саме ви робите, дотримуйтесь рішення №1 . Якщо ви хочете, щоб один сценарій зробив все для вас, дотримуйтесь рішення №2 (усе це робить автоматизовано Рішення №1)
Рішення 1
Довідкова інформація: Фон для входу в Gnome - це не параметр, який ви можете безпосередньо змінити (дивно!). Він присутній у CSS-файлі Gnome Shell, який присутній у двійковому файлі. Отже, ви повинні витягнути бінарний файл, змінити його та замінити новий бінарний файл на старий файл.
Крок 1. Витяг двійкового файлу оболонки Gnome
Виконайте наступний сценарій, extractgst.sh
щоб витягнути тему оболонки Gnome в ~/shell-theme
каталог
#!/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
Крок 2: Змінення його
- Скопіюйте своє фонове зображення в цю папку
~/shell-theme/theme
.
- Створіть файл
~/shell-theme/theme/gnome-shell-theme.gresource.xml
із вмістом
- Замініть ім'я файлу на ім'я файлу фонового зображення
Тепер відкрийте gnome-shell.css
файл у каталозі та змініть #lockDialogGroup
визначення так:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
Встановіть ім'я файлу як ім'я фонового зображення та розмір фону за вашою роздільною здатністю.
Крок 3: Створіть нову тему оболонки Gnome, двійкову та замініть існуючу
Всередині тематичного каталогу запустіть
glib-compile-resources gnome-shell-theme.gresource.xml
Ви отримаєте двійковий файл. Скопіюйте його
/usr/share/gnome-shell
Тепер перезапустіть GDM за допомогою
service gdm restart
Якщо він не працює або застряг, перезавантажте комп’ютер, щоб побачити ваші нові шпалери для входу :))
Рішення 2
Гаразд, як і обіцяли, є більш простий спосіб автоматизувати все це. Просто збережіть цей скрипт як 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
Запустіть сценарій за допомогою
IMAGE=~/Bat.jpg sh login-background.sh
Тепер перезавантажте gdm, використовуючи service gdm restart
або перезавантажте ноутбук для нового фону входу :))
Список літератури:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036