How I can change the GDM login screen wallpaper?

Solution 1:

Also worth mentioning with Ubuntu Artful 17.10, you can revert to the default Gnome 3 theme experience with:

sudo update-alternatives --config gdm3.css

And selecting the default gnome-shell.css option.

Source: https://didrocks.fr/2017/09/11/ubuntu-gnome-shell-in-artful-day-11/

Solution 2:

  1. Copy the image you want to use into the /usr/share/gnome-shell/theme folder

    sudo gedit /usr/share/gnome-shell/theme/gnome-shell.css
    
  2. Search for the following section

    #lockDialogGroup {
    background: #2e3436 url(noise-texture.png);
    background-repeat: no-repeat;
    
  3. Change the name of the image to your image

  4. Set background to repeat or no-repeat

  5. Save the file

Logout and your new background is there

Solution 3:

Follow the instructions on the Arch Linux Wiki:

https://wiki.archlinux.org/index.php/GDM#Log-in_screen_background_image

Here is what you need to do:

1. Extract the gnome-shell-theme bianry

Create and run the following script (/usr/local/bin/extractgst.sh)

#!/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. Edit gnome-shell-theme.gresource.xml and gnome-shell.css (section #lockDialogGroup)

This creates the directory $HOME/shell-theme/theme. Change directory to this location.

Then create the file gnome-shell-theme.gresource.xml in the directory above.

With the following content, while imagefilename must be replaced with the filename of your background image.

<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell/theme">

    <file>imagefilename</file>

    <file>calendar-arrow-left.svg</file>
    <file>calendar-arrow-right.svg</file>
    <file>calendar-today.svg</file>
    <file>checkbox-focused.svg</file>
    <file>checkbox-off-focused.svg</file>
    <file>checkbox-off.svg</file>
    <file>checkbox.svg</file>
    <file>close-window.svg</file>
    <file>close.svg</file>
    <file>corner-ripple-ltr.png</file>
    <file>corner-ripple-rtl.png</file>
    <file>dash-placeholder.svg</file>
    <file>filter-selected-ltr.svg</file>
    <file>filter-selected-rtl.svg</file>
    <file>gnome-shell.css</file>
    <file>gnome-shell-high-contrast.css</file>
    <file>logged-in-indicator.svg</file>
    <file>more-results.svg</file>
    <file>no-events.svg</file>
    <file>no-notifications.svg</file>
    <file>noise-texture.png</file>
    <file>page-indicator-active.svg</file>
    <file>page-indicator-inactive.svg</file>
    <file>page-indicator-checked.svg</file>
    <file>page-indicator-hover.svg</file>
    <file>process-working.svg</file>
    <file>running-indicator.svg</file>
    <file>source-button-border.svg</file>
    <file>summary-counter.svg</file>
    <file>toggle-off-us.svg</file>
    <file>toggle-off-intl.svg</file>
    <file>toggle-on-hc.svg</file>
    <file>toggle-on-us.svg</file>
    <file>toggle-on-intl.svg</file>
    <file>ws-switch-arrow-up.png</file>
    <file>ws-switch-arrow-down.png</file>
  </gresource>
</gresources>

Now, open the gnome-shell.css-file in the directory and change the #lockDialogGroup definition as follows:

#lockDialogGroup {
  background: #2e3436 url(imagefilename);
  background-size: [WIDTH]px [HEIGHT]px;
  background-repeat: no-repeat;
}

Set background-size to the resolution that GDM uses, this might not necessarily be the resolution of the image.

3. Then again compile it

Finally, compile the theme using the following command:

glib-compile-resources gnome-shell-theme.gresource.xml

4. Copy the compiled gnome-shell-theme file

And copy the resulting gnome-shell-theme.gresource-file to the /usr/share/gnome-shell directory.

5. Restart gdm or logout

Eventually restart gdm or just logout.

Finished!

Solution 4:

I created a script which does this with just a few clicks.

You can download it at https://github.com/thiggy01/ubuntu-change-login-background

But before you download, you will need to install yad package for graphical interface. In Ubuntu, you just install it with sudo apt install yad.

After that, you just run sudo ./ubuntu-change-login-background and a window show up for you to choose your favorite image with previews.

When you select your background image, you will see a popup message saying Login image successfully changed. After that, you simply type y or Y to restart your gnome-session and apply the change.


You can see the result below with the beautiful Flat-Remix Gnome theme.

My GDM Screen

It was never so simple.