Macを使っていると、OS非対応だったり、パッケージマネージャーが使えずインストール・アップデートが面倒だったりするソフトに出会います。
そんな時はDockerコンテナでLinux環境をたてて使うのですが、ちょくちょくGUIじゃないと使えないソフトがあるのです。 X11 / VNCサーバー立てて、ポート開けるかマウントして、クライアントソフトから繋いで… 等々やれば使えるようにはなるのですが、いかんせん面倒くさい。
そこで! VSCodeのDev Containers向けに、サクッとコンテナのGUIに接続するための拡張機能をつくってみました。
こだわりポイントは4つ
- ホスト環境へのインストール不要
- ホストもコンテナも面倒な設定が不要
- GUIアプリ起動のための追加コマンド不要
- 操作がVSCode内で完結(ブラウザからアクセスしなくていい)
拡張機能をインストールして、ダイアログをポチポチすればすぐに使えます!
構成
Xpra というX11のサーバー・クライアントOSSツールがよさげだったのでこれを中心にして作りました。 バイナリ単体で配布されてないので、rootでのインストール操作をしないで済むよう 依存付きで自前ビルド しています。
通信はVSCodeが面倒見てくれるので、安定性向上のためのプロキシと設定・接続自動化用の操作を入れるくらいでつくれました。
つかいかた

適当なDevContainerに接続したらマーケットプレイスの検索窓に「EasyGUI」と入力すると表示される「EasyGUI for Devcontainer」をインストール

信頼してインストール

Xpraの実行バイナリをインストールするための確認ダイアログ(そこそこ容量食うので確認するようにしておきました)
Downloadをポチり

インストールが完了したらステータスバーの「EasyGUI」を押すと開きます。
あとはターミナルから適当なGUIアプリケーションを立ち上げればタブに表示されます!
我ながら便利なツールが作れました。
ちゅーてもほとんどAIが書いたんですけどね。 いい時代になったものですな。 がはは
コードは GitHub においてあります〜
アプリなどを作ったりしています! よかったらみていってください→
つくったもの
今のイチオシ↓

