
The world of customization and configuration in Linux environments has always been one of the main attractions for enthusiasts and users looking to adapt their experience to the maximum. One of the great pieces within this world is the GDM (GNOME Display Manager), popularly known as the screen manager or login on systems running GNOME. It's not only the gateway to your desktop, but it's also become a testing ground for creativity and functionality. And with GDM Settings, we can make all kinds of changes to it.
Today, Customize the login environment in GNOME It's much more accessible thanks to tools like GDM Settings, official utilities, and other customization options through editing configuration files and using scripts. Although the process may seem reserved for advanced users, the wealth of resources, tutorials, and graphical tools have made it accessible to anyone willing to invest a few minutes in learning.
What is GDM and why is it so important for your Linux?
GDM, known as GNOME Display Manager, It is the graphical interface that manages X or Wayland servers and the login process on GNOME-based systems. It allows visual logins, managing users, passwords, and user sessions in a flexible and secure way. This system not only adds a layer of convenience but also facilitates integration with other system technologies (such as user management, session control, and integration with other daemons).
GDM is fully customizable on a technical level, meaning you can modify its appearance, add scripts at key times (startup, post-login, etc.), set up automatic sessions, and much more. Its configuration is especially relevant on desktops such as Ubuntu, Fedora, Debian and Arch Linux, where is the default display manager.
Graphical tools for configuring GNOME login
In recent years there have emerged Graphical applications that make it easy to customize the GNOME start screenOne of the most popular and comprehensive is GDM Settings, a tool that makes it possible to modify a multitude of parameters visually and securely, without having to manually edit system files.
What can you modify with GDM Settings?
- Wallpaper or login background color (may not work in some cases, which is why we will write a dedicated article soon).
- Visual theme, icons, and cursor used on the home screen.
- Font type, font size, and scaling factor to improve accessibility and appearance.
- Colors and style of the top bar, allowing for full customization.
- Mouse and touchpad options (enable/disable, advanced settings).
- Show/hide user list, logo, and other accessibility options.
- Change or activate Night Light mode.
- Adjust power behaviors, sound, and other advanced features.
All this with just a click, and with the security of being able to easily undo changes in case of problems. In addition, the application maintains a modern aesthetic thanks to its development in Python and use of the libadwaita library., making it visually consistent with current GNOME desktops.
GDM Settings Installation Options
Installing GDM Settings varies depending on your GNU/Linux distribution and GNOME version. There are several ways to install the tool, each with its own unique features:
Flatpak and AppImage packages
Flatpak It is a popular choice as it offers universal installation and easy updating. You can find GDM Settings in flathub, although not all features are available through Flatpak sandboxing. Features that require access to critical system paths may not work in this mode.
Version AppImage It's ideal for bypassing sandbox restrictions and gaining full access to the system files required for deep customizations. Launching the AppImage often requires installing support for this format (more information).
Native installation from repositories or PPA
- En Ubuntu 24.04 and higher, is available in the official repositories, although these are often older versions that may not support the latest features of the most recent GNOME.
- Through Unofficial PPA, such as ubuntuhandbook1 — sudo add-apt-repository ppa:ubuntuhandbook1/gdm-settings && sudo apt update && sudo apt install gdm-settings –, you can install updated versions of GDM Settings, ensuring compatibility with the latest versions of Ubuntu and GNOME.
- En rolling release distributions Like Arch Linux, it can be easily installed from the AUR with any helper like yay or paru, with stable, beta, and git releases.
- There are also packages for other distributions like Alpine or through overlays in Gentoo.
Manual installation from sources
Advanced users can clone the project's GitHub repository and compile it manually, making sure to have all the build and runtime dependencies installed (meson, ninja, libadwaita, GTK4…).
Important precautions when using customization tools
Although the flexibility of GDM Settings is very high, Changing the display manager settings may cause boot instability if the changes made are not compatible with the version of GNOME used or if there are errors in the integration of custom themes.
“Oh no! Something has gone wrong” errors have been reported after changing colors or wallpapers from GDM Settings.Therefore, it's always a good idea to back up your system, take note of any modified files, and read the documentation before applying changes.
Advanced configuration and manual settings for GNOME login
For those looking for a more granular control or want to adjust aspects not covered by the graphical tools, GNOME and GDM offer numerous possibilities through editing configuration files, using scripts and tweaking dconf/gsettings databases.
Change wallpaper and themes by editing resources
Modifying the login background image or color requires extracting, editing, and recompiling theme resources.:
- Extracts the current GNOME Shell theme to a directory under your user name using special scripts.
- Copy the desired background image into the created directory.
- edit the file gnome-shell-theme.gresource.xml to include your new image (or define a hexadecimal color).
- Modify the CSS files (gnome-shell-light.css y gnome-shell-dark.css), inserting the background image path in the section #lockDialogGroup.
- Compile the resource file with the utility glib-compile-resources and replaces the original .gresource file in / usr / share / gnome-shell (always make a backup copy of the original).
- Restart GDM or log out to see the changes.
Please note that after system updates these changes may be lost. and you will have to repeat the process.
Settings via dconf and gsettings
GDM uses its own dconf database independent of the normal user's. To modify settings such as logo, cursor, icons, text size or accessibility options you must:
- Create configuration files (keyfiles) On /etc/dconf/db/gdm.d/ with the desired parameters.
- Update the database by running dconf update as root.
- Alternatively, log in as the GDM user (with machinectl shell gdm@ /bin/bash or similar) and use dbus-launch gsettings set to change configuration values on the fly.
Examples of quick settings with dconf/gsettings:
- Custom logo:logo='/path/to/logo.png'
- Change cursor theme:cursor-theme='theme-name'
- Assign icon theme:icon-theme='theme-name'
- Text scaling:text-scaling-factor='1.25'
- Mute login sounds:event-sounds=false
- Configure power button behavior:power-button-action='nothing|suspend|hibernate'
- Enable tap-to-click on the touchpad:tap-to-click=true
Setting up language and keyboard layout in GDM
To change the login language, just install gnome-control-center, open it and, from the section of Region and language, select the option login screen and adjust the parameters according to your needs. If you only want to modify the keyboard layout during login, be sure to set the variable XKBLAYOUT en /etc/vconsole.conf or execute localectl –no-convert set-x11-keymap with your preferred keyboard map.
Automation and scripting in GDM configuration
GDM supports custom scripts in different phases of the login process:
- Heat: It runs when the graphical server starts, before the graphical login appears. Ideal for initializing services or scheduling tasks prior to user access.
- PostLogin: It runs immediately after user authentication, but before the login. Very useful for preparations in the user environment.
- PreSession: It is activated after the user session is initialized, allowing final actions to be executed before opening the desktop.
- PostSession: It runs when the user logs out. It is recommended to avoid interacting with the X server at this stage, as it will already be stopped.
These scripts can be customized both globally and on a specific screen and They always run with root privileges, so it is essential to properly validate its operation so as not to block the login process.
Advanced login customization and management: useful examples
Automatic login without password
Configure automatic login by editing /etc/gdm/custom.conf:
- For direct access with a specific user: AutomaticLogin=username
AutomaticLoginEnable=True - If you prefer automatic access with delay:
TimedLoginEnable=true
TimedLogin=username
TimedLoginDelay=5 - You can define the default session in /var/lib/AccountsService/users/username, setting for example XSession=gnome-xorg.
For passwordless login, add your user to the group nopasswdlogin and adjust /etc/pam.d/gdm-password to include the line auth sufficient pam_succeed_if.so user ingroup nopasswdlogin at first.
Disable or customize biometric authentication
If you don't want to use fingerprint authentication, you can disable it for GDM by running as the gdm user:
dbus-launch gsettings set org.gnome.login-screen enable-fingerprint-authentication false
Manage visible users and customize login list
To hide specific users from the home screen, edit or create the file /var/lib/AccountsService/users/username and includes:
SystemAccount=true
Support for remote login and monitor configuration
Remote access to the login screen via RDP requires configuring TLS certificates, users, and enabling the necessary services (grdctl, winpr-makecert3, etc.). Remote login currently only allows headless sessions and may require additional intervention for TLS and credentials.
As for the monitor setup, GDM uses its own monitors.xml file en /var/lib/gdm/.config/monitors.xml. If you want to replicate your user's monitor settings, copy your file to that path and/or create a override for gdm.service with a script that updates it on every boot.
Troubleshooting common problems
- Problems with Wayland and NVIDIA drivers: GDM may not start correctly on Wayland if you are using proprietary NVIDIA drivers. You can force the use of Xorg by commenting out the WaylandEnable=false line in /etc/gdm/custom.confIn advanced cases, you can create a null symlink to override udev rules that block Wayland with NVIDIA.
- Black screen errors after changes or connecting/disconnecting external GPUs: Sometimes Wayland configuration is overwritten by scripts like /usr/lib/gdm-disable-wayland. If GDM suddenly stops starting on Wayland, delete /run/gdm/custom.conf and restart the service.
- GDM cannot be enabled with systemd: Please refer to systemd's own FAQ if there are conflicting symbolic links.
- Sounds and shutdown policies: Customize Polkit to allow shutdown with multiple sessions open, or adjust power sounds and behaviors from advanced settings.
- Problems after GDM update or incomplete removal: Remove residual system users and groups, check for orphaned files, and make sure there are no directories left like /var/lib/gdm.
Debugging and advanced modes
If you would like to activate GDM debug mode, edits /etc/gdm/custom.conf and adds debug/Enable=true. Restart GDM and check the logs in / var / log / messages or similar. This can help you track down bugs or abnormal behavior after customizations.
GDM Settings and compatibility with different GNOME versions
One of the current challenges is that Recent versions of GNOME may break compatibility with certain versions of GDM Settings. For example, version 2.0 appears to be the last fully functional version on Ubuntu 22.04, while newer versions only work correctly with updated libraries and environments (libadwaita, GTK4, etc.). It's common for distribution repositories not to have the latest version, requiring the user to resort to an AppImage, PPA, or manual build, depending on the case.
In some cases (especially on Ubuntu), recent Flatpak or AppImage versions may not launch correctly due to incompatibilities with the GNOME runtime version, so it is recommended to read the release notes and warnings for each release before installing.
Is it worth using GDM Settings instead of manual editing?
The biggest advantage of GDM Settings is its Ease of use and centralization of many customization options in a single interfaceCompared to manual editing and command-line manipulation, the application minimizes the risk of errors, offers a visually tailored experience for the modern desktop, and allows you to experiment (with caution) before committing to permanent changes.
However, it's worth being aware of the possibilities of manual configuration, especially for fine-tuning specific details, automating workflows through scripting, or restoring changes after a failed update.