Changing GDM appearance Fedora 39 Silverblue

Hi Everyone,
Thank you to everyone who has helped with the previous request.

I have bitten the bullet and decided to stick with GNOME desktop. What had put me off Gnome was the standard GDM that comes standard with the installation.

Can you advise whether there is a configuration application or similar which allows you to change the GDM appearance please.

Thank you in advance,
Michael

2 Likes

By GDM, you mean the login screen? What aspect of the login screen do you want to change?

Also, I presume you mean Silverblue.

That’s correct regarding the login screen. I just want to see what options are available, as what you can find in SDDM in KDE Plasma.

I downloaded and installed the latest Silverblue on the laptop, which if all looks good, I want to install on the other computers.

I want to find something bulletproof so I don’t have to go distro-hopping anymore

2 Likes

GNOME and KDE have rather different philosophies about configurability. The GDM greeter session is not officially customizable in any way.

It is possible to poke at the greeter session’s configuration, and there’s even a third-party GUI on Flathub, but I can’t recommend using it. A lot of its features require editing the GNOME Shell stylesheet, which isn’t possible on Silverblue because it’s in /usr (probably for the best). Many of the remainder would require you to layer systemd-container (for machinectl).

1 Like

Ok no problems. Thank you for explaining.

The login screen isn’t the be all and end all. As long as I have a stable Distro.

Fingers crossed that Silverblue will do everything we need without any glitches.

Thank you again for your time and help

1 Like

Then the best way is to stick with defaults

I’m interested in this feature too. Seems like the only option for now is to configure a UBlue image.

I would very much like to change Adwaita cursors to Breeze ones.

Doesn’t GDM use some additional config folder somewhere? How does GNOME 45 handle the GDM User?

There is a guide on Reddit that explains how to configure GDM through terminal using machinectl.

1 Like

For Silverblue, you would have to temporary make your /usr directory writable with:

  • sudo rpm-ostree usroverlay

Modify the GDM code to your liking. Build the GDM source in an RPM, then overlayer it on to the OS.

1 Like

Thank you. Are there any specific guides for building such RPMs, or is it like building common RPMs?

Are you me?

  • breeze cursors
  • GDM with an actual background
  • blur my shell

Those are a must.

Check out sddm2rpm by lunarequest, she build a tool in Rust to build such an sddm RPM. Should be possible for GDM too

1 Like

Definitely. I don’t understand why GNOME doesn’t use those by default, they match the rounded corners aesthetic perfectly.

1 Like

There is an app to change GDM style! Its on Flathub

Unfortunately, it doesn’t work in Silverblue due to immutability of the directory.

1 Like

Oh, so its GDM and SDDM…

Then you will have to use one of the SDDM ways

gnome-shell-theme.gresource


Before, to theme the GDM, you would have to extract the resources:

  • /usr/share/gnome-shell/gnome-shell-theme.gresource

Edit, recompile the gresource, reboot and hope for the best. Lol. Nowadays you should test your edits in a VM, before you mod your current OS.

On Silverblue, /usr is readonly, so you would have to overlayer an RPM package to edit files on /usr.

Well, that’s the bottleneck. I don’t know how and didn’t find any short, structured and comprehensive tutorials yet.

How do /etc/gdm/custom.conf and /etc/dconf/db/gdm.d/10-cursor-settings work then? I tried adding to those files the following config lines:

[org/gnome/desktop/interface]
cursor-theme='breeze_cursors'

But it didn’t work. Nothing changed between reboots. The theme is installed.

1 Like

GDM background


gnome-shell-theme.gresource is in gnome-shell bundle.

Silverblue:

grep gnome-shell-theme.gresource <(rpm -ql gnome-shell)

/usr/share/gnome-shell/gnome-shell-theme.gresource

rpm -q gnome-shell

gnome-shell-45.3-1.fc39.x86_64

You would have to overlayer the whole gnome-shell package

I modify mines like this

  1. List settings

    sudo -u gdm gsettings list-recursively org.gnome.login-screen

    org.gnome.login-screen allowed-failures 3
    org.gnome.login-screen banner-message-enable false
    org.gnome.login-screen banner-message-text ''
    org.gnome.login-screen disable-restart-buttons false
    org.gnome.login-screen disable-user-list false
    org.gnome.login-screen enable-fingerprint-authentication true
    org.gnome.login-screen enable-password-authentication true
    org.gnome.login-screen enable-smartcard-authentication false
    org.gnome.login-screen fallback-logo ''
    org.gnome.login-screen logo '/usr/share/pixmaps/fedora-gdm-logo.png'
    

    Your only allowed to change these settings.

  2. Apply the settings

    sudo -u gdm gsettings set org.gnome.login-screen logo \
        '~/Downloads/atomic-logo.png'
    

Switch your user to test

1 Like

Thank you for the guide.

Is it possible to make my own .rpm with a modified gnome-shell-theme.gresource file only and overlay it? Will it be conflict-free?

If GDM has a directory to store multiple variants then yes. Overwriting just an existing file is probably not possible. Look at sddm2rpm it is pretty simple code and you can learn some rust. It may even be overcomplex as it can convert all archive formats.