Tiling window managers

Estándar

Después de los recientes problemas que he estado teniendo con GNOME 3 (con shell) ante su última actualización he decidido hacer esta entrada para revisar un poco las demás alternativas a los gestores de ventanas (o entornos de escritorio) clásicos.Con la salida de GNOME 3 al escenario dejando atrás al antiguo, pero eficaz, GNOME 2.32 el cambio y la poca estabilidad inicial me llevaron a retomar el uso de KDE para revisar los cambios que habían acontecido desde que lo dejé de usar, allá por la versión 3.5.

Personalmente nunca he sido una persona muy de usar KDE, de hecho he llegado a ser un poco hater al respecto, pero el cambio en la potencia y la estabilidad que han representado las últimas actualizaciones de este entorno de escritorio me hizo quedarme durante un tiempo con él en detrimento a GNOME. Después de un tiempo madurando la decisión, volví a los brazos de GNOME después de leer de varias fuentes el salto en estabilidad que dió GNOME con la versión 3.2.

Y ahora, después de un tiempo con GNOME, se me antoja necesario un cambio hacia otro tipo de gestores de ventanas, más minimalistas y sobretodo con las capacidades que nos aportan los del tipo tiling, que son de los que os voy a hablar hoy.

Introducción a los tiling window managers

Los gestores de ventanas de tipo tiling son aquellos que llevan a la práctica ciertos algoritmos de posicionamiento de ventanas que pueden resultar extraños cuando estamos acostrumbrados a nuestros non-tiling window managers. Estos algoritmos, o layouts, intentan aprovechar al máximo el espacio real de la pantalla (real state) de una manera eficiente.

Normalmente este tipo de gestores de ventanas están muy ligados al uso intensivo del teclado para controlar el gestor de ventanas, y las ventanas, y a minimizar el del ratón, lo que nos puede llevar a un aumento de la productividad y, al final, a hacer las cosas mucho más rápido. También son gestores minimalistas (no incluyen ninguna aplicación como los entornos de escritorio como GNOME) y muy ligados a sus configuraciones; requieren de un esfuerzo especial para poder configurar el escritorio a nuestro gusto y un mucha predisposición a buscar información en internet para conseguir lo que queremos que haga el gestor. Esta es la principal razón por la cual estos gestores no son los predominantes en los usuarios, pero la gran mayoría de usuarios que los utilizan son lo que se denomina como power users (o usuarios avanzados).

Las diferencias entre los distintos gestores tiling que existen, que no son pocos, son básicamente el lenguaje en el que se escribe su configuración y las características que trae por defecto el gestor, además de las distintas capacidades para monitores duales y otro tipo de características avanzadas.

Layouts

Son la característica principal de este tipo de gestores y lo que los hace tan especiales en la comparación con otros. Cómo ya hemos contado anteriormente, los layouts son la forma específica en la cual las ventanas van a ser distribuidas por el gestor a medida que se vayan abriendo o vayan sufriendo modificaciones. Existen distintos layouts intercambiables en estos gestores para que usemos el que más nos convenga en cada momento. Los más usados son los siguientes.

  • Tile left/right/top/botton: Este es el layout básico que intenta centrar la atención en una (o más) ventanas localizadas en lo que se viene a llamar master pane, la zona dominante en el layout, que estará a la izquierda, derecha, arriba o abajo según el tipo. Usualmente la ventana que se encuentra en el master pane es la última abierta, aunque se puede cambiar, y las demás quedan relegadas a un segundo plano, en el slave pane situado en el lado contrario que el master pane. El master y slave pane pueden dividir la pantalla en dos partes iguales o, en cambio, ocupar más uno de los dos paneles (normalmente el master).

    Tile left layout

    Tile left layout

  • Grid: En este layout las ventanas se disponen en una rejilla proporcionando tamaños equitativos a todas las ventanas abiertas.

    Grid layout

    Grid layout

  • Floating: Este layout no es un layout per se, sino que es la desvinculación de las ventanas a una determinada de forma. Obtendríamos el tipo de ventanas que tendríamos con un gestor como GNOME, podemos redimensionarlas y moveras, sin estar atado a las decisiones del gestor.

    Floating layout

    Floating layout

  • Maximized: En este layout sólo podemos ver una ventana abierta, aunque tengamos varias abiertas, en formato maximizado. Muy útil cuando nos vamos a centrar en una única aplicación.

Workspaces, spaces, tags, etc

Los gestores de ventanas de tipo tiling también se asocian con una organización de ventanas en modo de escritorios virtuales, tal y como también tenemos en GNOME o KDE. En este tipo de gestores son muy importante estos espacios ya que la organización predominante de ventanas nos muestra todas las ventanas en el pantalla, lo cual puede hacerse bastante incómodo si no organizamos las ventanas es estos escritorios, habitualmente por aplicaciones. También es una práctica muy aconsejable para las personas que, como yo, suelen trabajar con el ordenador muchas horas y usan muchas aplicaciones simultáneamente.

Habitualmente cada escritorio es independiente y puede tener un layout distinto asignado. Cada ventana está asociada a un escritorio concreto, y a una pantalla concreta, y las configuraciones suelen permitir definir reglas de asignación de aplicaciones a escritorios y pantallas obedeciendo normalmente a la clase de la ventana, normalmente el nombre de la aplicación, o al nombre particular de la ventana, que puede variar entre varias ventanas de la misma aplicación.

Gestores

Ahora os voy a presentar un poco los tres grandes gestores de ventanas de tipo tiling, que para mi son XMonad, dwm y AwesomeWM.

Como comentábamos anteriormente, las principales diferencias son sus configuraciones y la facilidad de uso en un inicio, o las características por defecto del gestor.

dwm

Este gestor es un clásico en este ámbito y se le considera el predecesor de muchos otros, como los dos que también vamos a analizar. Se trata de un gestor muy rápido debido al lenguaje en el que está escrito (C) y, como todos los que vamos a analizar, la configuración del gestor se realiza editando ciertos ficheros de código fuente.

El gestor tiling dwm

El gestor tiling dwm

La principal diferencia entre este gestor y los demás es que, en su afán por la rapidez, su configuración es realizada en un fichero de cabecera de C, por lo cual debe ser compilado completamente [el gestor] para reflejar los cambios realizados. Esto no debería ser demasiado problema, pero en las primeras fases de personalización del gestor los cambios son numerosos y, al no saber demasiado bien cómo funciona el gestor completamente, las compilaciones tediosas. Además, el sistema para añadir nuevas funcionalidades o layouts es la aplicación de parches al código fuente del gestor y la consecuente compilación asociada.

En cuanto a sus características por defecto son bastante usables. Incluyen una barra superior, con la visualización de los escritorios, las ventanas abiertas y alguna información adicional, como la fecha.

Debido a la tendencia por los lenguajes interpretados y más dinámicos para la sencilla incorporación de cambios frecuentes y que nos permiten ver las consecuencias de los mismos instantáneamente puede ser una buena opción probar y comparar con alguno de los gestores que nos permiten la configuración con este tipo de gestores.

XMonad

Este ha sido mi favorito durante bastante tiempo y sus bondades superan con creces a sus defectos, pero estos últimos pueden ser bastante decisivos.

El gestor tiling XMonad

El gestor tiling XMonad

El gestor está escrito en su totalidad en el lenguaje funcional Haskell y su configuración también se realiza en este lenguaje. Se le considera una reestritura de dwm ampliando sus características principales.

Uno de los problemas con XMonad es la primera ejecución del gestor. XMonad no pone por si mismo ningún fondo de escritorio (verás el fondo de tu gestor de arranque o una pantalla en negro) y tampoco ningún tipo de información adicional, ni acerca de escritorios y ventanas abiertas. Cabe decir que eso puede ser bueno ya que podremos escoger entre varios el que más nos guste, que normalmente se ven reducidos a xmobar o dzen2, configurarlo como queramos lo que nos ofrece mayor libertad que cuando viene una barra de información ya configurada con el gestor.

El otro gran problema no es otro que Haskell. Los que venimos del mundo de la programación imperativa o de la orientada a objetos, Haskell tiene una sintaxis y una lógica muy distinta y se hace un poco, por no decir bastante, difícil la configuración del entorno. Como el gestor tiene un gran número de seguidores, siempre podemos preguntar o buscar acerca de soluciones a problemas básios con los que nos encontraremos al inicio del uso del gestor. Pero si no nos gusta Haskell o nos ha costado mucho lograr una configuración que se adapte a nuestras necesidades, nos costará aún más el cambiarla en un futuro cuando decidamos que es hora de cambiar un poco de estilo.

XMonad, sin embargo, es una opción muy aconsejable y muy estable a la par que flexible, pero deberemos tener paciencia a la hora de su configuración.

AwesomeWM

Este gestor de ventanas, escrito en C y Lua, es una mezcla entre extensibilidad y potencia. Su configuración, escrita en Lua, es muy intuitiva y sencilla de modificar. Además alrededor del gestor existen ciertas librerías que implementan funcionalidades extra no necesarias para el uso básico del gestor, lo que nos permite instalar sólo lo necesario para nuestro uso del mismo a modo de plugins.

El gestor tiling AwesomeWM

El gestor tiling AwesomeWM

Además de una configuración sencilla, al gestor se le pueden aplicar temas que no son más que ficheros de texto que le indican al gestor los colores a usar, el fondo de pantalla o los iconos para usar en el fichero de configuración principal. En la barra de información situada en la parte alta de la pantalla se muestra la información habitual en este tipo de gestores, pero se puede cambiar de lugar o añadir otras barras para colocar widgets (implementados en una de las librerías del gestor) con información extra, como CPU, RAM o información de la reproducción de MPD.

Este es el gestor que actualmente uso y con el que de momento me quedo ante su sencillez y su extensibilidad. No obstante, uno de los problemas del cual mucho usuarios se quejan, y con razón, son los continuos cambios en la sintaxis y forma del fichero de configuración debidos al continuo desarrollo por parte de los creadores.

Existen muchos más gestores además de estos tres que ofrecen características similares y que nos pueden aportar otras que encajen con nuestra manera de trabajar.

Como siempre, si os interesa saber más sobre alguno de los gestores siempre se puede hacer una entrada un poco más en profundidad de cualquiera de ellos sólo con pedirlo 🙂

Anuncios

3 comentarios en “Tiling window managers

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s