X-windows / Entornos graficos

1 �Qu� es X-windows?

El protocolo X-windows fue desarrollado a mediados de los a�os 80 como respuesta a la necesidad de un interfaz grafico transparente sobre todo para sistemas Unix.

X-windows es el encargado de visualizar la informacion de manera grafica y es totalmente independiente del sistema operativo (los sistemas Unix/Linux no necesitan de X-windows para funcionar, pudiendo trabajar en modo texto). La gran diferencia entre X-windows y la interfaz grafica de otros sistemas operativos es que X-windows distribuye el procesamiento de aplicaciones, especificando un enlace cliente-servidor. El cliente X especificara "Que hacer" al servidor X, que se encargara de "Como hacerlo".

Pero dejemonos de teoria y pasemos a un ejemplo practico. La gran ventaja de X-windows es que el servidor X de una aplicacion y el cliente X donde trabajamos no tienen porque estar en la misma maquina. Podemos estar utilizando X-windows en nuestra maquina, conectarnos a otra remota, ejecutar un programa en esta maquina remota y utilizar/ver este programa en nuestra maquina local. Todo esto independientemente de la plataforma/sistema operativo que el ordenanor remoto utilice. Como veis las posibilidades son muchas y potentes.

     Cliente X
        |
        |
       Xlib
        |
        |
    Servidor X
        |
        |
Sistema operativo

2 �C�mo configuro las X-windows?

Para utilizar el sistema en modo grafico es necesario instalar X-windows en tu sistema. Existen servidores comerciales y bajo licencia GNU, en estos apartados nos basaremos en el X-windows bajo licencia GNU, XFree, ya que es el que se incluye en todas las distribuciones de Linux.

Una vez instaladas las X-windows tendremos que configurarlas para que funcionen en nuestro sistema. El fichero de configuracion del las X-windows se llama XF86Config y generalmente se encuentra en el directorio /etc/X11/.

Unos datos que teneis que saber antes de configurar X-windows son:

Antes de lanzar X-windows mediante el comando startx debemos asegurarnos de la correcta configuraci�n de los diferentes par�metros del mismo (teclado, rat�n, tarjeta de v�deo, etc.). Hay diferentes m�todos para hacer esto.

En primer lugar tenemos los programas de configuraci�n semi-autom�tica. Seg�n la distribuci�n de Linux que utilicemos tendremos a nuestra disposici�n una serie de programas que nos permitir�n realizar la configuraci�n de XWindow de una manera m�s o menos sencilla:

Estos programas nos preguntar�n cosas b�sicas sobre el teclado, el monitor, la videomemoria o la tarjeta de v�deo instalada (lo har�n cuando no sean capaces de detectarlas por s� mismos). Debemos responder siempre la opci�n m�s acertada y en cuanto a monitores, nunca especificar caracter�sticas superiores de las que disponemos. Un caso muy habitual en tarjetas muy nuevas es no encontrar un soporte exacto para los �ltimos chipsets, problema que se suele corregir acudiendo al soporte de framebuffer del kernel o esperando a que quienes trabajan en XFree86 obtengan por parte de los fabricantes (poco colaboradores) la informaci�n sobre c�mo programar sus tarjetas.

En ciertos casos tambi�n se nos puede preguntar si deseamos que el sistema arranque directamente en XWindow o incluso testear los diferentes modos de v�deo para ver que si son correctamente soportados.

Adem�s para que estos programas realicen una correcta configuraci�n el sistema debe estar ya correctamente configurado en cuanto a modo texto se refiere. Por ejemplo, Xconfigurator no activar� el teclado en castellano para XWindow si no hemos especificado que el idioma en que queremos usar nuestro Linux es este mismo, mediante la orden

  export LANG=es_ES
bien en la l�nea de comandos, o en el fichero /etc/profile. Cuando Xconfigurator detecta esta variable de entorno ya sabe qu� lenguaje utiliza el usuario y por tanto configurar� XWindow para el correcto uso del teclado en este lenguaje. Otras variables indican el tipo de rat�n, etc. y suelen ser correctamente especificadas por el programa de instalaci�n. En el caso de XF86Setup la configuraci�n permite una mayor participaci�n por parte del usuario, ya que en lugar de realizar una configuraci�n autom�tica proporciona una lista de opciones para cada apartado, de modo que si conocemos nuestro hardware es la mejor manera de configurar el sistema. Adem�s, a la hora de elegir resoluciones de v�deo, este programa permite especificar cual es la resoluci�n por defecto deseada mientras que Xconfigurator deja marcada la menor de ellas como "por defecto" (o la primera que seleccionemos).

El programa de configuraci�n xf86config es el m�s antiguo de todos, y realiza la configuraci�n mediante preguntas que se responder�n con teclado. Nos preguntar� la tarjeta de v�deo, monitor, rango de frecuencias del monitor, videomemoria y resoluciones de trabajo deseadas, as� como el mapa del teclado a utilizar (es 102 = Espa�a 102 teclas).

Como siempre, el m�todo m�s eficaz de configurar XWindow es directamente editando los ficheros de configuraci�n.Y es que otro m�todo de configuraci�n b�sico es sencillamente editar el fichero /etc/X11/XF86Config, que es en realidad lo que hacen todos los programas comentados anteriormente. En este fichero la configuraci�n est� dividida en secciones y mediante cualquier editor de texto llano es posible cambiar cualquier par�metro de XWindow.

Este fichero se divide en varias categor�as o secciones (todas ellas con m�s subopciones muy bien comentadas en dicho fichero de configuraci�n):

Una vez creado este fichero, entramos en XWindow mediante el comando startx.

Del entorno XWindow se puede salir en cualquier momento mediante la combinaci�n de teclas Ctrl+Alt+Borrar, o bien seleccionando LOGOUT en el men� del gestor de ventanas que utilicemos.

Para volver a las consolas de texto bastar� con utilizar la combinaci�n de teclas Ctrl+Alt+F1, +F2, etc (hasta F6 en las instalaciones por defecto). Para volver al terminal gr�fico se utiliza de F7 en adelante (Ctrl+Alt+F7, +F8, etc.).

Si durante la instalaci�n (o en la l�nea apropiada del fichero XF86Config) seleccionamos varias resoluciones de v�deo, es posible cambiar entre ellas mediante las teclas Ctrl+Alt+'+' y Ctrl+Alt+'-' (los signos del teclado num�rico).

Adem�s, si por defecto marcamos 8bpp (o 16 bpp) en las opciones, nada nos impide lanzar posteriormente XWindow en la profundidad de color deseada:

  [sromero@localhost]# startx -- -bpp 8
  [sromero@localhost]# startx -- -bpp 16
  etc.
Tambi�n es posible establecer la profundidad de color por defecto mediante una l�nea DefaultColorDepth = 16 en el fichero de configuraci�n XF86Config, secci�n Screen.

Por �ltimo, saber que podemos lanzar m�s de una sesi�n de XWindow simult�neamente (en las consolas accesibles desde Ctrl+Alt+F8, +F9, etc.), mediante:

  [sromero@localhost]# startx -- :1
  [sromero@localhost]# startx -- :2
  etc.

3 �C�mo cambio la resolucion por defecto?

En el fichero /etc/X11/XF86Config en la secci�n screen correspondiente al servidor que se est� utilizando actualmente, en la subsecci�n Display correspondiente a la Depth en que estemos trabajando, buscamos la linea:

  Modes "resoluci�n_1" "resoluci�n_2"...
Un ejemplo:
  Modes       "1024x768" "800x600" "640x480" "320x200"
Entonces ponemos la resoluci�n que queramos que sea por defecto de primera. Estas resoluciones puestas aqu� son entre las que podremos cambiar si queremos al pulsar Ctrl+ Alt+ '+'Ctrl+Alt+'-', una vez arrancado X-windows..

4 �C�mo cambio el escritorio virtual?

En el fichero /etc/X11/XF86Config, en la secci�n screen correspondiente al servidor que se est� utilizando actualmente, en la subsection Display correspondiente a la Depth en que estemos trabajando, a�adimos la l�nea:

  Virtual tama�o_x tama�o_y  #en p�xeles
Un ejemplo:
  Virtual     1024 768
Hay que puntualizar que si existe una resolucion definida de Modes mayor que el escritorio virtual, esta no se podra utilizar. Resumiendo, no se puede tener una resolucion de trabajo mayor que el escritorio virtual.

5 �C�mo cambio el numero de colores por defecto?

Hay dos maneras:

Mediante la l�nea de comandos:

  [user@localhost]# startx --bpp resoluci�n  (d�nde resoluci�n es 8, 16,24 � 32) 
Mediante el fichero de configuraci�n:

En el fichero /etc/X11/XF86Config, en la secci�n screen correspondiente al servidor que se est� utilizando actualmente, a�adimos la l�nea:

  DefaultColorDepth depth_que_queramos_utilizar
Un ejemplo:
  DefaultColorDepth 16
Un Depth con valor 8 significa que trabajaremos a 256 colores, uno con valor 32 truecolor. No todas las tarjetas graficas podran utilizar todos los Depth disponibles en todas las resoluciones, todo dependera de la tarjeta grafica y de la memoria que esta tenga.

6 �C�mo arranco directamente en X-windows?

En Linux es perfectamente posible pedir que el arranque del sistema se haga en modo gr�fico, y que el login y password se introduzcan directamente en una ventana XWindow para la posterior carga del gestor de ventanas habitual que use dicho usuario.

Es decir, podremos identificarnos y aparecer directamente bajo X sin necesidad de ejecutar startx.

Para arrancar directamente en X Window (o no hacerlo) todo el proceso de configuraci�n gira en torno a cambiar el runlevel (o nivel de ejecuci�n en que arranca Linux).

El runlevel es, dicho de una manera sencilla, el modo en que arranca Linux. Por defecto el runlevel suele ser el 2 � el 3, es decir, arranque en modo texto o consola. Para cada distribuci�n suele haber una lista de runleves y sus significados, aunque casi se puede decir que son similares para todas ellas. Para Redhat, por ejemplo, la lista es la siguiente:

  # Porci�n del fichero /etc/inittab
  # Default runlevel. The runlevels used by RHS are:
  #   0 - halt (Do NOT set initdefault to this)
  #   1 - Single user mode
  #   2 - Multiuser, without NFS (The same as 3)
  #   3 - Full multiuser mode
  #   4 - unused
  #   5 - X11
  #   6 - reboot (Do NOT set initdefault to this)
Como puede verse, el arranque normal por defecto para que puedan acceder usuarios a Linux es 2 (si no tenemos red) o 3 si queremos usar servicios de red, siendo normalmente este el runlevel por defecto. Como puede verse, X11 tiene asignado el runlevel al 5. Si cambiamos el runlevel por defecto para que arranque en el 5, nos aparecer�n directamente X Window.

Para cambiar este runlevel por defecto hay que editar el fichero /etc/inittab, y acudir a la siguiente l�nea:

  id:3:initdefault:
El valor numerico antes de initdefault indica el runlevel de arranque por defecto. Si lo cambiamos de 3 a 5, la pr�xima vez que arranquemos Linux arrancar� en X Window:
  id:5:initdefault:
Para que el proceso se ejecute correctamente debe tener instalado un gestor de arranque en runlevel 5, que es el programa encargado de pedir el login+passwd y arrancar el gestor de ventanas adecuado. Puede elegir entre xdm (el que viene por defecto con XWindow), kdm (version de kde del mismo) y gdm (versi�n aportada por gnome). Cada una de ellas dispone de ciertos ficheros de configuraci�n o ejecutables para cambiar el fondo del login, el lenguaje, gestor de ventanas, etc. Consulte los ficheros en los paquetes relacionados.

Haga "man runlevel" para mas informaci�n sobre runlevels.

En las �ltimas versiones de Redhat, el programa Xconfigurator le permite elegir si desea o no arrancar directamente en XWindow (�l mismo modifica el runlevel por defecto) mediante una simple pregunta a la que usted debe responder SI (Si desea arrancar en runlevel 5) o no (si desea arrancar en runlevel 3). Esta pregunta se le suele realizar al finalizar la selecci�n de resoluciones y antes de salir de Xconfigurator.

Una vez arranque en XWindow, puede volver a cualquier consola de texto mediante las teclas Ctrl+Alt+F1, Ctrl+Alt+F2, etc. (por defecto entre F1 y F6 tendr�s 6 consolas de texto), y volver a XWindow en cualquier momento mediante Ctrl+Alt+F7 en adelante.

En algunas distribuciones puede ser necesario indicarle a inittab d�nde est� el gestor de runlevel 5 que debe arrancar:

Para xdm:

  #Run xdm in runlevel 5
  x:5:respawn:/usr/X11R6/bin/wdm -nodaemon
Para gdm:
  x:5:respawn:/etc/X11/prefdm -nodaemon
Estas l�neas suelen ser autom�ticamente incluidas en el fichero por los rpm/deb instaladores de xdm, kdm y gdm. Consulte en la ayuda de dichos programas para m�s informaci�n.

7 �Qu� es un gestor de ventanas?

Un gestor de ventanas no es otra cosa que el conjunto de programas, ventanas, funcionalidades, .... que hacen posible que el usuario pueda interactuar con el sistema de forma grafica y no en modo texto.

Para usar un gestor de ventanas, hay que tener configurado un servidor X. Tambien hay que decir que el gestor de ventanas utilizado es totalmente independiente del servidor X utilizado.

  Gestor de ventanas
        |
        |
     Cliente X
        |
        |
       Xlib
        |
        |
    Servidor X
        |
        |
Sistema operativo
Al contrario que en otros sistemas operativos, en Linux no es necesario utilizar un servidor X - gestor de ventanas para usar el sistema. El sistema operativo y el conjunto servidor X - gestor de ventanas usado, son cosas totalmente diferentes, independientes entre si. Es mas, existen usuarios que trabajan en modo texto sin ningun problema y sin usar un interfaz grafico.

Existen numerosos y variados gestores de ventanas para Linux, unos mejores y otros mas desarrollados y estables. Es el usuario el que tiene que decidir que gestor satisface mejor sus necesidades, pudiendo incluso tener mas de uno instalado. Para aclarar un poco las cosas, podriamos decir que, si un ordenador es usado por varios usuarios, todos utilizaran el mismo servidor X pero no necesariamente el mismo gestor de ventanas.

8 �C�mo elijo el Gestor de ventanas que quiero arrancar?

Una vez configurado X se hace necesario decirle a XWindow qu� gestor de ventanas debe arrancar. Dicho de una manera sencilla, XWindow es la conjunci�n de 3 componentes:

As�, al dividir XWindow en estos 3 m�dulos se nos permite cambiar cualquiera de ellos para dotar a XWindow del aspecto o funcionalidades que deseemos. El entorno de ventanas no suele cambiarse nunca (es XFree86), y el servidor X tampoco, ya que �ste �ltimo es siempre el ejecutable apropiado para manejar nuestra tarjeta gr�fica (XFree86-SVGA, XFree86-S3, etc.), pero el �ltimo es totalmente seleccionable entre multitud de opciones y es lo que nos permite cambiar radicalmente el aspecto de XWindow. Cambiando el gestor de ventanas (o Window Manager) podemos cambiar pr�cticamente el funcionamiento completo de XWindow.

Gestores de ventanas hay muchos: kde, afterstep, gnome, WindowMaker, icewm, etc, y todos tienen sus respectivos ejecutables: startkde, afterstep, gnome-session, wmaker, icewm, etc. Toda esta explicaci�n se ha dado por un motivo muy sencillo: la posibilidad de elegir el Gestor de Ventanas deseado es parte de la configuraci�n activa de XWindow, y vamos a ver la manera de decirle a XWindow qu� gestor deseamos utilizar.

Para ello, simplemente debemos ir al directorio HOME del usuario en cuestion (/home/usuario) o de root (/root) y editar (cre�ndolo si no existe) el fichero de texto .xinitrc . En este fichero pondremos una l�nea que indicar� el Gestor de Ventanas que deseamos utilizar, en el formato:

  exec ejecutable_del_gestor_de_ventanas
Adem�s podemos utilizar l�neas de comentarios que comiencen por el car�cter '#' y que XWindow ignorar�:

Ejemplos de ficheros .xinitrc:

  # utilizar afterstep
  exec afterstep
otro ejemplo podr�a ser lanzar kde:
  # utilizar KDE
  exec startkde
As�, dependiendo del ejecutable que lancemos (startkde, gnome-session, icewm, wmaker, ctwm, fvwm2, wmaker, blackbox, etc.) podremos arrancar el WM deseado.

9 �D�nde consigo un nuevo gestor de ventanas?

Muchas distribuciones incluyen en sus CDes una serie de gestores de ventanas. Tambien os lo podeis bajar de sus respectivos servidores web:

Hosted by www.Geocities.ws

1