Parent directory

random.zsh-theme

1575 bytes
 1# Deprecate ZSH_THEME_RANDOM_BLACKLIST
 2if [[ -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
 6fi
 7
 8# Make themes a unique array
 9typeset -Ua themes
10
11if [[ "${(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})
14else
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
25fi
26
27# Choose a theme out of the pool of candidates
28N=${#themes[@]}
29(( N = (RANDOM%N) + 1 ))
30RANDOM_THEME="${themes[$N]}"
31unset N themes theme
32
33# Source theme
34if [[ -f "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme" ]]; then
35  source "$ZSH_CUSTOM/$RANDOM_THEME.zsh-theme"
36elif [[ -f "$ZSH_CUSTOM/themes/$RANDOM_THEME.zsh-theme" ]]; then
37  source "$ZSH_CUSTOM/themes/$RANDOM_THEME.zsh-theme"
38elif [[ -f "$ZSH/themes/$RANDOM_THEME.zsh-theme" ]]; then
39  source "$ZSH/themes/$RANDOM_THEME.zsh-theme"
40else
41  echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' not found"
42  return 1
43fi
44
45if [[ "$ZSH_THEME_RANDOM_QUIET" != true ]]; then
46  echo "[oh-my-zsh] Random theme '${RANDOM_THEME}' loaded"
47fi