From 531c41cdfee9e3bbba16d0bf19ca973ad4bb4af5 Mon Sep 17 00:00:00 2001
From: LE Manh Cuong <cuong.manhle.vn@gmail.com>
Date: Tue, 1 Dec 2015 11:50:55 +0700
Subject: [PATCH] Allow loading themes from predefined list

---
 oh-my-zsh.sh                 | 6 +++++-
 templates/zshrc.zsh-template | 6 ++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh
index 6cc5ac630..0324543d5 100644
--- a/oh-my-zsh.sh
+++ b/oh-my-zsh.sh
@@ -94,7 +94,11 @@ unset config_file
 
 # Load the theme
 if [ "$ZSH_THEME" = "random" ]; then
-  themes=($ZSH/themes/*zsh-theme)
+  if [ "${(t)ZSH_THEME_RANDOM_CANDICATES}" = "array" ] && [ "${#ZSH_THEME_RANDOM_CANDICATES[@]}" -gt 0 ]; then
+    themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDICATES}.zsh-theme)
+  else
+    themes=($ZSH/themes/*zsh-theme)
+  fi
   N=${#themes[@]}
   ((N=(RANDOM%N)+1))
   RANDOM_THEME=${themes[$N]}
diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template
index 44e8b0d1b..baedf0675 100644
--- a/templates/zshrc.zsh-template
+++ b/templates/zshrc.zsh-template
@@ -7,6 +7,12 @@ export ZSH=$HOME/.oh-my-zsh
 # time that oh-my-zsh is loaded.
 ZSH_THEME="robbyrussell"
 
+# Set list of themes to load
+# Setting this variable when ZSH_THEME=random
+# cause zsh load theme from this variable instead of
+# looking in ~/.oh-my-zsh/themes/
+# ZSH_THEME_RANDOM_CANDICATES=()
+
 # Uncomment the following line to use case-sensitive completion.
 # CASE_SENSITIVE="true"
 
-- 
2.21.0