- Ein Wayland-Compositor, der es ermöglicht, Linux-Anwendungen auf macOS ohne virtuelle Maschine auszuführen, und sich dank Metal/OpenGL-basiertem Rendering nahtlos in die macOS-Fensterumgebung integriert
- Direkte Wayland-Protokoll-Kommunikation über Unix-Sockets minimiert Performance-Verluste; unterstützt werden außerdem HiDPI-Display-Optimierung und serverseitige Dekorationen
- In Rust geschrieben und mit hardwarebeschleunigtem Rendering für geringe Latenz und hohe Effizienz
- Mit SSH und
waypipe-darwin lassen sich Apps eines Linux-Hosts als macOS-Fenster anzeigen
- Unter der GPLv3-Lizenz veröffentlicht; eine Roadmap mit Erweiterungen für Windows- und Android-Backends ist in Arbeit
Überblick
- Cocoa-Way ist ein Wayland-Compositor, der Linux-Anwendungen auf macOS wie in einer nativen Umgebung ausführen kann
- Durch Metal/OpenGL-Rendering fügt er sich natürlich in den macOS-Desktop ein und unterstützt direkte Wayland-Protokollverbindungen über Sockets ohne virtuelle Maschine
- Enthält Funktionen wie HiDPI-Display-Optimierung, serverseitige Dekorationen und hardwarebeschleunigtes Rendering
- Wurde in Rust geschrieben und wird unter der GPLv3-Lizenz verteilt
Hauptfunktionen
- Native macOS-Integration: Metal/OpenGL-basiertes Rendering sorgt für vollständige Kompatibilität mit macOS-Fensterverwaltung und visuellen Effekten
- Zero VM Overhead: Minimale Performance-Verluste durch direkte Wayland-Protokoll-Kommunikation über Unix-Sockets ohne Virtualisierung
- HiDPI-Unterstützung: Skalierung und Pixelgenauigkeit für Retina-Displays
- Höhere UI-Qualität: Enthält serverseitige Dekorationen wie Schatten und Fokusindikatoren
- Hardwarebeschleunigung: Eine effiziente OpenGL-Rendering-Pipeline ermöglicht geringe Latenz und hohe Leistung
Installation
-
Installation über Homebrew (empfohlen)
brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin
-
Binärdatei herunterladen
- Auf der GitHub-Releases-Seite können
.dmg- oder .zip-Dateien heruntergeladen werden
-
Aus dem Quellcode bauen
Schnellstart
Architektur
- Auf der macOS-Seite befinden sich der Cocoa-Way-Compositor und der waypipe-Client
- Auf der Linux-VM- oder Container-Seite befinden sich der waypipe-Server und die Linux-App
- Linux-App → Wayland-Protokoll → waypipe-Server → SSH/Socket → waypipe-Client → Cocoa-Way → Metal/OpenGL → macOS-Display
- Der gesamte Pfad ist direkt ohne Virtualisierung verbunden und bietet dadurch geringe Latenz und hohe Effizienz
Vergleich
| Lösung |
Latenz |
HiDPI |
Native Integration |
Einrichtungsaufwand |
| Cocoa-Way |
⚡ niedrig |
✅ vollständige Unterstützung |
✅ native Fenster |
🟢 einfach |
| XQuartz |
🐢 hoch |
⚠️ teilweise unterstützt |
⚠️ X11-spezifische Eigenheiten |
🟡 mittel |
| VNC |
🐢 hoch |
❌ nicht unterstützt |
❌ nur Vollbild |
🟡 mittel |
| VM GUI |
🐢 hoch |
⚠️ teilweise unterstützt |
❌ separates Fenster |
🔴 komplex |
Roadmap
- ✅ macOS-Backend (Metal/OpenGL)
- ✅ Waypipe-Integration
- ✅ HiDPI-Skalierung
- 🚧 Windows-Backend (win-way)
- 📱 Android-NDK-Backend (geplant)
- ⏳ Multi-Monitor-Unterstützung
- ⏳ Zwischenablage-Synchronisierung
Forschungshintergrund
- Teil des Forschungsprojekts „Turbo-Charged Protocol Virtualization“,
das Zero-Cost-Cross-Platform-Wayland-Virtualisierung mithilfe von Rust-Trait-Monomorphisierung und SIMD-basierter Pixelkonvertierung untersucht
Problembehebung
- Wenn der SSH-Fehler „remote port forwarding failed“ auftritt, ist oft eine verbliebene Socket-Datei auf dem Remote-Host die Ursache
Beiträge
- Vor dem Hinzufügen oder Ändern von Funktionen wird empfohlen, zunächst ein Issue zu eröffnen und die Änderung zu diskutieren
- Beiträge per Pull Request sind willkommen
Lizenz
- GPL-3.0
- Copyright © 2024–2025 J-x-Z
1 Kommentare
Hacker-News-Kommentare
Ehrlich gesagt frage ich mich: Welche Linux-GUI-Apps gibt es eigentlich, die keinen nativen Build für macOS haben? Die meisten basieren auf Qt oder GTK und sind plattformübergreifend, aber mir fällt spontan keine wirklich populäre App ein
xpramachenPerfekt. Jetzt kann man GUI-Apps in Containern ausführen. Ich habe früher etwas Ähnliches mit X11 ausprobiert, aber es hat mir nicht gefallen. Es fühlt sich an, als würde Apples Stellung auf dem Desktop immer schwächer werden. Am Ende kommt wohl eine Zeit, in der jeder ein „Entwickler“ ist
Dieses Projekt wirkt etwas dubios. Das README ist voller Emojis und erklärt die Implementierung überhaupt nicht. Es heißt zwar, es gebe ein Metal-Backend, aber in Wirklichkeit scheint es keines zu geben. Auch die Liste der Abhängigkeiten wirkt seltsam
So etwas braucht man auch für Android. termux-x11 ist zwar ein Anfang, aber wenn termux Wayland unterstützen oder die Linux-VM von Android einen Wayland-Socket nach außen reichen könnte, dann bräuchte man nur noch einen nativen Compositor für flüssiges Rendering
Es ist schade, dass macOS nicht in einen Darwin-Shell-Modus ohne GUI booten kann. Dann hätte es ein großartiges UNIX sein können, mit Desktop-Umgebungen wie KDE oder COSMIC und dem Paketmanager brew darüber
Falls das möglich ist, frage ich mich, ob ein auf macOS basierender Wayland-Client eine EGL-Surface erzeugen kann
Ob man wohl mit Waydroid innerhalb von Orbstack eine Android-Umgebung ausführen kann? Theoretisch scheint das möglich zu sein
Wenn man macOS auf Windows-/Linux-Tastenkürzel umstellen könnte, wäre es deutlich weniger frustrierend
Ich frage mich, ob dieses Projekt auch nur ein wenig Interesse an GNUstep wecken kann