• MainMenu
  • Home
  • Cheap VPS
  • Site Tree

Suay.Site

Another web-master's blog

  • Home
  • Cheap VPS
  • Site Tree
Loading...
X

Suay.Site

How to change Display manager and login screen in Linux

February 11, 2024

Table of contents

1. What is Display manager

2. What is needed to change Display manager

3. What types of display managers are there?

4. How to Find Out Which Display Manager is Used on Linux

4.1 Display-manager.service status

4.2 Symbolic link /etc/systemd/system/display-manager.service

5. How to change Display Manager

6. How to install the new Display Manager on Debian, Ubuntu, Linux Mint, Kali Linux and their derivatives

6.1 How to install GDM

6.2 How to install SDDM

6.3 How to install LightDM

7. How to install the new Display Manager on Arch Linux, Manjaro, BlackArch and their derivatives

7.1 How to install GDM

7.2 How to install SDDM

7.3 How to install LightDM

8. How to switch between display managers

8.1 How to change Display Manager using Systemctl (Systemd)

8.2 How to change Display Manager using dpkg-reconfigure

9. How to roll back changes by Display Manager change

10. Display Manager functions

10.1 Interface and tips for using GDM

10.2 Interface and tips for using SDDM

10.3 Interface and tips for using LightDM

11. Errors and problem solving

11.1 Error “The unit files have no installation config” for GDM

11.2 GDM loads to a blank screen

11.3 LightDM service does not start. Error “Failed to start Light Display Manager”

11.4 Error “Failed to enable unit: File /etc/systemd/system/display-manager.service already exists and is a symlink to /usr/lib/systemd/system/gdm.service.”

12. Automatic login in Linux


What is Display manager

The Display manager, from a practical point of view for the end user, is the login window to the Linux OS.

In the display manager window, you can select a user (if there are several of them on a given computer), enter a password and select a graphical desktop environment (if there are several installed for a given Linux).

Under the hood, the display manager is responsible for how to set up automatic login on Linux, as well as which display server (X11 or Wayland) to choose (again, only if there are multiple display servers installed on a given Linux).

See also:

  • How to enable automatic login in Linux (GDM, LightDM, SDDM)
  • How to check if Wayland or X11 is used?

That is, from the point of view of a Linux computer user, the display manager usually does not need to be changed and, in fact, this program does not deserve special attention.

But if you're a Linux enthusiast who likes to try different desktop environments (Cinnamon, GNOME, Xfce, KDE Plasma and others) or different display servers (X11 or Wayland), then you may find that different display managers work better or worse in conjunction with other components responsible for image output and graphical user interface.

Either you are not satisfied with the functionality (for example, the ability to customize the appearance) or the appearance of the display manager as a whole, then you can change the Display manager.

What is needed to change Display manager

Display manager is a regular Linux OS package that can be installed in literally one command. And then use systemctl to activate it.

But you need to be prepared for an unexpected situation where the system cannot complete booting into the GUI. Therefore, you should know about the keyboard shortcuts Ctrl+Alt+F1, Ctrl+Alt+F2, Ctrl+Alt+F3 and so on, which will allow you to go to the console and log into the Linux OS with a command line interface. You must also be able to roll back changes that led to the inability to load the graphical interface – that is, you are required to be aware of the actions you perform.

See also: How to fix Linux booting to black screen (SOLVED)

In general, I warned you: the system may not boot into the graphical desktop environment and get stuck loading the Display manager – this sometimes happens to me, I even put together a small problem solving section.

What types of display managers are there?

Popular Display managers are:

  • GDM – typically associated with GNOME, but can work with other desktop environments. In my case, GDM sometimes caused problems (on some OSes, loading ended with blank screens until Wayland was disabled for the login screen). Can work with Wayland
  • LightDM – usually associated with Xfce, but works with other desktop environments as well
  • SDDM – usually associated with KDE Plasma, but works with other desktop environments as well. In my experiments with Linux OS, this is the least problematic display manager in conjunction with various graphical desktop environments, including when working with the Wayland display server

Besides these three, there are others:

  • LXDM – usually associated with LXDE. Lightweight X11 Display Manager
  • XDM (xorg-xdm) – X Display Manager
  • entrance – Enlightenment Display Manager
  • cdm - console display manager
  • lemurs – TUI Display/Login Manager
  • emptty is an extremely simple display manager with a command line interface on TTY
  • And apparently some others

How to Find Out Which Display Manager is Used on Linux

1. Display-manager.service status

To determine which display manager was used to boot Linux, you need to look at the status of display-manager.service. To do this, run the command:

systemctl status display-manager.service

Information about the display manager is contained in several places in the output.

Example output for GDM:

 

● gdm.service - GNOME Display Manager
     Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/gdm.service.d
             └─disable-wayland.conf
     Active: active (running) since Sat 2024-02-10 20:59:10 EST; 4min 45s ago
    Process: 678 ExecStartPre=/usr/share/gdm/generate-config (code=exited, status=0/SUCCESS)
    Process: 687 ExecStartPre=/usr/libexec/gdm-runtime-config set daemon WaylandEnable false (code=exited, status=0/SUCCESS)
   Main PID: 690 (gdm3)
      Tasks: 4 (limit: 5651)
     Memory: 10.1M (peak: 29.5M)
        CPU: 207ms
     CGroup: /system.slice/gdm.service
             └─690 /usr/sbin/gdm3

Feb 10 20:59:09 HackWare-Kali systemd[1]: Starting gdm.service - GNOME Display Manager...
Feb 10 20:59:10 HackWare-Kali systemd[1]: Started gdm.service - GNOME Display Manager.
Feb 10 20:59:10 HackWare-Kali gdm-launch-environment][697]: pam_unix(gdm-launch-environment:session): session opened for user Debian-gdm(uid=132) by (uid=>
Feb 10 21:00:38 HackWare-Kali gdm-password][1189]: gkr-pam: unable to locate daemon control file
Feb 10 21:00:38 HackWare-Kali gdm-password][1189]: gkr-pam: stashed password to try later in open session
Feb 10 21:00:38 HackWare-Kali gdm-password][1189]: pam_unix(gdm-password:session): session opened for user mial(uid=1000) by (uid=0)
Feb 10 21:00:39 HackWare-Kali gdm-password][1189]: gkr-pam: unlocked login keyring
Feb 10 21:00:49 HackWare-Kali gdm3[690]: Gdm: Child process -726 was already dead.

Sample output for SDDM:

 

● sddm.service - Simple Desktop Display Manager
     Loaded: loaded (/usr/lib/systemd/system/sddm.service; enabled; preset: disabled)
     Active: active (running) since Sat 2024-02-10 21:08:57 EST; 1min 16s ago
       Docs: man:sddm(1)
             man:sddm.conf(5)
   Main PID: 678 (sddm)
      Tasks: 4 (limit: 5651)
     Memory: 147.8M (peak: 148.1M)
        CPU: 3.685s
     CGroup: /system.slice/sddm.service
             ├─678 /usr/bin/sddm
             └─687 /usr/lib/xorg/Xorg -nolisten tcp -background none -seat seat0 vt2 -auth /run/sddm/xauth_iwkqPJ -noreset -displayfd 16

Feb 10 21:09:21 HackWare-Kali sddm-helper[826]: pam_kwallet5(sddm:setcred): pam_kwallet5: pam_sm_setcred
Feb 10 21:09:21 HackWare-Kali sddm-helper[826]: pam_unix(sddm:session): session opened for user mial(uid=1000) by (uid=0)
Feb 10 21:09:21 HackWare-Kali sddm[678]: Auth: sddm-helper exited successfully
Feb 10 21:09:21 HackWare-Kali sddm[678]: Greeter stopped. SDDM::Auth::HELPER_SUCCESS
Feb 10 21:09:21 HackWare-Kali sddm-helper[826]: gkr-pam: unlocked login keyring
Feb 10 21:09:21 HackWare-Kali sddm-helper[826]: pam_kwallet5(sddm:session): pam_kwallet5: pam_sm_open_session
Feb 10 21:09:21 HackWare-Kali sddm-helper[826]: pam_env(sddm:session): deprecated reading of user environment enabled
Feb 10 21:09:21 HackWare-Kali sddm-helper[826]: Writing cookie to "/tmp/xauth_hPqZFm"
Feb 10 21:09:21 HackWare-Kali sddm-helper[826]: Starting X11 session: "" "/etc/sddm/Xsession \"startxfce4\""
Feb 10 21:09:21 HackWare-Kali sddm[678]: Session started true

Example output for LightDM:

 

● lightdm.service - Light Display Manager
     Loaded: loaded (/usr/lib/systemd/system/lightdm.service; enabled; preset: disabled)
     Active: active (running) since Sat 2024-02-10 21:14:12 EST; 1min 12s ago
       Docs: man:lightdm(1)
   Main PID: 677 (lightdm)
      Tasks: 6 (limit: 5651)
     Memory: 117.9M (peak: 118.4M)
        CPU: 2.000s
     CGroup: /system.slice/lightdm.service
             ├─677 /usr/sbin/lightdm
             └─693 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

Feb 10 21:14:12 HackWare-Kali systemd[1]: Starting lightdm.service - Light Display Manager...
Feb 10 21:14:12 HackWare-Kali systemd[1]: Started lightdm.service - Light Display Manager.
Feb 10 21:14:12 HackWare-Kali lightdm[704]: pam_unix(lightdm-greeter:session): session opened for user lightdm(uid=126) by (uid=0
Feb 10 21:14:13 HackWare-Kali lightdm[704]: pam_unix(lightdm-greeter:session): session opened for user lightdm(uid=126) by (uid=0
Feb 10 21:15:09 HackWare-Kali lightdm[817]: gkr-pam: unable to locate daemon control file
Feb 10 21:15:09 HackWare-Kali lightdm[817]: gkr-pam: stashed password to try later in open session
Feb 10 21:15:09 HackWare-Kali lightdm[817]: pam_unix(lightdm:session): session opened for user mial(uid=1000) by (uid=0)
Feb 10 21:15:10 HackWare-Kali lightdm[817]: gkr-pam: unlocked login keyring

2. Symbolic link /etc/systemd/system/display-manager.service

On most Linux operating systems, the display manager selected for loading is pointed to by the symbolic link /etc/systemd/system/display-manager.service.

To see its destination, run the command:

file /etc/systemd/system/display-manager.service

Example output:

 

/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service

That is, the SDDM (sddm.service) display manager is used.

The following command will shorten the output:

file /etc/systemd/system/display-manager.service | awk -F '/' '{ print $10 }'

Example output:

 

gdm.service

How to change Display Manager

The algorithm of actions is very simple:

  1. Install package with new Display Manager
  2. Execute the command to switch to the new Display Manager

If your OS already has several display managers installed, then you can go straight to the second point – switching between Display Managers.

There are several ways to switch between display managers. Any Linux OS that uses Systemd (the vast majority of distributions these days) can add and remove display managers from startup using the systemctl utility.

Including, you can use systemctl on distributions such as Debian, Ubuntu, Linux Mint and Kali Linux. But these same distributions (all of them based on Debian) have their own dpkg-reconfigure script, which, in fact, does exactly the same thing as systemctl.

I'll show you both ways, but I recommend using the more versatile option with systemctl simply because it's more versatile. The result will be identical in any case.

You need to start by installing the display manager package.

How to install the new Display Manager on Debian, Ubuntu, Linux Mint, Kali Linux and their derivatives

How to install GDM

To switch to GDM, install the gdm package by running the commands:

sudo apt update
sudo apt install gdm

During the display manager installation, the package manager will ask if you want to use the new Display Manager. You can make your choice at this point and then you won't have to switch to the new Display Manager. To switch between items, use the up and down arrow keys. After selecting the display manager you want, press the Tab key (to move to the “<OK>” button and then press the Enter key.

How to install SDDM

To switch to SDDM, install the sddm package by running the commands:

sudo apt update
sudo apt install sddm

During the display manager installation, the package manager will ask if you want to use the new Display Manager. You can make your choice at this point and then you won't have to switch to the new Display Manager. To switch between items, use the up and down arrow keys. After selecting the display manager you want, press the Tab key (to move to the “<OK>” button and then press the Enter key.

How to install LightDM

To switch to LightDM, install the lightdm package by running the commands:

sudo apt update
sudo apt install lightdm

During the display manager installation, the package manager will ask if you want to use the new Display Manager. You can make your choice at this point and then you won't have to switch to the new Display Manager. To switch between items, use the up and down arrow keys. After selecting the display manager you want, press the Tab key (to move to the “<OK>” button and then press the Enter key.

How to install the new Display Manager on Arch Linux, Manjaro, BlackArch and their derivatives

How to install GDM

To switch to GDM, install the gdm package by running the command:

sudo pacman -S gdm

How to install SDDM

To switch to SDDM, install the sddm package by running the command:

sudo pacman -S sddm

How to install LightDM

To switch to LightDM, install the lightdm and lightdm-gtk-greeter packages by running the command:

sudo pacman -S lightdm lightdm-gtk-greeter

How to switch between display managers

1. How to change Display Manager using Systemctl (Systemd)

This method of changing the display manager works for a wide range of distributions, including Debian, Ubuntu, Linux Mint, Kali Linux and their derivatives, as well as Arch Linux, Manjaro, BlackArch and their derivatives.

Note: If you are using Debian, Ubuntu, Linux Mint, Kali Linux or a derivative of them, and if you selected a new display manager during the package installation step, then you DO NOT need to take any further steps and can skip this and the next section. You can proceed to reboot the OS for the changes made to take effect.

You need to run two commands sequentially, the first one disables the current display manager from startup, the second one adds a new display manager to startup:

sudo systemctl disable DISPLAY_MANAGER
sudo systemctl enable DISPLAY_MANAGER

Instead of DISPLAY_MANAGER you need to add one of the following values:

  • gdm.service
  • sddm.service
  • lightdm.service

For example, Linux currently uses GDM and I want to replace it with SDDM, then I need to run the following commands:

sudo systemctl disable gdm.service
sudo systemctl enable sddm.service

Or I'm using SDDM and I want to replace it with LightDM, then I need to run the following commands:

sudo systemctl disable sddm.service
sudo systemctl enable lightdm.service

I think you get the idea.

2. How to change Display Manager using dpkg-reconfigure

This method only works on Debian and its derivative distributions, including Ubuntu, Linux Mint, Kali Linux.

You need to run a command like:

sudo dpkg-reconfigure DISPLAY_MANAGER

As DISPLAY_MANAGER you need to specify any of the already installed display managers, for example:

sudo dpkg-reconfigure gdm3

This window contains information for advanced users, just click “<OK>” (using the Tab and Enter keys).

In the next window, select the desired display manager:

To switch between items, use the up and down arrow keys. After selecting the display manager you want, press the Tab key (to move to the “<OK>” button and then press the Enter key.

How to roll back changes by Display Manager change

If you have already removed the package, then you need to install the display manager you want to revert to.

Then remove the current display manager from startup and add the one you want to startup – exactly as shown above.

Display Manager functions

Login screen, even for the same display manager, may differ in appearance on different Linux distributions, since many display managers support different skins and/or appearance customization.

The usual set of functions of each display manager:

  • selecting a user from the list provided or entering the username manually
  • entering user password
  • selecting desktop environment
  • computer shutdown and restart buttons

There are also additional functions:

  • accessibility (increase contrast, increase font size, zoom, screen reading, on-screen keyboard, etc.)
  • changing the password input language and/or Linux language
  • network configuration
  • choosing a dark theme
  • battery mode selection (energy saving and balanced)
  • volume settings, battery information, etc.

Interface and tips for using GDM

A list of users is presented in the center of the screen. If you do not see the user you need, then click “Not listed?”.

In the upper right corner you will see an accessibility button in the form of a man; here you can enable functions such as: increasing contrast, increasing font size, zooming, screen reading, on-screen keyboard and others.

There, in the upper right corner, you will see icons that open network, sound, battery mode and appearance settings.

After selecting a user, two additional elements will appear:

  1. User password prompt
  2. A gear that, when clicked, allows you to select your desktop environment. After a reboot, GDM remembers the selected desktop environment, but you can again change it simply by clicking on the gear icon.

To continue booting, after entering the password, press the Enter key.

If you make a mistake with your user selection, you will see a “Back” arrow to the left of the password prompt. Click it to return to the user list.

Interface and tips for using SDDM

The SDDM's appearance is very different on the two systems I tested on.

In the first example, in the upper left corner there is a drop-down list of desktop environments. Next to this list you can change the keyboard layout.

In the center of the screen you can select a user and enter a password. You can switch between users (if there are several of them on a given OS) using the arrows.

There is a power off button in the top right corner.

On another OS, a more customized SDDM looks like this:

In the center of the screen you can enter the user password.

In the lower left corner you can select graphical desktop environment:

If you want to select another user, then click the “Other...” button.

You will be prompted to enter your username and password. If you want to return to the previous view, click the “List Users” button.

Interface and tips for using LightDM

In the standard Linux repositories you will find different LightDM welcome screens (greeter), in addition, LightDM supports customizing the appearance of the login window (as, indeed, do the other display managers discussed).

On one of the tested systems, LightDM looks like this:

In the center of the screen you can select a user and enter a password.

In the upper right corner you will find several icons, one of which allows you to select your desktop environment. Please note that the desktop environment selection icon looks different depending on the selection you make.

On the second system, LightDM looks generally similar. Please note that the desktop environment selection icon is now different (since a different session is selected).

There are also buttons for changing the keyboard layout, accessibility and turning off the computer.

Errors and problem solving

1. Error “The unit files have no installation config” for GDM

When you try to add the GDM display manager to startup, for example, with the following command:

sudo systemctl enable gdm.service

On some distributions an error occurs:

 

The unit files have no installation config (WantedBy=, RequiredBy=, UpheldBy=,
Also=, or Alias= settings in the [Install] section, and DefaultInstance= for
template units). This means they are not meant to be enabled or disabled using systemctl.
 
Possible reasons for having these kinds of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/, .requires/, or .upholds/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.

To fix it, open the file /lib/systemd/system/gdm.service as an administrator, for example:

sudo gedit /lib/systemd/system/gdm.service

And add the following lines at the very end:

 

[Install]
Alias=display-manager.service

Save and close the file.

Immediately after this the error will disappear:

2. GDM loads to a blank screen

On some systems after installation or after a system update, GDM boots, but the entire screen is filled with one color. That is, the system boots into the screen without the ability to select a user and enter a password

Sometimes you can even log in by entering your password and pressing Enter.

To fix the situation, you need to disable the use of Wayland and force the use of Xorg for the login screen.

Please note that you will still be able to boot into a desktop environment with Wayland. This means disabling Wayland specifically for the login screen.

To do this, open the GDM configuration file; it has a *.conf extension and can be located in one of the following directories (depending on the Linux distribution):

  • /etc/gdm/
  • /etc/gdm3/

Examples of the location and name of the GDM configuration file:

  • /etc/gdm/custom.conf (on Arch Linux and derivative distributions);
  • /etc/gdm3/daemon.conf (on Debian and derivative distributions);

Open the GDM configuration file:

sudo gedit /etc/gdm/custom.conf

Find the line

#WaylandEnable=false

And uncomment it, that is, remove the hash symbol from the beginning of the line so that it turns out:

WaylandEnable=false

Save and close the file. Then reboot – GDM should now show the login page correctly.

3. LightDM service does not start. Error “Failed to start Light Display Manager”

When starting the OS with LightDM selected as the display manager, an error occurs:

 

Failed to start Light Display Manager

If you check the status of the lightdm.service service, you will see the following:

 

× lightdm.service - Light Display Manager
     Loaded: loaded (/usr/lib/systemd/system/lightdm.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Sun 2024-02-11 09:26:08 MSK; 1min 49s ago
       Docs: man:lightdm(1)
    Process: 406 ExecStart=/usr/bin/lightdm (code=exited, status=1/FAILURE)
   Main PID: 406 (code=exited, status=1/FAILURE)
        CPU: 10ms

Feb 11 09:26:08 HachWare systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 5.
Feb 11 09:26:08 HachWare systemd[1]: lightdm.service: Start request repeated too quickly.
Feb 11 09:26:08 HachWare systemd[1]: lightdm.service: Failed with result 'exit-code'.
Feb 11 09:26:09 HachWare systemd[1]: Failed to start Light Display Manager.

There may be several reasons for this problem. One of them is the absence of the lightdm-gtk-greeter package, which on some Linux distributions (for example, Arch Linux) is not a required dependency for lightdm. But in practice, lightdm does not work without the lightdm-gtk-greeter package. Installing this package may solve the problem:

sudo pacman -S lightdm-gtk-greeter

4. Error “Failed to enable unit: File /etc/systemd/system/display-manager.service already exists and is a symlink to /usr/lib/systemd/system/gdm.service.”

When you try to add a display manager to startup, for example, with the following command:

sudo systemctl enable lightdm.service

You may encounter an error, the essence of which is that the file /etc/systemd/system/display-manager.service already exists:

 

Failed to enable unit: File /etc/systemd/system/display-manager.service already exists and is a symlink to /usr/lib/systemd/system/gdm.service.

The problem occurs because you are trying to add a display manager to startup without first disabling the previous one.

To fix this error, you must first remove the old display manager from startup. After this, the error will disappear and you can add the new Display manager to startup without any problems.

Automatic login in Linux

For instructions on how to set up logging into Linux without entering a password, see the following articles:

  • How to set up automatic login in Linux with GDM
  • How to set up automatic login in Linux with SDDM
  • How to set up automatic login in Linux with LightDM

Related articles:

  • How to migrate from X11 to Wayland? (95.2%)
  • How to enable automatic login in Linux (GDM, LightDM, SDDM) (76.5%)
  • How to set up automatic login in Linux with SDDM (62%)
  • How to set up automatic login in Linux with LightDM (62%)
  • How to set up automatic login in Linux with GDM (62%)
  • Error “net::ERR_CERT_COMMON_NAME_INVALID” for self-signed certificate (SOLVED) (RANDOM - 50%)

This entry was posted in Linux and tagged in automatic login in Linux, Display manager, dpkg-reconfigure, GDM, LightDM, Linux boot, SDDM, system administration, systemctl.

Alex

View more posts from this author
« How to migrate from X11 to Wayland?
Menu buttons (toolbar) and status bar are missing in SMPlayer (SOLVED) »

Leave Your Observation Cancel observation

Your email address will not be published. Required fields are marked *

Recent Posts

  • How to install any Python version for running AI models on Windows
  • How to run AI models on Windows with any Python version (a simple method)
  • How to create virtual environments with any Python version (Miniconda user guide)
  • How to create virtual environments with any Python version (Micromamba user guide)
  • How to turn images into photos using the Qwen Image Edit neural network on Windows

Recent Comments

  • Stephan Becker on How to change the language of Google Chrome and Chromium on Linux
  • Carin on dtac in Thailand: Mobile Operator User Guide
  • Alex on Menu buttons (toolbar) and status bar are missing in SMPlayer (SOLVED)
  • Alex on Error “PHP Startup: session.sid_length INI setting is deprecated” (SOLVED)
  • Shail on Error “PHP Startup: session.sid_length INI setting is deprecated” (SOLVED)

Search

Tags

Android Apache Arch Linux BlackArch BlackArch / Arch Linux computer network computer performance convert database management systems / DBMS databases DBMS Debian development file conversion file systems hardware ImageMagick IP Kali Linux Linux Mint magick Manjaro MariaDB monitor / display multimedia MySQL package managers pacman photos PHP phpMyAdmin pictures PowerShell Python software errors / problem solutions system administration Ubuntu video VirtualBox webmaster notes Web Server websites Wi-Fi Windows Windows 11

Categories

  • Blog
  • Linux
  • Money and job
  • Notes
  • PowerShell
  • Software, hardware and other IT
  • Thailand

Copyright © 2026 Suay.Site. All Rights Reserved. Capture by Slocum Studio

Scroll Up