Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I use emacs on my mac, I install the Cocoa version of emacs using homebrew. One problem is that in order to see the "Unix path" I had to replicate my path from .profile to .MacOSX/environment.plist

I do it with this in my .profile:

# PATH for emacs and cocoa apps
/etc/profile begin
if [ -x /usr/libexec/path_helper ]; then
  eval `/usr/libexec/path_helper -s`
  defaults write $HOME/.MacOSX/environment PATH "$PATH"

And that used to work, but it stopped working when I installed Mountain Lion. I can't find any manual that says that they've changed it on this version.

Does anyone know how to see the unix path from cocoa applications on Mountain Lion?

share|improve this question
Hm, IIRC they planned on deprecating environment.plist a long time ago. You can try to use /etc/launchd.conf or launchctl setenv instead, but your mileage may vary. I'll check this out tomorrow. – slhck Aug 6 '12 at 21:22
oh thank you! Apparently the .MacOSX/environment file has been deprecated (it'd be nice if Apple had a nice article explaining the situation and what to do instead). I replaced the code in the .profile with launchctl setenv PATH $PATH and it works, but I need to reboot to any changes on the path. – FCo Aug 7 '12 at 21:44

To formally answer this question: It could be that .MacOSX/environment.plist does not work anymore (?) or at least not reliably. It never worked for apps launched by Spotlight. It is documented though: Runtime Configuration Guidelines: Environment Variables

The alternative to that is using launchctl, which will make environment variables accessible to GUI apps. For example, this copies your shell's PATH to the environment:

launchctl setenv PATH $PATH

For any changes to $PATH, you will have to restart the affected apps. You do not need to reboot if you use above syntax. If, however, you change /etc/launchd.conf, you will need to reboot. See also: Setting environment variables in OS X? - Stack Overflow

share|improve this answer
It does not really work! I don't get. It sometimes it does and sometimes it doesn't. launchctl getenv PATH from an emacs shell returns the right thing, but echo $PATH has the wrong path in it!. For the moment I do (setenv "PATH" (shell-command-to-string "launchctl getenv PATH"))' at the beginning of the .emacs` file, but it is a hack! – FCo Aug 9 '12 at 18:43
Hm. I have never used the Cocoa emacs, and for me the .MacOSX version has always worked, at least until 10.6 (and I haven't needed it afterwards). Maybe you can update your question with your current status – especially with emacs – and others can have a look? – slhck Aug 9 '12 at 18:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.