Tabla de Contenidos
El Sistema de Ventanas X es el subsistema gráfico disponible para NetBSD y muchos sistemas Unix (y no Unix). De echo es mucho más que eso: gracias a la utilización del protocolo X, el Sistema de Ventanas X es una “red de trabajo transparente” y puede ejecutar aplicaciones distribuidas (cliente-servidor). Esto significa, más o menos, que puede ejecutar una aplicación en un equipo (cliente) y mostrar de forma transparente la salida gráfica en otro equipo (servidor); transparentemente significa que no tiene que modificar la aplicación para alcanzar este resultado. El Sistema de Ventanas X es producido y mantenido por el Consorcio X y la versión actual es X11R6. El X preferido por NetBSD es XFree86, una redistribución libre de código abierto implementado en el Sistema de Ventanas X.
Por favor observe que el Sistema de Ventanas X es más bien el marco básico que se utiliza como base para el entorno de escritorios modernos como GNOME, KDE O XFCE, pero estos no son parte del Sistema de Ventanas X, y mientas que NetBSD viene con el Sistema de Ventanas X, este no incluye esos entornos de escritorios. Estos pueden ser añadidos fácilmente por el sistema pkgsrc, si los necesita.
Cuando empieza a utilizar X encontrará muchos temas nuevos que probablemente le confundirán al principio. Los principales elementos que usan X son:
Hardware de Video soportado por XFree86, es decir su tarjeta gráfica.
Un servidor X ejecutado sobre el hardware. El servidor X proporciona una forma estándar de abrir las ventanas, hacer gráficos (incluyendo fuentes de texto a mostrar), y detectar ratón/teclado/otras entradas. X es una red de trabajo transparente, para que pueda ejecutar clientes X sobre una máquina, y el servidor X (es decir, mostrarlo, con el hardware de gráfica) sobre otra máquina.
Un gestor de ventanas iniciado en el servidor X. El gestor de ventanas es esencialmente un cliente especial que permite controlar el emplazamiento de las ventanas. También “decora” las ventanas con el estándar “widgets” (normalmente estos proporcionan el movimiento de ventana, redimensión, iconificación, y quizás otras acciones). Un gestor de ventana también puede proporcionar fondos, etc. El gestor de ventanas puede también dejarle cerrar/terminar ventanas/programas cliqueando sobre sus ventanas, y etc.
Un entorno de escritorio (opcional). KDE y GNOME, por ejemplo, son escritorios: son un conjunto de software más o menos integrado diseñado para dar una gama bien definida de software y un interfaz más o menos común para cada uno de los programas. Estos incluyen algún tipo de navegador de ayuda, una “metáfora de escritorio” accede a su sistema de archivo, terminales habituales que reemplaza xterm, entornos de desarrollo de software, audio, dibujo/animación, visores, etc.
Cualquier otra aplicación (clientes X de terceros) que tenga. Estos se dirigen al servidor X y al gestor de ventana. A no ser que el gestor de ventana sea parte del escritorio (si lo hay), el escritorio probablemente no se involucre en lo que hacen la mayoría de esas aplicaciones. (Sin embargo, por ejemplo, GNOME puede detectar que ha instalado GIMP, por ejemplo, y así ofrecer un menú para ejecutar el GIMP).
En resumen, para usar un entorno gráfico necesita:
El sistema XFree86
Un gestor de ventanas (XFree86 ya viene con un gestor de ventanas muy básico llamado twm).
Si prefiere un entorno más sofisticado probablemente quiera instalar también un escritorio, aunque este no es necesario. Los escritorios tienen algunas características bonitas que son provechosas para los usuarios que vienen de entornos Macintosh o MS-WINDOWS (el escritorio KDE, por ejemplo, es muy similar al estilo de MS-WINDOWS).
Por ahora debería tener claro que los escritorios como GNOME y KDE no proporcionan servidores X. Estos se ejecutan sobre un servidor X existente suministrado por XFree86. KDE y GNOME pueden hacer uso de su propio gestor de ventanas o de un gestor de ventanas instalado por separado.
Normalmente, puede ejecutar a lo sumo un gestor de ventana a la vez sobre un servidor X. (pero puede ejecutar múltiples servidores X en un simple ordenador). Si no está ejecutando un gestor de ventanas de su elección e inicia KDE/GNOME, entonces ese entorno de escritorio ejecutará un gestor de ventana para usted.
Si no ha elegido una configuración mínima durante la instalación, X está X ya está instalado y listo para ejecutarlo en su ordenador. Dependiendo de la plataforma de hardware exacta donde ejecuta NetBSD y X, puede o no necesitar configurar su servidor X. Mientras la mayor parte de puertos de la estación de trabajo (sparc, pmax,...) funcionarán sin la configuración remota si utiliza correctamente el servidor X, que está vinculado generalmente a /usr/X11R6/bin/X.
En PCs (i386, amd64), Shark y algunas otras plataformas, tendrá que personalizar primero el servidor X creando el correspondiente archivo /etc/X11/XF86Config. Para tener una idea de que contiene este archivo, examine el archivo /usr/X11R6/lib/X11/XF86Config.eg. La estructura de configuración del archivo está descrita formalmente en XF86Config(5), que puede ser examinado con el siguiente comando:
#man XF86Config
Antes de la configuración del sistema es aconsejable leer con cuidado la documentación encontrada en /usr/X11R6/lib/X11/doc: Hay varios LEEME (README) para las tarjetas de gráfica, para el ratón y hasta uno especifico de NetBSD (README.NetBSD). Recomiendo empezar leyendo QuickStart.doc. Podría pensar que otros sistemas le permiten comenzar más rápidamente y con menos esfuerzo, pero leer esta documentación no es una perdida de tiempo: el conocimiento de X y de su configuración le resultara útil en futuras ocasiones y será capaz de entender más de su hardware (y también del software ).
Puede crear el archivo /etc/X11/XF86Config manualmente con un editor o puede generarlo automáticamente con un programa de configuración interactivo. Los mejores programas conocidos son xf86config, XF86Setup (XFree86 3.x) y xf86cfg (XFree86 4.x). Tanto Xf86config como xf86cfg son instalados por defecto con X; XF86Setup es una herramienta gráfica de configuración que puede ser instalada desde pkgsrc.
Puede encontrar que un acercamiento mixto es mejor: primero crear el XF86Config con uno de los dos programas y luego chequearlo y personalizarlo manualmente con un editor. Por ejemplo para el xf86cfg basado en GUI:
#xf86cfg# configúrelo a su gusto, y al final guárdelo en /etc/X11/XF86Config#vi /etc/X11/XF86Config
o orientado por pantalla, no gráfico xf86config:
#xf86config# configúrelo s su gusto, y al final guárdelo en /etc/X11/XF86Config#vi /etc/X11/XF86Config
La interfaz de los dos programas es diferente pero ambos requieren el mismo conjunto de información:
el tipo de ratón y el dispositivo de ratón utilizado.
El tipo de teclado y su disposición.
El tipo de tarjeta gráfica.
El tipo de monitor.
Antes de la configuración del sistema debería recopilar la información requerida.
La primera cosa a comprobar es el tipo de ratón que está utilizando (por ejemplo, serie o PS/2,..) y el dispositivo de ratón (por ejemplo, wsmouse requiere un protocolo diferente). Si está utilizando un ratón por el puerto serie, elija el protocolo requerido y especifique el puerto serie al que está conectado.
Por ejemplo, PS/2 y USB por lo general son asociados al dispositivo wsmouse, y como tal puede usar:
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "wsmouse"
Option "Device" "/dev/wsmouse"
EndSection
Si utiliza un ratón con rueda de desplazamiento, los desplazamientos hacia arriba y hacia abajo son manejados como cuando se presionan los botones 4 y 5 de un ratón (respectivamente). Muchas aplicaciones con xterm o Firefox manejan estas presiones de botones. Para habilitar la rueda de desplazamiento, añada las siguientes líneas en la sección "Indicada":
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "wsmouse"
Option "Device" "/dev/wsmouse"
Option "ZAxisMapping" "4 5"
EndSection
Para un ratón serie en el primer puerto serie, ponga algo como:
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/tty00"
EndSection
En este ejemplo, /dev/tty00 es el primer puerto serie, use /dev/tty01 para el segundo y así sucesivamente. El protocolo "auto" intentará detectar el protocolo de su ratón serie automáticamente. Si este no funciona, pruebe con valores como "Microsoft", "IntelliMouse" o "Logitech", vea /usr/X11R6/lib/X11/XF86Config.eg y /usr/X11R6/lib/X11/doc/README.mouse para más información.
Incluso si ya ha configurado su teclado para wscons, necesita configurarlo también para X, al menos si quiere una distribución distinta a la Estado Unidense.
Una solución fácil es usar el protocolo XKB, especificando el tipo y disposición del teclado.
Esta es una de las áreas en que esos programas de configuración son débiles y puede querer elegir el estándar y modificar manualmente el archivo generado:
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc102"
Option "XkbLayout" "es"
Option "XkbOptions" "ctrl:nocaps"
EndSection
Si quiere utilizar las teclas “Windows” de su teclado, utilice “pc105” en lugar de “pc102” para XkbModel.
Es muy importante especificar correctamente los valores de la frecuencia horizontal y vertical del monitor: una definición correcta protege el monitor de daños derivados de una configuración incompatible de tarjeta gráfica. Esta información puede encontrarse en el manual del monitor. En el directorio de la documentación de X hay un archivo que contiene las configuraciones de muchos monitores; estas pueden ser utilizadas como punto de partida para personalizar su configuración.
La tarjeta gráfica puede ser elegida de la base de datos del programa de configuración. El programa tendrá cuidado con todo lo que necesite instalar. La tarjeta gráfica es soportada ligeramente de forma distinta entre XFree86 3.x y 4.x.
XFree86 3.x tiene servidores múltiples para diferentes categorías de chipsets de tarjetas gráficas. XFree86 4.x tiene solamente un servidor. Diferentes chipsets gráficos son soportados por módulos de driver independientes de la plataforma, que se pueden encontrar en /usr/X11R6/lib/modules/drivers.
Cuando ha seleccionado la tarjeta gráfica correcta debe escoger el servidor X para la tarjeta. Normalmente, los programas de configuración pueden determinar automáticamente el servidor correcto, pero algunas tarjetas gráficas pueden ser soportadas por mas de un servidor (por ejemplo, S3 Virge es soportada por los servidores SVGA y S3V); en este caso, estudie la documentación de los servidores para determinar cual necesita: servidores diferentes normalmente tienen capacidades diferentes y un grado diferente de soporte para la tarjeta gráfica.
Cuando salga del programa de configuración, este crea el archivo /etc/X11/XF86Config, que puede ser examinado más adelante y modificado de forma manual.
Antes de arrancar X debe:
Comprobar que el enlace simbólico /usr/X11R6/bin/X apunta al servidor X correcto:
#ls -l /usr/X11R6/bin/X
Verificar que la configuración está correcta. Lance:
#X -probeonly
y examinar detenidamente la salida que muestra.
Ahora puede arrancar X con el siguiente comando:
#startx
Si X no se inicia probablemente haya algún error en el archivo de configuración.
Si X se inicia pero no funciona como esperaba (por ejemplo, no puede mover el puntero del ratón) puede salir rápidamente con la combinación de teclas Ctrl+Alt+Barra Espaciadora (no está disponible en todos los puertos). Si todo funciona correctamente permanecerá en el entorno X con el gestor de ventanas por defecto (twm): aunque sea un gestor de ventanas simple muchos usuarios consideran que es suficiente para sus necesidades. Si quiere un gestor de ventanas altamente configurable con muchas pijaditas, tiene muchas opciones en la colección de paquetes, vea Section 8.9, “Otros gestores de ventanas” abajo.
Para empezar a personalizar X, intente poner el siguiente comando en un xterm para cambiar el color de fondo:
#xsetroot -solid DarkSeaGreen
El aspecto del entorno X puede ser personalizado de varias formas. El método más fácil es copiando el archivo por defecto .xinitrc en su directorio home y modificarlo, o crear simplemente, uno nuevo desde el principio. Por ejemplo:
$cp /usr/X11R6/lib/X11/xinit/xinitrc $HOME/.xinitrc$vi $HOME/.xinitrc
El siguiente ejemplo muestra como iniciar el gestor de ventanas (twm), abriendo una instancia del programa xclock en la parte inferior derecha de la ventana y dos ventanas xterm. El color “Bisque4” es utilizado para el fondo.
La primera parte del archivo es la misma ... # Iniciar algunos programas agradables twm & xclock -geometry 50x50-1-1 & xterm -geometry 80x34-1+1 -bg OldLace & xsetroot -solid Bisque4 & exec xterm -geometry 80x44+0+0 -bg AntiqueWhite -name login
Con este tipo de configuración, para salir de X debe cerrar el último xterm (una con el titulo “login” - solamente escriba "exit" en ella, por ejemplo).
Incluso con esta simple configuración X tiene un aspecto considerablemente más agradable. Para darle aún un mejor aspecto al entorno puede instalar algún programa de utilidades de la colección de paquetes. Por ejemplo:
Muestra todos los colores definidos en rgb.txt. Úselo para elegir colores de fondos para la ventana raíz o para xterms.
Le deja usar un mapa de píxeles para el fondo.
guarda las pantallas X.
Ningún escritorio puede estar completo sin este paquete, que muestra un mapa de bit móvil del demonio de BSD en dos tamaños seleccionables..
Si no le gusta twm, que es un gestor de ventanas muy simple que carece de muchas funcionalidades y no es muy configurable, puede elegir otro gestor de ventanas de la colección de paquetes. Algunos de los más populares son: fvwm2, olwm/olvwm (Gestor de Ventanas de Aspecto Abierto), WindowMaker, Enlightenment, AfterStep.
El resto de esta sección describe un ejemplo de instalación de WindowMakera. WindowMaker es un gestor de ventanas muy agradable y altamente configurable. Para añadir el programa será utilizado el paquete precompilado windowmaker-0.60.tgz, el cual depende de otros paquetes que deben ser instalados. Como siempre, tanto pkg_add como make install instalará automáticamente los paquetes necesarios, así no hay necesidad de examinar las dependencias de forma manual.
#cd /usr/pkgsrc/x11/windowmaker#make depends-listxpm-3.4k jpeg-6b pkglibtool-1.2p2 giflib-3.0 libproplist-0.9.1 tiff-3.5.2
Puede ver también las dependencias con el comando siguiente:
#pkg_info -f windowmaker-0.61.0.tgz | grep depends
Después de añadir los paquetes requeridos, windowMaker y algunos temas preconfigurados pueden ser instalados:
#pkg_add windowmaker-0.61.0.tgz wmthemes-0.6x.tgz
WindowMaker está instalado ahora; para iniciarlo debe modificar su archivo .xinitrc y/o .xsession: sustituya la línea que llama a twm por la línea que llama a wmaker. Por ejemplo:
# Iniciar algunos programas agradables # Iniciar WindowMaker wmaker & xclock -geometry 50x50-1-1 & xdaemon2 -geometry +0-70 & ...
En este ejemplo el programa xdaemon es iniciado también automáticamente.
Antes de iniciar WindowMaker el programa de configuración debe ser ejecutado:
$wmaker.inst$startx
En todos los ejemplos anteriores, eligiendo “Quit” o similar desde el menú del gestor de ventanas salíamos del gestor de ventanas, pero no registra su salida como puede esperar. Para hacerlo así, ejecute el gestor de ventanas al final y sin & en su .xinitrc:
... xclock -geometry 50x50-1-1 & xdaemon2 -geometry +0-70 & wmaker # no & here!
Si siempre utiliza X para su trabajo y lo primero que hace después de identificarse ejecuta startx, puede establecer una identificación gráfica para su equipo que lo haga automáticamente. Es muy fácil:
Cree el archivo .xsession en su directorio home. Este archivo es similar a ~/.xinitrc y en efecto, pude ser vinculado más tarde.
$cd $HOME$ln -s .xinitrc .xsession
Modifique /etc/rc.conf:
xdm=YES xdm_flags="" # x11 display manager
Si lo prefiere, puede añadir la siguiente línea al final del archivo /etc/rc.local en lugar de modificar rc.conf:
/usr/X11R6/bin/xdm
Este método puede ser utilizado para iniciar, por ejemplo, kdm o gdm en vez de xdm.
Los archivos de configuración para xdm están en el directorio /usr/X11R6/lib/X11/xdm. En el archivo Xservers X es iniciado por defecto sobre “vt05”, que es la consola a la que entra vía “Ctrl+Alt+F5”; si quiere utilizar otra consola virtual en su lugar, este es el lugar correcto para modificar la configuración. Para evitar la contención entre getty y xdm es aconsejable iniciar xdm sobre un terminal virtual donde getty está desactivado. Por ejemplo si en Xservers tiene:
:0 local /usr/X11R6/bin/X :0 vt04
en /etc/ttys debería tener
ttyE3 "/usr/libexec/getty Pc" vt220 off secure
(Por favor observe que vt04 corresponde a ttyE3 porque vt inicia en 1 y ttyE inicia en 0).
Si quiere un aspecto agradable para su pantalla de identificación xdm, pude modificar el archivo de configuración de xdm. Por ejemplo, para cambiar el color de fondo puede añadir la siguiente línea en el archivo Xsetup_0:
xsetroot -solid SeaGreen
En vez de configurar el color, puede poner una imagen de fondo utilizando el programa xpmroot. Por ejemplo:
xpmroot /path_to_xpm/netbsd.xpm
Si experimento un poco con el archivo de configuración puede llegar ha construir a una ventana de identificación con un aspecto muy agradable. Observe que otros gestores gráficos como gdm y kdm ofrecen diferentes formas de configuración, normalmente basados en GUI.