
For some time now the Linux display server has been going through a transition for the graphical environment. The well established X Window System (a.k.a. X, X11 or X.Org) has been the default, but slowly the mainstream Linux desktop distributions have changed the default to Wayland. Unfortunately not all legacy components or applications are compatible even with the use of the compatibility layer of XWayland. As a result it can be beneficial to know for certain which display manager is being used in order to debug issues. I will show how this can be accomplished using a variety of methods that will work in most circumstances.
What is a Display Server?
A program that is responsible for handling the coordination of input and output of the hardware, the operating system and as well as each other. All the coordination is sent using a communication protocol, such as Wayland or X11. Without a display server a computer could not be used graphically.
Environment
Instructions were tested using the following.
- Arch Linux
- Fish v3.6.1
- GNU Bash v5.1.16
- GNOME v44.3
- KDE Plasma v5.27.4
GNOME Settings
- Open GNOME Settings.
- Click on “About” on the left-hand side.
-
On the right-hand side look for the value under “Windowing System”.
KDE Plasma
- Open System Settings.
- Click on “About” on the left-hand side.
-
On the right-hand side look for the value under “Graphics Platform”.
Environment Variable
During the loading process environment variables are set and as a result we can confirm which display server is being used by getting the value of the variable using a terminal. For best results look at using “XDG_SESSION_TYPE” or “env” examples.
-
Display the value of the variable “XDG_SESSION_TYPE”.
$ echo $XDG_SESSION_TYPE
x11
-
Display the value of the variable “WAYLAND_DISPLAY”.
$ echo $WAYLAND_DISPLAY
wayland-0
If no value is returned then X11 is being used.
-
Use the “env” and grep commands to search all environment variables for X11 or Wayland.
$ env | grep -i -e x11 -e wayland
XDG_SESSION_TYPE=x11
Systemd Login Manager
For the Linux operating systems configured with Systemd the login manager can be accessed using the command “loginctl” in the terminal to confirm which display server is in use.
-
Get the session ID.
$ loginctl list-sessions
SESSION UID USER SEAT TTY 3 1000 adam seat0 tty2 1 sessions listed.
-
Display session type to confirm display server being used.
$ loginctl show-session 3 -p Type
Type=x11
System Processes
The example below list all the system processes and then searches through all the results to only display process with the name of “tty” using a terminal. Visually look through the returned results for X11 (Xorg) or Wayland.
$ ps -e | grep tty
20162 tty2 00:00:00 gdm-x-session
20167 tty2 00:00:16 Xorg
20200 tty2 00:00:00 gnome-session-b
23334 ? 00:00:00 kitty
References
- Watercolor background, by Justcos via Pixabay
- Wayland (protocol), Wikipedia
- Wayland Logo, Wikimedia Commons
- Wayland
- Windowing System: Display Server, Wikipedia
- X Window System, Wikpedia
- X.Org Logo, Wikimedia Commons
- X.Org Server, Wikipedia
- X.Org
- Post image contains resized logos of Wayland and X.Org