- Un compositeur Wayland qui permet d’exécuter des applications Linux sans machine virtuelle sur macOS, avec un rendu basé sur Metal/OpenGL pour une intégration naturelle à l’environnement de fenêtres de macOS
- Communication directe via le protocole Wayland à travers des sockets Unix afin de minimiser la perte de performances, avec prise en charge de l’optimisation HiDPI et des décorations côté serveur
- Écrit en Rust, il offre une accélération matérielle du rendu pour une faible latence et une haute efficacité
- Avec SSH et
waypipe-darwin, il est possible d’afficher les applications d’un hôte Linux dans des fenêtres macOS
- Distribué sous licence GPLv3, avec une feuille de route en cours incluant des extensions backend pour Windows et Android
Vue d’ensemble
- Cocoa-Way est un compositeur Wayland qui permet d’exécuter des applications Linux sur macOS comme si elles étaient natives
- Grâce au rendu Metal/OpenGL, il s’intègre naturellement au bureau macOS et prend en charge une connexion directe au protocole Wayland via des sockets, sans machine virtuelle
- Comprend des fonctions d’optimisation pour les écrans HiDPI, de décorations côté serveur et de rendu accéléré matériellement
- Écrit en Rust et distribué sous licence GPLv3
Fonctionnalités principales
- Intégration native à macOS : rendu basé sur Metal/OpenGL maintenant une compatibilité complète avec la gestion des fenêtres et les effets visuels de macOS
- Zero VM Overhead : communication directe via le protocole Wayland à travers des sockets Unix sans virtualisation afin de minimiser la perte de performances
- Prise en charge HiDPI : mise à l’échelle et précision au pixel adaptées aux écrans Retina
- Interface plus aboutie : inclut des fonctions de décoration côté serveur comme les ombres et les indicateurs de focus
- Accélération matérielle : pipeline de rendu OpenGL efficace pour obtenir une faible latence et de hautes performances
Méthode d’installation
-
Installation via Homebrew (recommandée)
brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin
-
Téléchargement du binaire
- Les fichiers
.dmg ou .zip peuvent être téléchargés depuis la page GitHub Releases
-
Compilation depuis les sources
Démarrage rapide
Architecture
- Côté macOS se trouvent le compositeur Cocoa-Way et le client waypipe
- Côté VM Linux ou conteneur se trouvent le serveur waypipe et les applications Linux
- Application Linux → protocole Wayland → serveur waypipe → SSH/socket → client waypipe → Cocoa-Way → Metal/OpenGL → affichage macOS
- L’ensemble du chemin est directement connecté sans virtualisation, pour une faible latence et une haute efficacité
Comparaison
| Solution |
Latence |
HiDPI |
Intégration native |
Complexité de configuration |
| Cocoa-Way |
⚡ faible |
✅ prise en charge complète |
✅ fenêtres natives |
🟢 facile |
| XQuartz |
🐢 élevée |
⚠️ prise en charge partielle |
⚠️ particularités de X11 |
🟡 moyenne |
| VNC |
🐢 élevée |
❌ non pris en charge |
❌ plein écran uniquement |
🟡 moyenne |
| VM GUI |
🐢 élevée |
⚠️ prise en charge partielle |
❌ fenêtre séparée |
🔴 complexe |
Feuille de route
- ✅ backend macOS (Metal/OpenGL)
- ✅ intégration Waypipe
- ✅ mise à l’échelle HiDPI
- 🚧 backend Windows (win-way)
- 📱 backend Android NDK (prévu)
- ⏳ prise en charge multi-écran
- ⏳ synchronisation du presse-papiers
Contexte de recherche
- Fait partie du projet de recherche « Turbo-Charged Protocol Virtualization »,
qui explore une virtualisation Wayland multiplateforme à coût nul en s’appuyant sur la monomorphisation des traits Rust et la conversion de pixels basée sur SIMD
Résolution de problèmes
- En cas d’erreur SSH « remote port forwarding failed », la cause peut être un fichier socket restant sur l’hôte distant
Contribution
- Il est recommandé d’ouvrir une issue et d’en discuter avant d’ajouter ou de modifier une fonctionnalité
- Les contributions via Pull Request sont bienvenues
Licence
- GPL-3.0
- Copyright © 2024–2025 J-x-Z
1 commentaires
Commentaires sur Hacker News
Honnêtement, je me pose une question. Quels apps GUI Linux n’ont pas de build native pour macOS ? La plupart reposent sur Qt ou GTK, donc sont multiplateformes, et je ne vois pas vraiment d’app populaire qui me vienne à l’esprit
xprasous X11Parfait. On peut maintenant faire tourner des apps GUI dans des conteneurs. J’avais essayé quelque chose de similaire avec X11 auparavant, mais ça ne m’avait pas plu. J’ai de plus en plus l’impression que la position d’Apple sur le desktop s’affaiblit. On va finir dans un monde où tout le monde devient « développeur »
Ce projet paraît un peu suspect. Le README est rempli d’emojis et n’explique rien de l’implémentation. Il prétend avoir un backend Metal, mais en pratique il semble ne pas exister. La liste des dépendances est aussi étrange
Il faudrait aussi quelque chose comme ça pour Android. termux-x11 est un point de départ, mais si termux prenait en charge Wayland, ou si la VM Linux d’Android pouvait exposer un socket Wayland, alors il ne manquerait plus qu’un compositeur natif pour un rendu fluide
Je trouve dommage que macOS ne puisse pas démarrer en mode shell Darwin sans GUI ; ça aurait pu faire un UNIX vraiment sympa avec un environnement de bureau comme KDE ou COSMIC et le gestionnaire de paquets brew par-dessus
Si c’est possible, je me demande aussi si un client Wayland sur macOS peut créer une surface EGL
Est-ce qu’on pourrait exécuter un environnement Android via Waydroid dans Orbstack ? En théorie, ça semble possible
Si on pouvait faire en sorte que macOS utilise les raccourcis clavier Windows/Linux, ce serait beaucoup moins frustrant
Je me demande si ce projet pourrait susciter ne serait-ce qu’un peu d’intérêt pour GNUstep