Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Feature: Local Customizations Folder (to simplify maintenance) #846

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions oh-my-zsh.sh
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -13,13 +13,19 @@ fpath=($ZSH/functions $ZSH/completions $fpath)
# TIP: Add files you don't want in git to .gitignore # TIP: Add files you don't want in git to .gitignore
for config_file ($ZSH/lib/*.zsh) source $config_file for config_file ($ZSH/lib/*.zsh) source $config_file



# Set ZSH_LOCAL_CUSTOM path where your custom config files
# and plugins exists, or else we will use the default ~/.zsh/
if [[ -z "$ZSH_LOCAL" ]]; then
ZSH_LOCAL="$HOME/.zsh/"
fi

# Set ZSH_CUSTOM to the path where your custom config files # Set ZSH_CUSTOM to the path where your custom config files
# and plugins exists, or else we will use the default custom/ # and plugins exists, or else we will use the default custom/
if [[ -z "$ZSH_CUSTOM" ]]; then if [[ -z "$ZSH_CUSTOM" ]]; then
ZSH_CUSTOM="$ZSH/custom" ZSH_CUSTOM="$ZSH/custom"
fi fi



is_plugin() { is_plugin() {
local base_dir=$1 local base_dir=$1
local name=$2 local name=$2
Expand All @@ -29,7 +35,9 @@ is_plugin() {
# Add all defined plugins to fpath. This must be done # Add all defined plugins to fpath. This must be done
# before running compinit. # before running compinit.
for plugin ($plugins); do for plugin ($plugins); do
if is_plugin $ZSH_CUSTOM $plugin; then if is_plugin $ZSH_LOCAL $plugin; then
fpath=($ZSH_LOCAL/plugins/$plugin $fpath)
elif is_plugin $ZSH_CUSTOM $plugin; then
fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
elif is_plugin $ZSH $plugin; then elif is_plugin $ZSH $plugin; then
fpath=($ZSH/plugins/$plugin $fpath) fpath=($ZSH/plugins/$plugin $fpath)
Expand All @@ -43,7 +51,9 @@ compinit -i


# Load all of the plugins that were defined in ~/.zshrc # Load all of the plugins that were defined in ~/.zshrc
for plugin ($plugins); do for plugin ($plugins); do
if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then if [ -f $ZSH_LOCAL/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH_LOCAL/plugins/$plugin/$plugin.plugin.zsh
elif [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh
elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH/plugins/$plugin/$plugin.plugin.zsh source $ZSH/plugins/$plugin/$plugin.plugin.zsh
Expand All @@ -52,11 +62,15 @@ done


# Load all of your custom configurations from custom/ # Load all of your custom configurations from custom/
for config_file ($ZSH_CUSTOM/*.zsh) source $config_file for config_file ($ZSH_CUSTOM/*.zsh) source $config_file
# Load all of your custom configurations from local
for config_file ($ZSH_LOCAL/*.zsh) source $config_file


# Load the theme # Load the theme
if [ "$ZSH_THEME" = "random" ] if [ "$ZSH_THEME" = "random" ]
then then
themes=($ZSH/themes/*zsh-theme) themes=($ZSH/themes/*zsh-theme)
themes+=($ZSH_CUSTOM/*zsh-theme)
themes+=($ZSH_LOCAL/*zsh-theme)
N=${#themes[@]} N=${#themes[@]}
((N=(RANDOM%N)+1)) ((N=(RANDOM%N)+1))
RANDOM_THEME=${themes[$N]} RANDOM_THEME=${themes[$N]}
Expand All @@ -65,9 +79,10 @@ then
else else
if [ ! "$ZSH_THEME" = "" ] if [ ! "$ZSH_THEME" = "" ]
then then
if [ -f "$ZSH/custom/$ZSH_THEME.zsh-theme" ] if [ -f "$ZSH_LOCAL/$ZSH_THEME.zsh-theme" ]; then
then source "$ZSH_LOCAL/$ZSH_THEME.zsh-theme"
source "$ZSH/custom/$ZSH_THEME.zsh-theme" elif [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
else else
source "$ZSH/themes/$ZSH_THEME.zsh-theme" source "$ZSH/themes/$ZSH_THEME.zsh-theme"
fi fi
Expand Down