何かことがあれば dotfiles から抜け出して XDG 準拠のレイアウトにして使うようにしているんだけど、VSCode だけは $HOME/.vscode
に全部を放り込んで「こいつめ〜」という状態だったところ、VSCODE_PORTABLE
という環境変数を使うと任意の場所に変更できるというのを見つけた。
で、早速 set -x VSCODE_PORTABLE "$XDG_DATA_HOME"/vscode
を試してみたところ、 fish のシェルから起動する VSCode については適用されるものの、Spotlight や macOS のデスクトップから起動する場合は VSCODE_PORTABLE
を見つけられないので従来の $HOME/.vscode
に作成されるという状態で拡張機能などのデータが破滅してしまった。
どうしたものかなあと調べて、launchctl を使って、 macOS 全体で環境変数を設定することでうまくいった。
https://github.com/hsbt/hsbt/blob/master/LaunchAgents/setenv.VSCODE_PORTABLE.plist
大したものではないけど、上のファイルを /Library/LaunchAgents/setenv.VSCODE_PORTABLE.plist
などにおいて再起動をすると、ファイルの中で指定した /Users/hsbt/.local/share/vscode
などにディレクトリを固定できる。システムレベルではなくて、~/Library/LaunchAgents
でもいい気はするけど試してない。
これで、$HOME
にぶちまけるのは .docker
, .kube
みたいなやつだけかなあ。この辺、最近のソフトウェアなのに、頑なに XDG に対応してくれないのでほんとびっくりしてる。