10.08.2010

Guía Arch Linux III: Configuración de X y Openbox

Luego de la instalación de archlinux y de su configuración post-instalación, queda como último paso levantar el servidor gráfico e instalar y configurar un escritorio. Al igual que las guías anteriores, nos seguimos centrando en aplicaciones ligeras para garantizar un aprovechamiento del espacio en disco y mantener un desempeño excelente para una amplia gama de equipos. Al final tendremos un escritorio Openbox completamente limpio más algunos programas muy útiles. Empecemos!



*** Instalación de Xorg ***
Antes de empezar a instalar los paquetes necesarios, debemos hacer una consideración en el caso de que nuestro Arch esté en una memoria usb como es mi caso. Lo primero es saber si vamos a movernos mucho con el sistema, es decir si lo vamos a iniciar en distintas máquinas que no siempre serán las mismas. Y luego es saber si tendremos una o varias máquinas como "predeterminadas" donde iniciaremos frecuentemente o la mayoría de los casos. En base a esto debemos decidir si queremos tener un soporte completo para todas las tarjetas gráficas, para unas pocas, o solo un soporte de video general mediante vesa y framebuffer. Con esta última opción por supuesto tenemos las limitaciones de aceleración 3d, resoluciones altas entre otras cosas, pero tendremos la seguridad de que no habrá equipo alguno que no inicie gráficamente. La segunda opción es más conveniente si sabemos con anterioridad que vamos a usar ciertas máquinas seguro, para las que no sabemos se usará vesa. Entonces, para saber que modelo posee la máquina hacemos un:
lspci | grep VGA
Por ejemplo en mi caso, se que usaré 3 máquinas de manera recurrente. Entonces veo que tarjetas poseen cada una y esos modelos instalo, además de vesa y framebuffer que garantizan video en todas las máquinas que no se tiene el modelo instalado. Así que una vez que sabemos que modelos de tarjetas queremos instalar ejecutamos:
pacman -Ss xorg-video | less
Esto nos mostrará la lista de drivers de video, por ejemplo xf86-video-sis. Anotamos los drivers que correspondan a los modelos que queremos instalar y procedemos a instalar los paquetes necesarios para el servidor X:
pacman -S xorg xf86-input-evdev xf86-input-keyboard xf86-input-mouse xf86-video-vesa xf86-video-fbdev xf86-video-vga
Con esto tenemos X básico, con soporte "hot-plugging" de dispositivos de entrada como teclados y ratónes (paquete evdev). Y con los controladores de video vesa, framebuffer y vga soporte a todo modelo de tarjeta que no tengamos los drivers específicos, instalados más adelante.

Ahora instalamos los controladores de cada modelo, por ejemplo en mi caso:
pacman -S xf86-video-sis xf86-video-intel
Si queremos soporte para aceleración 3D y usamos driver abiertos, instalamos los siguientes paquetes:
pacman -S mesa libgl
Si vamos a usar drivers propietarios podemos consultar este enlace.

Como paso opcional, si queremos tener soporte para los touchpad de las laptops instalamos lo siguiente:
pacman -S xf86-input-synaptics
Con esto estamos listo para probar el funcionamiento del servidor gráfico, desde la versión 1.8 xorg-server detecta y configura todo directamente de lo reconocido por udev y por esa razón no tenemos como en versiones anteriores que configurar el archivo xorg.conf ya que este se genera al vuelo. Sin embargo si hay como forzar la configuración de xorg mediante un archivo xorg.conf, o de manera más modular y eficiente mediante varios archivos dentro de /etc/X11/xorg.conf.d/. Más adelante veremos como hacer esto para configurar la distribución e idioma del teclado. Por ahora ejecutamos el siguiente comando para comprobar que se levante correctamente el servidor.
startx
Debemos tener una pantalla como esta:
44startx.png

Si todo ha salido bien, debemos poder escribir, mover el ratón, etc. Ejecutamos exit en las consolas para terminar la sesión y volver al tty. Si tenemos algún problema en esta parte de la wiki tenemos información detallada.

Ahora que sabemos que xorg se inicia correctamente, vamos a hacer un ajuste a la distribución e idioma del teclado. Para ello crearemos un archivo llamado 10-keyboard.conf en el directorio /etc/X11/xorg.conf.d/, pueden usar el editor de su preferencia como nano, yo uso vim:
cd /etc/X11/xorg.conf.d/
vim 10-keyboard.conf
Y una vez dentro escribimos lo siguiente:
Section "InputClass"
            Identifier                   "keyboard Defaults"
            MatchIsKeyboard    "yes"
           Option                       "XkbLayout" "es"
           Option                       "XkbModel" "pc105"
EndSection
Ahora el servidor X sabrá que debe usar un teclado de 105 teclas (pc105) con distribución para español (es). En la sección Xorg (español) tenemos más opciones y configuraciones sobre el servidor de video.

*** Instalación de Openbox ***
Ahora estamos listos para instalar el mejor gestor de ventanas: Openbox. :D
Openbox es un gestor de ventanas basado en el cumplimiento de estándares, rápido, liviano y muy extendible. Su instalación y puesta en marcha es muy simple como veremos ahora y cabe destacar que a pesar de su gran potencial, pesa tan solo 2,89Mbs. Primero instalamos los paquetes necesarios y recomendados para su uso y configuración posterior:
pacman -S openbox obconf obmenu
Ahora copiamos unos archivos que requiere openbox a la carpeta del usuario con los siguientes comandos, donde archtux es el nombre de usuario:
su - archtux
mkdir -p ~/.config/openbox
cd ~/.config/openbox
cp /etc/xdg/openbox/rc.xml .
cp /etc/xdg/openbox/menu.xml .
cp /etc/xdg/openbox/autostart.sh .
Eso es todo, openbox esta listo. Lo que queda a decisión propia es como queremos iniciar en el cada vez que inicie el sistema, se tiene 3 alternativas: la primera es de forma manual, es decir iniciando en nivel 3 (init 3) como se ha echo hasta ahora y ejecutar el comando que inicie la sesión gráfica; la segunda es que el sistema inicie directamente en nivel 5 (init 5) el cual permite cargar entorno gráfico e iniciar un gestor de sesiones como gdm; y la tercera es similar a la anterior solo que no se usa un gestor de sesiones sino se entra directamente al escritorio, en este caso openbox.

Al tratarse en mi caso de un sistema portable, hay que tener en cuenta la seguridad y la compatibilidad gráfica. La primera por obvias razones y la segunda porque si en algún equipo se dan errores al levantar el servidor gráfico, no quiero que esto me pase directamente además de que quiero tener la opción de decidir si realmente necesito entorno gráfico. Por esto, en esta guía se muestra como configurar el sistema para que inicie en init 3 y desde ahí ejecutar el comando xinit para el inicio de openbox. Para ello creamos el archivo .xinitrc en la carpeta personal del usuario. Si continuamos de los comandos anteriores, seguramente ya estamos en sesión del usuario (su - usuario), para saber nuestra ubicación podemos ejecutar pwd lo que nos daría algo como:
/home/archtux
Dentro de la carpeta personal del usuario creamos el archivo y escribimos la línea indicada después:
vim ~/.xinitrc
exec ck-launch-session dbus-launch --exit-with-session openbox-session
Ahora para iniciar openbox ejecutamos

xinit
Al hacerlo, por ahora no veremos nada más que un fondo oscuro y el cursor, si damos click derecho veremos el menu de openbox. Minimalista no? ;) Con un poco más de dedicación podemos llegar a tener un escritorio hermoso y exactamente como nosotros lo queramos y lo mejor de todo rápido. Habrán más entradas con respecto a como configurar openbox, instalación de otros componentes como paneles, etc. Pero si la emoción te invade, se puede leer este enlace donde hay muchas opciones para las diferentes configuraciones del escritorio.

Por ahora disponemos de dos herramientas para la configuración de openbox que instalamos anteriormente: obconf y obmenu. Damos click derecho para mostrar el menu, y en Terminals abrimos xterm, una terminal simple y liviana pero que hace su trabajo :) En la línea de comandos ejecutamos
obconf
Esto nos abrirá una aplicación como la mostrada abajo. En ella podemos cambiar el tema de las ventanas, reorganizar los botones superiores, modificar el comportamiento del ratón sobre las ventanas, entre otras cosas más.


La otra herramienta mencionada es la que nos sirve para configurar el menú, ejecutamos en la terminal:
obmenu

Aquí podemos editar las entradas del menú de openbox, añadir nuevas o eliminarlas. Cada vez que guardemos el menú, el programa recarga la información a openbox y podemos ver el cambio en ese momento. Información adicional sobre la configuración del menú en este y este enlace y algo muy interesante y útil pueden ser los "pipe menus" que despliegan información de manera dinámica como por ejemplo el clima o el contenido de directorios; en los enlaces anteriores podemos saber más sobre ellos.

Felicitaciones! ArchLinux instalado y Openbox listo!

De aquí en adelante podemos ir instalado las aplicaciones que deseemos según nuestros gustos y necesidades. en mi caso por ejemplo he instalado distintas aplicaciones siempre con el tamaño en mente y como dije en alguna ocasión sin sacrificar demasiado la usabilidad. Los primeros programas que instalé fueron:
thunar firefox conky rxvt nitrogen geany
Nitrogen es una pequeña herramienta para establecer el fondo de pantalla del servidor X o de cualquier gestor de ventanas que no tiene esta capacidad por si mismo como es el caso de openbox, existen otras como feh pero esta es a su vez muy agradable a la vista :)

Eso es todo! les pongo algunos enlaces ( varios en ingles :( ) donde se puede obtener información sobre openbox.

Página oficial: http://openbox.org/wiki/Main_Page
Guía de Urukrama: http://urukrama.wordpress.com/openbox-guide/
Entrada de la Wiki de ArchLinux-en español: http://wiki.archlinux.org/index.php/Openbox_%28Espa%C3%B1ol%29
Hilo de usuarios de openbox en el foro de ArchLinux-en: https://bbs.archlinux.org/viewtopic.php?id=45692
Lista de aplicaciones Lightweight: http://wiki.archlinux.org/index.php/Lightweight_Applications

En posteriores entradas compartiré los cambios que voy haciendo a mi ArchUSB sobre todo en lo referente a openbox ;)
No se lo pierdan!


Enlaces a las guías de instalación:


Saludos!