- Compositor Wayland que permite ejecutar aplicaciones de Linux en macOS sin máquina virtual, usando renderizado basado en Metal/OpenGL para integrarse de forma natural con el entorno de ventanas de macOS
- Comunicación directa del protocolo Wayland mediante sockets Unix para minimizar la pérdida de rendimiento, con soporte para optimización de pantallas HiDPI y decoraciones del lado del servidor
- Escrito en Rust, ofrece baja latencia y alta eficiencia mediante renderizado con aceleración por hardware
- Con SSH y
waypipe-darwin, es posible mostrar apps de un host Linux como ventanas en macOS
- Publicado bajo licencia GPLv3, con una hoja de ruta en marcha que incluye extensiones de backend para Windows y Android
Descripción general
- Cocoa-Way es un compositor Wayland que permite ejecutar aplicaciones de Linux en macOS como si fueran nativas
- Se integra de forma natural con el escritorio de macOS mediante renderizado Metal/OpenGL y soporta conexión directa del protocolo Wayland a través de sockets, sin máquina virtual
- Incluye optimización para pantallas HiDPI, decoraciones del lado del servidor y renderizado con aceleración por hardware
- Está escrito en Rust y se distribuye bajo licencia GPLv3
Funciones principales
- Integración nativa con macOS: renderizado basado en Metal/OpenGL para mantener compatibilidad total con la gestión de ventanas y efectos visuales de macOS
- Zero VM Overhead: minimiza la pérdida de rendimiento con comunicación directa del protocolo Wayland mediante sockets Unix, sin virtualización
- Soporte HiDPI: ofrece escalado y precisión de píxeles adaptados a pantallas Retina
- Mayor nivel de acabado de la UI: incluye decoraciones del lado del servidor como sombras e indicadores de enfoque
- Aceleración por hardware: implementa baja latencia y alto rendimiento con un pipeline eficiente de renderizado OpenGL
Cómo instalar
-
Instalación con Homebrew (recomendado)
brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin
-
Descarga de binarios
- Se pueden descargar archivos
.dmg o .zip desde la página de Releases en GitHub
-
Compilar desde el código fuente
Inicio rápido
Arquitectura
- En el lado de macOS existen el compositor Cocoa-Way y el cliente waypipe
- En el lado de la VM o contenedor Linux existen el servidor waypipe y la app de Linux
- App de Linux → protocolo Wayland → servidor waypipe → SSH/socket → cliente waypipe → Cocoa-Way → Metal/OpenGL → pantalla de macOS
- Toda la ruta está conectada directamente sin virtualización, lo que ofrece baja latencia y alta eficiencia
Comparación
| Solución |
Latencia |
HiDPI |
Integración nativa |
Complejidad de configuración |
| Cocoa-Way |
⚡ baja |
✅ soporte completo |
✅ ventana nativa |
🟢 fácil |
| XQuartz |
🐢 alta |
⚠️ soporte parcial |
⚠️ peculiaridades de X11 |
🟡 media |
| VNC |
🐢 alta |
❌ sin soporte |
❌ solo pantalla completa |
🟡 media |
| VM GUI |
🐢 alta |
⚠️ soporte parcial |
❌ ventana separada |
🔴 compleja |
Hoja de ruta
- ✅ Backend macOS (Metal/OpenGL)
- ✅ Integración con Waypipe
- ✅ Escalado HiDPI
- 🚧 Backend para Windows (win-way)
- 📱 Backend Android NDK (planeado)
- ⏳ Soporte multimonitor
- ⏳ Sincronización del portapapeles
Antecedentes de investigación
- Como parte del proyecto de investigación “Turbo-Charged Protocol Virtualization”,
explora la virtualización Wayland multiplataforma de costo cero aprovechando la monomorfización de traits en Rust y la conversión de píxeles basada en SIMD
Resolución de problemas
- Si aparece el error de SSH “remote port forwarding failed”, la causa puede ser un archivo de socket residual en el host remoto
Contribuciones
- Se recomienda abrir un issue y discutirlo antes de añadir o modificar funciones
- Se agradecen contribuciones mediante Pull Request
Licencia
- GPL-3.0
- Copyright © 2024–2025 J-x-Z
1 comentarios
Opiniones de Hacker News
La verdad tengo una duda. ¿Qué apps GUI de Linux no tienen un build nativo para macOS? La mayoría están basadas en Qt o GTK, así que son multiplataforma, y no se me ocurre ninguna app popular en este momento
xpraPerfecto. Ahora ya se podrán correr apps GUI dentro de contenedores. Antes probé algo parecido con X11, pero no me gustó. Cada vez siento más que la posición de Apple en el escritorio se está debilitando. Al final parece que vamos hacia una era en la que todo el mundo será “desarrollador”
Este proyecto se ve un poco sospechoso. El README está lleno de emojis y no explica nada de la implementación. Dice que hay un backend Metal, pero parece que en realidad no existe. La lista de dependencias también se ve rara
También hace falta algo así para Android. termux-x11 es un punto de partida, pero si termux soportara Wayland o si la VM Linux de Android pudiera exponer un socket de Wayland, lo único que faltaría sería un compositor nativo para renderizado fluido
Si macOS pudiera arrancar en un modo shell de Darwin sin GUI, sería un UNIX increíble con un entorno de escritorio como KDE o COSMIC y el gestor de paquetes brew encima
Si esto es posible, me pregunto si un cliente Wayland para macOS también podría crear superficies EGL
¿Será posible ejecutar un entorno Android usando Waydroid dentro de Orbstack? En teoría parecería posible
Si se pudiera cambiar macOS a atajos de teclado de Windows/Linux, sería mucho menos frustrante
Me pregunto si este proyecto podrá despertar aunque sea un poco de interés en GNUstep