I followed many methods on Ask Different as to how to change the $PATH
environmental variable for GUI apps. Some of the methods may work for pre-Catalina macOS, some may work for Catalina, but none of them work for me on macOS Big Sur.
So here's the story – I installed go
to /usr/local/bin/go
with Homebrew, and VS Code cannot find it –
Methods I've tried to solve this issue:
sudo launchctl config user path "/usr/local/bin:$PATH"
, and reboot.- Edit
/etc/paths
so that it includes/usr/local/bin
, and reboot. - Other launchctl tricks.
So what's the recommended way to set env vars for GUI apps on macOS Big Sur? Any help is appreciated.
Best Answer
The following worked for me to get an environment variable to be accessible from a GUI app (SwiftBar).
I created a plist file (eg;
com.example.set-env-vars.plist
) in~/Library/LaunchAgents/
with the following contents:Then I rebooted for it to take effect. I suspect logging out and logging back in may be adequate, since stuff in
~/Library/LaunchAgents/
should be applied at login.If anyone can improve this answer, I'd love to know why this works but running
launchctl setenv MY_VAR my_value
from a terminal does not.Swap out
MY_VAR
andmy_value
as needed. Note, I'm not sure whether this would allow you to do something likelaunchctl setenv PATH "/usr/local/bin:$PATH"
, as I'm not sure whether$PATH
would exist or expand properly.