• Xmonad

Versión analizada

0.11, publicada en enero de 2013. Han aparecido más desde entonces, demasiado modernas para mi instalación de Linux y que por tanto no he probado.

Página oficial

http://xmonad.org/

Estado actual

Vivo y activo. Xmonad es bastante popular entre los gestores de mosaico y reúne a su alrededor a una fiel comunidad de usuarios. Sigue en desarrollo a un ritmo tranquilo, una versión al año como mucho.

Características resumidas

Esc. Virt. Menús Temas Flotantes Títulos B. de estado Manejo
1 Parcial 2 3 No 4 Dinámico

1 Una implementación un tanto peculiar en el módulo XMonad.Actions.GridSelect, por ejemplo.

2 Un par de extensiones en el paquete «contrib» incluyen una implementación parcial de ellos.

3 Por defecto no, pero existen módulos apropiados para ello.

4 El gestor ofrece cierto soporte genérico —mediante el módulo XMonad.Hooks.Managedocks —, pero no incluye ninguna. La opción más habitual suele ser Xmobar .

Descripción


Captura de Xmonad

Mi primer día con Xmonad. A la izquierda, en el área principal, una terminal en la que estoy ojeando mi archivo ~/.xmonad/xmonad.hs. Las demás ventanas esperan amontonadas a la derecha.


Xmonad dio sus primeros pasos en 2007, y viene firmado por tres personas: Spencer Janssen, Don Stewart y Jason Creighton. Traduzco libremente lo que escribieron ellos en el fichero README que acompaña al código fuente:

«Xmonad es un gestor de ventanas de mosaico para [el] X [Window System]. Las ventanas son ordenadas automáticamente para repartirse la pantalla sin dejar huecos o superponerse, aprovechando al máximo el espacio. Las operaciones del gestor de ventanas son accesibles mediante el teclado: un ratón es opcional. Xmonad está escrito y resulta configurable y extensible en Haskell . El usuario puede escribir en [sus] archivos de configuración sus propios algoritmos para distribuir ventanas, atajos de teclado u otras extensiones. Los mosaicos se aplican de forma dinámica, y diferentes distribuciones pueden emplearse en cada espacio de trabajo. Hay soporte completo para Xinerama, lo que permite que las ventanas sean organizadas en varios monitores».

El párrafo resulta un tanto denso, no lo voy a negar; aunque enumera los rasgos fundamentales de Xmonad, y supongo que permite a un usuario primerizo hacerse una idea de lo que va a encontrar en él.

Antes de continuar, aclararé que Xmonad se distribuye en dos paquetes: «core» es el gestor propiamente dicho, con su funcionalidad más básica, y «contrib» una gran colección de extensiones que añaden nuevas capacidades. Aquí me centraré mayormente en el primero, porque «contrib» es un mundo demasiado amplio para abarcarlo en un artículo como éste, y además apenas lo he explorado.

Bien, el funcionamiento más elemental de Xmonad no resulta muy distinto del de otros gestores de mosaico como Dwm o Larswm. La pantalla se divide en dos porciones. La principal —master area o master pane— está concebida para mostrar una o quizás dos ventanas, usualmente las que requieren más atención del usuario en un momento dado, a un tamaño confortable para trabajar con ellas. Y luego tenemos la zona de pila, que se reparten equitativamente el resto de ventanas abiertas en el escritorio. Es posible mover ventanas de un área a otra según se presente la necesidad.

En ausencia de extensiones del paquete «contrib», el gestor admite dos distribuciones diferentes para los mosaicos: área principal a la izquierda y de pila a la derecha, o área principal arriba y de pila en la mitad inferior de la pantalla. Además existe un modo de ventanas maximizadas, en el que sólo se mostrará una, ocupando todo el espacio disponible en el escritorio.

Pensando en esas aplicaciones que resultan incómodas de utilizar encajadas en un mosaico —videojuegos que requieren unas dimensiones determinadas para sus interfaces, programas de diseño gráfico como GIMP—, Xmonad es capaz de manejar también ventanas flotantes, como un gestor convencional de pila. Éstas se mostrarán siempre por encima de los mosaicos.

Xmonad incluye escritorios virtuales; o, para ser más correctos, espacios de trabajo independientes. Se trata de una implementación similar a la del mencionado Dwm, aunque algo más limitada. Por defecto son nueve, si bien el usuario puede definir otra cantidad si lo desea.

Por último, la configuración del gestor viene especificada en el fichero ~/.xmonad/xmonad.hs. Como ya explican los autores, escrito en Haskell.

Instalación


Captura de Xmonad

División horizontal de la pantalla. Útil cuando deseas aprovechar toda su anchura para leer en Internet. La ventana enfocada, marcada con un borde rojo, es la terminal de abajo, a la izquierda.


Xmonad es un programa pequeño y ligero, pero depende de todo el entorno de desarrollo de Haskell: el compilador GHC y una serie de librerías asociadas. Hablamos de un buen montón de software, más de 200 MB en mi sistema. Usad vuestros repositorios de paquetes para instalarlo de forma sencilla.

Primeras impresiones

Para empezar diré que ya había probado otros gestores de mosaico antes de enfrentarme a Xmonad. No había pues mucho lugar para sorpresas, los conceptos básicos de su funcionamiento los tenía relativamente claros.

En un principio se me antojó muy parecido a Dwm. División vertical de la pantalla, área principal a la izquierda y zona de pila a la derecha, la ventana activa destacada con un borde rojo de un píxel... Sólo eché en falta la barra de estado. Luego comprobé con satisfacción que existe otra alternativa para organizar mosaicos, que divide el escritorio horizontalmente.

Como otras interfaces de su clase, Xmonad es arisco con el usuario recién llegado. Leer la página de manual —o la «visita guiada» que ofrece su sitio web— y aprenderse los atajos de teclado más elementales resulta pues obligado. Los autores tuvieron el detalle de resumir estos últimos en un diálogo de ayuda que aparece al pulsar [Alt] + [Mayúsc] + H.

Quise comenzar a ajustar algunos detalles, de modo que copié el archivo de ejemplo —man/xmonad.hs dentro del árbol de código fuente— a ~/.xmonad/xmonad.hs. Sin embargo, parece que en mi versión de Xmonad este fichero es defectuoso, y al intentar aplicar los cambios hechos en él se interrumpía quejándose de una variable no definida. Por suerte encontré pronto la solución al problema .

Usando Xmonad

Bien, lo repito: mirando sólo la superficie Xmonad se asemeja bastante a Dwm, si bien en su configuración inicial resulta algo más tosco y austero. Sus carencias pueden remediarse con herramientas de terceros o los módulos adecuados del paquete «contrib».


Captura de Xmonad

Dos ventanas flotantes —el reloj y el emulador con el videojuego— sobre un mosaico con dos terminales.


Como en otros gestores de mosaico, el ratón queda relegado a un papel secundario y se espera que el usuario efectúe la mayoría de las operaciones con atajos de teclado. No son numerosos y me costó poco aprenderlos, así que supongo que los autores los escogieron con acierto. Acaso el hecho de que se apoyen en la tecla modificadora [Alt] interfiera con algún programa, pero se trata de la única queja que se me ocurre... Y de todas formas resulta posible cambiarlos en el archivo ~/.xmonad/xmonad.hs.

Según mi experiencia, lo más práctico es limitarse a cinco o seis ventanas por espacio de trabajo, aunque imagino que eso depende de las dimensiones del monitor. El área principal está destinada a las que en un momento dado el usuario necesite ver a un tamaño mayor; de modo que en ella no suelo colocar más de dos, porque de lo contrario pierde su razón de ser. Las demás quedan amontonadas en la zona de pila, aunque por supuesto también es posible trabajar con ellas ahí, y en el caso de terminales o editores de texto a menudo no importan demasiado esas estrecheces.

Los mosaicos basados en la partición horizontal de la pantalla, que Xmonad permite ya en su configuración por defecto, se me antojaron una buena idea para combinar un navegador gráfico —Opera, Firefox, etc— con otras ventanas y seguir leyendo páginas web con cierta comodidad, aprovechando toda la anchura del escritorio. Claro que quizás mi caso sea un poco especial, porque aún utilizo un monitor de proporciones 5:4 (1280x1024 píxeles); con los panorámicos modernos este arreglo tal vez resulte en líneas de texto demasiado largas y no parezca tan conveniente. Por lo demás, para el resto de tareas recurrí normalmente a distribuciones más comunes con división vertical.

Hay aplicaciones que no se han diseñado para ser encajadas a la fuerza en mosaicos. En algunos casos —hojas de cálculo, ciertos videojuegos— uno puede desenvolverse con ellas pasando al modo de ventanas a pantalla completa. En otros —insisto, GIMP— la solución ideal es añadirlas, en el fichero ~/.xmonad/xmonad.hs, a la lista de excepciones que se manejarán con ventanas flotantes. Aunque en esta faceta Xmonad es limitado y sólo proporciona la funcionalidad más imprescindible: mover, y cambiar tamaño y posición en la pila.

Si alguien desea una barra de estado la opción más recomendable es Xmobar , concebida expresamente para usarse con Xmonad; aunque existen otras posibilidades como Dzen . En este caso necesitaréis también la extensión XMonad.Hooks.Managedocks del paquete «contrib», que sirve para que los mosaicos reserven el espacio solicitado por esta clase de accesorios.

En realidad, en «contrib» hay mucho, mucho material: entre todo el montón se me ocurriría destacar un buen surtido de nuevos algoritmos para organizar mosaicos, líneas de comandos para realizar algunas operaciones, ventanas «pegajosas» que aparezcan en todos los espacios de trabajo, menús, o incluso decoración e interfaces de pestañas. Así que Xmonad no resulta tan sobrio como puede parecer al principio

El obstáculo más serio para un usuario novato es probablemente la configuración. Porque el archivo ~/.xmonad/xmonad.hs consiste en código Haskell que tras cada cambio debe recompilarse —mediante el comando «xmonad --recompile»—. Un lenguaje de programación completo permite posibilidades casi infinitas para quien posea los conocimientos necesarios, pero supone una barrera de entrada para los demás y hace engorrosos los ajustes más básicos. No obstante yo lo he llevado relativamente bien, pese a no haber visto nunca antes una línea de Haskell; así que tampoco se trata de una dificultad insalvable. Ahora, esos ratos infructuosos con la cabeza echando humo no me los quita nadie.

Opciones de personalización


Captura de Xmonad

Y ahora otra configuración diferente con colores verdes. En el borde superior aparece la barra de estado —Xmobar—, y el inferior está ocupado de forma temporal por Dmenu.


La distribución básica de Xmonad no promete muchas, mas el paquete «contrib» añade un mundo de posibilidades. Además, una persona que sepa programar en Haskell puede conseguir casi cualquier cosa. Hablamos pues de un gestor de ventanas muy flexible.

Documentación

Con mi instalación de Xmonad venía una página de manual en diversos formatos. Concisa, explica lo más imprescindible para comenzar; muy recomendable su lectura. Aunque quizás ayude más una visita al apartado de documentación de la página oficial , que repasa en profundidad todo lo que ofrece el gestor y ofrece una «visita guiada» para los recién llegados.

Aciertos

Inconvenientes

Conclusión

Xmonad es un gestor de mosaico muy completo que ofrece más de lo que promete a primera vista. Ahora, por sus requerimientos atípicos —Haskell— y la complejidad de su configuración me parece más recomendable para la gente experimentada que sabe lo que hace.

Galería de imágenes

Algunas capturas más para completar el artículo:

Captura de Xmonad

En este escritorio sólo hay tres ventanas flotantes. En Xmonad deberían usarse sólo cuando no quede otro remedio.

Captura de Xmonad

Un problema común en muchos gestores de mosaico son las ventanas temporales encajadas en la cuadrícula con dimensiones absurdas. Aquí, un diálogo de Gftp abarca la mitad superior de la pantalla.

Captura de Xmonad

El módulo XMonad.Layout.Grid permite exactamente eso, cuadrículas libres al gusto del usuario. Si bien este ejemplo no resulta muy práctico.

Captura de Xmonad

Sólo existe una ventana en el presente espacio de trabajo, así que ésta ocupa todo el escritorio. Sobre ella, un menú de tareas generado por el módulo XMonad.Actions.GridSelect.

Captura de Xmonad

Xmobar en el borde inferior, con tonos rojos. En el área principal un documento PDF, en la de pila todo lo demás.

Captura de Xmonad

Xmonad en un ordenador portátil de tipo Netbook. Puede parecer una vista poco interesante, pero muestra ventanas con decoración y el panel de Xfce. (La captura no es mía: fuente ).

Descargas

Sólo un par de detallitos que quizás interesen a otros usuarios de Xmonad:

 

Artículo escrito el 24 de noviembre de 2016.


[Apta para cualquier navegador]  [Cumple con el estándar HTML]  [Cumple con el estándar CSS]

Podéis copiar libremente cualquier contenido de esta página.
Mandad opiniones, sugerencias o saludos a sovietskayarodina@gmail.com.