最近、Markdown で文章を作成したりする機会が増えてきました。
そこで普段使ってるエディタを Markdown プレビューなどの機能が豊富な Visual Studio Code (VS Code) にしようと決心。
しかし、インストールしてアイコンをダブルクリックしても起動せずにコケてしまうという事態に(Docs でピコンと跳ねたあと、スンと消える)。
色々試した結果、VS Code のシステムファイルを case-insensitive なシステムにおいたら起動できることがわかった。
現象の確認と改善後の動作
case-sensitive な環境では(一部省略)
$ /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron
> [main 20:15:32] Error: listen ENOTSUP ...
とエラーを吐いて起動せず。
case-insensitive な環境にシステムファイルをおいたら
$ /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron --user-data-dir=/Volumes/MacHD2/Library/Application\ Support/Code
> [main 20:44:13] update#setState idle
と起動できることを確認。
改善法
case-insensitive なディスクを作成する。
Mac であればディスクユーティリティ
から現在のディスクに別パーティションを作ってしまうのが手っ取り早い。
結局 case-sensitive な環境では動作していないが、case-sensitive な環境をそのままに動作可能なので、個人的には許容範囲。
このように、ここで新たなパーティションのディスクシステムを case-insensitive にする。
ここにシステムファイルを置くようにすれば VS Code を起動できるようになる。
VS Code 起動用の .app
作成
毎回ターミナルからコマンドで実行するのは不便なので、起動用のシェルスクリプトを作成して、.app
にバンドルしてしまおう。
.app
を作るのは結構簡単で、
以下のような構成でディレクトリとファイルを用意するだけである。
アイコンは各自好きに用意すること。
MyVSC.app
└── Contents
├── Info.plist
├── MacOS
│ └── startup.sh
└── Resources
└── icon.icns
起動用シェルスクリプトは上で打ったコマンドを書くだけ。
#!/bin/sh
/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron --user-data-dir=/Volumes/MacHD2/Library/Application\ Support/Code
以下のような XML を Info.plist
として保存。
最初を大文字にしなければならない。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>startup.sh</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
</dict>
</plist>
あとはこの MyVSC.app
を /Applications
に配置すればOK。