Tiling Shell en Ubuntu: organizar ventanas en zonas como FancyZones

Si trabajamos con el navegador, un editor y una terminal, acabamos colocando las mismas ventanas una y otra vez. Dividir la pantalla en dos mitades ayuda, pero no siempre es la distribución que necesitamos. A veces interesa dejar más espacio para el código y repartir el resto entre documentación y comandos.

Tiling Shell es una extensión libre para GNOME Shell que permite definir esas zonas y colocar las ventanas dentro. La idea se parece a FancyZones de PowerToys, pero sin cambiar de escritorio ni instalar un gestor de ventanas distinto. Vamos a ver cuándo merece la pena y cómo empezar con una disposición sencilla.

Logo de Tiling Shell
Logo de Tiling Shell, de Domenico Ferraro. Recurso del repositorio oficial, distribuido bajo GPLv3.

Antes de instalar, mirar qué ofrece Ubuntu

Si sólo queremos colocar dos ventanas a los lados de la pantalla, puede bastar con lo que ya tenemos. Ubuntu incluye funciones de mosaico, y sus versiones recientes amplían las formas de elegir una distribución. Añadir una extensión sólo tiene sentido si necesitamos algo que ese comportamiento no resuelve bien.

Tiling Shell resulta interesante cuando queremos proporciones propias, varias zonas, disposiciones diferentes según el espacio de trabajo o una forma cómoda de repetir la misma organización. No hace que las aplicaciones consuman menos memoria ni convierte automáticamente una pantalla pequeña en un espacio cómodo para cuatro programas.

Tampoco es una extensión genérica para cualquier Linux. Funciona en GNOME Shell. Si utilizamos Linux Mint con Cinnamon, Xubuntu con Xfce o Kubuntu con Plasma, las instrucciones no se aplican a ese escritorio. Que todos sean sistemas Linux no significa que compartan el mismo gestor de ventanas.

Podemos identificar el escritorio desde los detalles del sistema. Si estamos en GNOME, este comando permite consultar su versión:

gnome-shell --version

La compatibilidad que importa es la de esa versión con la extensión. La ficha de Tiling Shell en GNOME Extensions permite consultar las versiones publicadas para cada GNOME Shell. No debemos desactivar la comprobación de compatibilidad para forzar una versión que no corresponde.

Instalar sin hacer competir dos extensiones

Podemos utilizar un gestor de extensiones compatible con GNOME o instalar desde la ficha oficial mediante la integración del navegador. Buscamos Tiling Shell y comprobamos que el autor es domferr. Una página que sólo ofrece una descarga con el mismo nombre no sustituye al catálogo del proyecto.

En Ubuntu conviene revisar Tiling Assistant, que forma parte de sus funciones de mosaico. Si ambos intentan capturar el arrastre hacia los bordes o gestionar los mismos atajos, el resultado puede ser confuso. Antes de activar todas las opciones de Tiling Shell, desactivamos desde los ajustes el mosaico mejorado que entre en conflicto. Según la versión, aparece en Escritorio de Ubuntu o en la gestión de extensiones como Tiling Assistant.

No hace falta desinstalar paquetes del sistema ni quitar todas las extensiones. Anotamos qué opción cambiamos para poder volver atrás. Es más fácil diagnosticar un conflicto entre dos funciones concretas que recuperar un escritorio después de aplicar una limpieza general.

También revisamos si hay una sesión pendiente de cerrar para aplicar una actualización. En Wayland no se reinicia GNOME Shell con el atajo de recarga que algunas guías antiguas muestran para X11. Si necesitamos salir de la sesión, primero guardamos el trabajo abierto.

Empezar con una disposición sencilla

El menú de Tiling Shell permite elegir una disposición. Para empezar usaría dos zonas con distinto ancho. Así podemos comprobar el comportamiento sin aprender a la vez todos los atajos y el editor de distribuciones.

Cogemos una ventana por su barra de título y empezamos a moverla. Manteniendo Ctrl, aparece la distribución de zonas. Llevamos la ventana a la que queremos utilizar y soltamos el arrastre. La tecla de activación se puede cambiar en las preferencias si entra en conflicto con nuestra forma de trabajar.

Hay otras formas de colocación, como el selector que aparece al acercar una ventana a la parte superior. No necesitamos dejar todos los métodos activos. Si un panel nos molesta cada vez que movemos una ventana, desactivamos ese método y conservamos el que resulte más cómodo.

Distribuciones y zonas de ventanas mostradas por Tiling Shell
Imagen de presentación del proyecto Tiling Shell, de Domenico Ferraro, fuente y GPLv3.

La imagen muestra posibilidades de la extensión. No significa que debamos copiar una distribución con muchas divisiones. Lo útil es que las ventanas queden a un tamaño en el que realmente podamos trabajar.

Una zona grande y dos pequeñas

Para el ejemplo del editor, navegador y terminal, podemos reservar aproximadamente dos tercios del ancho al editor y dividir el tercio restante en dos zonas, una sobre otra. En una pantalla más pequeña quizá funcione mejor dejar el navegador en otro espacio de trabajo y utilizar sólo dos ventanas.

Abrimos el editor de distribuciones desde el menú de Tiling Shell. Podemos crear una nueva o partir de una existente. Dividimos la superficie hasta obtener las zonas que necesitamos, ajustamos sus límites y guardamos el resultado. El manual del proyecto explica los gestos del editor y las teclas que modifican la dirección de la división.

Después colocamos las tres aplicaciones. No daría por terminada la distribución hasta comprobar una tarea real: leer una página de documentación, editar unas líneas y consultar una salida de terminal. Si hay que desplazar horizontalmente el contenido continuamente, la zona es demasiado estrecha para ese uso.

Algunas aplicaciones imponen un tamaño mínimo. Si una ventana no encaja en un rectángulo pequeño, puede ser una limitación de la aplicación, no un fallo de la extensión. También conviene revisar el tamaño de los huecos entre ventanas y el escalado de la pantalla antes de seguir creando divisiones.

Teclado y ventanas que ocupan más de una zona

Tiling Shell permite mover ventanas entre zonas con atajos. El proyecto documenta combinaciones con Super y las flechas, pero podemos personalizarlas desde las preferencias. Antes revisamos qué hacen ya esas teclas en nuestro escritorio, porque no queremos perder un atajo que utilizamos a diario.

La distribución tampoco tiene por qué ser rígida. Manteniendo Alt durante la colocación por zonas podemos seleccionar varias, según la configuración de la extensión. Esto permite ampliar temporalmente una aplicación sin crear otra disposición sólo para esa ocasión.

La versión 18 incorpora además una activación opcional con el botón derecho durante el arrastre. Si está habilitada, empezamos a mover la ventana con el izquierdo y utilizamos el derecho para mostrar las zonas. No es la misma operación que abrir el menú contextual con un clic derecho. Como no está activada por defecto, no tiene sentido insistir con el ratón si antes no hemos revisado esa preferencia.

El mosaico automático de nuevas ventanas también es opcional. Lo dejaría para después de entender la colocación manual. Si lo activamos desde el principio, puede parecer que las aplicaciones cambian de posición solas y será más difícil decidir qué comportamiento nos resulta útil.

Varias pantallas y copia de las distribuciones

Una pantalla externa suele necesitar una distribución distinta a la del portátil. Tiling Shell admite disposiciones por monitor y espacio de trabajo. Conviene revisar el ajuste que determina si un cambio de distribución se propaga o se mantiene en el espacio actual.

Después de conectar o desconectar una pantalla, comprobamos las zonas con el escalado que vamos a utilizar. Una proporción que sirve en un monitor ancho puede dejar ventanas demasiado pequeñas en el panel del portátil. No hace falta que todos los monitores tengan la misma organización.

Desde las preferencias podemos exportar las distribuciones a un archivo JSON. Lo guardamos junto a nuestras copias de configuración y lo importamos cuando necesitemos recuperarlo. La documentación del formato explica sus coordenadas y grupos, pero para una primera configuración no necesitamos editarlo a mano.

Esa exportación es una copia de las distribuciones, no de todo el escritorio. No debemos asumir que guarda las aplicaciones abiertas, los documentos, todos los atajos o cualquier preferencia de GNOME.

Si molesta más de lo que ayuda

Si una ventana salta a una zona inesperada, revisamos primero el mosaico automático y los métodos de activación. Si aparecen dos selectores o el arrastre hace cosas distintas según el borde, comprobamos si otra extensión está interviniendo. Cambiar una opción cada vez permite saber cuál era la causa.

Para volver al comportamiento anterior, desactivamos Tiling Shell desde el gestor de extensiones y restauramos la función de Ubuntu que hubiéramos desactivado. No necesitamos cambiar de distribución ni borrar carpetas del sistema.

Me quedaría con la configuración más pequeña que resuelva el problema. Si una zona grande y otra para documentación nos ahorran recolocar ventanas, ya cumple su función. El escritorio no tiene que parecer un panel de control para estar bien aprovechado.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →