13 puntos por GN⁺ 2025-10-14 | 1 comentarios | Compartir por WhatsApp
  • Un gestor de ventanas en mosaico de código abierto para macOS, desarrollado con enfoque en el rendimiento y la usabilidad
  • Funciona sin desactivar la Protección de Integridad del Sistema (SIP) y es uno de los pocos gestores de ventanas compatibles con la opción de macOS "Displays have separate Spaces"
  • Admite varios estilos de diseño similares a i3/sway y bspwm
  • Ofrece una integración natural con la experiencia nativa de macOS, como navegación de espacios de trabajo al estilo Mission Control y gestos de trackpad
  • Se centra en el rendimiento de las animaciones y la experiencia de usuario, y destaca por la recarga en caliente de la configuración y las funciones de integración con programas externos
  • Hereda parte de las ventajas de Aerospace, un gestor de ventanas en mosaico existente para macOS, como el rendimiento y la flexibilidad, pero también apunta a funciones adicionales como soporte para animaciones y la posibilidad de usar solo una pantalla en modo de pantalla completa en configuraciones con múltiples monitores

Funciones principales

  • Varios estilos de diseño: permite organizar ventanas en forma de cuadrícula como i3 o sway, o usar el método de partición binaria del espacio al estilo bspwm
  • Icono en la barra de menú: muestra visualmente todos los espacios de trabajo y el estado del diseño dentro de cada uno
  • Navegación al estilo Mission Control de macOS: facilita la gestión visual del cambio entre espacios de trabajo
  • Ofrece cambio automático de foco con el mouse y elevación automática
  • Permite intercambiar posiciones al arrastrar ventanas, con animaciones fluidas
  • Al usar gestos de trackpad, permite cambiar de espacio de trabajo como en la experiencia nativa de macOS
  • Admite cambios de configuración en ejecución (hot reload), lo que facilita mucho la configuración en tiempo real
  • Soporta interfaz e integración con programas de terceros como Sketchybar, además de integración mediante CLI o mach port
  • Puede enviar señales (Signals) hacia el exterior cuando cambia el espacio de trabajo o hay cambios en las ventanas; las señales se pueden emitir mediante CLI o conexión mach
  • Desarrollado 100% en Rust

1 comentarios

 
GN⁺ 2025-10-14
Opiniones de Hacker News
  • Antes usaba muchísimo i3. i3 es increíblemente flexible y permite configurar mucho más que solo mover ventanas. Pero desde que me pasé a Mac, no he encontrado un gestor de ventanas en mosaico que tenga muchas funciones y además sea estable. Probé varias opciones y ahora simplemente uso Rectangle. Rectangle no es realmente un gestor de ventanas; solo ofrece atajos para mover fácilmente las ventanas a la izquierda/derecha/arriba/abajo o a divisiones de 3/4/6. Cubre como el 80% de mi patrón de uso, no requiere configuración personalizada y no tiene comportamientos inesperados, así que lo uso muy a gusto. Supongo que con la edad también cuesta dedicarle tiempo a tantas configuraciones personalizadas. Sitio oficial de Rectangle

    • Una función de Rectangle que de verdad me encanta es el modo todo. En realidad no lo uso para gestionar tareas, pero es muy cómodo poder fijar una ventana para que siempre se muestre, y que el atajo global de ventanas se ajuste automáticamente a eso
    • Agradezco muchísimo que Rectangle soporte la opción de atajos de Spectacle. Tal vez algún día aprenda los atajos predeterminados, pero por ahora ya los tengo muy interiorizados y sigo usando esa forma
    • La combinación de Rectangle y Apptivate puso fin a mis años buscando un reemplazo para i3. Rectangle para mover ventanas, Apptivate para cambiar de ventana con super+número: reproduce exactamente el flujo que usaba en i3
    • Experiencia parecida, pero yo uso Divvy en lugar de Rectangle. Sitio oficial de Divvy
    • Recomiendo Rectangle. Hizo mucho más fácil la adaptación al pasar de Linux a Mac
  • En pantallas 5k/6k, el tiling tradicional tiene límites: las ventanas terminan quedando demasiado grandes. Por eso creo que apps como Moom son mucho mejores. En Windows no hay una app como Moom, así que uso un gestor en mosaico como komorebi. Como alguien que va y viene entre varios sistemas operativos y dispositivos, me decepciona que rift no soporte combinaciones de teclas universales como alt+hjkl. En monitores de ultra alta resolución o ultrawide, este tipo de distribución de ventanas me parece indispensable (komorebi sí lo soporta)

    • Si el diagrama ASCII que pegaste no se ve bien, en HN los bloques de código se muestran correctamente si los indentas con cuatro espacios
    • Dicen que komorebi también llegará pronto a macOS Video de presentación de komorebi para macOS
  • Puede que para mucha gente se quede corto, pero para alguien como yo, que en Mac normalmente usa una sola ventana o dos pantallas solo cuando conecta un monitor externo, esta función básica es suficiente Guía oficial de división de ventanas de macOS (no soy un usuario intensivo de tiling)

    • Me pregunto si esto solo estaba disponible en Macs con Tahoe. No tenía idea hasta ahora
    • No sabía en absoluto que existía esta función; gracias por compartirlo
  • La razón por la que el modo de pantalla completa y los gestos del trackpad resultan tan atractivos en macOS es que, en la mayoría de los casos, uno trabaja con una sola ventana. Pero cuando necesitas tener abiertas al mismo tiempo terminal, editor, DevTools del navegador, logs y documentación, poder predecir el layout se vuelve muy importante. Las herramientas de tiling no sirven solo para poner dos ventanas lado a lado,

    • reducen muchísimo el costo del cambio de contexto (cambiar/reorganizar ventanas solo con el teclado)
    • permiten replicar layouts de trabajo frecuentes por proyecto
    • hacen mucho más útiles las divisiones precisas en pantallas de ultra alta resolución
      En Mac, yo resuelvo como el 80% con Rectangle o Moom, y para lo demás uso Aerospace o Rift. Cuando aumenta la cantidad de ventanas o la frecuencia con la que cambias entre ellas, la utilidad de un gestor de ventanas en mosaico se vuelve muy clara
  • En algún momento quise hacer mi propio gestor de ventanas, pero en macOS no hay una API decente para eso, así que abandoné rápido. En la práctica, hay que apañárselas hackeando la API de accesibilidad. Este proyecto también usa bindings de Objective-C y la API de accesibilidad, así que me da curiosidad cómo hicieron el debugging, cómo implementaron funciones y qué herramientas usaron principalmente

    • Creo que el framework de accesibilidad está demasiado bien diseñado como para llamarlo simplemente un "hack". Durante el último mes estuve creando un proyecto parecido en Rust y trabajando con varios bindings de frameworks de macOS, y la verdad no da tanto miedo. Con Rust, rust-analyzer, la documentación de Apple y la de objc2 es suficiente; ni siquiera hace falta una configuración compleja como Xcode
  • Yo también pasé recientemente por una buena sesión de yak shaving para dejar Aerospace exactamente a mi gusto. Me pregunto cómo resuelve la gente el tema de tantos atajos que se pisan entre sí. Como ya tengo muy interiorizadas las combinaciones con hjkl, termino queriendo mapear casi todo ahí, y la función modal de Aerospace ayuda un poco a resolver esos conflictos. ¿Cómo lo termina configurando la mayoría?

    • Normalmente parece que la gente simplemente vive con eso. A mí también me saltan conflictos de atajos bastante seguido en el uso diario. Después de usar Aerospace cerca de un año, terminé usando alt+space como tecla líder y ocultando todo detrás de eso. Dejo algunos alt-shortcuts en el modo normal de Aerospace para mover ventanas con {hjkl}, y el resto lo manejo en modos separados (por ejemplo, modos de "go-to" y "move-to" para moverme rápido entre letras o números). Me gusta porque se siente como una extensión de la usabilidad basada en leader key de zellij/tmux en la terminal. Un problema es que Aerospace a veces deja las ventanas escondidas después de cambiar de pantalla, y luego termino buscándolas en alguna esquina inferior
    • Probé Aerospace, pero la configuración predeterminada asigna todas las combinaciones alt+letra (las 26) a workspaces distintos, lo que elimina por completo muchos atajos estilo Emacs que podrías usar dentro de las apps. Ni siquiera tiene un tutorial de mapeo de teclas o de uso básico; solo una larga lista de comandos. Hace poco también pasé por bastante dolor con entornos Linux como sway e hyprland (incluso tuve que tocar temas de bootloader y cifrado de disco), pero aun así es raro encontrar software tan poco amigable. Así que terminé desinstalando Aerospace y considerando Rift como siguiente candidato, o incluso implementar mi propio gestor de ventanas, porque al final los gestores en mosaico suelen ser ese tipo de software donde uno termina pensando: "voy a hacer yo mismo exactamente lo que necesito"
    • Yo hago algo parecido con Karabiner: cambié el Option derecho de mi teclado externo a Option+Shift (A1), y el Control derecho a Control+Option+Shift (A2). En la configuración de Aerospace, mover el foco es A1+hjkl, mover ventanas es A2+hjkl. Cambiar de workspace es A1+ui, mover una ventana de workspace es A2+ui. Cambiar de pantalla (monitor) es A1+m, mover una ventana de pantalla es A2+m. Son las combinaciones que más uso en la práctica, y si hay conflicto de atajos entre apps, simplemente cambio el atajo de esa app para evitarlo. Podría expandirse más, pero así ya me funciona muy bien
    • Yo uso atajos meh (control+alt+shift) y hyper (control+alt+shift+command). Tengo caps lock mapeado para que, si lo mantengo presionado, sea meh, y si lo toco rápido, sea esc. Eso me permitió concentrar muchísimos atajos en una sola mano. Por ejemplo, meh+número para cambiar de space, ventana caliente de terminal con meh+space, y foco de ventanas también con meh+hjkl
  • Con Hammerspoon puedes crear tu propio gestor de ventanas. A mí me gusta el enfoque modal que ofrece Divvy (cambiar layouts con una sola tecla de comando), pero por desgracia ya no recibe mantenimiento. Así que probé crear mi propio gestor de ventanas modal con OpenAI Codex Código fuente del gestor de ventanas para Hammerspoon. ¡Sería divertido compartir este tipo de enfoques!

    • Yo también he usado Divvy de forma constante, pero no tenía idea de que ya no recibía mantenimiento… aunque igual ya tiene todo lo que necesito, así que no me afecta demasiado. Si hay alguna función que te gustaría que tuviera, me da curiosidad saber cuál sería
    • Yo resolví todas mis necesidades con MiroWindowsManager (plugin de Hammerspoon). Con sus 3 formas de chord division, puedes colocar cualquier ventana exactamente en la división que quieras usando solo hotkeys. De verdad puedes dejar las ventanas como quieres en cuestión de segundos
  • Si usas el trackpad del MacBook, Swish está por encima de cualquier otra app Sitio oficial de Swish

    • Totalmente, el nombre "highly opinionated" le queda perfecto ;). Pero la razón por la que sigo prefiriendo Divvy es que mis atajos de teclado personalizados funcionan exactamente igual tanto con el trackpad como con un teclado externo. Sitio oficial de Divvy
  • ¿Alguien ha probado configurar esto con nix flake? Desde yabai he estado probando varios gestores de ventanas, pero con Aerospace a veces noto lag, quizá por un problema en el manejo de eventos, cuando lo uso junto con sketchybar solo para mostrar bonitos indicadores de workspace. Tal vez lo siguiente que pruebe sea esto (rift)

  • No entiendo por qué haría falta un gestor de ventanas en mosaico en macOS. ¿Qué tan seguido hace falta tener ventanas una al lado de la otra? ¿No basta con poner la mayoría de las apps en pantalla completa y cambiar entre ellas con un swipe de 4 dedos? Que alguien me convenza

    • Yo sí lo uso muy seguido. Dejo Slack en el cuarto derecho de la pantalla, y el resto lo reparto entre navegador/terminal/IDE según lo que necesite. A veces tengo navegador+tail de logs, y dentro de cada app también suelo dividir en múltiples vistas/terminales. En el navegador también comparo páginas lado a lado con frecuencia
    • No diría que un gestor de ventanas en mosaico sea algo que uno "necesita" necesariamente. Pero eso de "solo pon todo en pantalla completa y usa swipe de 4 dedos" quizá te funcione solo a ti. Yo tengo casi todo desactivado: gestos, animaciones y múltiples escritorios (Spaces). Cambiar entre apps en pantalla completa me parece demasiado lento, y para llegar a la app que quiero tengo que encadenar varios swipes. No me gusta tener que calcular mentalmente el orden de las apps y cuántas veces debo pasar. Quiero abrir exactamente la app que necesito al instante
    • No es macOS, pero supongo que la razón es parecida a por qué se usa tiling en Linux. Si solo usas la pantalla del laptop, pantalla completa suele bastar; pero mientras más grande es el monitor, más razones hay para usar ventanas lado a lado. Documentos/correo, editor/terminal/VCS, código/documentación, plantilla/web, contabilidad/banco, gestor de archivos, etc.; hay muchas tareas donde ver varias apps al mismo tiempo resulta mucho más productivo
    • Definitivamente hay casos donde es bueno tener varias ventanas abiertas al lado. Por ejemplo, cuando trabajas con navegador/documentación/IDE al mismo tiempo, o cuando una sola app no necesita toda la pantalla. De hecho, la mayoría de las apps no necesitan tamaño de pantalla completa, y a veces hasta un mosaico de 1/4 resulta más cómodo. Yo normalmente uso bastante pantalla completa + escritorios virtuales, pero depende del trabajo
    • Antes usaba mucho Spaces (cambio de escritorio), pero con monitores grandes es más cómodo tener todo visible en una sola pantalla. Yo uso tres monitores de 32 pulgadas (los de los lados en vertical) y casi nunca pongo nada en pantalla completa, salvo el IDE. Dividir la pantalla equivale a tener varias pantallas pequeñas simultáneamente, así que no hace falta buscar en qué escritorio está cada ventana: es más simple y eficiente. Además, cuando Chrome está abierto en varios Spaces, muchas veces cmd-tab no selecciona la ventana que quiero y termino buscándola a mano, lo cual es fastidioso. En cambio, cuando uso solo el laptop, como la pantalla es pequeña, sí gestiono las ventanas más con escritorios virtuales. Puedo cambiar entre Slack, varias ventanas de Chrome, terminal, IDE, Postman, DataGrip y todo lo demás con un solo atajo, sin cambiar toda la pantalla. Es como tener 8 pantallas reales siempre abiertas, lo que maximiza la productividad. Con r-cmd puedo enfocarme en cada app rapidísimo, y como no tengo que andar recorriendo escritorios virtuales, también es mucho más fácil encontrar todo