The Linux Desktop
Cuando instalamos un sistema Linux base, no tenemos ningún ambiente gráfico; nuestra única interfaz con el sistema es una línea de comando o shell. Esta configuración es muy común en servidores, con los cuales normalmente interactuamos remotamente a través de SSH (secure shell) o en dispositivos embebidos (por ejemplo un router) que no cuentan con el hardware necesario para desplegar un ambiente gráfico.
Los usuarios que utilizan por primera vez un sistema UNIX/Linux no suelen tener experiencia interactuando con su dispositivo a través de comandos escritos, es por esto que la mayoría de las distribuciones pensadas para usuarios nuevos, instalan un servidor gráfico y configuran un ambiente de escritorio por defecto.
Servidores gráficos
A display server or window server is a program whose primary task is to coordinate the input and output of its clients to and from the rest of the operating system, the hardware, and each other. The display server communicates with its clients over the display server protocol, a communications protocol, which can be network-transparent or simply network-capable.
Los Servidores gráficos más comunes que encontramos en prácticamente todas las distribuciones de Linux son x.org y wayland.
El sistema de ventanas X es mucho más antiguo y ha sido utilizado (en sus diferentes versiones y forks) desde los 80's en todos los sistemas Linux, sin embargo cada vez hay más gente que opina que su código a quedado atrasado y tiene serios problemas de seguridad. Con la idea de iniciar un proyecto desde cero con una base de código moderna y nueva en 2008 surge el proyecto Wayland.
The original idea of X emerged at MIT in 1984 as a collaboration between Jim Gettys (of Project Athena) and Bob Scheifler (of the MIT Laboratory for Computer Science).
Wayland is developed by a group of volunteers initially led by Kristian Høgsberg as a free and open-source community-driven project with the aim of replacing the X Window System with a secure and simpler windowing system for Linux and other Unix-like operating systems. The project's source code is published under the terms of the MIT License, a permissive free software licence.
Hoy en día ambos servidores conviven en la mayoría de las distribuciones Linux, la tendencia general es migrar paulatinamente a Wayland, sin embargo la adaptación de las aplicaciones a un nuevo servidor gráfico es un proceso lento. En resumen, si la compatibilidad de todas las aplicaciones posibles, es importante para nosotros, es mejor quedarse con x.org por ahora.
Ambientes de escritorio
A desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs, which share a common graphical user interface (GUI).
A desktop environment bundles together a variety of components to provide common graphical user interface elements such as icons, toolbars, wallpapers, and desktop widgets. Additionally, most desktop environments include a set of integrated applications and utilities. Most importantly, desktop environments provide their own window manager, which can however usually be replaced with another compatible one.
Podemos elegir que ambiente de escritorio queremos utlizar, podemos tener varios instalados y elegir cual queremos utilizar al hacer login en nuestro sistema. La variedad de ambientes de escritorio es muy alta, para un lista bastante extensa puedes revisar el arch wiki. Si ninguno de los disponibles es lo que quieres, puedes construir tu propio ambiente de escritorio customizado, mezclando los diferentes componentes necesarios.
Algunos de los más comunmente utilizados son:
KDE (Plasma Desktop)
KDE is a software project currently comprising a desktop environment known as Plasma, a collection of libraries and frameworks (KDE Frameworks) and several applications (KDE Applications) as well. KDE upstream has a well maintained UserBase wiki. Detailed information about most KDE applications can be found there.
Gnome
GNOME is a desktop environment that aims to be simple and easy to use. It is designed by The GNOME Project and is composed entirely of free and open-source software. The default display is Wayland instead of Xorg...
Xfce
Xfce is a lightweight and modular desktop environment currently based on GTK 3. To provide a complete user experience, it includes a window manager, a file manager, desktop and panel.
Budgie
Budgie is a desktop environment, formerly a project within Solus, becoming independent under the newly formed Buddies of Budgie organization in January 2022. It uses GTK 3 for widgets, and is written in C and Vala. As of Budgie 10, the only available session is on Xorg.
Los Tiling window managers como i3 o sway ofrecen una alternativa mucho más ligera a utilizar un ambiente de escritorio común. En conjunción con algunos otros componentes, se puede tener un ambiente gráfico muy ligero, eficiente y diseñado para nuestra propia forma de trabajar.
Display manager
A display manager, or login manager, is typically a graphical user interface that is displayed at the end of the boot process in place of the default shell. There are various implementations of display managers, just as there are various types of window managers and desktop environments. There is usually a certain amount of customization and themeability available with each one.
Una de las ventajas de tener un Display Manager es que antes de entrar en nuestro sistema podemos elegir que ambiente de escritorio queremos utilizar. Sin embargo, si tenemos un sistema en el cual siempre utilizamos el mismo ambiente gráfico, podemos omitir la instalación de un Display Manager, hacer login en modo texto, e iniciar nuestro ambiente gráfico con xinit usando el comando startx que podemos configurar a través del archivo .xinitrc
En está página podemos encontrar una larga lista de display managers, para consola o gráficos, además de instrucciones para instalarlos y configurarlos en Arch Linux. Los más comunmente utilizados y que se instalan por defecto en muchas distribuciones son LightDM y GDM:
LightDM
LightDM is a cross-desktop display manager. Its key features are:
- Cross-desktop - supports different desktop technologies.
- Supports different display technologies (X, Mir, Wayland ...).
- Lightweight - low memory usage and high performance.
- Supports guest sessions.
- Supports remote login (incoming - XDMCP, VNC, outgoing - XDMCP, PAM).
- Comprehensive test suite.
- Low code complexity.
GDM
The GNOME Display Manager (GDM) is a program that manages graphical display servers and handles graphical user logins.
Aunque GDM es parte del proyecto gnome, también lo podemos utilizar con otros ambientes de escritorio.