How do I change the login screen in Ubuntu 16.04+?

You said:

The "custom" background shows for a split second and then fades to the Ubuntu one.

The greeter by default load the selected user background if it is available. A fade transition used to change between backgrounds of users including greeter default (for guest user). I think that the question should: How to stop lightdm greeter from loading the user background?

Be aware of two distinct greeters, default is unity-greeter. I noticed that some answer here in AU, don't mention this and mix up between them.

Using lightdm-gtk-greeter

GUI tool

  1. Install the settings tool

    sudo apt install lightdm-gtk-greeter-settings
    
  2. Run it

    pkexec lightdm-gtk-greeter-settings
    
  3. In Appearance tab: Select the image

  4. On same tab: Unckeck User user wallpaper if available
  5. Save & Close

    lightdm-gtk-greeter-settings

CLI tools

  1. Open lightdm greeter settings file

    sudo nano /etc/lightdm/lightdm-gtk-greeter.conf
    
  2. Change it this way

    [greeter]
    background = /usr/share/backgrounds/Spring_by_Peter_Apas.jpg
    user-background = false
    
  3. Ctrl+o to save it then Ctrl+x to exit.

Using unity-greeter (default)

Same answer by Serg, I have tested it in a fresh VBox Ubuntu 16.04.

  • Change the background of the login screen

    $ sudo nano /usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema.override
    
    [com.canonical.unity-greeter]
    draw-user-backgrounds=false
    background='/usr/share/backgrounds/Spring_by_Peter_Apas.jpg'
    
    $ sudo glib-compile-schemas /usr/share/glib-2.0/schemas
    $ sudo service lightdm restart
    
  • Some debug hints:

    1. Purge lightdm-gtk-greeter settings

      sudo apt purge lightdm-gtk-greeter lightdm-gtk-greeter-settings
      

      Or you may want just disabling it temporary

      sudo mv /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf.disabled
      

      To enable it back

      sudo mv /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf.disabled /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf
      

      Restarting the lightdm is needed

      sudo systemctl restart lightdm
      
    2. Reinstall unity-greeter to remove any change in /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml

      sudo apt install --reinstall unity-greeter
      
    3. Check if there any other dconf override file that take priority

      grep -rn -e "com.canonical.unity-greeter" -e "background=" -e "draw-user-backgrounds=" /usr/share/glib-2.0/schemas/
      

To change the login screen in Ubuntu 16.04 I used the following:

gksu gedit /usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema.override

Insert these lines:

[com.canonical.unity-greeter]
draw-user-backgrounds=false
background='/home/$USER/Pictures/1920x1080-TuxSuckingWindowsTetraWwallpaper.jpg'
# After changing use: sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Where:

  • $USER = your user ID.
  • Pictures = your wallpaper directory.
  • 1920x1080-TuxSuckingWindowsTetraWwallpaper.jpg = your image file name (can be .png format too).
  • # (comment) ... reminds you what to do after changing!

Save the file and exit gedit

Now compile the new login wallpaper with:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Last step is to reboot.

Many thanks and credit to Serg: (Change the background of the login screen) Note on my system this no only changes the initial login screen but also the lock screen login as well.


Point and click with Nautilus to set login screen wallpaper

I wrote a script where you can navigate to a directory / image, right click on it and set it as login screen / lock screen background using Nautilus (file manager now called "Files"): Nautilus can set desktop wallpaper. How can it set login and lock screen wallpaper?

Nautilus set-login-wallpaper Drop Down