Cocoa‑Way – 原生 macOS Wayland 合成器,用于无缝运行 Linux 应用

发布: (2026年3月28日 GMT+8 18:06)
3 分钟阅读
原文: Hacker News

Source: Hacker News

🎥 演示视频

Demo Video

真正的协议可移植性:Cocoa‑Way 通过 Unix 套接字从 OrbStack 渲染 Linux 应用。

✨ 特性

功能描述
🍎 原生 macOSMetal/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

0 浏览
Back to Blog

相关文章

阅读更多 »

手写更好的笔记

研究一个主题很困难,因为你不仅要把某个问题或历史事件系列的因果关系拼凑在一起,你还……