WSLから「Antigravity」を `code .` のように起動する方法
VS CodeをWSLで利用する場合、ターミナルで code . と打つだけで、自動的にWSLへ接続された状態で起動してくれます。
これと同じ感覚で、WSL上からAntigravityを起動しようとして antigravity .を実行しても、コマンド自体は通るものの、VS Codeのように自動でWSLへのリモート接続は行われません。
WSLから起動する方法を紹介した英語記事を見つけ、筆者も解決したので日本語の備忘録として残しておきます。
参考元: Working with Google Antigravity in WSL
手順1: antigravity コマンドへのパスを通す
そもそもWSL上で antigravity コマンドが見つからない場合、まずはパスを通す必要があります。
antigravityコマンドにすでにパスが通っている場合、この手順を飛ばして良いです。
通常、Windows側の実行ファイルは以下のパスに存在します。
C:\Users\<USER>\AppData\Local\Programs\Antigravity\bin\antigravity
これをWSL側から扱いやすいように、シンボリックリンクを作成します。
(ここでは agy というコマンド名にしています)
# <USER> の部分はご自身のWindowsユーザー名に置き換えてください
ln -sf "/mnt/c/Users/<USER>/AppData/Local/Programs/Antigravity/bin/antigravity" ~/.local/bin/agy
※ ~/.local/bin にパスが通っていない場合は、適宜パスの通ったディレクトリを指定してください。
手順2: 起動スクリプトの編集
手順1でリンクを張った antigravityを編集し、WSL接続時の拡張機能IDを書き換えます。
実体はシェルスクリプトなので、適当なエディタでスクリプトを開き、以下の変更を行います。
変更対象ファイル:
# ...省略...
if [ $IN_WSL = true ]; then
# ...省略...
# use the Remote WSL extension if installed
- WSL_EXT_ID="ms-vscode-remote.remote-wsl"
+ # WSL_EXT_ID="ms-vscode-remote.remote-wsl"
+ WSL_EXT_ID="google.antigravity-remote-wsl"
# ...省略...
手順3: 必要なヘルパースクリプトのコピー
最後に、VS Code が持っているヘルパースクリプトを、Antigravity側のディレクトリへコピーします。
これはWindows側のPowerShellで行うとスムーズです。
VS Codeの拡張機能フォルダから、Antigravityの拡張機能フォルダへスクリプトを移植します。
%USERPROFILE%\.vscode\extensions\ms-vscode-remote.remote-wsl-<whatever>\scripts\を
%USERPROFILE%\AppData\Local\Programs\Antigravity\resources\app\extensions\antigravity-remote-wsl\scripts\
にコピーしてください。
方法は何でも構いませんが、以下PowerShellの実施例。
# VS Codeの拡張機能ディレクトリへ移動
cd $ENV:USERPROFILE\.vscode\extensions\
# 対象のバージョンのフォルダ名を確認
ls | where Name -match "ms-vscode-remote.remote-wsl-"
# (例) ms-vscode-remote.remote-wsl-0.104.3 が見つかった場合
cd .\ms-vscode-remote.remote-wsl-0.104.3\
cp .\scripts\ $ENV:USERPROFILE\AppData\Local\Programs\Antigravity\resources\app\extensions\antigravity-remote-wsl
※ 筆者の環境では ms-vscode-remote.remote-wsl のバージョンは 0.104.3 でした。環境によって数字が異なるため、適宜読み替えてください。
結果
以上の設定により、WSL上から以下のコマンドで「WSLに接続された状態」のAntigravityが起動するようになります。
agy .
# または antigravity .
Discussion