How I can change the GDM 3.6 Wallpaper? I dont mean the desktop background, but the Wallpaper at the login (GDM 3.6).


Thank you for your answer,

I know exactly what you mean. Recently I had installed LightDm, but today I uninstalled it, and replaced it with GDM. Ubuntu-Tweak dont show the login screen appearance button. I think it's because LightDM is currently not installed. Does anyone know where is the folder where the images are stored?


10 Answers 10


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/

Other Ubuntu and Debian Versions

The alternatives system in Debian and Ubuntu relies on "link group" names to configure software or files with similar functionality. A generic name in the /etc/alternatives/ filesystem is shared by all files included within different software packages providing interchangeable functionality.

Note that this "link group" name may be different, even for the same piece of software, depending on which version of Ubuntu or Debian you are working on. To see the available link groups on your system, run:

update-alternatives --get-selections

For this particular example with gdm3, you might want to filter this to only the gdm-related names:

update-alternatives --get-selections`  | grep -i gdm

# Returns the following on Ubuntu 20.04 LTS
# gdm3-theme.gresource           auto     /usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource

To configure this link group name, just pass it along to update-alternatives --config $LINK_GROUP_NAME_HERE (e.g.):

sudo update-alternatives --config gdm3-theme.gresource
  • sudo update-alternatives --auto gdm3.css gives me update-alternatives: error: no alternatives for gdm3.css
    – Bram
    Apr 27 at 15:54
  • @Bram: The "link group" name may be different, depending on which version of Ubuntu you are working on. To see the available gdm-related link groups on your system, run: update-alternatives --get-selections | grep -i gdm
    – TrinitronX
    May 8 at 22:58
  • @Bram: Updated this answer with more generic version-agnostic instructions for finding the appropriate "link group" name.
    – TrinitronX
    May 8 at 23:09
  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


Follow the instructions on the Arch Linux Wiki:


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)


if [ ! -d ${workdir}/theme ]; then
  mkdir -p ${workdir}/theme

for r in `gresource list $gst`; do
        gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}

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"?>
  <gresource prefix="/org/gnome/shell/theme">



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.



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.

  • Worked like a charm on 20.04, read the links on the download page!
    – Zbunjeni
    Apr 23, 2020 at 1:46
  • 1
    good job, it works perfectly! For Ubuntu 20.04 and pop OS 20.04 users: download is here and the procedure is: 1) Install dependency: sudo apt install libglib2.0-dev-bin 2) Download the script: wget github.com/thiggy01/change-gdm-background/raw/master/change-gdm-background 3) Make it executable chmod +x /PATH/TO/change-gdm-background 4) Set bg image with sudo ./change-gdm-background /PATH/TO/IMAGE or set a bg color with sudo ./change-gdm-background \#yourhexcode. Dec 11, 2020 at 16:47
  • This was the only solution I got to work on Pop_OS! Hirsuite Hippo.
    – User12345
    Jul 25, 2021 at 22:53
sudo machinectl shell gdm@ `which gsettings` \
  set com.ubuntu.login-screen background-picture-uri /path/to/greeter.jpg

You will need to match the screen size. i.e if you have 2 2k screens the image needs to be 5120x1440.

You can also set color, which will also fill around image if it's not covering the whole screen.

sudo machinectl shell gdm@ `which gsettings` \
  set com.ubuntu.login-screen background-color '#9c0031'

There are 2 other keys background-repeat which I assume takes the corresponding css values, haven't checked. And background-size that takes:

  • auto - original image size
  • cover - scale to cover and crop extra
  • contain - stretch to fit
  • 1
    This is the perfect answer. Does not need any other dependencies or installs. Thank you @Tamir
    – kopos
    Oct 30, 2022 at 14:15

You will need Ubuntu Tweak, if you do not have it already you can install it by running the following codes in the terminal.

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

Then launch Ubuntu Tweak and search for "login" in the search bar then click on "login settings" then press the unlock button in the top right by the search bar. Then you can edit your login screen as you choose by changing the background or Icon theme ect.

enter image description here

This should work for both GDM login as well as LightDM.

Source: http://www.techdrivein.com/2011/01/how-to-change-gdmlogin-screen.html


How to change Gnome 3 lock screen background:

  • GDM Background Grey is loacated in /usr/share/gnome-shell/theme/noise-texture.png
    • Rename noise-texture.png as noise-texture.png.bak (as root)
    • Copy a background of your choice in the above folder and rename it as noise-texture.png (as root)
    • Restart gnome-shell: Alt+F2, type R and hit Enter.

(Every update to gnome-shell will replace your noise-texture.png with the original, so you have keep repeating the above after every gnome-shell upgrade)



I just went exploring. Check out /etc/gdm/greeter.gsettings

In the terminal, you can get READ access to this file by typing:

nano /etc/gdm/greeter.gsettings

You'll see in that file a reference to: /usr/share/themes/Adwaita/backgrounds which appears to hold the stripe backgrounds you're looking for. Good luck!

Remember, you'll need to elevate using sudo to write to this directory. Or if you would rather use the graphical interface, you can type this in the terminal to open up gedit as an elevated user, but be careful not to wreck your system:

gksudo gedit /etc/gdm/greeter.gsettings

I use gdm-tools:

sudo apt install libglib2.0-dev dconf-cli
git clone --depth=1 --single-branch https://github.com/realmazharhussain/gdm-tools.git
cd gdm-tools
set-gdm-theme -s default ~/Pictures/gdm_wallpaper.png

Keep Calm and Use an App:

Login Manager Settings: https://flathub.org/apps/io.github.realmazharhussain.GdmSettings

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .