]> src.twobees.de Git - dotfiles.git/blob - stow/oh-my-zsh/.oh-my-zsh/themes/random.zsh-theme
...
[dotfiles.git] / stow / oh-my-zsh / .oh-my-zsh / themes / random.zsh-theme
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
6 fi
7
8 # Make themes a unique array
9 typeset -Ua themes
10
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})
14 else
15   # Look for themes in $ZSH_CUSTOM and $ZSH and add only the theme name
16   themes=(
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)
20   )
21   # Remove ignored themes from the list
22   for theme in random ${ZSH_THEME_RANDOM_IGNORED[@]}; do
23     themes=("${(@)themes:#$theme}")
24   done
25 fi
26
27 # Choose a theme out of the pool of candidates
28 N=${#themes[@]}
29 (( N = (RANDOM%N) + 1 ))
30 RANDOM_THEME="${themes[$N]}"
31 unset N themes theme
32
33 # Source theme
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"
40 else
41   echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' not found"
42   return 1
43 fi
44
45 if [[ "$ZSH_THEME_RANDOM_QUIET" != true ]]; then
46   echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' loaded"
47 fi