Capítulo 7. El Sistema de ventanas X

Tabla de contenidos

7.1. Paquetes importantes
7.2. Configurando el entorno de escritorio
7.2.1. Menú de Debian
7.2.2. Menú de Freedesktop.org
7.2.3. Menú de Freedesktop.org para el menú de Debian
7.3. La relación servidor/cliente
7.4. El servidor X
7.4.1. La (re)configuración del servidor X
7.4.2. Métodos de conexión al servidor X
7.5. Inicio del Sistema de Ventanas X
7.5.1. Inicio de sesión con gdm3
7.5.2. Configuración de la sesión X (método clásico)
7.5.3. Configuración de la sesión X (método nuevo)
7.5.4. Conexión de un cliente X remoto por medio de SSH
7.5.5. Seguridad de un terminal X a través de Internet
7.6. Tipos de letras en las ventanas X
7.6.1. Tipos de letras fundamentales
7.6.2. Tipos de letra adicionales
7.6.3. Tipos de letra CJK
7.7. Aplicaciones X
7.7.1. Aplicaciones de oficna X
7.7.2. aplicaciones de utilidades X
7.8. La trivialidad X
7.8.1. Portapapeles
7.8.2. Mapa de teclas y punteros asignados en X
7.8.3. Clientes X clásicos
7.8.4. El emulador de terminal X — xterm
7.8.5. Ejecutando clientes X como superusuario
[Aviso] Aviso

Este capítulo esta desactualizado ya que esta fundamentado en Debian 7.0 (Wheezy) publicado en 2013.

El sistema de ventanas X en un sistema Debian está basado en el código de X.Org.

Existen unos pocos meta-paquetes, que se crean para facilitar la instalación.


Para aspectos básicos sobre el sistema X, consulte X(7) y the LDP XWindow-User-HOWTO.

Un entorno de escritorio generalmente es una combinación de un gestor de ventanas X, un administrador de archivos y un conjunto de programas de utilidades.

Usted puede configurar un entorno de escritorio completo como GNOME, KDE,Xfce, o LXDE, desde aptitude bajo el menú de tareas.

[Sugerencia] Sugerencia

El menú de tareas puede estar desincronizado con el último estado de transición de paquete en Debian en los entornos «inestable»/«en pruebas». En tal situación, usted necesita deseleccionar algunos meta-paquetes enumerados bajo el meú de tareas de aptitude(8) para evitar conflictos entre paquetes. Cuando se encuentre deseleccionando los meta-paquetes, debe seleccionar ciertos paquetes que cumplen sus dependencias manualmente para evitar que sean borrados en forma automática.

De forma alternativa, usted puede configurar un entorno de escritorio sencillo sólo con un gestor de ventanas X como Fluxbox.

Para una relación de los gestores de ventanas y escritorios disponibles para el sistema X puede visitar la guía de gestores de ventanas para X..

El sistema de menú de Debian aporta una interfaz general tanto para programas en modo texto como con interfaz gráfica mediante la órden update-menus(1) del paquete menu. Cada paquete instala la información de su menú en el directorio /usr/share/menu. Consulte «/usr/share/menu/README».

Para acceder al menú tradicional de Debian desde el menú de Freedesktop.org de acuerdo con el entorno de los gestores de ventanas como GNOME y KDE, debe instalar el paquete menu-xdg.

El sistema de ventanas X se activa como una combinación de un servidor y un cliente. El significado para los términos servidor y cliente con respecto a los términos local y remoto requiere una aclaración aquí.


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 circunda el canal de comunicación entre procesos de red transparente de Xlib y mejora el desempeño para imagenes grandes.

Consulte xorg(1) para información sobre el servidor X.

Existen muchas maneras de obtener una instancia del «Servidor X« (del lado de la visualización) para aceptar conexiones de un «cliente de X« (del lado de la aplicación).


[Aviso] Aviso

No use conexiones TCP/IP remotas en redes inseguras para conectarse a un servidor X a menos que tenga una muy buena razón a menos que utilice cifrado. Un «socket« TCP/IP remoto sin cifrar es propenso a un ataque de tipo eavesdropping y se encuentra deshabilitado por omisión en el sistema Debian. Utilice «ssh -X».

[Aviso] Aviso

No use conexiones XDMCP en una red insegura. Envían los datos por medio de UDP/IP sin cifrar, siendo propenso a un ataque de tipo eavesdropping.

[Sugerencia] Sugerencia

LTSP significa Linux Terminal Server Project.

El Sistema de Ventanas X habitualmente empieza como una sesión X la cual es una combinación de un servidor X y los clientes X conectados. Para un sistema de escritorio normal, ambos se ejecutan en la propia estación de trabajo.

La sesión X se inicia de una de las siguientes maneras.

  • órden de inicio startx desde la línea de órdenes

  • Uno de los programas demonios gestores de visualización X *dm que empiezan al final del archivo de órdenes de inicio en el directorio «/etc/rc?.d/» («?» correspondiente a un nivel de ejecución)

[Sugerencia] Sugerencia

El archivo de órdenes de inicio del demonio de gestión de visualización comprueba el contenido del archivo «/etc/X11/default-display-manager»antes de ejecutarse realmente a si mismos. Esto asegura que solo un programa de demonio gestor de visualización X esta activo.

[Sugerencia] Sugerencia

Consulte Sección 8.4.5, “Especificación de la configuración regional en las Ventanas X” sobre las variables del entorno inicial del gestor de visualización X.

Fundamentalmente, todos estos programas ejecutan el archivo de órdenes «/etc/X11/Xsession». Entonces el archivo de órdenes «/etc/X11/Xsession» lleva a cabo la acción de run-parts(8) para ejecutar los archivos de órdenes en el directorio «/etc/X11/Xsession.d/». Esto es fundamentalemten una ejecución del primer programa el cual se encuenta en la orden siguiente por la órden interna exec.

  1. Si está definido, el archivo de órdenes tiene como parámetro de «/etc/X11/Xsession por el gestor de visualización X.

  2. Si está definido el archivo de órdenes «~/.xsession» o «~/.Xsession».

  3. Si esta definido, la órden «/usr/bin/x-session-manager».

  4. Si está definido la órden «/usr/bin/x-window-manager».

  5. Si esta definido, la órden «/usr/bin/x-terminal-emulator».

Este proceso tiene en cuenta el contenido de «/etc/X11/Xsession.options». El programa exacto al que apuntan estas órdenes «/usr/bin/x-*», se determina por el sistema de alternativas de Debian y se cambia por medio de «update-alternatives --config x-session-manager», etc.

Para más detalles consulte Xsession(5).

gdm3(1) le permite seleccionar desde su menú el tipo de sesión (o entorno de escritorio: Sección 7.2, “Configurando el entorno de escritorio”) y lenguaje (o configuración regional: Sección 8.4, “Configuración regional”). Mantiene el valor seleccionado por defecto en «~/.dmrc» como el siguiente.

[Desktop]
Session=default
Language=ja_JP.UTF-8

Fontconfig 2.0 fue creado en 2002 para proporcionar una biblioteca independiente de la distribución para la configuración y la personalización del acceso a los tipos de letras. Debian tras squeeze utiliza Fontconfig 2.0 para la configuración de sus tipos de letras.

Los tipos de letras que soporta el Sistema de Ventanas X puede resumirse como sigue.


Puede comprobar la configuración de los tipos de letras como se muestra.

  • ruta al núcleo X11 de los tipos de letras «xset q»

  • «fc-match» tipos de letras por defecto para fontconfig

  • «fc-list» para los tipos de letras disponibles de fontconfig

[Sugerencia] Sugerencia

«The Penguin and Unicode« es un buen resumen del Sistema de Ventanas X moderno. Otra documentación en http://unifont.org/ puede aportar información interesante sobre los tipo de letra Unicode, software que habilita Unicode, internacionalización y aspectos de usabilidad de Unicode en sistemas operativos free/libres/fuentes abiertas (FLOSS).

Existen dos familias fundamentales de tipos de letra para equipos.

  • Tipos de letra de mapas de bit (buenos para bajas resoluciones)

  • Tipos de letra de contorno/trazos (buenos para altas resoluciones)

Mientras que el escalado de tipos de letra de mapas de bit produce una imagen desenfocada, el escalado de tipos de letra de trazo produce imágenes suaves.

Los tipos de letra de mapas de caracteres de un sistema Debian normalmente son aportados por los comprimidos archivos de tipos de letra X11 pcf teniendo como extensión del archivo «.pcf.gz».

Los tipo de letra de trazo en el sistema Debian son aportados por como se muestra.

  • Archivos de tipos de letra Tipo 1 PostScript teniendo como extensión del archivo «.pfb» (archivo binario del tipo de letra) y «.afm» (archivo de métricas del tipo de letra).

  • Los archivos del tipos de letra TrueType (o OpenType) normalmente tienen una extension «.ttf».

[Sugerencia] Sugerencia

OpenType es un intento de sustituir tanto TrueType como Tipo 1PostScript.

Tabla 7.5. Tabla de correspondencia de los tipos de letra Tipo 1 PostScript

paquete del tipo de letra popularidad tamaño tipo de letra sans-serif tipo de letra serif tipo de letra monospace fuente del tipo de letra
PostScript N/A N/A Helvetica Times Courier Adobe
gsfonts I:698 4439 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L URW (tamaño compatible con Adobe)
gsfonts-x11 I:127 96 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L Tipo de letra X con soporte al tipo de letra Tipo 1 PostScript.
t1-cyrillic I:23 4884 Free Helvetian Free Times Free Courier URW extendido (tamaño compatible con Adobe)
lmodern I:142 33270 LMSans* LMRoman* LMTypewriter* tipos de letra escalable PostScript y OpenType basados en equipos modernos (desde TeX)

Tabla 7.6. Tabla de correspondencia de los tipos de letra TrueType

paquete del tipo de letra popularidad tamaño tipo de letra sans-serif tipo de letra serif tipo de letra monospace fuente del tipo de letra
ttf-mscorefonts-installer V:1, I:84 125 Arial Times New Roman Courier New Microsoft (tamaño compatible con Adobe) (Instala datos no libre)
fonts-liberation I:574 2093 Liberation Sans Liberation Serif Liberation Mono proyecto de Tipos de Letra Liberation (tamaño compatible con Microsoft)
fonts-freefont-ttf V:38, I:368 10747 FreeSans FreeSerif FreeMono GNU freefont (tamaño compatible con Microsoft)
fonts-dejavu I:500 39 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera con cobertura de Unicode coverage
fonts-dejavu-core V:314, I:745 2954 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera con cobertura de Unicode (sans, sans-bold, serif, serif-bold, mono, mono-bold)
fonts-dejavu-extra I:523 7217 N/A N/A N/A DejaVu, Bitstream Vera con cobertura de Unicode (oblique, italic, bold-oblique, bold-italic, condensed)
ttf-unifont I:23 16946 N/A N/A unifont GNU Unifont, con todos los códigos de caracteres imprimibles en Unicode 5.1 Básico Plano Multilingue (Basic Multilingual Plane, BMP)

[Sugerencia] Sugerencia

Tipos de letra DejaVu basados en el superconjunto de tipos de letra Bitstream Vera.

Aquí están algunos conceptos clave de los tipos de letra de caracteres CJK.


El nombre de los tipos de letras como «VL PGothic« con la «P« es un tipo de letra proporcional el cual corresponde al tipo de letra ««VL Gothic« con la anchura modificada.

Por ejemplo, la tabla de códigos Shift_JIS incluye 7070 caracteres. Pueden ser agrupados como se muestra.

  • JIS X 0201 caracteres de un único byte (191 caracteres, conocidos por el alias de caracteres de la mitad de anchura)

  • JIS X 0208 caracteres de doble byte (6879 caracteres, conocidos como caracteres de anchura completa)

Los caracteres de doble byte ocupan el doble de ancho en las terminales de consola los cuales utilizan tipos de letra de ancho modificado CJK. Para evitar este tipo de situaciones los tipos de letra de mapas de bits Hanzi (HBF) File con la extensión del archivo «.hbf» puede ser desplegados para los tipos de letras que contienen caracteres de un único byte y de doble byte.

Con el fin de ahorrar el espacio de los archivos de los tipos de letra TrueType, se pueden utilizar los archivos de colección de tipos de letras TrueType con la extensión de archivo «.ttc».

Para cubrir el complicado espacio de codificación de caracteres, el tipo de letra Tipo 1 CID clave PostScript es utilizado con los archivos CMAP empezando los mismos con «%!PS-Adobe-3.0 Resource-CMap». Raramente se utiliza pa la visualización normal de X pero si para visualizar PDS. (consulte Sección 7.7.2, “aplicaciones de utilidades X”).

[Sugerencia] Sugerencia

Debido a la unificación Han unification los múltiples glifos se esperan para algunos puntos de codificación Unicode. Unos de los más molestos son «U+3001 IDEOGRAPHIC COMMA« y «U+3002 IDEOGRAPHIC FULL STOP« cuya posición del carácter cambia entre paises CJK. Configurando la prioridad al tipo de letra centrado japones sobre el chino utilizando «~/.fonts.conf» puede dejar de ser molesto para los japoneses.

Aqui esta la relación de aplicaciones de utilidades fundamentales que conozco.


[Atención] Atención

El paquete poppler-data (que anteriormente no era libre, consulte Sección 11.4.1, “Ghostscript”) requiere ser instalado para los programas evince y okular que permiten visualizar documentos PDF CJK utilizando datos Cmap (Sección 7.6.3, “Tipos de letra CJK”).

[Nota] Nota

La instalación de 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 demaniados paquetes con funcionalidades solapadas desordenará su menú.

[Aviso] Aviso

Nunca comience un gestor de ventanas/sesión con la cuenta de superusuario escribiendo root en el gestor de sesión como gdm3 ya que se considera inseguro, incluso si piensa realizar tareas administrativas. La arquitectura entera de X se considera insegura si es ejecutada por el superusuario. Usted debe de utilizar el menor nivel de privilegios posible, como una cuenta de usuario corriente.

La manera fácil del ejecutar un cliente concreto de X, p. ej. «foo» como superusuario es utilizar sudo(8) etc. como se muestra a continuación.

$ sudo foo &
$ sudo -s
# foo &
$ gksu foo &
$ ssh -X root@localhost
# foo &
[Atención] Atención

Utilizar ssh(1) solo para este el propósito anterior es un auténtico desperdicio de recursos.

Para conectar un cliente X a un servidor X, tenga en cuenta lo siguiente.

  • Los valores de las variables de entorno de los usuarios antiguos «$XAUTHORITY» y «$DISPLAY» deben ser copiados a los nuevos..

  • El archivo que apunta al valor de la variable de entorno «$XAUTHORITY» debe ser leible por el nuevo usuario.

El paquete gksu (popularidad: V:50, I:266) es un paquete de interfaz gráfico de usuario GTK+ especializado para obtener privilegios de superusuario. Puede ser configurado para utilizar su(1) o sudo(8) como su motor dependiendo de la clave gconf de «/apps/gksu/sudo-mode» gconf key. Puede editar la llave gcong utilizando gconf-editor(1) (menú: «Aplicaciones« → «Herramientas del Sistema« → «Editor de la Configuración«).