Browse Source

Feature: Random themes now supported. Just set your theme to 'random' and it'll load a different theme each time oh-my-zsh is started. Closes #309

Robby Russell 13 years ago
parent
commit
6f7d51c68d
2 changed files with 16 additions and 2 deletions
  1. 13 1
      oh-my-zsh.sh
  2. 3 1
      templates/zshrc.zsh-template

+ 13 - 1
oh-my-zsh.sh

@@ -15,7 +15,19 @@ plugin=${plugin:=()}
 for plugin ($plugins) source $ZSH/plugins/$plugin/$plugin.plugin.zsh
 
 # Load the theme
-source "$ZSH/themes/$ZSH_THEME.zsh-theme"
+# Check for updates on initial load...
+if [ "$ZSH_THEME" = "random" ]
+then
+  themes=($ZSH/themes/*zsh-theme)
+  N=${#themes[@]}
+  ((N=RANDOM%N))
+  RANDOM_THEME=${themes[$N]}
+  source "$RANDOM_THEME"
+  echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
+else
+  source "$ZSH/themes/$ZSH_THEME.zsh-theme"
+fi
+
 
 # Check for updates on initial load...
 if [ "$DISABLE_AUTO_UPDATE" = "true" ]

+ 3 - 1
templates/zshrc.zsh-template

@@ -1,8 +1,10 @@
 # Path to your oh-my-zsh configuration.
 export ZSH=$HOME/.oh-my-zsh
 
-# Set to the name theme to load.
+# Set name of the theme to load.
 # Look in ~/.oh-my-zsh/themes/
+# Optionally, if you set this to "random", it'll load a random theme each
+# time that oh-my-zsh is loaded.
 export ZSH_THEME="robbyrussell"
 
 # Set to this to use case-sensitive completion