3 Punkte von GN⁺ 2025-02-10 | 1 Kommentare | Auf WhatsApp teilen
  • FlashSpace ist ein virtueller Workspace-Manager, der die standardmäßigen macOS Spaces ergänzt bzw. ersetzt und auf schnelle Workspace-Wechsel ohne Warten auf macOS-Animationen abzielt
  • Es unterstützt unabhängiges Umschalten auf mehreren Displays, indem Apps und Displays pro Workspace zugewiesen werden; beim Wechsel werden die zugewiesenen Apps auf dem jeweiligen Display angezeigt und die übrigen Apps ausgeblendet
  • Es bietet Space Control, einen auf Option + Tab basierenden Workspace Switcher, Focus Manager, Profile, Swipe-Gesten, Floating Apps, JSON/YAML/TOML-Konfiguration, CLI sowie Integrationen mit SketchyBar und Raycast
  • Erforderlich sind macOS 14.0 oder neuer sowie die Einstellung „Displays have separate Spaces“; unterstützt werden Installation per Homebrew, Download von Binärdateien und Build aus dem Quellcode
  • Workspace-Verwaltung auf Ebene einzelner Fenster und Layout-Management werden nicht unterstützt; wegen fehlender öffentlicher macOS-APIs zum Ausblenden bestimmter Fenster und aus Gründen von Einfachheit und Performance bleibt das Design auf das Anzeigen/Ausblenden von Apps fokussiert

Was FlashSpace macht

  • FlashSpace ist ein virtueller Workspace-Manager für macOS, der entwickelt wurde, um die standardmäßigen macOS Spaces zu ergänzen und zu ersetzen
  • Das Ziel sind schnelle Workspace-Wechsel, ohne auf macOS-Animationen warten zu müssen
  • Jedem Workspace können Apps zugewiesen werden, und der Workspace selbst wird einem bestimmten Display zugeordnet
  • Beim Wechsel zu einem Workspace werden die zugewiesenen Apps automatisch angezeigt, während andere Apps auf demselben Display ausgeblendet werden
  • Workspaces können auf mehreren Displays unabhängig voneinander umgeschaltet werden

Installation und grundlegender Ablauf

  • Voraussetzungen sind macOS 14.0 oder neuer sowie die aktivierte Option „Displays have separate Spaces“ in den Systemeinstellungen unter Desktop & Dock
  • Unterstützt werden Installation per Homebrew, der Download von Release-Binärdateien und der Build aus dem Quellcode
    • Der Homebrew-Installationsbefehl lautet brew install flashspace
    • Binärdateien sind auf der Releases Page verfügbar
  • Der grundlegende Ablauf ist wie folgt
    • Alle Apps pro Display in einen einzelnen macOS Space verschieben
    • Workspace erstellen
    • Apps zuweisen
    • Dem Workspace ein Display zuweisen oder den dynamischen Modus verwenden
    • Tastenkürzel für schnelle Aktivierung festlegen
    • Dasselbe Verfahren auf andere Workspaces anwenden
    • Per Tastenkürzel zwischen den konfigurierten Workspaces wechseln
  • Wenn dieselbe App in mehreren Workspaces verfügbar sein soll, kann die Funktion Floating Apps in den App-Einstellungen verwendet oder die App über das Hauptfenster der App zu mehreren Workspaces hinzugefügt werden

Hauptfunktionen

  • Es bietet schnelle Workspace-Wechsel und Unterstützung für mehrere Displays
  • Space Control ist eine Funktion zum Anzeigen aller Workspaces in einer Rastervorschau und zum Wechseln zwischen ihnen
    • Mit 0-9 und den Pfeiltasten kann zwischen Workspaces gewechselt werden
  • Der Workspace Switcher öffnet standardmäßig mit Option + Tab eine Liste der Workspaces und ermöglicht den Wechsel
    • Er funktioniert ähnlich wie der macOS-App-Umschalter CMD + Tab
  • Der Focus Manager verschiebt per Tastenkürzel den Fokus in die gewünschte Richtung zwischen Fenstern und unterstützt auch Sprünge zwischen Displays
  • Weitere Funktionen umfassen
    • Aktivieren des Workspaces nach Erkennung des App-Fokus
    • Cursor Manager, der den Cursor automatisch im aktiven Fenster zentriert
    • Profiles zum schnellen Wechseln mehrerer Einstellungen
    • Menüleistenanzeige, in der pro Workspace Icons und Text festgelegt werden können
    • Anpassung des Verhaltens von Trackpad-Swipe-Gesten
    • Konfiguration per GUI und Konfigurationsdatei
    • Unterstützung für die Konfigurationsdateiformate JSON, YAML und TOML
    • App-Steuerung per CLI
    • Unterstützung für Picture-in-Picture
    • Integration mit SketchyBar
    • Unterstützung für die Raycast extension

Methoden zur Display-Zuweisung

  • FlashSpace unterstützt zwei Methoden zur Display-Zuweisung: statischen Modus und dynamischen Modus
  • Der statische Modus ist die Standardeinstellung und weist jeden Workspace einem bestimmten Display zu
    • Er eignet sich für Nutzer, die wie bei macOS Spaces dedizierte Workspaces pro Display möchten
    • Wer mehrere Displays nutzt und die Anordnung häufig ändert, könnte damit Schwierigkeiten haben
  • Der dynamische Modus weist jeden Workspace automatisch dem Display zu, auf dem sich die Apps dieses Workspaces befinden
    • Ein einzelner Workspace kann gleichzeitig auf mehreren Displays angezeigt werden
    • Das ist nützlich, wenn Apps zwischen Displays verschoben und Workspaces dadurch neu angeordnet werden sollen
    • In diesem Modus können leere Workspaces nicht angezeigt werden
  • Der Modus zur Display-Zuweisung kann in den App-Einstellungen unter Workspaces geändert werden

Picture-in-Picture-Unterstützung und Einschränkungen

  • FlashSpace unterstützt den Picture-in-Picture-Modus, allerdings als experimentelle Funktion
  • Diese Funktion kann unter App Settings -> Workspaces deaktiviert werden
  • macOS bietet keine öffentliche API, um nur bestimmte Fenster auszublenden; wenn eine App ausgeblendet wird, wird auch das PiP-Fenster mit ausgeblendet
  • Um dieses Problem zu umgehen, erkennt FlashSpace, ob eine App PiP unterstützt, und versteckt alle Fenster außer dem PiP-Fenster in einer Bildschirmecke
  • Wenn kein PiP-Fenster sichtbar ist, wird das Standardverhalten angewendet
  • Unterstützte Browser sind Safari, Zen Browser, Chrome, Firefox, Brave, Vivaldi, Arc, Dia, Opera, Microsoft Edge und Comet
  • Wenn die Browsersprache nicht auf English eingestellt ist, funktioniert diese Funktion möglicherweise nicht

Designprinzipien und bewusst nicht unterstützte Funktionen

  • Die Projektwerte sind Performance, Einfachheit, Stabilität, nicht störendes Verhalten und die UNIX-Philosophie
  • FlashSpace betrachtet Workspace-Management als eine Aufgabe und konzentriert sich darauf, diese gut zu erledigen
  • Nicht störendes Verhalten

    • FlashSpace verwaltet Fenster nicht aktiv
    • Wenn nach dem Wechsel zu einem Workspace eine App aufgerufen wird, die diesem Workspace nicht zugewiesen ist, erscheint diese App über den Workspace-Apps
    • Dieses Verhalten ermöglicht schnellen Zugriff auf andere Apps, ohne Glitches oder Workspace-Wechsel zu verursachen
    • Bei Tiling-Window-Managern können Glitches durch nicht konfigurierte Pop-ups oder Dialogfenster häufig auftreten
    • FlashSpace interagiert mit dem System, ohne zu stören, indem es nicht zugewiesene Fenster und Apps nicht verwaltet
  • Keine Unterstützung für Workspaces auf Ebene einzelner App-Fenster

    • FlashSpace unterstützt nicht das Konzept, einzelne Fenster einer App auf verschiedene Workspaces aufzuteilen
    • Das ist eine bewusste Entscheidung, um das System einfach und schnell zu halten
    • Es verlässt sich auf native Ein-/Ausblendefunktionen, um Workspace-Verwaltung und -Wechsel effizient auszuführen
    • Dieser Ansatz schont den Akku und beeinträchtigt keine Systemfunktionen wie Mission Control
    • Unterstützung auf Ebene einzelner Fenster würde die Komplexität stark erhöhen und könnte sich negativ auf die Performance auswirken
    • macOS bietet keine öffentliche API zum Ausblenden bestimmter Fenster; derzeit bleibt nur, Fenster in eine Bildschirmecke zu verschieben oder zu minimieren, und beides ist keine ideale User Experience
  • Keine Layout-Unterstützung

    • FlashSpace unterstützt weder das Verschieben noch das Ändern der Größe von Fenstern oder das Anpassen von Layouts
    • Diese Funktionen würden die Komplexität deutlich erhöhen und könnten sich negativ auf die Performance auswirken
    • Um alle Edge Cases und Glitches abzudecken, wäre viel Arbeit nötig
    • Es kann zusammen mit Fensterverwaltungs-Apps wie Magnet, Rectangle oder Raycast verwendet werden und dupliziert diese Funktionen daher nicht

Integrationen, CLI und Build

  • Es kann mit SketchyBar und anderen Tools integriert werden und führt beim Workspace-Wechsel konfigurierbare Skripte aus
  • Die CLI unterstützt die Verwaltung von Workspaces, Apps und Profilen
    • Sie muss zuerst in den App-Einstellungen unter CLI installiert werden
    • Mit flashspace --help können verfügbare Befehle angezeigt werden
  • Für den Build aus dem Quellcode wird mit XcodeGen aus project.yml ein Xcode-Projekt erzeugt
    • Nach dem Klonen des Repositories werden die Abhängigkeiten mit brew bundle installiert
    • Danach xcodegen generate ausführen und FlashSpace.xcodeproj in Xcode öffnen, um zu bauen
    • Beim Wechseln des Branches oder nach dem Pullen von Änderungen muss xcodegen generate erneut ausgeführt werden
    • Um das Projekt inklusive Signatur-Einstellungen zu erzeugen, kann XCODE_DEVELOPMENT_TEAM=YOUR_TEAM_ID xcodegen generate verwendet werden

Nutzungstipps

  • macOS hat einen Bug, bei dem Apps nach dem Ruhezustand auf dem falschen Display erscheinen können
    • Das passiert, wenn Apps während des Ruhezustands ausgeblendet waren
    • Wenn nach dem Aufwachen vor dem Login alle Displays eingeschaltet werden, können Apps auf dem richtigen Display erscheinen
  • macOS 15 bietet Funktionen zum Verschieben und Skalieren von Fenstern ohne Drittanbieter-App
    • Im Menü Window gibt es dazu das Untermenü Move & Resize
    • Die Anpassung von Tastenkürzeln ist eingeschränkt; flexibler sind Fensterverwaltungs-Apps wie Raycast oder Magnet
  • Der Fokuswechsel zwischen Fenstern derselben App ist in macOS mit dem Tastenkürzel Cmd + ` möglich
  • SKHD ist ein CLI-Tool zum Definieren benutzerdefinierter globaler Tastenkürzel und kann zusammen mit der FlashSpace-CLI verwendet werden
  • Raycast-Nutzer können FlashSpace mit der Raycast extension verwalten, ohne die Tastatur zu verlassen

1 Kommentare

 
GN⁺ 2025-02-10
  • Ich frage mich, ob es mit Amethyst kompatibel ist. Ich möchte Tiling-Fenster, aber keine Verzögerung beim Wechseln von Spaces

  • Sehr schön! Ich hoffe, dass eine Rasteransicht der Workspaces hinzugefügt werden kann. Ich vermisse TotalSpaces

  • Guter Zeitpunkt. Ich habe die Optionen in diesem Bereich gerade erneut geprüft und mich für Aerospace entschieden. Ich werde dieses Produkt ausprobieren

  • Danke! Ich habe es gerade installiert, und bisher funktioniert es gut

  • Ich nutze AeroSpace seit über einem Jahr genau für diesen Zweck. In den Einstellungen habe ich alle Tiling-Funktionen deaktiviert und verwende nur zwei Shortcuts: zu einem Workspace wechseln und das aktuelle Fenster in einen Workspace verschieben. Beim Arbeiten auf kleinen Bildschirmen ist das unverzichtbar

    • AeroSpace hat Performance-Probleme, aber das scheint ein Problem zu sein, das in den verfügbaren macOS-APIs begründet ist
    • FlashSpace scheint dieses Problem ebenfalls zu haben
    • Bei der Konfiguration finde ich es umständlich, Shortcuts pro Workspace festzulegen. In AeroSpace werden automatisch alle Buchstaben und Zahlen der Tastatur zu Workspaces, und die Shortcuts sind global
    • Alles in allem bevorzuge ich ein Tool, dessen Hauptziel es ist, die Probleme der macOS-Workspaces zu lösen
    • Nach weiteren Tests unterstützt FlashSpace keine unterschiedlichen Fenster derselben App in verschiedenen Workspaces. Das ist ein großes Problem für meinen Workflow