Why Do You Need to Source. Zshrc for Every New Shell in iTerm?

I've used Iterm2 with zsh everyday for the past 3 years, but I got a new computer and had to set it up again. The problem is that when I run ~/.zshrc it works fine, but I have to do it on every new terminal window I open. Not a good experience.

I noticed that I don't have any bashrc, bash_profile, or profile (dot)files on my new machine.

Here's the code in ~/.zshrc:

export ZSH=/Users/healy/.oh-my-zsh
plugins=(
  git
)
ZSH_THEME="agnoster"
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
DEFAULT_USER=healy

Again, it works perfectly (and as expected), but only after I run the source command, and that shouldn't be the case.

2

6 Answers

Make sure your export/source are added after the plugins in your zshrc, as stated in this post: oh-my-zsh config file not loading

1

On starting a new shell just run the command source ~/.zshrc by configuring in the

Preferences -> Profiles -> Select Default Profile(default profile will be starred) -> General -> Command -> Select Login Shell -> Send text at start:

Enter the value source ~/.zshrc.

You may add source ~/.zshrc; clear in case you need to clear the screen contents after executing the command.

I had the same issue and changing the Shells Open with option fixed this for me.

To get here:

  • Open Preferences for Terminal
  • Select the General Tab
  • Change Sells open with from Default login shell to Command (complete path) with the /bin/zsh in the input box.

Screeshot:

In my case, oh-my-zsh is not loaded because the line was comment out.

# IT'S WRONG! NEED TO UNCOMMENT
# export ZSH=/Users/$(whoami)/.oh-my-zsh

Though this question is not due to the same "comment out" obviously, I came to a conclusion that, if you need to source ~/.zshrc every time opening a shell instance, there should be some issue with your .zshrc, and check oh-my-zsh and antigen(maybe) work fine.

On 11.2.1 with Terminal 2.11, assuming you have already created .zshrc in your home directory, launch Terminal and select Terminal >> Preferences >> Profiles >> Shell

Under "Startup" check "Run command:" and input source ~/.zshrc

for me,It works like this. Profiles 》Open Profiles 》Select “Edit Profiles” 》Profiles 》General and put "source ~/.zsh" into Send text at start textfield.

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Maya Lin-Takahashi

Maya Lin-Takahashi

Consumer Tech & Gadget Reviewer

Maya is a hardware enthusiast who tests and reviews smart home devices, smartphones, wearables, and audio gear. She focuses on practical consumer value and build quality.

Share this article
Twitter Facebook Pinterest