Browse Source

Merge pull request #482 from volpino/master

Theme chooser + fox's theme
Robby Russell 13 years ago
parent
commit
84c20ce6dd
2 changed files with 104 additions and 0 deletions
  1. 8 0
      themes/fox.zsh-theme
  2. 96 0
      tools/theme_chooser.sh

+ 8 - 0
themes/fox.zsh-theme

@@ -0,0 +1,8 @@
+#fox theme
+PROMPT='%{$fg[cyan]%}┌[%{$fg_bold[white]%}%n%{$reset_color%}%{$fg[cyan]%}☮%{$fg_bold[white]%}%M%{$reset_color%}%{$fg[cyan]%}]%{$fg[white]%}-%{$fg[cyan]%}(%{$fg_bold[white]%}%~%{$reset_color%}%{$fg[cyan]%})$(git_prompt_info)
+└> % %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="-[%{$reset_color%}%{$fg[white]%}git://%{$fg_bold[white]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}%{$fg[cyan]%}]-"
+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%{$reset_color%}"

+ 96 - 0
tools/theme_chooser.sh

@@ -0,0 +1,96 @@
+#!/bin/zsh
+
+# Zsh Theme Chooser by fox (fox91 at anche dot no)
+# This program is free software. It comes without any warranty, to
+# the extent permitted by applicable law. You can redistribute it
+# and/or modify it under the terms of the Do What The Fuck You Want
+# To Public License, Version 2, as published by Sam Hocevar. See
+# http://sam.zoy.org/wtfpl/COPYING for more details.
+
+THEMES_DIR="$ZSH/themes"
+FAVLIST="${HOME}/.zsh_favlist"
+source $ZSH/oh-my-zsh.sh
+
+function noyes() {
+    read "a?$1 [y/N] "
+    if [[ $a == "N" || $a == "n" || $a = "" ]]; then
+        return 0
+    fi
+    return 1
+}
+
+function theme_preview() {
+    THEME=$1
+    THEME_NAME=`echo $THEME | sed s/\.zsh-theme$//`
+    print "$fg[blue]${(l.((${COLUMNS}-${#THEME_NAME}-5))..─.)}$reset_color $THEME_NAME $fg[blue]───$reset_color"
+    source "$THEMES_DIR/$THEME"
+    print -P $PROMPT
+}
+
+function banner() {
+    echo
+    echo "╺━┓┏━┓╻ ╻   ╺┳╸╻ ╻┏━╸┏┳┓┏━╸   ┏━╸╻ ╻┏━┓┏━┓┏━┓┏━╸┏━┓"
+    echo "┏━┛┗━┓┣━┫    ┃ ┣━┫┣╸ ┃┃┃┣╸    ┃  ┣━┫┃ ┃┃ ┃┗━┓┣╸ ┣┳┛"
+    echo "┗━╸┗━┛╹ ╹    ╹ ╹ ╹┗━╸╹ ╹┗━╸   ┗━╸╹ ╹┗━┛┗━┛┗━┛┗━╸╹┗╸"
+    echo
+}
+
+function usage() {
+    echo "Usage: $0 [options] [theme]"
+    echo
+    echo "Options"
+    echo "  -l   List available themes"
+    echo "  -s   Show all themes"
+    echo "  -h   Get this help message"
+    exit 1
+}
+
+function list_themes() {
+    for THEME in $(ls $THEMES_DIR); do
+        THEME_NAME=`echo $THEME | sed s/\.zsh-theme$//`
+        echo $THEME_NAME
+    done
+}
+
+function insert_favlist() {
+    if grep -q "$THEME_NAME" $FAVLIST 2> /dev/null ; then
+        echo "Already in favlist"
+    else
+        echo $THEME_NAME >> $FAVLIST
+        echo "Saved to favlist"
+    fi
+
+}
+
+function theme_chooser() {
+    for THEME in $(ls $THEMES_DIR); do
+        echo
+        theme_preview $THEME
+        echo
+        if [[ -z $1 ]]; then
+            noyes "Do you want to add it to your favourite list ($FAVLIST)?" || \
+                  insert_favlist $THEME_NAME
+            echo
+        fi
+    done
+}
+
+while getopts ":lhs" Option
+do
+  case $Option in
+    l ) list_themes ;;
+    s ) theme_chooser 0 ;;
+    h ) usage ;;
+    * ) usage ;; # Default.
+  esac
+done
+
+if [[ -z $Option ]]; then
+    if [[ -z $1 ]]; then
+        banner
+        echo
+        theme_chooser
+    else
+        theme_preview $1".zsh-theme"
+    fi
+fi