summaryrefslogtreecommitdiff
path: root/dotfiles-darwin/bin/env.sh
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles-darwin/bin/env.sh')
-rwxr-xr-xdotfiles-darwin/bin/env.sh12
1 files changed, 11 insertions, 1 deletions
diff --git a/dotfiles-darwin/bin/env.sh b/dotfiles-darwin/bin/env.sh
index 8a13605..7a9d7e5 100755
--- a/dotfiles-darwin/bin/env.sh
+++ b/dotfiles-darwin/bin/env.sh
@@ -1,5 +1,15 @@
#!/usr/bin/env zsh
-for env in DOMAIN HOST UNAME XDG_{{CACHE,CONFIG,DATA}_HOME,RUNTIME_DIR}; do
+for env (DOMAIN HOST SSH_AUTH_SOCK UNAME
+ XDG_{{CACHE,CONFIG,DATA}_HOME,RUNTIME_DIR}); do
launchctl setenv ${env} ${(P)env}
done
+
+# PATH is magic on macOS, and since it only matters for Emacs, let’s
+# make it work in Emacs only. Yep, it’s pretty bad.
+local plist=~/Applications/Emacs.app/Contents/Info.plist
+if [[ -f ${plist} ]]; then
+ plutil -replace LSEnvironment -dictionary ${plist}
+ plutil -insert LSEnvironment.PATH -string "${PATH}" ${plist}
+ /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f ${plist:h:h}
+fi