Mejora tu productividad como desarrollador: Window Managers
Tags: productivity, espanol, windowmanagers, linux
Published: 2022-05-09 03:26:00

Probablemente nunca habías escuchado del termino window manger. Y es que la gran mayoría de sistemas operativos y distribuciones de linux usan por defecto desktop enviroments (entornos de escritorio). Estos entornos de escritorio manejan las ventanas apilándolas una encima de otra y a estas ventanas apiladas las podemos mover, cambiar su tamaño, minimizarlas, etc. Es decir, todo el tiempo trabajamos con ventanas flotantes. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ghje8z2y9t6ukzwt0ls.png)

## ¿Qué son?
Por otro lado, como su nombre lo dice, los window managers se dedican exclusivamente al manejo de ventanas y hacen este trabajo de manera diferente. Las ventanas que abrimos son ubicadas de manera automática siguiendo un patrón predefinido, siendo el patrón de tiling window el preferido por muchos. Pero, además de esto, los window managers tienen otras ventajas sobre los típicos entornos de escritorio.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ztpwmgen54gs3vvqll8.png)

## Ventajas de los window managers
Los window managers tienen muchas ventajas sobre su contra parte, aquí mencionare algunas de esas ventajas: 
1. **Recursos:** Al tener control total sobre nuestro gestor de ventanas, este no carga programas innecesarios de fondo. Esto se traduce a un consumo de recursos muy reducido, tanto es así, que los sistemas que ocupan que ocupan window managers no llegan ni a consumir 500MiB o menos. 
2. **Debloated:** Los entornos de escritorio vienen con una gran cantidad de aplicaciones adicionales para que puedan funcionar de manera correcta. Programas que muchas veces ni usaremos. Mientras, los window managers no vienen con programas adicionales instalados, quitándonos mucha basura de encima. Es decir, se manejan de manera minimalista. 
3. **Facilidad para trabajar con los espacios de trabajo:** A pesar de que los entornos de escritorio si nos brindan la opción de crear distintos espacios de trabajo, raramente los usamos ya que no les encontramos motivo alguno. En cambio, los window manager dependen mucho de la creación de distintos espacios de trabajo. Esto nos permite tener todo mas organizado y controlado. Por ejemplo, podemos tener un espacio de trabajo solo para tareas en el navegador, otro para terminales, otro para nuestro IDE, etc. 
4. **Programables:** Tenemos entornos de escritorio a los que poco se les puede personalizar como el entorno de MacOS o Windows, hasta otros con alto nivel de personalización como Gnome o KDE. Pero los window managers llevan esto a otro nivel, ya que podemos programar cada parte de nuestro window manager para agregar cualquier funcionalidad que literalmente nosotros queramos.
5. **Evitamos el uso del mouse:** Seguramente en alguna ocasión te topaste con algún entusiasta de Vim y te explicó que una de sus ventajas es que nunca debes usar el mouse, ya que evitamos perder tiempo con el constante movimiento que hacemos al obtener el mouse. Pues los window managers apuntan a esta misma filosofía. Todo, absolutamente todo, lo podemos hacer con atajos de teclado, haciendo que usemos el mouse la menor cantidad de tiempo posible. Por ejemplo, en awesomeWM nos movemos con las mismas teclas con las que navegamos en Vim (h,j,k y l).

## Desventajas
Por supuesto todo lo bueno viene con un costo a pagar. Y es que los window manager tienen unas pequeñas desventajas que tal vez nos desmotiven a intentar usarlos, pero si te gusta aprender y tienes el tiempo para hacerlo estas desventajas desaparecerán con el tiempo.
1. **Alta curva de aprendizaje:** Alguna vez intentaste aprender vim y terminaste frustrado por su curva de aprendizaje? Pues con los window managers puede ser parecido, a pesar de que muchos de ellos vienen ya con una configuración inicial, configurarlos a nuestra medida implica aprender el lenguaje de programación en el que estos son programados, además de su API para poder entender que podemos y no podemos hacer.
2. **Memorizar los atajos de teclado:** Cuando uno esta acostumbrado a usar el mouse como su herramienta principal, empezar a aprender atajos de teclado parece algo tedioso. Pero creeme que aprender atajos de teclado vale la pena, ya sean atajos de tu gestor de ventanas o aplicaciones, invierte algo de tiempo en aprenderlos. El tiempo que invertimos en aprender atajos de teclado lo recuperaremos en un futuro. Ya que tareas que costaban unos cuantos clicks, ahora las haremos con un solo atajo de teclado.

## Conclusiones
Como puedes observar son pocas las desventajas, desventajas que con el paso del tiempo son reducidas. Pero tengo ser sincero en este aspecto, si no posees del tiempo para configurar y aprender a usar un gestor de ventanas lo mejor es que consideres no intentarlo. Pero si te gusta aprender nuevas herramientas, te preocupa la organización y productividad de tu espacio de trabajo, y sobre todo tienes el tiempo para llevar el gestor de ventanas a tu medida, te recomiendo que lo intentes. Es algo de lo que no te arrepentirás, ya que este cambia totalmente la manera en la que usas tu computador, y una vez lo domines no hay vuelta atrás.

## Recursos
Te dejo unos cuantos recursos para que puedas empezar a probar con window managers.
* [Una lista de window managers para todos los OS](https://github.com/fosslife/awesome-ricing#window-managers) 
* [Configuraciones y soporte para distintos window managers](https://www.reddit.com/r/unixporn/)
* [Window Manager de preferencia: AwesomeWM](https://awesomewm.org/)
* [Configuración que uso para AwesomeWM](https://github.com/JavaCafe01/awedots)
* [Guía de Window Managers (Inglés)](https://www.youtube.com/watch?v=Obzf9ppODJU)