17

I just set up zsh together with oh-my-zsh. But there's a bit of strange behavior that I cannot understand. If I restart Terminal (or iTerm 2––the behavior is the same in either) the theme specified in ~/.zshrc is not loaded. I need to do source ~/.zshrc for it to happen. If I echo $ZSH_THEME I get the theme I specified in ~/.zshrc. (And if I add echo "I'm loading it." to the bottom of ~/.zshrc, for example, I get the expected message upon opening a new window, etc.)

This question is very similar to mine. But none of the suggestions there appear relevant: the problem there was that some bits of ~/.zshrc were not being loaded, whereas in my case it seems they are being 'read' but not 'loaded' if that's a thing.

In case this is relevant: I do not have any files named .zprofile or .profile in my home directory.

Another bit of relevant information. If I change the value of ZSH_THEME in my .zshrc file, I need to source it twice in order to activate the new theme.

Community
  • 1
  • 1
apc
  • 1,497
  • 3
  • 13
  • 19

2 Answers2

40

Posting here in case it helps others. The problem was that I was loading the theme after source $ZSH/oh-my-zsh.sh, so clearly oh-my-zsh wasn't loading it. (The instructions in the .zshrc template generated by oh-my-zsh are a little confusing. On a quick read they suggest that themes should be loaded below the User configuration line.)

apc
  • 1,497
  • 3
  • 13
  • 19
13

For Arch-linux users: I had to un-install the grml-zsh-config package and reboot: yay -Rncs grml-zsh-config

James Lombard
  • 131
  • 1
  • 4