MacOSXで、spotlightから起動するGUIアプリの環境変数を設定する

Finderとかspotlightとかからアプリケーションを起動した場合、
環境変数の設定がどうなっているのかわからず困っていました。


当然ですが.bashrcとかに書いてもbashから起動しない場合は意味ないです。

Finderから起動する場合の環境変数

ぐぐったらよく出てきたのがこのやりかた。

~/.MacOSX/environment.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>PATH</key>
    <string>/path/to/somewhere</string>

    <key>HOGE</key>
    <string>fuga</string>

</dict>
</plist>

Finderから起動する場合はこれでもいけるっぽいけど、
spotlightから起動した場合はやっぱりだめっぽい。

spotligthから起動する場合

で、英語のサイトとか見てると見つかったのがこのやりかた。

launchd.conf

/etc/launchd.conf
環境変数の設定を記述するとグローバルに有効になるらしい。

 setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
 setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin::/opt/local/bin:/usr/local/bin:

なんでここだけ、cshっぽい記法になるかよくわからん。。。

しっぱい

ちなみに、

 setenv PATH $PATH:~/bin

みたいに書いたら
環境変数PATHの値が、

 $PATH:~/bin

になってしまって、iTermとかも動かなくなってあせった。
ふつうにTerminal.appは動いたので直せたけど。。。