(Testado no Ubuntu Gnome Shell 16.04 ou superior)
Dois caminhos. Se você quiser saber exatamente o que está fazendo, siga a Solução 1 . Se você deseja que um único script faça tudo por você, siga a Solução 2 (Tudo isso automatiza a Solução 1)
Solução 1
Informações de plano de fundo: O plano de fundo de login do Gnome não é um parâmetro que você pode alterar diretamente (estranho!). Está presente no arquivo CSS do Gnome Shell, que está presente no arquivo binário. Portanto, você precisa extrair o arquivo binário, modificá-lo e substituir o novo binário pelo arquivo antigo.
Etapa 1: Extraindo o arquivo binário do shell do Gnome
Execute o seguinte script extractgst.sh
para extrair o tema do shell do Gnome para o ~/shell-theme
diretório
#!/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
Etapa 2: Modificando
- Copie sua imagem de plano de fundo para esta pasta
~/shell-theme/theme
.
- Criar arquivo
~/shell-theme/theme/gnome-shell-theme.gresource.xml
com conteúdo
- Substitua o nome do arquivo pelo nome da imagem de fundo
Agora, abra o gnome-shell.css
arquivo no diretório e altere a #lockDialogGroup
definição da seguinte maneira:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
Defina o nome do arquivo como o nome da imagem de plano de fundo e o tamanho do plano de fundo para sua resolução.
Etapa 3: Crie um novo binário do tema do shell do Gnome e substitua os existentes
Dentro do diretório do tema, execute
glib-compile-resources gnome-shell-theme.gresource.xml
Você receberá um arquivo binário. Copie para
/usr/share/gnome-shell
Agora reinicie o GDM usando
service gdm restart
Se não funcionar ou ficar travado, reinicie o computador para ver seu novo papel de parede de login :))
Solução 2
Ok, como prometido, existe uma maneira mais simples de automatizar tudo isso. Simplesmente salve este script como 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
Execute o script usando
IMAGE=~/Bat.jpg sh login-background.sh
Agora reinicie o gdm usando service gdm restart
ou reinicie o laptop para o seu novo plano de fundo de login :))
Referências:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036