概要
Cocoa-Way は、macOS上でLinuxアプリを ネイティブ描画 するためのWaylandコンポジタ VM不要 でUnixソケット経由の高速通信を実現 HiDPI対応 や サーバーサイド装飾 など洗練されたUI Homebrew やバイナリで簡単インストール Turbo-Charged Protocol Virtualization 研究の一環
Cocoa-Way:LinuxアプリをmacOSでネイティブ動作
- macOS Metal/OpenGL対応 による高品質な描画とシームレスなデスクトップ統合
- VM不要、WaylandプロトコルをUnixソケット経由で直接やり取り
- Retinaディスプレイ最適化、HiDPIスケーリング対応
- サーバーサイド装飾、影やフォーカスインジケーターによる洗練UI
- OpenGLハードウェアアクセラレーション で高速描画
- Homebrew推奨インストール、簡単なコマンドで導入可能
- バイナリ配布 (.dmg/.zip)やソースビルドにも対応
- 依存パッケージ:libxkbcommon、pixman、pkg-config
- GitHubからクローンしてcargo build --releaseでビルド
クイックスタート
- 必須:waypipe-darwinのインストール
- brew tap J-x-Z/tap && brew install waypipe-darwin
- コンポジタ起動 :cocoa-way
- Linuxアプリ接続 :./run_waypipe.sh ssh user@linux-host firefox
アーキテクチャ
- macOS側
- Cocoa-Way(Waylandコンポジタ)
- waypipeクライアント
- Linux側(VM/Container)
- waypipeサーバー
- Linuxアプリ(Firefoxなど)
- 通信経路
- Linuxアプリ⇔Waylandプロトコル⇔waypipeサーバー⇔SSH/Socket⇔waypipeクライアント⇔Waylandプロトコル⇔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」発生時
- リモート側に古いソケットファイルが残存
- run_waypipe.shは -o StreamLocalBindUnlink=yes で自動処理
- 手動実行時も同様のオプション付与で解決
コントリビューション・ライセンス
- コントリビューション歓迎、大きな変更はIssueで事前相談推奨
- ライセンス:GPL-3.0 (c)2024-2025 J-x-Z