Linux GUI

Major Concepts

1. Display Server

2. Display Manager (DM)

3. Desktop Environment (DE)

4. Window Manager (WM)

Login Flow (Graphical Sessions)

🔄 High-Level Flow:

System Boot → systemd → DM → Login → Session (.desktop) → DE + WM on top of Display Server

🧩 Step-by-Step Breakdown:

1. System Boot

2. Display Manager (DM) Starts

GDM Configuration

This file /etc/gdm3/custom.conf is the GDM (GNOME Display Manager) configuration file. It defines how GDM behaves during system startup and login. Most of the times, we disable Wayland:

WaylandEnable=false

It is useful for compatibility with remote desktop (like xrdp), NVIDIA drivers, or legacy apps. To apply changes (like WaylandEnable=false), you usually need to reboot or restart GDM:

sudo systemctl restart gdm3

3. User Login → Session Launch

Exec=env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --session=ubuntu
Ubuntu Session

/usr/share/xsessions/ubuntu.desktop — available system-wide to all users.

When you log in graphically and select the "Ubuntu" session, the display manager reads this file and runs:

env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --session=ubuntu

This starts the Ubuntu-flavored GNOME desktop environment.

4. Session Starts DE or WM