Cocoa‑Way – 原生 macOS Wayland 合成器,用于无缝运行 Linux 应用
发布: (2026年3月28日 GMT+8 18:06)
3 分钟阅读
原文: Hacker News
Source: Hacker News
🎥 演示视频
真正的协议可移植性:Cocoa‑Way 通过 Unix 套接字从 OrbStack 渲染 Linux 应用。
✨ 特性
| 功能 | 描述 |
|---|---|
| 🍎 原生 macOS | Metal/OpenGL 渲染,桌面无缝集成 |
| 🚀 零 VM 开销 | 通过套接字直接使用 Wayland 协议,无虚拟化 |
| 📺 HiDPI 支持 | 为 Retina 显示屏优化,正确缩放 |
| 🎨 精致 UI | 服务器端装饰,带阴影和焦点指示器 |
| ⚡ 硬件加速 | 高效的 OpenGL 渲染管线 |
📦 安装
Homebrew(推荐)
brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin下载二进制文件
从 Releases page 下载最新的 .dmg 或 .zip。
从源码构建
# 安装依赖
brew install libxkbcommon pixman pkg-config
# 克隆并构建
git clone https://github.com/J-x-Z/cocoa-way.git
cd cocoa-way
cargo build --release🚀 快速开始
必需: 安装 waypipe‑darwin 以连接 Linux 应用。
brew tap J-x-Z/tap && brew install waypipe-darwin启动合成器
cocoa-way通过 SSH 连接 Linux 应用
./run_waypipe.sh ssh user@linux-host firefox🏗️ 架构
graph LR
subgraph macOS
CW[Cocoa-Way Compositor]
WP1[waypipe client]
end
subgraph Linux\ VM/Container
WP2[waypipe server]
APP[Linux App Firefox, etc.]
end
APP -->|Wayland Protocol| WP2
WP2 |SSH/Socket| WP1
WP1 -->|Wayland Protocol| CW
CW -->|Metal/OpenGL| Display[macOS Display]🆚 对比
| 方案 | 延迟 | HiDPI | 原生集成 | 设置复杂度 |
|---|---|---|---|---|
| Cocoa‑Way | ⚡ 低 | ✅ 是 | ✅ 原生窗口 | 🟢 简单 |
| XQuartz | 🐢 高 | ⚠️ 部分 | ⚠️ X11 奇怪行为 | 🟡 中等 |
| VNC | 🐢 高 | ❌ 否 | ❌ 仅全屏 | 🟡 中等 |
| VM GUI | 🐢 高 | ⚠️ 部分 | ❌ 独立窗口 | 🔴 复杂 |
🗺️ 路线图
- macOS 后端(Metal/OpenGL)
- Waypipe 集成
- HiDPI 缩放
- 🚧 Windows 后端(win‑way)
- 📱 Android NDK 后端(计划中)
- 多显示器支持
- 剪贴板同步
📚 研究
本项目是 “Turbo‑Charged Protocol Virtualization” 研究计划的一部分,探索通过 Rust trait 单态化 + SIMD 加速像素转换实现零成本跨平台 Wayland。
❓ 故障排除
SSH:“remote port forwarding failed”
远程主机上可能残留旧的套接字文件。run_waypipe.sh 脚本已使用 -o StreamLocalBindUnlink=yes 自动处理。
手动运行时:
waypipe ssh -o StreamLocalBindUnlink=yes user@host ...🤝 贡献
欢迎贡献!请先打开 issue 讨论重大更改。
📄 许可证
GPL‑3.0 – Copyright (c) 2024‑2025 J‑x‑Z