3 puntos por GN⁺ 2025-02-10 | 1 comentarios | Compartir por WhatsApp
  • FlashSpace es un gestor de espacios de trabajo virtuales que complementa o reemplaza Spaces de macOS, con el objetivo de lograr cambios rápidos de espacio de trabajo sin esperar las animaciones de macOS
  • Permite asignar apps y pantallas a cada espacio de trabajo, y al cambiar muestra las apps asignadas de esa pantalla mientras oculta las demás, lo que habilita cambios independientes en múltiples pantallas
  • Ofrece Space Control, Workspace Switcher basado en Option + Tab, Focus Manager, perfiles, gestos de deslizamiento, Floating Apps, configuración en JSON/YAML/TOML, CLI e integración con SketchyBar y Raycast
  • Requiere macOS 14.0 o superior y la opción “Displays have separate Spaces”, y admite instalación con Homebrew, descarga de binarios y compilación desde el código fuente
  • No soporta espacios de trabajo por ventana individual ni gestión de layouts, y mantiene un diseño centrado en mostrar/ocultar apps por la falta de una API pública en macOS para ocultar ventanas específicas y por priorizar la simplicidad y el rendimiento

Qué hace FlashSpace

  • FlashSpace es un gestor de espacios de trabajo virtuales para macOS, diseñado para complementar y reemplazar Spaces de macOS
  • Su objetivo es ofrecer cambios rápidos de espacio de trabajo sin tener que esperar las animaciones de macOS
  • A cada espacio de trabajo se le asignan apps, y el espacio de trabajo en sí se asigna a una pantalla específica
  • Al cambiar a un espacio de trabajo, las apps asignadas se muestran automáticamente, y las demás apps de esa misma pantalla se ocultan
  • Es posible cambiar espacios de trabajo de forma independiente en varias pantallas

Instalación y flujo básico de uso

  • Los requisitos son macOS 14.0 o superior y tener activada la opción “Displays have separate Spaces” en Desktop & Dock de la configuración del sistema
  • Admite instalación mediante Homebrew, descarga de binarios de lanzamiento y compilación desde el código fuente
    • El comando de instalación con Homebrew es brew install flashspace
    • Los binarios se pueden descargar desde la Releases Page
  • El flujo básico de uso es el siguiente
    • Mover todas las apps a un único Space de macOS por pantalla
    • Crear espacios de trabajo
    • Asignar apps
    • Asignar una pantalla al espacio de trabajo o usar el modo dinámico
    • Configurar atajos de teclado para activación rápida
    • Repetir el mismo proceso para otros espacios de trabajo
    • Cambiar entre los espacios de trabajo configurados con atajos
  • Para mantener una misma app en varios espacios de trabajo, se puede usar la función Floating Apps en la configuración de la app, o agregar la app a varios espacios de trabajo desde la ventana principal de la app

Funciones principales

  • Ofrece cambios rápidos de espacio de trabajo y soporte para múltiples pantallas
  • Space Control permite previsualizar todos los espacios de trabajo en una cuadrícula y cambiar entre ellos
    • Se puede cambiar de espacio de trabajo con 0-9 y las flechas de dirección
  • Workspace Switcher muestra la lista de espacios de trabajo y permite cambiar entre ellos con Option + Tab de forma predeterminada
    • Funciona de manera similar al selector de apps de macOS con CMD + Tab
  • Focus Manager permite mover el foco entre ventanas en la dirección deseada mediante atajos de teclado, y también soporta saltos entre pantallas
  • Otras funciones incluyen
    • Activación del espacio de trabajo tras detectar el foco de una app
    • Cursor manager que centra automáticamente el cursor en la ventana activa
    • Profiles para cambiar rápidamente entre varias configuraciones
    • Barra de menú con iconos y texto configurables por espacio de trabajo
    • Personalización del comportamiento de los gestos de deslizamiento del trackpad
    • Configuración mediante GUI y archivos de configuración
    • Soporte para archivos de configuración en JSON, YAML y TOML
    • Control de la app mediante CLI
    • Soporte para Picture-in-Picture
    • Integración con SketchyBar
    • Soporte para la extensión de Raycast

Formas de asignar pantallas

  • FlashSpace soporta dos formas de asignar pantallas: modo estático y modo dinámico
  • El modo estático es el predeterminado y asigna cada espacio de trabajo a una pantalla específica
    • Es adecuado para quienes quieren espacios de trabajo dedicados por pantalla, como en macOS Spaces
    • Puede resultar complicado si se usan varias pantallas y se cambia la disposición con frecuencia
  • El modo dinámico asigna automáticamente cada espacio de trabajo a la pantalla donde están ubicadas las apps de ese espacio
    • Un mismo espacio de trabajo puede mostrarse en varias pantallas al mismo tiempo
    • Es útil cuando se quiere reorganizar espacios moviendo apps entre pantallas
    • En este modo no se pueden mostrar espacios de trabajo vacíos
  • El modo de asignación de pantallas se puede cambiar en Workspaces dentro de la configuración de la app

Soporte para Picture-in-Picture y limitaciones

  • FlashSpace soporta el modo Picture-in-Picture, pero es una función experimental
  • Esta función puede desactivarse en App Settings -> Workspaces
  • macOS no ofrece una API pública para ocultar solo ventanas específicas, y al ocultar una app también se ocultan sus ventanas PiP
  • Para evitar este problema, FlashSpace identifica si la app soporta PiP y oculta en una esquina de la pantalla todas las ventanas excepto la ventana PiP
  • Si la ventana PiP no es visible, se aplica el comportamiento estándar
  • Los navegadores compatibles son Safari, Zen Browser, Chrome, Firefox, Brave, Vivaldi, Arc, Dia, Opera, Microsoft Edge y Comet
  • Si el idioma del navegador no está configurado en English, esta función puede no funcionar

Principios de diseño y funciones no compatibles por decisión

  • Los valores del proyecto son el rendimiento, la simplicidad, la estabilidad, el comportamiento no intrusivo y la filosofía UNIX
  • FlashSpace considera la gestión de espacios de trabajo como una sola tarea y sigue el enfoque de hacer bien esa tarea
  • Comportamiento no intrusivo

    • FlashSpace no gestiona activamente las ventanas
    • Si, después de cambiar a un espacio de trabajo, se abre una app que no está asignada a ese espacio, esa app se mostrará por encima de las apps del espacio de trabajo
    • Este comportamiento permite acceder rápidamente a otras apps sin provocar glitches ni cambios de espacio de trabajo
    • En los gestores de ventanas tipo tiling, los glitches pueden ser frecuentes por pop-ups o cuadros de diálogo no contemplados
    • FlashSpace interactúa con el sistema sin interferir, al no intentar gestionar ventanas ni apps no asignadas
  • Sin soporte para espacios de trabajo por ventana individual

    • FlashSpace no soporta el concepto de dividir las ventanas individuales de una app entre distintos espacios de trabajo
    • Es una decisión intencional para mantener la app simple y rápida
    • Se apoya en las funciones nativas de mostrar/ocultar para gestionar y cambiar espacios de trabajo de forma eficiente
    • Este enfoque favorece la batería y no rompe funciones del sistema como Mission Control
    • El soporte por ventana individual añadiría mucha complejidad y podría afectar negativamente el rendimiento
    • macOS no tiene una API pública para ocultar ventanas específicas, y actualmente las opciones son mover la ventana a una esquina de la pantalla o minimizarla, pero ninguna ofrece una experiencia ideal
  • Sin soporte para layouts

    • FlashSpace no soporta mover ventanas, cambiar su tamaño ni modificar layouts
    • Estas funciones aumentarían mucho la complejidad y podrían afectar negativamente el rendimiento
    • Haría falta mucho trabajo para cubrir todos los edge cases y glitches
    • Se puede usar junto con apps de gestión de ventanas como Magnet, Rectangle o Raycast, por lo que no duplica esas funciones

Integraciones, CLI y compilación

  • Puede integrarse con SketchyBar y otros, y ejecuta scripts configurables cuando cambia el espacio de trabajo
  • La CLI permite gestionar espacios de trabajo, apps y perfiles
    • Primero debe instalarse desde la sección CLI en la configuración de la app
    • Se pueden consultar los comandos disponibles con flashspace --help
  • La compilación desde el código fuente usa XcodeGen para generar un proyecto de Xcode a partir de project.yml
    • Después de clonar el repositorio, se instalan las dependencias con brew bundle
    • Luego se ejecuta xcodegen generate y se abre FlashSpace.xcodeproj en Xcode para compilar
    • Cada vez que se cambie de rama o se haga pull de cambios, hay que volver a ejecutar xcodegen generate
    • Para generar el proyecto incluyendo la configuración de firma, se puede usar XCODE_DEVELOPMENT_TEAM=YOUR_TEAM_ID xcodegen generate

Consejos de uso

  • macOS tiene un bug por el que, después de salir del modo de reposo, algunas apps pueden aparecer en la pantalla incorrecta
    • Ocurre si la app estaba oculta durante el reposo
    • Si se encienden todas las pantallas antes de iniciar sesión tras reactivarlo, las apps pueden mostrarse en la pantalla correcta
  • macOS 15 ofrece funciones para mover y redimensionar ventanas sin apps de terceros
    • Se pueden encontrar en el submenú Move & Resize dentro de Window en la barra de menú
    • La personalización de atajos es limitada; para algo más flexible, conviene usar apps de gestión de ventanas como Raycast o Magnet
  • Se puede cambiar el foco entre ventanas de una misma app con el atajo de macOS Cmd + `
  • SKHD es una herramienta CLI para definir atajos globales personalizados y puede usarse junto con la CLI de FlashSpace
  • Los usuarios de Raycast pueden gestionar FlashSpace sin salir del teclado con la extensión de Raycast

1 comentarios

 
GN⁺ 2025-02-10
  • Me pregunto si es compatible con Amethyst. Quiero ventanas en mosaico, pero no quiero la latencia al cambiar de espacio

  • ¡Muy bueno! Ojalá pudieran agregar una vista en cuadrícula de los espacios de trabajo. Extraño TotalSpaces

  • Llega en buen momento. Justo estaba volviendo a explorar opciones en este ámbito y me decidí por AeroSpace. Voy a probar este producto

  • ¡Gracias! Lo acabo de instalar y hasta ahora funciona bien

  • Llevo más de un año usando AeroSpace para este propósito. Desactivé todas las funciones de mosaico en la configuración y solo uso dos atajos: cambiar de espacio de trabajo y mover la ventana actual a un espacio de trabajo. Es indispensable cuando trabajo en una pantalla pequeña

    • AeroSpace sí tiene problemas de rendimiento, pero parece ser un problema inherente a las API disponibles de macOS
    • FlashSpace también parece tener este problema
    • En cuanto a la configuración, me parece engorroso tener que asignar atajos por cada espacio de trabajo. En AeroSpace, todas las letras y números del teclado se convierten automáticamente en espacios de trabajo y los atajos son globales
    • Considerando todo esto, prefiero una herramienta cuyo objetivo principal sea resolver los problemas de los espacios de trabajo en macOS
    • Después de probarlo un poco más, FlashSpace no admite distintas ventanas de la misma app en diferentes espacios de trabajo. Eso es un gran problema para mi flujo de trabajo