1 # Deprecate ZSH_THEME_RANDOM_BLACKLIST
2 if [[ -n "$ZSH_THEME_RANDOM_BLACKLIST" ]]; then
3 echo '[oh-my-zsh] ZSH_THEME_RANDOM_BLACKLIST is deprecated. Use `ZSH_THEME_RANDOM_IGNORED` instead.'
4 ZSH_THEME_RANDOM_IGNORED=($ZSH_THEME_RANDOM_BLACKLIST)
5 unset ZSH_THEME_RANDOM_BLACKLIST
8 # Make themes a unique array
11 if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = array && ${#ZSH_THEME_RANDOM_CANDIDATES[@]} -gt 0 ]]; then
12 # Use ZSH_THEME_RANDOM_CANDIDATES if properly defined
13 themes=(${(@)ZSH_THEME_RANDOM_CANDIDATES:#random})
15 # Look for themes in $ZSH_CUSTOM and $ZSH and add only the theme name
17 "$ZSH_CUSTOM"/*.zsh-theme(N:t:r)
18 "$ZSH_CUSTOM"/themes/*.zsh-theme(N:t:r)
19 "$ZSH"/themes/*.zsh-theme(N:t:r)
21 # Remove ignored themes from the list
22 for theme in random ${ZSH_THEME_RANDOM_IGNORED[@]}; do
23 themes=("${(@)themes:#$theme}")
27 # Choose a theme out of the pool of candidates
29 (( N = (RANDOM%N) + 1 ))
30 RANDOM_THEME="${themes[$N]}"
34 if [[ -f "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme" ]]; then
35 source "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme"
36 elif [[ -f "$ZSH_CUSTOM/themes/$RANDOM_THEME.zsh-theme" ]]; then
37 source "$ZSH_CUSTOM/themes/$RANDOM_THEME.zsh-theme"
38 elif [[ -f "$ZSH/themes/$RANDOM_THEME.zsh-theme" ]]; then
39 source "$ZSH/themes/$RANDOM_THEME.zsh-theme"
41 echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' not found"
45 if [[ "$ZSH_THEME_RANDOM_QUIET" != true ]]; then
46 echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' loaded"