BookinglyTech News
Software

Patch para COSMIC que convierte los workspaces en una rejilla de 5x5

Un desarrollador ha modificado el compositor de System76 para navegar entre espacios de trabajo en dos dimensiones mediante gestos, con script de reversión incluido.

2 min de lecturaDev.to0 vistas

System76 ha publicado COSMIC, su propia entorno de escritorio en Rust para Pop!_OS, pero la versión 1.0.0 de fábrica limita la navegación a una línea horizontal o vertical de workspaces. Un desarrollador ha parcheado el compositor para transformar esa línea en una rejilla de 5x5, donde cada celda se alcanza con un gesto de cuatro dedos o una combinación de teclado, y donde la navegación envuelve los bordes como en un toroide.

El parche técnico

El cambio no reescribe la lógica de gestión de memoria de Windows, sino que remapea la geometría. El compositor, cosmic-comp, mantiene internamente su lista plana de workspaces (Vec<Workspace>), pero el parche interpreta los gestos de deslizamiento vertical como movimientos de fila (±cols) y los horizontales como movimientos de columna (±1). La fórmula es simple: idx = row * cols + col.

La integración es menos invasiva de lo que parece porque el protocolo ext-workspace de Smithay ya expone coordenadas 2D. El parche solo altera cómo se calculan esas coordenadas y cómo las renderiza la aplicación de vista previa, cosmic-workspaces. No se toca la arquitectura upstream. Añade una nueva opción en la configuración RON: workspace_grid: Some((5, 5)). Al ser un campo opcional con #[serde(default)], el resto de la interfaz de usuario (configuración, applets) ignora el cambio sin necesidad de recompilación.

La seguridad operativa está pensada para evitar bloqueos. El script de instalación hace copia de seguridad de los binarios originales y usa apt-mark hold para impedir que una actualización de sistema sobrescriba el parche sin avisar. La reversión es un único comando que restaura los archivos archivados y libera los holds. El código total añade unas 430 líneas de Rust en siete archivos, con un commit principal de 319 inserciones que gestiona la entrada y la lógica de rejilla.

Para quién es esto

Este no es un lanzamiento oficial de System76, sino un fork personalizado disponible en GitHub. Es relevante para administradores de sistemas que usan Pop!_OS y dependen de la estabilidad de su compositor, ya que demuestra que es posible modificar el flujo de entrada de Smithay sin romper el contrato de protocolo. Para el desarrollador medio, es un ejemplo útil de cómo interactuar con el compositor en Rust y la librería Smithay. Si tu stack no depende de Pop!_OS o COSMIC, la utilidad es nula, pero la técnica de mapeo 2D sobre una estructura 1D es aplicable en otros contextos de UI.

El repositorio incluye scripts de build, instalación y rollback, lo que facilita la experimentación en un entorno aislado antes de aplicar cambios en producción. La comunidad de COSMIC sigue activa, liderada por Victoria Brekenfeld, pero este tipo de parches comunitarios suelen permanecer como forks privados hasta que la necesidad se generaliza.