- macOSでLinuxアプリケーションを仮想マシンなしで実行できるようにするWaylandコンポジタで、Metal/OpenGLベースのレンダリングを使用してmacOSのウィンドウ環境に自然に統合される
- Unixソケットを介した直接的なWaylandプロトコル通信により性能低下を最小限に抑え、HiDPIディスプレイ最適化とサーバーサイドデコレーションをサポート
- Rustで記述されており、ハードウェアアクセラレーションレンダリングを通じて低遅延と高効率を提供
- SSHと
waypipe-darwinを利用してLinuxホストのアプリをmacOSのウィンドウとして表示できる
- GPLv3ライセンスで公開されており、WindowsおよびAndroidバックエンド拡張を含むロードマップが進行中
概要
- Cocoa-Wayは、macOSでLinuxアプリケーションをネイティブ環境のように実行できるようにするWaylandコンポジタ
- Metal/OpenGLレンダリングを通じてmacOSデスクトップに自然に統合され、仮想マシンなしでソケットを介した直接的なWaylandプロトコル接続をサポート
- HiDPIディスプレイ最適化、サーバーサイドデコレーション、ハードウェアアクセラレーションレンダリング機能を搭載
- Rustで記述され、GPLv3ライセンスで配布
主な機能
- ネイティブmacOS統合: Metal/OpenGLベースのレンダリングにより、macOSのウィンドウ管理や視覚効果との完全な互換性を維持
- Zero VM Overhead: 仮想化なしでUnixソケットを介した直接的なWaylandプロトコル通信を行い、性能低下を最小化
- HiDPI対応: Retinaディスプレイに合わせたスケーリングとピクセル精度を提供
- UI完成度の向上: シャドウ、フォーカスインジケーターなどのサーバーサイドデコレーション機能を搭載
- ハードウェアアクセラレーション: 効率的なOpenGLレンダリングパイプラインにより、低遅延と高性能を実現
インストール方法
-
Homebrewでインストール(推奨)
brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin
-
バイナリのダウンロード
- GitHub Releasesページから
.dmgまたは.zipファイルをダウンロード可能
-
ソースからビルド
クイックスタート
アーキテクチャ
- macOS側にはCocoa-Wayコンポジタとwaypipeクライアントが存在
- Linux VMまたはコンテナ側にはwaypipeサーバーとLinuxアプリが存在
- Linuxアプリ → Waylandプロトコル → waypipeサーバー → SSH/ソケット → waypipeクライアント → Cocoa-Way → Metal/OpenGL → macOSディスプレイ
- 全体の経路が仮想化なしで直接接続されるため、低遅延と高効率を実現
比較
| ソリューション |
遅延 |
HiDPI |
ネイティブ統合 |
設定の複雑さ |
| Cocoa-Way |
⚡ 低い |
✅ 完全対応 |
✅ ネイティブウィンドウ |
🟢 簡単 |
| XQuartz |
🐢 高い |
⚠️ 部分対応 |
⚠️ X11特有の制約あり |
🟡 中程度 |
| VNC |
🐢 高い |
❌ 非対応 |
❌ 全画面専用 |
🟡 中程度 |
| VM GUI |
🐢 高い |
⚠️ 部分対応 |
❌ 別ウィンドウ |
🔴 複雑 |
ロードマップ
- ✅ macOSバックエンド (Metal/OpenGL)
- ✅ Waypipe統合
- ✅ HiDPIスケーリング
- 🚧 Windowsバックエンド (win-way)
- 📱 Android NDKバックエンド(計画中)
- ⏳ マルチモニター対応
- ⏳ クリップボード同期
研究背景
- 「Turbo-Charged Protocol Virtualization」研究プロジェクトの一環として、
Rustトレイトのモノモーフィック化とSIMDベースのピクセル変換を活用したゼロコストのクロスプラットフォームWayland仮想化を探究
問題解決
- **SSHエラー「remote port forwarding failed」**が発生する場合、リモートホストに残ったソケットファイルが原因
貢献
- 機能追加や変更の前にIssueを登録して議論することを推奨
- Pull Requestによる貢献を歓迎
ライセンス
- GPL-3.0
- 著作権 © 2024–2025 J-x-Z
1件のコメント
Hacker Newsのコメント
正直なところ気になることがある。Linux GUIアプリで、macOS向けのネイティブビルドが存在しないものって何があるんだろう。たいていはQtやGTKベースでマルチプラットフォームだし、ぱっと思い浮かぶ人気アプリがない
xpraで似たことができる完璧だ。これでコンテナ内でGUIアプリを動かせるようになる。以前X11で似たようなことを試したが気に入らなかった。だんだん Appleのデスクトップでの存在感 が弱くなっている気がする。結局、誰もが「開発者」になる時代が来るのではないかと思う
このプロジェクトは少し 怪しい。READMEは絵文字だらけで実装の説明もない。Metalバックエンドがあると言っているが、実際には存在しないようだ。依存関係のリストもおかしい
こういうものは Android向け にも必要だ。termux-x11は出発点にはなるが、termuxがWaylandをサポートするか、AndroidのLinux VMからWaylandソケットを公開できれば、残るのは滑らかなレンダリングのためのネイティブコンポジターだけだ
もしmacOSがGUIなしの Darwinシェルモード で起動できたなら、KDEやCOSMICのようなデスクトップ環境にbrewパッケージマネージャーを載せた、すばらしいUNIXになっていただろうと思うと惜しい
これが可能なら、macOSベースの WaylandクライアントがEGLサーフェスを生成 できるのかも気になる
もしかしてOrbstackの中でWaydroidを使って Android環境を実行 できるだろうか。理論上はいけそうだ
macOSを Windows/Linux風のキーボードショートカット に変えられれば、ずっとストレスが減ると思う
このプロジェクトが GNUstep に少しでも関心を呼び起こせるのか気になる