I am using this configuration on my mac(unix) to customize my shell. I am using zsh instead of bash and there are too many things along with zsh. This .dotfile
configuration contains vim, zsh, git, homebrew, nvm, nginx, neovim
and there respective themes and configurations. With Oh-my-zsh
I can customize so many themes but here zsh
is controlling my shell and ~/.zshrc
is a symlink created with .dotfiles/zsh/zshrc.symlink
file which I am using from Github's .dotfile bundle. I have renamed oh-my-zsh's version of zshrc file to ~/.zshrc.bak. Also, adding theme configuation to zsh's
version of ~\zshrc
file doesn't work. How, can I change theme with zsh
?
zshrc's symlink from ~/.dotfiles
❯ cat ~/.zshrc
# Ruby Motion android tool
export RUBYMOTION_ANDROID_SDK=/Users/abhimanyuaryan/.rubymotion-android/sdk
export RUBYMOTION_ANDROID_NDK=/Users/abhimanyuaryan/.rubymotion-android/ndk
export DOTFILES=$HOME/.dotfiles
export ZSH=$DOTFILES/zsh
# display how long all tasks over 10 seconds take
export REPORTTIME=10
[[ -e ~/.terminfo ]] && export TERMINFO_DIRS=~/.terminfo:/usr/share/terminfo
# define the code directory
# This is where my code exists and where I want the `c` autocomplete to work from exclusively
if [[ -d ~/code ]]; then
export CODE_DIR=~/code
fi
# source all .zsh files inside of the zsh/ directory
for config ($ZSH/**/*.zsh) source $config
if [[ -a ~/.localrc ]]; then
source ~/.localrc
fi
# initialize autocomplete
autoload -U compinit
compinit
for config ($ZSH/**/*completion.sh) source $config
export EDITOR='nvim'
export PATH=/usr/local/bin:$PATH
# add /usr/local/sbin
if [[ -d /usr/local/sbin ]]; then
export PATH=/usr/local/sbin:$PATH
fi
# adding path directory for custom scripts
export PATH=$DOTFILES/bin:$PATH
# check for custom bin directory and add to path
if [[ -d ~/bin ]]; then
export PATH=~/bin:$PATH
fi
[ -z "$TMUX" ] && export TERM=xterm-256color
# install rbenv
if hash rbenv 2>/dev/null; then
eval "$(rbenv init -)"
fi
if [[ -d ~/.rvm ]]; then
PATH=$HOME/.rvm/bin:$PATH # Add RVM to PATH for scripting
source ~/.rvm/scripts/rvm
fi
# alias git to hub
if hash hub 2>/dev/null; then
eval "$(hub alias -s)"
fi
# source nvm
export NVM_DIR=~/.nvm
if hash brew 2>/dev/null; then
source $(brew --prefix nvm)/nvm.sh
source `brew --prefix`/etc/profile.d/z.sh
fi
# Base16 Shell
# if [ -z "$THEME" ]; then
export THEME="base16-eighties"
# fi
if [ -z "$BACKGROUND" ]; then
export BACKGROUND="dark"
fi
BASE16_SHELL="$DOTFILES/.config/base16-shell/$THEME.$BACKGROUND.sh"
# [[ -s $BASE16_SHELL ]] && source $BASE16_SHELL
source $BASE16_SHELL
oh-my-zsh's version of zshrc file which doesn't work.
❯ cat .zshrc.bak
# Path to your oh-my-zsh installation.
export ZSH=/Users/abhimanyuaryan/.oh-my-zsh
ZSH_THEME="robbyrussell"
plugins=(git)
# User configuration
export PATH="/Users/abhimanyuaryan/bin:/usr/local/bin:/Users/abhimanyuaryan/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin"
# export MANPATH="/usr/local/man:$MANPATH"
source $ZSH/oh-my-zsh.sh
Even if I add ZSH_THEME="agnoster"
in ~/.zshrc. The theme doesn't change. It's still the same which Nick provided.
I asked him. He said your oh-my-zsh is clashing with my configurations. Create your own. I don't want to create my own because I am fairly new to all this stuff. Once I am good at tmux, vim, and all this stuff I'll create my own. Until then I just want to use this .dotfiles configuration. Please help me to customize my theme with this configuration. Also, Please help me to understand difference b/w zsh and oh-my-zsh.
Best Answer
when you're done editing your
~/.zshrc
, in a shell prompt run the commandsource ~/.zshrc
. it will read the config from~/.zshrc
and it will apply it, it's like reload your config.