Browse Source

Add blacklist variable for random theme

Co-authored-by: Fran Garcia <fran.miranda@gmail.com>
Marc Cornellà 4 years ago
parent
commit
3d4890dcc0
1 changed files with 6 additions and 2 deletions
  1. 6 2
      themes/random.zsh-theme

+ 6 - 2
themes/random.zsh-theme

@@ -5,19 +5,23 @@ if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = array && ${#ZSH_THEME_RANDOM_CANDIDA
   # Use ZSH_THEME_RANDOM_CANDIDATES if properly defined
   themes=($ZSH_THEME_RANDOM_CANDIDATES)
 else
-  # Look for themes in $ZSH_CUSTOM and $ZSH and add only the theme name (:t)
+  # Look for themes in $ZSH_CUSTOM and $ZSH and add only the theme name
   themes=(
     "$ZSH_CUSTOM"/*.zsh-theme(N:t:r)
     "$ZSH_CUSTOM"/themes/*.zsh-theme(N:t:r)
     "$ZSH"/themes/*.zsh-theme(N:t:r)
   )
+  # Remove blacklisted themes from the list
+  for theme in ${ZSH_THEME_RANDOM_BLACKLIST[@]}; do
+    themes=("${(@)themes:#$theme}")
+  done
 fi
 
 # Choose a theme out of the pool of candidates
 N=${#themes[@]}
 (( N = (RANDOM%N) + 1 ))
 RANDOM_THEME="${themes[$N]}"
-unset N themes
+unset N themes theme
 
 # Source theme
 if [[ -f "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme" ]]; then