- Um compositor Wayland que permite executar aplicativos Linux no macOS sem máquina virtual, usando renderização baseada em Metal/OpenGL para se integrar naturalmente ao ambiente de janelas do macOS
- Comunicação direta do protocolo Wayland via socket Unix para minimizar perda de desempenho, com suporte a otimização para telas HiDPI e decoração no lado do servidor
- Escrito em Rust, oferecendo baixa latência e alta eficiência por meio de renderização com aceleração de hardware
- Com SSH e
waypipe-darwin, é possível exibir apps de um host Linux como janelas no macOS
- Disponível sob licença GPLv3, com um roadmap em andamento que inclui expansão para backends de Windows e Android
Visão geral
- Cocoa-Way é um compositor Wayland que permite executar aplicativos Linux no macOS como se fossem nativos
- Integra-se naturalmente ao desktop do macOS por meio de renderização Metal/OpenGL e oferece conexão direta do protocolo Wayland por socket, sem máquina virtual
- Inclui otimização para telas HiDPI, decoração no lado do servidor e renderização com aceleração de hardware
- Escrito em Rust e distribuído sob licença GPLv3
Principais recursos
- Integração nativa com o macOS: renderização baseada em Metal/OpenGL com compatibilidade total com o gerenciamento de janelas e os efeitos visuais do macOS
- Zero VM Overhead: comunicação direta do protocolo Wayland via socket Unix sem virtualização, minimizando perda de desempenho
- Suporte a HiDPI: escalonamento e precisão de pixels ajustados para telas Retina
- UI mais refinada: inclui recursos de decoração no lado do servidor, como sombras e indicadores de foco
- Aceleração de hardware: pipeline eficiente de renderização OpenGL para baixa latência e alto desempenho
Como instalar
-
Instalação via Homebrew (recomendado)
brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin
-
Download de binários
- É possível baixar arquivos
.dmg ou .zip na página de Releases do GitHub
-
Build a partir do código-fonte
Início rápido
Arquitetura
- No lado do macOS, há o compositor Cocoa-Way e o cliente waypipe
- No lado da VM Linux ou do contêiner, há o servidor waypipe e os apps Linux
- App Linux → protocolo Wayland → servidor waypipe → SSH/socket → cliente waypipe → Cocoa-Way → Metal/OpenGL → tela do macOS
- Todo o caminho é conectado diretamente sem virtualização, oferecendo baixa latência e alta eficiência
Comparação
| Solução |
Latência |
HiDPI |
Integração nativa |
Complexidade de configuração |
| Cocoa-Way |
⚡ baixa |
✅ suporte completo |
✅ janela nativa |
🟢 fácil |
| XQuartz |
🐢 alta |
⚠️ suporte parcial |
⚠️ peculiaridades do X11 |
🟡 média |
| VNC |
🐢 alta |
❌ sem suporte |
❌ apenas tela cheia |
🟡 média |
| VM GUI |
🐢 alta |
⚠️ suporte parcial |
❌ janela separada |
🔴 complexa |
Roadmap
- ✅ Backend macOS (Metal/OpenGL)
- ✅ Integração com Waypipe
- ✅ Escalonamento HiDPI
- 🚧 Backend Windows (win-way)
- 📱 Backend Android NDK (planejado)
- ⏳ Suporte a múltiplos monitores
- ⏳ Sincronização da área de transferência
Contexto de pesquisa
- Parte do projeto de pesquisa “Turbo-Charged Protocol Virtualization”,
explorando virtualização Wayland multiplataforma com custo zero com uso de monomorfização de traits em Rust e conversão de pixels baseada em SIMD
Solução de problemas
- Se ocorrer o erro de SSH “remote port forwarding failed”, a causa pode ser um arquivo de socket residual no host remoto
Contribuição
- Recomenda-se abrir uma issue e discutir antes de adicionar ou alterar recursos
- Contribuições via Pull Request são bem-vindas
Licença
- GPL-3.0
- Copyright © 2024–2025 J-x-Z
1 comentários
Comentários do Hacker News
Sinceramente, tenho uma dúvida. Quais apps GUI de Linux não têm build nativa para macOS? A maioria é baseada em Qt ou GTK e, portanto, multiplataforma, mas não consigo pensar em nenhum app popular de imediato
xpraPerfeito. Agora finalmente dá para rodar apps com GUI dentro de contêineres. Já tentei algo parecido com X11 antes, mas não gostei. Cada vez mais parece que a presença da Apple no desktop está enfraquecendo. No fim, acho que estamos caminhando para uma era em que todo mundo será “desenvolvedor”
Este projeto parece meio suspeito. O README está cheio de emojis e não explica a implementação. Dizem que há um backend Metal, mas aparentemente ele não existe. A lista de dependências também é estranha
Precisamos de algo assim também para Android. O termux-x11 já é um começo, mas se o termux passar a oferecer suporte a Wayland, ou se a VM Linux do Android puder expor um socket Wayland, então só faltaria um compositor nativo para renderização fluida
Fico pensando como seria se o macOS pudesse inicializar em um modo shell do Darwin sem GUI. Poderia ter sido um UNIX incrível, com um ambiente desktop como KDE ou COSMIC por cima e o gerenciador de pacotes brew
Se isso for possível, fico curioso se um cliente Wayland no macOS consegue criar uma superfície EGL
Será que daria para usar o Waydroid dentro do Orbstack e rodar um ambiente Android? Em teoria, parece possível
Se desse para mudar o macOS para atalhos de teclado de Windows/Linux, acho que seria muito menos frustrante
Fico curioso se este projeto poderia despertar ao menos um pouco de interesse pelo GNUstep