HN veröffentlicht: FlashSpace – schneller, Open-Source-Ersatz für macOS Spaces
(github.com/wojciech-kulik)- 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 + Tabbasierenden 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 Homebrew-Installationsbefehl lautet
- 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-9und den Pfeiltasten kann zwischen Workspaces gewechselt werden
- Mit
- Der Workspace Switcher öffnet standardmäßig mit
Option + Tabeine Liste der Workspaces und ermöglicht den Wechsel- Er funktioniert ähnlich wie der macOS-App-Umschalter
CMD + Tab
- Er funktioniert ähnlich wie der macOS-App-Umschalter
- 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 -> Workspacesdeaktiviert 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 --helpkönnen verfügbare Befehle angezeigt werden
- Für den Build aus dem Quellcode wird mit XcodeGen aus
project.ymlein Xcode-Projekt erzeugt- Nach dem Klonen des Repositories werden die Abhängigkeiten mit
brew bundleinstalliert - Danach
xcodegen generateausführen undFlashSpace.xcodeprojin Xcode öffnen, um zu bauen - Beim Wechseln des Branches oder nach dem Pullen von Änderungen muss
xcodegen generateerneut ausgeführt werden - Um das Projekt inklusive Signatur-Einstellungen zu erzeugen, kann
XCODE_DEVELOPMENT_TEAM=YOUR_TEAM_ID xcodegen generateverwendet werden
- Nach dem Klonen des Repositories werden die Abhängigkeiten mit
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ü
Windowgibt es dazu das UntermenüMove & Resize - Die Anpassung von Tastenkürzeln ist eingeschränkt; flexibler sind Fensterverwaltungs-Apps wie Raycast oder Magnet
- Im Menü
- 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
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