Capítulo 7. Sistema GUI (interfaz gráfica de usuario)

Tabla de contenidos

7.1. Entorno de escritorio GUI
7.2. protocolo de comunicación GUI
7.3. infraestructura GUI
7.4. Aplicaciones GUI
7.5. Directorios de los usuarios
7.6. Fuentes
7.6.1. Tipos de letras fundamentales
7.6.2. Rasterización de fuentes
7.7. Sandbox
7.8. Escritorio remoto
7.9. conexión del servidor X
7.9.1. Conexión local del servidor X
7.9.2. Conexión remota del servidor X
7.9.3. Conexión chroot del servidor X
7.10. Portapapeles

Hay varias opciones para el entorno de escritorio completo GUI en el sistema Debian.


[Sugerencia] Sugerencia

Los paquetes de dependencia seleccionados por un metapaquete de tareas pueden no estar sincronizados con el último estado de transición del paquete en el entorno inestable/de prueba de Debian. Para task-gnome-desktop, es posible que deba ajustar las selecciones de paquetes de la siguiente manera:

  • Inicia aptitude con sudo aptitude -u (8).

  • Mueve el cursor a "Tareas" y presiona Enter.

  • Mueva el cursor a "Usuario final" y presiona "Enter".

  • Mueve el cursor a "GNOME" y presiona "Enter".

  • Mueve el cursor a task-gnome-desktop y presiona "Enter".

  • Mueve el cursor a "Depende" y presione "m" (selección manual).

  • Mueve el cursor a "Recomendado" y presiona "m" (selección manual).

  • Mueva el cursor a "task-gnome-desktop y presione "-". (soltar)

  • Ajuste los paquetes seleccionados y elimine los paquetes problemáticos que causan conflictos de paquetes.

  • Presiona "g" para comenzar la instalación.

Este capítulo se centrará principalmente en el entorno de escritorio predeterminado de Debian: task-gnome-desktop que ofrece GNOME en wayland.

El protocolo de comunicación GUI utilizado en el escritorio GNOME puede ser:

Consulte el sitio freedesktop.org para ver en qué se diferencia la arquitectura de Wayland de la arquitectura de X Window.

Desde la perspectiva del usuario, las diferencias se pueden resumir coloquialmente como:

  • Wayland es un protocolo de comunicación GUI del mismo host: nuevo, más simple, más rápido, sin setuid root binario.

  • X Window es un protocolo de comunicación GUI con capacidad de red: tradicional, complejo, más lento, setuid root binario

Para aplicaciones que utilizan el protocolo Wayland, el acceso a su contenido de visualización desde un host remoto es compatible con VNC o RDP. Ver Sección 7.8, “Escritorio remoto”

Los servidores X modernos tienen la Extensión de Memoria Compartida del MIT y se comunican con los clientes locales X utilizando memoria local compartida. Esto evita el canal de comunicación entre interprocesos transparentes Xlib de la red y mejora el rendimiento. Esta situación fue el antecedente de la creación de Wayland como un protocolo de comunicación GUI solo local.

Usando el programa xeyes iniciado desde la terminal GNOME, puede verificar el protocolo de comunicación GUI utilizado por cada aplicación GUI.

 $ xeyes
  • Si el cursor del ratón está en una aplicación como "Terminal GNOME" que usa el protocolo del servidor de pantalla Wayland, los ojos no se mueven con el cursor del ratón.

  • Si el cursor del ratón está en una aplicación como "xterm", que usa el protocolo del núcleo de X Window System, los ojos se mueven con el cursor del ratón y exponen la naturaleza no tan aislada de la arquitectura X Window.

A partir de abril de 2021, muchas aplicaciones GUI populares, como GNOME y LibreOffice (LO), han migrado al protocolo del servidor de visualización de Wayland. Veo xterm, gitk, chromium, firefox, gimp, dia, y las aplicaciones de KDE aún utilizan el protocolo central del sistema X Window.

[Nota] Nota

Tanto para xwayland en Wayland como para el sistema X Window nativo, el antiguo archivo de configuración del servidor X "/etc/X11/xorg.conf" no debería existir en el sistema. Los dispositivos gráficos y de entrada ahora están configurados por el kernel con DRM, KMS y udev. El servidor X nativo se ha reescrito para usarlos. Ver "soporte de modo de vídeo predeterminado de modedb" en la documentación del kernel de Linux.

Estos son los conocidos paquetes del marco GUI para GNOME en el entorno de Wayland.


Aquí, "[auto]" significa que estos paquetes se instalan automáticamente cuando se instala task-gnome-desktop.

[Sugerencia] Sugerencia

gnome-tweaks es la utilidad de configuración indispensable. Por ejemplo:

  • Puede forzar la "Sobre amplificación" del volumen del sonido desde "General".

  • Puede hacer que "Mayúsculas" se convierta en "Esc" desde "Keyboard & Mouse" -> "Keyboard" -> "Additional Layout Option".

[Sugerencia] Sugerencia

Las características detalladas del entorno de escritorio de GNOME pueden configurarse con las utilidades que se inician escribiendo "configuración", "ajustes" o "extensiones" después de pulsar la tecla Super.

Ahora hay disponible muchas aplicaciones GUI útiles en Debian. Instalar software como scribus (KDE) en el entorno de escritorio GNOME es correcta ya que la funcionalidad correspondiente no esta disponible en el entorno de escritorio GNOME. Pero la instalación de demasiados paquetes con funcionalidades solapadas puede saturar su sistema..

Aquí hay una lista de aplicaciones GUI que me llamaron la atención.

Tabla 7.3. Lista de aplicaciones GUI destacadas

paquete popularidad tamaño del paquete tipo descripción
evolution V:30, I:239 486 GNOME Gestor de información personal (trabajo en grupo y correo electrónico)
thunderbird V:48, I:119 224760 GTK Cliente de correo electrónico (Mozilla Thunderbird)
kontact V:1, I:12 2208 KDE Gestor de información personal (trabajo en grupo y correo electrónico)
libreoffice-writer V:117, I:435 31474 LO procesador de textos
abiword V:1, I:8 3542 GNOME procesador de textos
calligrawords V:0, I:7 6097 KDE procesador de textos
scribus V:1, I:16 31345 KDE desktop publishing editor para editar archivos PDF
glabels V:0, I:3 1338 GNOME editor de etiquetas
libreoffice-calc V:111, I:432 26009 LO hoja de cálculo
gnumeric V:4, I:14 9910 GNOME hoja de cálculo
calligrasheets V:0, I:5 11396 KDE hoja de cálculo
libreoffice-impress V:69, I:429 2646 LO presentación
calligrastage V:0, I:5 5339 KDE presentación
libreoffice-base V:26, I:121 5003 LO gestión de bases de datos
kexi V:0, I:1 7118 KDE gestión de bases de datos
libreoffice-draw V:72, I:430 10312 LO editor de gráficos vectoriales (dibujo)
inkscape V:15, I:112 99800 GNOME editor de gráficos vectoriales (dibujo)
karbon V:0, I:6 3610 KDE editor de gráficos vectoriales (dibujo)
dia V:2, I:22 3741 GTK editor de diagramas de flujos y otros diagramas
gimp V:50, I:252 19304 GTK editor de gráficos de mapas de bits (Pintura)
shotwell V:17, I:255 6263 GTK organizador de fotos digitales
digikam V:1, I:9 293 KDE organizador de fotos digitales
darktable V:4, I:13 30554 GTK mesa de luz y cuarto oscuro para fotógrafos
planner V:0, I:4 1394 GNOME gestión de proyectos
calligraplan V:0, I:2 19013 KDE gestión de proyectos
gnucash V:2, I:8 28928 GNOME finanzas personales
homebank V:0, I:2 1218 GTK finanzas personales
lilypond V:0, I:7 16092 - Compositor de música
kmymoney V:0, I:2 13937 KDE finanzas personales
librecad V:1, I:15 8963 Aplicación Qt sistema de diseño asistido por ordenador (CAD) (2D)
freecad I:18 36 Aplicación Qt sistema de diseño asistido por ordenador (CAD) (3D)
kicad V:3, I:14 236461 GTK software de diseño de circuitos impresos y esquemas electrónicos
xsane V:12, I:144 2339 GTK interfaz de usuario de escáner
libreoffice-math V:51, I:432 1898 LO editor matemático de fórmulas/ecuaciones
calibre V:6, I:28 63385 KDE gestión de bibliotecas y conversor de libros electrónicos
fbreader V:1, I:9 3783 GTK lector de libros electrónicos
evince V:92, I:314 941 GNOME visor de documentos (pdf)
okular V:40, I:123 17728 KDE visor de documentos (pdf)
x11-apps V:31, I:463 2460 Aplicación X pura xeyes(1), etc.
x11-utils V:192, I:566 651 Aplicación X pura xev(1), xwininfo(1), etc..

Los nombres por defecto de los directorios de usuario como "~/Desktop", "~/Documents", ..., utilizados por el entorno Desktop dependen de la configuración regional utilizada para la instalación del sistema. Puede restablecerlas al Inglés mediante:

 $ LANGUAGE=C xdg-user-dirs-update --force 

Luego mueve manualmente todos los datos a los directorios más nuevos. Ver xdg-user-dirs-update(1).

También puede asignarles cualquier nombre editando "~/.config/user-dirs.dirs". Ver user-dirs.dirs(5).

Hay disponibles muchas útiles fuentes escalables para los usuarios de Debian. Es asunto del usuario evitar la redundancia y cómo configurar partes de las fuentes instaladas para que se deshabiliten. De lo contrario, las opciones de fuente inútiles pueden saturar los menús de su aplicación GUI.

El sistema Debian usa la librería FreeType 2.0 para rasterizar muchos formatos de fuentes escalables para pantalla e impresión:

La siguiente tabla se ha compilado con la esperanza de ayudar a los usuarios a elegir las fuentes escalables apropiadas con una clara comprensión de la compatibilidad métrica y la cobertura de glifos. La mayoría de las fuentes cubren todos los caracteres latinos, griegos y cirílicos. La elección final de las fuentes activadas también puede verse afectada por tu estética. Estos tipos de letra pueden utilizarse para mostrarse en la pantalla o para la imprimirlas.

Tabla 7.4. Lista de notables fuentes TrueType y OpenType

paquete popularidad tamaño sans serif mono Información sobre la fuente
fonts-cantarell V:216, I:306 572 59 - - Cantarell (GNOME 3, pantalla)
fonts-noto I:153 31 61 63 40 Fuentes Noto (Google, multilingüe con CJK)
fonts-dejavu I:421 35 58 68 40 DejaVu (GNOME 2, MCM:Verdana, extendida Bitstream Vera)
fonts-liberation2 V:130, I:427 15 56 60 40 Liberation fonts para LibreOffice (Red Hat, MCMATC)
fonts-croscore V:20, I:40 5274 56 60 40 Chrome OS: Arimo, Tinos y Cousine (Google, MCMATC)
fonts-crosextra-carlito V:21, I:131 2696 57 - - Chrome OS: Carlito (Google, MCM:Calibri )
fonts-crosextra-caladea I:128 347 - 55 - Chrome OS: Caladea (Google, MCM:Cambria ) (solo en latín)
fonts-freefont-ttf V:76, I:218 14460 57 59 40 GNU FreeFont (extendido URW Nimbus)
fonts-quicksand V:123, I:438 392 56 - - Debian task-desktop, Quicksand (pantalla, sólo latín)
fonts-hack V:24, I:120 2508 - - 40 P Una tipografía diseñada para el código fuente Hack (Facebook)
fonts-sil-gentiumplus I:32 14345 - 54 - Gentium SIL
fonts-sil-charis I:27 6704 - 59 - Charis SIL
fonts-urw-base35 V:167, I:472 15560 56 60 40 URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu V:2, I:5 4339 58 - 33 P Fuentes de Ubuntu (pantalla)
fonts-terminus V:0, I:3 452 - - 33 Fuentes para terminales retro.
ttf-mscorefonts-installer V:1, I:49 85 ¿56? 60 40 Descargador de fuentes no libres de Microsoft (ver más abajo)

Aquí:

  • "MCM" significa "métrica compatible con fuentes proporcionadas por Microsoft"

  • "MCMATC" significa "métrica compatible con las fuentes proporcionadas por Microsoft: Arial, Times New Roman, Courier New"

  • "MCAHTC" significa "métrica compatible con las fuentes proporcionadas por Adobe: Helvetica, Times, Courier"

  • Los números en las columnas de tipo de fuente representan el ancho "M" relativo aproximado para la fuente del mismo tamaño de punto.

  • La "P" en columnas de tipo de fuente mono representa su facilidad de uso para la programación con "0"/"O" y "1"/"I"/"l" claramente distinguibles.

  • El paquete ttf-mscorefonts-installer descarga Microsoft "fuentes Core para la Web" e instala Arial, Times New Roman, Courier New, Verdana, ... . Estos datos de fuentes instaladas son datos no libres.

Muchas fuentes latinas libres tienen su linaje trazado hasta la familia URW Nimbus o Bitstream Vera.

[Sugerencia] Sugerencia

Si su configuración regional necesita fuentes que no están bien cubiertas por las anteriores, utilice aptitude para verificar los paquetes de tareas enumerados en "Tasks" -> "Localization". Los paquetes de fuentes enumerados como "Depends:" o "Recommends:" en la tarea de localización de paquetes son los principales candidatos.

Debian usa FreeType para rasterizar fuentes. Su infraestructura de selección de fuentes la proporciona la biblioteca de configuración de fuentes Fontconfig.


[Sugerencia] Sugerencia

Algunos paquetes de fuentes como fonts-noto* instalan demasiadas fuentes. También es posible que desee mantener algunos paquetes de fuentes instalados pero deshabilitados en una situación de uso normal. Se esperan múltiples glifos para algunos puntos de código Unicode debido a la unificación Han y los glifos no deseados pueden ser elegidos por la biblioteca Fontconfig no configurada. Uno de los casos más molestos es "U+3001 IDEOGRAPHIC COMMA" y "U+3002 IDEOGRAPHIC FULL STOP" entre los países CJK. Puede evitar esta situación problemática fácilmente configurando la disponibilidad de fuentes mediante la interfaz gráfica de usuario de Font Manager (font-manager).

También puedes enumerar el estado de la configuración de la fuente desde la línea de comandos.

  • "fc-match(1)" para la fuente predeterminada de fontconfig

  • "fc-list(1)" para las fuentes fontconfig disponibles

Puede configurar el estado de la configuración de la fuente desde el editor de texto, pero esto no es trivial. Ver fonts.conf(5).

Muchas aplicaciones en Linux, en su mayoría GUI, están disponibles en formatos binarios de fuentes que no son de Debian.

[Aviso] Aviso

Los archivos binarios de estos sitios pueden incluir paquetes propietarios de software no libre.

Hay alguna razón de ser para estas distribuciones de formato binario para los aficionados al Software Libre que usan Debian, ya que pueden acomodar un conjunto limpio de bibliotecas utilizadas para cada aplicación por el respectivo desarrollador, independiente de las suministradas por Debian.

El riesgo inherente de ejecutar archivos binarios externos se puede reducir mediante el uso del entorno sandbox que aprovecha las modernas funciones de seguridad de Linux (ver Sección 4.7.5, “Características de seguridad de Linux”).

  • Para binarios de AppImage y algunos sitios upstream, ejecútelos en firejail con manual de configuración.

  • Para binarios de FLATHUB, ejecútelos en Flatpak . (No requiere configuración manual.)

  • Para archivos binarios de Snapcraft, ejecutarlos en Snap . (No requiere configuración manual. Compatible con programas daemon.)

El paquete xdg-desktop-portal proporciona una API estandarizada para funciones comunes de escritorio. Ver portal de escritorio xdg (flatpack) y portal de escritorio xdg (snap) .


Esta tecnología de entorno de espacio aislado es muy parecida a las apps en el SO de los teléfonos inteligentes, donde las apps se ejecutan bajo accesos de recursos controlados.

Algunas grandes aplicaciones GUI, como los navegadores web en Debian, también usan tecnología de entorno de espacio aislado internamente para hacerlas más seguras.


Hay varias formas de conectarse desde una aplicación en un host remoto al servidor X, incluyendo xwayland en el host local.


El acceso al servidor X local de las aplicaciones locales que usan el protocolo central X se puede hacer localmente a través de un socket de dominio UNIX local. Esto lo puede autorizar el archivo de autoridad que contiene el cookie de acceso. La situación del archivo de autoridad se identifica mediante la variable de entorno "$XAUTHORITY" y la pantalla X se identifica mediante la variable de entorno "$DISPLAY". Dado que normalmente se configuran automáticamente, no se necesita ninguna acción especial, p. "gitk" como el que sigue.

username $ gitk
[Nota] Nota

Para xwayland, XAUTHORITY tiene valor como "/run/user/1000/.mutter-Xwaylandauth.YVSU30".

El acceso a la pantalla del servidor X local desde las aplicaciones remotas que usan el protocolo central X se admite mediante el uso de la función de reenvío X11.

Este método puede mostrar la salida de un cliente remoto X como si se estuviera conectado localmente conectado a través de un «socket« de dominio UNIX local.

Ver Sección 6.3, “Servidor de acceso remoto (SSH) y utilidades” para SSH/SSHD.

[Aviso] Aviso

Una conexión remota TCP/IP al servidor X está deshabilitada por defecto en el sistema Debian por razones de seguridad. No las habilites simplemente poniendo "xhost +" ni habilitando Conexión XDMCP, si puedes evitarlo.

Para recortar el texto en el portapapeles, ver Sección 1.4.4, “Operaciones con el ratón”.

Para recortar gráficos al portapapeles, ver Sección 11.6, “Herramientas para información gráfica”.

Algunos comandos de la línea de comandos también pueden manipular el portapapeles (PRIMARY y CLIPBOARD).