X11, Wayland y gestores de sesión gráfica
Introducción
El entorno gráfico en Linux se construye en capas. En la base está el servidor gráfico (X11 o Wayland), encima el gestor de sesión (display manager) que muestra la pantalla de login, y sobre eso el entorno de escritorio (GNOME, KDE, XFCE…).
X11 / Xorg — El servidor gráfico clásico
X Window System (X11) es el sistema de ventanas clásico de Linux y Unix. El servidor
Xorg actúa como intermediario entre el hardware gráfico y las aplicaciones. Utiliza una arquitectura
cliente-servidor que permite ejecutar aplicaciones gráficas de forma remota.
Instalación:
# apt install xorg # Debian/Ubuntu
# dnf install xorg-x11-server-Xorg # Fedora/RHEL
Variable de entorno DISPLAY:
Las aplicaciones gráficas saben a qué servidor X conectarse mediante la variable DISPLAY.
$ echo $DISPLAY # muestra :0 o :0.0 en entorno local
$ export DISPLAY=:0 # definirla manualmente
Archivo .xinitrc:
Cuando se inicia una sesión gráfica sin display manager, el archivo ~/.xinitrc define qué entorno de
escritorio o gestor de ventanas lanzar.
# ~/.xinitrc
exec startxfce4
$ startx # iniciar sesión gráfica usando .xinitrc
Herramientas de diagnóstico X11:
$ xrandr # listar y configurar resoluciones y monitores
$ xrandr --output HDMI-1 --mode 1920x1080 # cambiar resolución
$ xdpyinfo # información detallada del display
$ xlsclients # listar clientes X conectados
$ DISPLAY=:0 xterm # abrir xterm en el display :0
Wayland — El servidor gráfico moderno
Wayland es el sucesor de X11. Simplifica la arquitectura eliminando el servidor intermediario: el compositor Wayland hace directamente de servidor gráfico. Es más seguro (el aislamiento entre aplicaciones es mejor) y más eficiente.
- GNOME usa Wayland por defecto desde la versión 3.22
- KDE Plasma usa Wayland por defecto desde la versión 6
- Los compositores más conocidos son Mutter (GNOME) y KWin (KDE)
- Para servidores o cuando se necesita acceso remoto gráfico, X11 sigue siendo más compatible
Verificar si se usa X11 o Wayland:
$ echo $XDG_SESSION_TYPE # devuelve x11 o wayland
$ loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type
Gestores de sesión (Display Managers)
El display manager muestra la pantalla de login gráfica y lanza la sesión del usuario. Es un servicio systemd
más, que depende de graphical.target.
GDM → GNOME Display Manager (usado por GNOME, Ubuntu)
LightDM → Display Manager ligero (Ubuntu antiguo, XFCE, LXDE)
SDDM → Simple Desktop Display Manager (KDE Plasma)
XDM → X Display Manager (básico, histórico)
Gestionar el display manager con systemctl:
$ systemctl status gdm # ver estado de GDM
# systemctl restart lightdm # reiniciar LightDM
# systemctl enable sddm # habilitar SDDM al arranque
# systemctl set-default graphical.target # activar arranque gráfico
# systemctl set-default multi-user.target # desactivar arranque gráfico
Cambiar el display manager predeterminado (Debian/Ubuntu):
# dpkg-reconfigure gdm3 # asistente para elegir el DM por defecto
Entornos de escritorio
- GNOME → moderno, intuitivo, usado en Ubuntu y Fedora por defecto. Usa GTK
- KDE Plasma → muy personalizable, completo, similar a Windows. Usa Qt
- XFCE → ligero y rápido, ideal para equipos con pocos recursos
- LXDE / LXQt → muy ligero, para hardware antiguo
- MATE → fork de GNOME 2, clásico y ligero
- Cinnamon → usado en Linux Mint, aspecto tradicional