Fink

Ejecución de X11 - 4. El arranque de XFree86

4.1 Darwin

En Darwin puro, XFree86 se comporta como en cualquier otro Unix. La forma normal de arrancar es via startx desde la consola; que arranca el servidor y algunos clientes iniciales, tales como el gestor de ventanas y un emulador de terminal con una shell. En Darwin puro no es necesario especificar parámetros, así que basta con teclear:

startx

Se puede personalizar qué es lo que se arranca a través de varios ficheros en tu directorio raíz. .xinitrc controla qué clientes se arrancan. .xserverrc controla opciones de servidor, incluso arrancar otro servidor. Si hay problemas (normalemnte, el problema es obtener una pantalla vacía o que XFree86 te mande de vuelta a la consola), puedes arrancar sin problemas moviendo estos ficheros fuera de su localización. Si startx no encuentra los ficheros, usará modo seguro de arranque, el cual debería funcionar siempre.

Alternativamente, puedes arrancar el servidor directamente mediante alguna de las opciones XDMCP, como ésta:

X -query remotehost

Los detalles pueden obtenerse del manual de Xserver.

Finalmente, está la opción xdm; lee su manual para los detalles.

Nota: Si estás ejecutando Mac OS X anterior a Panther, puedes teclear >console en la ventana de inicio y obrtendrás una consola de texto equivalente a Darwin puro. Si no ves un campo donde entrar un nombre de usuario en la ventana de inicio, teclea la primera letra de cualquier nombre de usuario, y a continuación opción-enter. Puedes usar entonces todos los métodos descritos anteriormente, con la excepción de xdm.

Nota: En Mac OS X Panther, no se puede arrancar XFree86 desde la consola de inicio.

4.2 Mac OS X + XFree86 4.x.y

Hay básicamente dos formas de arrancar XFree86 bajo Mac OS X. Una es hacer doble clic en la el icono de la aplicación XDarwin.app, situada en la carpeta Aplicaciones, o en el icono de un alias de esta aplicación (en el dock, p.e.). Esto te permitirá escoger entre modo de pantalla completa o modo rootless en un diálogo al arrancar. Puedes deshabilitar este diálogo y poner XDarwin permanentemente en le modo de funcionamiento que prefieras en el menú de Preferencias.

Antes de 4.2.0 arrancará en modo pantalla completa automáticamente y no hay ninguna forma de obtener el modo rootless mediante doble clic en la aplicación.the

La otra forma de arrancar XFree86 bajo Mac OS X es mediante el comando startx desde Terminal.app. Si arrancas el servidor de esta forma, puedes decirle que se ejecute en paralelo con Quartz. Esto se hace pasándole la opción -fullscreen así:

startx -- -fullscreen

Eso arrancará el servidor en modo pantalla completa mas los clientes en tu .xinitrc.

NOTE: antes de 4.2, -quartz era usado para el modo de pantalla completa.

Si tienes un servidor que soporta el modo rootless, puedes arrancar en ese modo con la opción -rootless:

startx -- -rootless

La opción -quartz ya no selecciona el modo de pantalla completa, sino que usa el modo por defecto en las preferencias.

A partir de la versión 4.3, si usas startx sin argumentos, obtendrás el cuadro de diálogo de inicio.

4.3 El fichero .xinitrc

Para arrancar algunos clientes X con el servidor X, se usa un fichero de nombre .xinitrc en el directorio raíz. Puede usarse, p.e., para arrancar el gestor de ventanas y algunos terminales X o un entorno de escritorio GNOME. El fichero .xinitrc es un script de shell que contiene los comandos necesarios para ello. Nohyace falta poner el conocido #!/bin/sh en la primera línea ni poner el bit de ejecutable en los permisos; xinit sabe como ejecutar este fichero en una shell.

Si no hay fichero .xinitrc en tu directorio raíz, XFree86 usará el fichero por defecto: /private/etc/X11/xinit/xinitrc. Es posible utilizar este como punto de partida para empezar a editar tu propio .xinitrc:

cp /private/etc/X11/xinit/xinitrc ~/.xinitrc

Si estás usando Fink, debes poner source init.sh justo al principio para garantizar una definición correcta de tu entorno.

Puedes poner cualquier tipo de comandos en un fichero .xinitrc, pero hay que tener cuidado con algunos puntos. Primero, el shell que interpreta el fichero esperarará por defecto que cada programa finalice antes de empezar el siguiente. Eso significa que si esperas que varios programas funcionen en paralelo, hay que avisárselo al shelll poniendolos "en último plano" ("background") añadiendo un & al final de la línea.

En segundo lugar, xinit espera que el script .xinitrc termine e interpreta el final como "la sesión ha terminado, ahora debo matar al servidor X también". Esto significa que el último comando usado en en tu fichero .xinitrc no puede ser ejecutado en último plano y debe ser un programa de larga vida. Por eso suele usarse el gestor de ventanas para este propósito. De hecho, muchos gestores de ventanas asumen que xinit les espera para terminar y usan eso para hacer funcionar el item de menú "Fin de sesión" ("Log out"). (Nota: Para ahorrar algo de memoria y ciclos de CPU, puedes pone exec al principio de la última línea, como en el ejemplo que sigue)

Un simple ejemplo que arranca GNOME:

. /sw/bin/init.sh
exec gnome-session

Un ejemplo más complejo para usuarios de bash que apaga las alertas de X11, arranca algunos clientes y finalmente ejecuta el gestor de ventanas Enlightenment:

. /sw/bin/init.sh

xset b off

xclock -geometry -0+0 &
xterm &
xterm &

exec enlightenment

Para arrancar GNOME 2.2 bajo X11 de Apple, usa la siguiente secuencia:

. /sw/bin/init.sh
quartz-wm --only-proxy &
metacity &
exec gnome-session

Para GNOME 2.4 bajo X11 de Apple, metacity arranca automáticamente y por lo tanto la secuencia se reduce a:

. /sw/bin/init.sh
quartz-wm --only-proxy &
exec gnome-session

Para arrancar KDE 3.2 (version < 3.2.2-21) bajo X11 de Apple:

. /sw/bin/init.sh
export KDEWM=kwin
quartz-wm --only-proxy &
/sw/bin/startkde >/tmp/kde.log 2>&1

Y finalmente, para arrancar la última versión inestable de KDE bajo X11 de Apple:

. /sw/bin/init.sh
/sw/bin/startkde >/tmp/kde.log 2>&1

Siguiente: 5. Xtools