mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 05:01:17 +08:00 
			
		
		
		
	Move random theme functionality into "random" theme
The statements for selecting a random theme in oh-my-zsh.sh and the themes plugin are duplicate. Most people eventually settle on a theme, making those lines in oh-my-zsh.sh superfluous. To address those, it may makes sense to put the random theme functionality into a theme of its own (since themes are just zsh scripts.
This commit is contained in:
		
							parent
							
								
									d76258ff55
								
							
						
					
					
						commit
						6adad5c300
					
				
							
								
								
									
										25
									
								
								oh-my-zsh.sh
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								oh-my-zsh.sh
									
									
									
									
									
								
							@ -97,25 +97,12 @@ done
 | 
			
		||||
unset config_file
 | 
			
		||||
 | 
			
		||||
# Load the theme
 | 
			
		||||
if [[ "$ZSH_THEME" == "random" ]]; then
 | 
			
		||||
  if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = "array" ]] && [[ "${#ZSH_THEME_RANDOM_CANDIDATES[@]}" -gt 0 ]]; then
 | 
			
		||||
    themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDIDATES}.zsh-theme)
 | 
			
		||||
if [ ! "$ZSH_THEME" = ""  ]; then
 | 
			
		||||
  if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
 | 
			
		||||
    source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
 | 
			
		||||
  elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
 | 
			
		||||
    source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
 | 
			
		||||
  else
 | 
			
		||||
    themes=($ZSH/themes/*zsh-theme)
 | 
			
		||||
  fi
 | 
			
		||||
  N=${#themes[@]}
 | 
			
		||||
  ((N=(RANDOM%N)+1))
 | 
			
		||||
  RANDOM_THEME=${themes[$N]}
 | 
			
		||||
  source "$RANDOM_THEME"
 | 
			
		||||
  echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
 | 
			
		||||
else
 | 
			
		||||
  if [ ! "$ZSH_THEME" = ""  ]; then
 | 
			
		||||
    if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
 | 
			
		||||
      source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
 | 
			
		||||
    elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
 | 
			
		||||
      source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
 | 
			
		||||
    else
 | 
			
		||||
      source "$ZSH/themes/$ZSH_THEME.zsh-theme"
 | 
			
		||||
    fi
 | 
			
		||||
    source "$ZSH/themes/$ZSH_THEME.zsh-theme"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@ -1,19 +1,17 @@
 | 
			
		||||
function theme
 | 
			
		||||
{
 | 
			
		||||
    if [ -z "$1" ] || [ "$1" = "random" ]; then
 | 
			
		||||
	themes=($ZSH/themes/*zsh-theme)
 | 
			
		||||
	N=${#themes[@]}
 | 
			
		||||
	((N=(RANDOM%N)+1))
 | 
			
		||||
	RANDOM_THEME=${themes[$N]}
 | 
			
		||||
	source "$RANDOM_THEME"
 | 
			
		||||
	echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
 | 
			
		||||
    if [ -z "$1" ]; then
 | 
			
		||||
        1="random"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ -f "$ZSH_CUSTOM/$1.zsh-theme" ]
 | 
			
		||||
    then
 | 
			
		||||
        source "$ZSH_CUSTOM/$1.zsh-theme"
 | 
			
		||||
    elif [ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]
 | 
			
		||||
    then
 | 
			
		||||
        source "$ZSH_CUSTOM/themes/$1.zsh-theme"
 | 
			
		||||
    else
 | 
			
		||||
	if [ -f "$ZSH_CUSTOM/themes/$1.zsh-theme" ]
 | 
			
		||||
	then
 | 
			
		||||
	    source "$ZSH_CUSTOM/themes/$1.zsh-theme"
 | 
			
		||||
	else
 | 
			
		||||
	    source "$ZSH/themes/$1.zsh-theme"
 | 
			
		||||
	fi
 | 
			
		||||
        source "$ZSH/themes/$1.zsh-theme"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								themes/random.zsh-theme
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								themes/random.zsh-theme
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = "array" ]] && [[ "${#ZSH_THEME_RANDOM_CANDIDATES[@]}" -gt 0 ]]; then
 | 
			
		||||
  themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDIDATES}.zsh-theme)
 | 
			
		||||
else
 | 
			
		||||
  themes=($ZSH/themes/*zsh-theme)
 | 
			
		||||
fi
 | 
			
		||||
N=${#themes[@]}
 | 
			
		||||
((N=(RANDOM%N)+1))
 | 
			
		||||
RANDOM_THEME=${themes[$N]}
 | 
			
		||||
source "$RANDOM_THEME"
 | 
			
		||||
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user