macos: do not load zsh config on the outer zsh launch

Related to #1102, #1074

Because we are now using the built-in zsh on macOS to launch the real
shell the user wants to use (see #1102 for why), this "outer zsh"
process was consuming our shell integration setup.

This commit adds flags so that this zsh instance doesn't load local
zshrc files and therefore doesn't consume our shell integration setup.
This commit is contained in:
Mitchell Hashimoto
2023-12-16 07:54:10 -08:00
parent 8464010903
commit a8ef7d73d7

View File

@ -881,7 +881,14 @@ const Subprocess = struct {
if (hush) try args.append("-q"); if (hush) try args.append("-q");
try args.append("-flp"); try args.append("-flp");
try args.append(username); try args.append(username);
// We execute zsh with "-d -f" so that it doesn't load any
// local zshrc files so that (1) our shell integration doesn't
// break and (2) user configuration doesn't mess this process
// up.
try args.append("/bin/zsh"); try args.append("/bin/zsh");
try args.append("-d");
try args.append("-f");
try args.append("-c"); try args.append("-c");
try args.append(cmd); try args.append(cmd);
break :args try args.toOwnedSlice(); break :args try args.toOwnedSlice();