Antes de seguir con XMonad sobre Debian estable como había prometido en el post anterior, quiero hacer un paréntesis para que podamos hacer una buena elección y nos ahorremos tiempo y trabajo en conseguir que nuestros escritorios trabajen como deseamos. Así que comencemos con unas recomendaciones generales.
Antes de empezar
- Lee el manual. Muchas de las veces cometemos un error fatal al no leer los manuales. Casi todos los gestores de mosaico te van a recibir con una cálida pantalla en blanco la primera vez que los corras. No te asustes. Si ya llegaste hasta aquí y no sabes que hacer, presiona <Ctrl-Alt-F1> y teclea man inserte-aquí-su-gestor-de-ventanas. Todos los que he probado traen una descripción muy útil de como usarlos básicamente. Para volver al entorno gráfico, presiona <Ctrl-Alt-F7> y listo. Aunque esto lo debiste hacer antes de correr cualquier cosa.
- No le tengas miedo a la terminal. Vas a usarla mucho, tanto que hay un atajo para ella desde el principio en casi todos. Te recomiendo rxvt-unicode, más adelante explicaré el por qué.
- No copies y pegues archivos de configuración sin revisarlos. Esto es vital, por que estas configuraciones están pensadas para aquel que las usa, no para ti. Sin embargo, algo interesante es observarlas detenidamente y ver que cosa te es útil. Yo sólo recomiendo el copy & paste cuando son archivos muy pequeños, generalistas o porciones de código.
- Hazlo con calma. Difícilmente te va a quedar el entorno a la primera. Vas a sufrir errores con tu manejador de ventanas, eso tenlo por seguro. Por eso, mantén a salvo el entorno gráfico que ya tengas andando y asegúrate de saber volver a él en caso de emergencia. Más adelante explico cómo.
¿Qué vamos a necesitar?
- Una distribución de Linux cualquiera. Hasta ahí, sea cual sea, todo bien.
- Un editor de texto, preferentemente que se pueda ejecutar en terminal.
- Un emulador de terminal. El que traen los entornos de escritorio basta.
- Ganas.
Las alternativas
Ahora comienza lo bueno, vamos a elegir un gestor de ventanas entre las infinitas alacenas del universo. Así que responde a esta pregunta, pero sólo con una palabra: ¿Qué haces en tu computadora?. ¿Programas? ¿Navegas? ¿Escribes? ¿Lees?. Una vez respondida esta pregunta, te hago una recomendación: Busca un gestor que se programe en el lenguaje de programación que estés usando. También revisa si el gestor está disponible en tu distribución. Algunos son tan nuevos que no. Comenzamos.
Awesome
Configuración: Lua
A favor: Awesome evolucionó a partir de DWM, hace ya algunos años. A partir de la rama 3, comenzó a configurarse a partir de Lua, un lenguaje de extensión muy poderoso. Es innovador, ya que es el primero en usar las nuevas bibliotecas XCB en detrimento de las Xlib. Tiene una fuerte comunidad de usuarios. Al basarse en Lua, obtiene una biblioteca estándar y bibliotecas de terceros que extienden su funcionalidad, como widgets. Tiene su propio sistema de notificación, como notify-osd; igualmente configurable en Lua. Soporta botones. Tiene bastantes layouts para el mosaico por defecto.
En contra: Muchos usuarios no soportaron el cambio a Lua. Los archivos de configuración son extensos y para reducir su tamaño hay que saber algo de Lua. A veces tiene problemas con Xcompmgr. Si rompes la configuración vuelves a la que estaba por defecto, no conserva la anterior.
Notas: No usa escritorios virtuales, si no etiquetas. Se puede configurar para que una aplicación se ejecute en determinada etiqueta.
XMonad
Configuración: Haskell
A favor: Aunque suene pretencioso, el hecho de que se desarrolle en Haskell lo hace menos propenso a bugs y errores humanos y es sumamente estable. Si la configuración (en este caso, se recompila el entorno) falla, mantiene la anterior y te manda un mensaje de que pasó. Los archivos de configuración son mínimos y fáciles de comprender. Se lleva bien con casi todo.
En contra: La dependencia de Haskell es su principal problema. Descargarlo implica tener que bajar el paquete haskell-platform, o al menos ghc, que si son algo grandes. Haskell puede ser (y es), algo críptico si estás acostumbrado a la programación imperativa y no a la funcional (para rápido: ve y haz esto contra esto es esto, ve a evaluarlo). No soporta botones, hasta donde sé. Tiene pocos layouts disponibles por defecto.
Notas: Se puede configurar fácilmente para que entre en un entorno de escritorio completo. Creo, más no aseguro, que entra directo a Gnome y Xfce. Muchas de sus extensiones pueden instalarse directamente desde hackage, el repositorio de Haskell, mediante un simple cabal-install, aunque tarda un poco por que las compila al bajarlas.
Este es el que voy a usar para los ejemplos de próximos artículos.
Subtle
Configuración: Ruby
A favor: Usa Ruby, así que su configuración es menos engorrosa. Ruby es bonito y con una sintaxis clara. Tiene su propio gestor de paquetes, para instalar sublets, llamado sur. Está creciendo rápidamente, eso habla de su calidad. Tiene un sistema estricto de etiquetas, como el de awesome, pero más sofisticado, le puede ser útil a algunos. Su terminal por defecto es rxvt-unicode, así que punto para Subtle; pues la mayoría nos deja a nuestra elección eso, y es bueno que ya lo tenga si la vas a usar.
En contra: No parece tener mucha información disponible en nuestro idioma.
Notas: A parte del sistema estricto de etiquetas, usa un sistema de tiling diferente, basado en grids. No lo he probado extensamente para explicarlo completamente, pero parece que divide el espacio de trabajo en áreas predeterminadas en vez de dejárselo a la aplicación que lo use.
DWM
Configuración: A través de una cabecera de C y un archivo automake
A favor: Es uno de los legendarios, padre de Awesome y parte de una línea evolutiva creada por los desarroladores de las suckless tools, un conjunto de herramientas que están pensadas para ofrecerle mayor usabilidad a usuarios avanzados. Si conocen dmenu, y saben de lo que hablo.
En contra: Personalmente no lo he probado, así que no tengo queja. La gente habla muy bien de él.
Notas: Dénse una vuelta por los cuarteles de Suckless para que vean lo que están haciendo.
Window Manager From Scratch
Configuración: Archivo de configuración propio
A favor: Soporta varias de las características que normalmente sólo pueden ofrecer los gestores programables, como botones, bordes con título e iconos y tiene una comunidad fiel, que se expande rápidamente.
En contra: Poca documentación en nuestra lengua.
Notas: Su nombre parece contradictorio, pues no hace pensar en que construimos nuestro entorno, pero sólo lo configuramos. Es parecido a como se define Awesome, un framework para la creación de nuestros propios gestores de ventanas, pero este si que lo cumple.
Spectrwm (antes scrotwm)
Configuración: Archivo de configuración propio
A favor: Funciona bien desde el comienzo y el archivo de configuración está comentado lo suficiente para configurarlo. Tiene una barra propia, que puede mostrar la salida de un comando en específico. Es rápido.
En contra: Algunos lo pueden sentir un poco vacío, pues se extrañan algunas cosas que en otros gestores se pueden lograr al programar algo sencillo.
Notas: Si todavía se preguntan por qué el cambio de nombre, intenten leer el nombre anterior de corrido, como les parezca. A mucha gente también se le figuraba la referencia a cierta parte de la anatomía masculina más sureña.
StumpWM
Configuración: Common Lisp
A favor: Otro que usa lenguaje funcional como configuración. Útil para los que están acostumbrados al Emacs Lisp.
En contra: No lo he probado. así que no sé. En parte por que no sé nada de Lisp.
Notas: Nada que notar, más que la curiosa imagen de un feliz usuario de StumpWM, uno muy feliz al parecer:
¿No hay más?
Por supuesto que sí, pero no las conozco o se me han pasado en esta guía. Es bastante probable que el lenguaje de programación que estés aprendiendo (digo, si lo estás haciendo) ya haya sido usado como configuración de alguno. Pero aunque todos son producto del diseño y no de la naturaleza, no significa que no estén sujetos a la carrera por la supervivencia, y por lo tanto hay muchos proyectos abandonados o muertos por que no tuvieron a quién servirle y se han perdido en el tiempo.
Otras consideraciones y respuestas rápidas
- ¿Por qué rxvt-unicode? urxvt (es invocada así, pero el paquete se llama rxvt-unicode) es un emulador de terminal que soporta 256 colores, extensiones por Perl, pestañas y demás; muy útil por qué las aplicaciones de terminal usan los esquemas de colores, fácilmente configurables en urxvt, para presentarse en pantalla; haciendo mucho más fácil la tarea de tener una interfaz unificada y bonita.
- ¿Cómo hago las maravillas de DotShare.it? Si conoces esta página ya te habrás dado una vuelta por los archivos de configuración de la altruista gente que allí las pone, aunque parezca que lo hagan por presumir. Todo es cuestión de revisarlos, aprender de ellos, implementar eso en tu gestor de ventanas y cruzar los dedos para que funcione, sobre todo si no sabes lo que haces.
- ¿Cómo cambió entre escritorios?Modifica el archivo
~/.xinitrc
para que quede una y sólo una línea que diga
exec inserte-aquí-su-wm
Si estás en Arch a lo mejor ya lo has hecho, solamente debes cambiar la línea, digamos,
exec startxfce4
a
exec xmonad
Esto funciona con el comando startx o con slim. Si ya tienes una pantalla de acceso como GDM o KDM ya traen algo para cambiar sesiones.
- ¿Es necesario el editor de texto? Pero por supuesto que sí. Si se ejecuta en terminal mejor, por que tiling se llevan bien con la terminal. Si no sabes cual, puedes empezar con nano. Otros que se ejecutan sobre la terminal son Vi, Vim e Emacs, pero puedes necesitar algo de entrenamiento para manejarlos adecuadamente. Todos se invocan por su nombre, no hay problema en eso.
- ¿Y las configuraciones? A su debido tiempo. Además yo no puedo proveerles las configuraciones que ustedes buscan para cada gestor, simplemente por que no puedo usarlos todos.
Conclusiones
Hay de donde escoger. Ahora sí, la próxima vez que nos veamos, haré una descripción exhaustiva de un archivo xmonad.hs básico, generalista y demás, sobre un Debian estable. Nos vemos.