684 - Transforma GNOME en un Tiling Window Manager

684 - Transforma GNOME en un Tiling Window Manager

Como utilizar #gnome como un tiling window manager al estilo de #sway o #hyprland con un par de extensiones y con toda la potencia y personalización

1:25
-3:15

En los últimos meses he vuelto a utilizar GNOME como entorno de escritorio por defecto. La razón para este regreso, es que, como te conté hace algunos episodios, estoy trabajando en una extensión para GNOME, con lo que necesito ver los resultados en vivo y en directo. Esto no quiere decir que haya dejado atrás la idea de los Tiling Window Manager, ni mucho menos. Es mas, todo lo contrario. Desde el primer momento, echaba de menos el potencial de moverme entre las distintas aplicaciones que estaban funcionando en mi equipo con la facilidad y comodidad con la que lo hacía en Sway o Hyprland. Y esto me llevó a buscar una solución que me permitiera emular el comportamiento de estos Tiling Window en GNOME. Como te puedes imaginar, he probado todas o casi todas las extensiones que existen para emular estos comportamientos, pero la verdad es que ninguna acaba de convencerme por completo. Pero a base de seleccionar una combinación de extensiones, finalmente, creo que he dado con la combinación perfecta, y ahora mismo me encuentro casi como si estuviera utilizando Sway o Hyprland. En este episodio, te contaré las extensiones que he seleccionado y el ajuste de configuración que tengo para llegar a esta solución.

Transforma GNOME en un Tiling Window Manager

¿Como comenzó todo?

Tengo que agradecer a Antonio todos sus comentarios, por que la verdad siempre son realmente interesantes y me han permitido conocer desde nuevas herramientas hasta configuraciones. Y precisamente, este episodio, surgió a partir de una recomendación de él, en el que me sugería ver un vídeo de YouTube donde hablaba sobre la configuración Linux favorita de typecraft.

Como de costumbre, no conocía ni este youtuber, ni este canal ni este vídeo, por que, tal y como te he contado en mas de una ocasión, si bien soy un consumidor compulsivo de podcast no lo soy de vídeo. Es una cuestión de tiempo, mientras que el podcast lo puedo consumir mientras realizo otras actividades, en el caso del vídeo, no es posible. Y además, ya sabes, que en muchos vídeos, para contarte como sacarle punta a un lápiz pueden invertir hasta una hora.

Al ver el vídeo, he reconocido perfectamente en las palabras de typecraft la problemática que comenta sobre los Tiling Window Manager, en referencia a la pronunciada curva de aprendizaje que requiere un entorno de este tipo. Necesitas invertir una cantidad de tiempo considerable tanto en aprender como configurar tu propio entorno de escritorio Tiling, como para después configurarlo y posteriormente mantenerlo. Además necesitarás de otros conocimientos como la configuración y gestión de dotfiles y mas. En fin, que es mucho tiempo, y actualmente la mayoría no está dispuesto a realizar esta inversión.

Y es que un Tiling Window Manager, viene pelado, con la mínimo. Al final, se trata de un gestor de ventanas, nada mas. Por ello, necesitarás añadir toda una serie de herramientas y piezas, para completar el puzzle. Un Tiling Window Manager, ni trae sistema de notificaciones, ni lanzador de aplicaciones, ni muchas otras utilidades que convierten un simple gestor de ventanas en todo un entorno de escritorio.

Las extensiones que propone

A continuación te indico tanto las extensiones como la configuración que propone typecraft, que yo no encontré en las notas del vídeo. Y es que en muchas ocasiones me he encontrado comentarios en mis vídeos quejándose de que no estaban los enlaces, cuando en general, siempre pongo enlace al artículo, donde encontrarás toda la información. Claro que tener que ir a la web es mucho trabajo.

  • Space Bar. En este caso, necesitarás cambiar de áreas de trabajo dinámicas a un número fijo de áreas de trabajo. Esto lo puedes hacer directamente en tu configuración. En mi caso, y por el momento he establecido nada mas que cuatro áreas de trabajo. La realidad es que solo utilizo dos, pero por si acaso, he establecido cuatro. Además tienes que configurar los atajos de teclado para asignar los distintos espacios de trabajo a las distintas áreas de trabajo. En mi caso, he asignado las teclas Super + 1, Super + 2, Super + 3 y Super + 4 a las áreas de trabajo 1, 2, 3 y 4 respectivamente.
  • Switcher. Probablemente esta extensión de GNOME no te sonará, pero si te hablo de lanzador de aplicaciones, ya te haces una idea. Esta extensión te permite lanzar aplicaciones, cambiar de área de trabajo y cambiar de ventana. Existen muchos lanzadores de aplicaciones como uLauncher, por decirte alguna. En este caso, typecraft propone utilizar Switcher. Sin embargo, en el momento de preparar este episodio, esta extensión no estaba disponible para GNOME 48. Lo cierto es que aunque me he quedado con ganas de probarla, lo cierto es que no tengo muy claro si la utilizaré definitivamente. Actualmente con el lanzador de aplicaciones de GNOME tengo mas que suficiente.
  • Tactile, es una extensión que te permite establecer una rejilla utilizando el teclado, y disponer las distintas ventanas que utilizas en esa rejilla, para lo que tienes que establecer algunos atajos de teclado. Se trata de una solución realmente sencilla a la par que ingeniosa. En mi caso, después de probarla me he quedado con otra alternativa que te comentaré mas adelante.
  • Just Perfection, es una herramienta que te permite personalizar GNOME Shell y cambiar el comportamiento de determinados elementos de la interfaz. En este caso, typecraft propone utilizar esta extensión para reducir los efectos, que si bien en general son realmente atractivos, cuando utilizas los movimientos rápidos que ofrece los atajos de teclado pueden llegar a ser un poco molesto.

La verdad es que con unas pocas extensiones ha conseguido tener algo similar al comportamiento de un Tiling Window Manager pero en GNOME, con todas las ventajas de tener un entorno de escritorio completo.

Mi configuración

Me ha parecido muy interesante, pero sin embargo, no me ha convencido del todo. Algunas razones te las he ido comentando anteriormente, pero hay un par de detalles sobre los que quiero entrar a continuación. De estas extensiones que ha propuesto me he quedado exclusivamente con la de Space Bar, que era algo que si que echaba de menos en GNOME, y que me ha permitido tener un comportamiento similar al de Sway o Hyprland.

En mi caso la configuración sería la siguiente,

  • Tiling Shell, esta sería la equivalente a Tactile, pero con muchas mas opciones a la hora de configurar la disposición de ventanas. Es decir, no se limita a una rejilla concreta, sino que puedes adaptarla exactamente a tus necesidades. Además, te permite definir los atajos de teclado exactamente como quieras, que esto es algo que realmente echo de menos de la configuración propuesta por typecraft. En mi caso, aquí hay gran parte de la magia, porque me permite no solo mover las ventanas a una u otra posición de las configuradas, si no que además me permite moverme con atajos de teclado entre las distintas ventanas, y no solo, esto sino que tienes una configuración impresionante en lo que a atajos de teclado se refiere.
  • Dynamic Panel, esta extensión te permite personalizar el panel superior hasta dejarlo exactamente como quiero. Es sencillamente espectacular. Por supuesto, que esta segunda extensión es completamente prescindible, pero, creo que un toque de elegancia, si se le puede llamar de esa manera, nunca está de más.

A parte d e estas tengo otras extensiones, que ahora mismo no vienen al caso, pero que si que te contaré en otros episodios, sobre todo cuando las que estoy implementando estén completamente terminadas.

¿Y los archivos de configuración?

En Sway o Hyprland teníamos los dotfiles para gestionar nuestra configuración. De esta manera poder replicar la configuración era algo realmente sencillo. Pero ¿como hacerlo para guardar la configuración y poderla replicar en cualquier otro equipo o momento?

Pues la cosa es relativamente sencilla. Existe una herramienta conocida como dconf que te permite gestionar de forma fácil tu configuración de GNOME. De esta manera, si quieres replicar la configuración de tus extensiones en otro equipo, solo tienes que exportar tu configuración con el siguiente comando,

dconf dump /org/gnome/shell/extensions/ > configuracion-extensiones-gnome.dconf

Con esto ya tenemos una copia de la configuración de las extensiones de nuestro GNOME. Para importarla en otro equipo, solo tienes que ejecutar el siguiente comando,

dconf load /org/gnome/shell/extensions/ < configuracion-extensiones-gnome.dconf

De esta forma, si quieres replicar mi configuración lo puedes hacer fácilmente recurriendo a mis dotfiles.

A parte de esto, tengo un par de scripts en fish para realizar una copia de seguridad de todas los atajos de teclado y otro para recuperarlo. Estos dos scripts los tienes también en mis dotfiles.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *