Browse Source

Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh

NanoTech 14 years ago
parent
commit
143dd165e9

+ 1 - 1
.gitignore

@@ -1,5 +1,5 @@
 locals.zsh
 log/.zsh_history
 projects.zsh
-custom/*.zsh
+custom/*
 !custom/example.zsh

+ 2 - 0
lib/aliases.zsh

@@ -21,3 +21,5 @@ alias ll='ls -l'
 alias sl=ls # often screw this up
 
 alias afind='ack-grep -il'
+
+alias x=extract

+ 0 - 2
lib/appearance.zsh

@@ -34,5 +34,3 @@ ZSH_THEME_GIT_PROMPT_CLEAN=""               # Text to display if the branch is c
 # Setup the prompt with pretty colors
 setopt prompt_subst
 
-# Load the theme
-source "$ZSH/themes/$ZSH_THEME.zsh-theme"

+ 27 - 5
lib/completion.zsh

@@ -34,9 +34,31 @@ zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm
 zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
 cdpath=(.)
 
+# use /etc/hosts and known_hosts for hostname completion
+[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
+[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
+hosts=(
+  "$_ssh_hosts[@]"
+  "$_etc_hosts[@]"
+  `hostname`
+  localhost
+)
+zstyle ':completion:*:hosts' hosts $hosts
+
+# Use caching so that commands like apt and dpkg complete are useable
+zstyle ':completion::complete:*' use-cache 1
+zstyle ':completion::complete:*' cache-path ~/.oh-my-zsh/cache/
+
+# Don't complete uninteresting users
+zstyle ':completion:*:*:*:users' ignored-patterns \
+        adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
+        dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
+        hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
+        mailman mailnull mldonkey mysql nagios \
+        named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
+        operator pcap postfix postgres privoxy pulse pvm quagga radvd \
+        rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs
+
+# ... unless we really want to.
+zstyle '*' single-ignored show
 
-# Load known hosts file for auto-completion with ssh and scp commands
-if [ -f ~/.ssh/known_hosts ]; then
-  zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts )
-  zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts`
-fi

+ 5 - 1
lib/directories.zsh

@@ -36,5 +36,9 @@ cd () {
 
 alias md='mkdir -p'
 alias rd=rmdir
+alias d='dirs -v'
 
-alias d='dirs -v'
+# mkdir & cd to it
+function mcd() { 
+  mkdir -p "$1" && cd "$1"; 
+}

+ 36 - 0
lib/functions.zsh

@@ -37,3 +37,39 @@ function take() {
   mkdir -p $1
   cd $1
 }
+
+function extract() {
+    unset REMOVE_ARCHIVE
+    
+    if test "$1" = "-r"; then
+        REMOVE=1
+        shift
+    fi
+  if [[ -f $1 ]]; then
+    case $1 in
+      *.tar.bz2) tar xvjf $1;;
+      *.tar.gz) tar xvzf $1;;
+      *.tar.xz) tar xvJf $1;;
+      *.tar.lzma) tar --lzma -xvf $1;;
+      *.bz2) bunzip $1;;
+      *.rar) unrar $1;;
+      *.gz) gunzip $1;;
+      *.tar) tar xvf $1;;
+      *.tbz2) tar xvjf $1;;
+      *.tgz) tar xvzf $1;;
+      *.zip) unzip $1;;
+      *.Z) uncompress $1;;
+      *.7z) 7z x $1;;
+      *) echo "'$1' cannot be extracted via >extract<";;
+    esac
+
+    if [[ $REMOVE_ARCHIVE -eq 1 ]]; then
+        echo removing "$1";
+        /bin/rm "$1";
+    fi
+
+  else
+    echo "'$1' is not a valid file"
+  fi
+}
+

+ 3 - 0
oh-my-zsh.sh

@@ -14,6 +14,9 @@ for config_file ($ZSH/custom/*.zsh) source $config_file
 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 [ "$DISABLE_AUTO_UPDATE" = "true" ]
 then

+ 5 - 0
plugins/command-not-found/command-not-found.plugin.zsh

@@ -0,0 +1,5 @@
+# Uses the command-not-found package zsh support
+# as seen in http://www.porcheron.info/command-not-found-for-zsh/
+# this is installed in Ubuntu
+
+source /etc/zsh_command_not_found

+ 1 - 1
plugins/gem/gem.plugin.zsh

@@ -1,4 +1,4 @@
-# add brew completion function to path
+# add gem completion function to path
 fpath=($ZSH/plugins/gem $fpath)
 autoload -U compinit
 compinit -i

+ 3 - 2
plugins/git/git.plugin.zsh

@@ -8,6 +8,7 @@ alias gd='git diff | mate'
 alias gdv='git diff -w "$@" | vim -R -'
 alias gc='git commit -v'
 alias gca='git commit -v -a'
+alias gco='git checkout'
 alias gb='git branch'
 alias gba='git branch -a'
 alias gcount='git shortlog -sn'
@@ -26,7 +27,7 @@ function current_branch() {
   echo ${ref#refs/heads/}
 }
 
-# these aliases take advangate of the previous function
+# these aliases take advantage of the previous function
 alias ggpull='git pull origin $(current_branch)'
 alias ggpush='git push origin $(current_branch)'
-alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
+alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'

+ 2 - 2
plugins/lighthouse/lighthouse.plugin.zsh

@@ -4,7 +4,7 @@
 # Example usage: http://screencast.com/t/ZDgwNDUwNT
 open_lighthouse_ticket () {
   if [ ! -f .lighthouse-url ]; then
-    echo "There is no .lighthouse file in the current directory..."
+    echo "There is no .lighthouse-url file in the current directory..."
     return 0;
   else
     lighthouse_url=$(cat .lighthouse-url);
@@ -13,4 +13,4 @@ open_lighthouse_ticket () {
   fi
 }
 
-alias lho='open_lighthouse_ticket'
+alias lho='open_lighthouse_ticket'

+ 20 - 0
plugins/phing/phing.plugin.zsh

@@ -0,0 +1,20 @@
+_phing_does_target_list_need_generating () {
+  if [ ! -f .phing_targets ]; then return 0;
+  else
+    accurate=$(stat -f%m .phing_targets)
+    changed=$(stat -f%m build.xml)
+    return $(expr $accurate '>=' $changed)
+  fi
+}
+
+_phing () {
+  if [ -f build.xml ]; then
+    if _phing_does_target_list_need_generating; then
+      echo "\nGenerating .phing_targets..." > /dev/stderr
+      phing -l |grep -v ":" |grep -v "^$"|grep -v "\-" > .phing_targets
+    fi
+    compadd `cat .phing_targets`
+  fi
+}
+
+compdef _phing phing

+ 8 - 0
plugins/rails3/rails3.plugin.zsh

@@ -0,0 +1,8 @@
+alias rs='ruby script/rails server'
+alias rg='ruby script/rails generate'
+alias rd='ruby script/rails destroy'
+alias rp='ruby script/rails plugin'
+alias rdbm='rake db:migrate db:test:clone'
+alias rc='ruby script/rails console'
+alias rd='ruby script/rais server --debugger'
+alias devlog='tail -f log/development.log'

+ 42 - 0
plugins/svn/svn.plugin.zsh

@@ -0,0 +1,42 @@
+function svn_prompt_info {
+    if [[ -d .svn ]]; then
+        echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
+$ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
+    fi
+}
+
+
+function in_svn() {
+    if [[ -d .svn ]]; then
+        echo 1
+    fi
+}
+
+function svn_get_repo_name {
+    if [ is_svn ]; then
+        svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT
+    
+        svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//"
+    fi
+}
+
+function svn_get_rev_nr {
+    if [ is_svn ]; then
+        svn info 2> /dev/null | sed -n s/Revision:\ //p
+    fi
+}
+
+function svn_dirty_choose {
+    if [ is_svn ]; then
+        s=$(svn status 2>/dev/null)
+        if [ $s ]; then 
+            echo $1
+        else 
+            echo $2
+        fi
+    fi
+}
+
+function svn_dirty {
+    svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
+}

+ 104 - 0
plugins/vagrant/_vagrant

@@ -0,0 +1,104 @@
+#compdef vagrant 
+#autoload
+
+# vagrant zsh completion
+
+local -a _1st_arguments
+_1st_arguments=(
+    'box:Box commands'
+    'destroy:Destroys the vagrant environment'
+    'halt:Halts the currently running vagrant environment'
+    'help:[TASK] Describe available tasks or one specific task'
+    'init:[box_name] [box_url] Initializes current folder for Vagrant usage'
+    'package:Packages a vagrant environment for distribution'
+    'provision:Run the provisioner'
+    'reload:Reload the vagrant environment'
+    'resume:Resumes a suspend vagrant environment'
+    'ssh:SSH into the currently running environment'
+    'ssh_config:outputs .ssh/config valid syntax for connecting to this environment via ssh.'
+    'status:Shows the status of the current Vagrant environment.'
+    'suspend:Suspends the currently running vagrant environment'
+    'up:Creates the vagrant environment'
+    'version:Prints the Vagrant version information'
+)
+
+local -a _box_arguments
+_box_arguments=(
+    'add:NAME URI Add a box to the system'
+    'help:COMMAND Describe subcommands or one specific subcommand'
+    'list:Lists all installed boxes'
+    'remove:NAME Remove a box from the system'
+    'repackage:NAME Repackage an installed box into a `.box` file.'
+)
+
+__task_list ()
+{
+    local expl
+    declare -a tasks
+
+    tasks=(box destroy halt init package provision reload resume ssh ssh_config status suspend up version)
+
+    _wanted tasks expl 'help' compadd $tasks
+}
+
+__box_list ()
+{
+    _wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g')
+}
+
+__vagrant-box ()
+{
+    local curcontext="$curcontext" state line
+    typeset -A opt_args
+
+    _arguments -C \
+        ':command:->command' \
+        '*::options:->options'
+
+   case $state in
+       (command)
+           _describe -t commands "gem subcommand" _box_arguments
+           return
+       ;;
+
+       (options)
+           case $line[1] in
+               (repackage|remove)
+                   _arguments ':feature:__box_list' 
+               ;;
+           esac
+       ;;
+    esac
+}
+
+
+
+
+local expl
+local -a boxes installed_boxes
+
+local curcontext="$curcontext" state line
+typeset -A opt_args
+
+_arguments -C \
+    ':command:->command' \
+    '*::options:->options'
+
+case $state in
+  (command)
+      _describe -t commands "gem subcommand" _1st_arguments
+      return
+  ;;
+
+  (options)
+    case $line[1] in
+      (help)
+         _arguments ':feature:__task_list' 
+      ;;
+
+      (box)
+          __vagrant-box
+      ;;
+    esac
+  ;;
+esac

+ 3 - 0
plugins/vagrant/vagrant.plugin.zsh

@@ -0,0 +1,3 @@
+fpath=($ZSH/plugins/vagrant $fpath)
+autoload -U compinit
+compinit -i

+ 1 - 1
themes/afowler.zsh-theme

@@ -1,4 +1,4 @@
-if [ "$(whoami)" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi
+if [ $UID -eq 0 ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi
 
 local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
 

+ 1 - 1
themes/arrow.zsh-theme

@@ -1,4 +1,4 @@
-if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="yellow"; fi
+if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="yellow"; fi
 
 PROMPT='%{$fg[$NCOLOR]%}%c ➤ %{$reset_color%}'
 RPROMPT='%{$fg[$NCOLOR]%}%p $(git_prompt_info)%{$reset_color%}'

+ 18 - 0
themes/awesomepanda.zsh-theme

@@ -0,0 +1,18 @@
+# the svn plugin has to be activated for this to work.
+
+PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}$(svn_prompt_info)%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%})%{$fg[yellow]%} ✗ %{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}) "
+
+
+
+ZSH_PROMPT_BASE_COLOR="%{$fg_bold[blue]%}"
+ZSH_THEME_REPO_NAME_COLOR="%{$fg_bold[red]%}"
+
+ZSH_THEME_SVN_PROMPT_PREFIX="svn:("
+ZSH_THEME_SVN_PROMPT_SUFFIX=")"
+ZSH_THEME_SVN_PROMPT_DIRTY="%{$fg[red]%} ✘ %{$reset_color%}"
+ZSH_THEME_SVN_PROMPT_CLEAN=" "

+ 14 - 0
themes/bira.zsh-theme

@@ -0,0 +1,14 @@
+# ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png
+local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
+local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}'
+local rvm_ruby='%{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v g)›%{$reset_color%}'
+local git_branch='$(git_prompt_info)%{$reset_color%}'
+
+PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch}
+╰─%B$%b "
+RPS1="${return_code}"
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹"
+ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}"

+ 1 - 1
themes/clean.zsh-theme

@@ -1,4 +1,4 @@
-if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="white"; fi
+if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="white"; fi
 
 PROMPT='%{$fg[$NCOLOR]%}%B%n%b%{$reset_color%}:%{$fg[blue]%}%B%c/%b%{$reset_color%} $(git_prompt_info)%(!.#.$) '
 RPROMPT='[%*]'

+ 56 - 0
themes/dieter.zsh-theme

@@ -0,0 +1,56 @@
+# the idea of this theme is to contain a lot of info in a small string, by
+# compressing some parts and colorcoding, which bring useful visual cues,
+# while limiting the amount of colors and such to keep it easy on the eyes.
+# When a command exited >0, the timestamp will be in red and the exit code
+# will be on the right edge.
+# The exit code visual cues will only display once.
+# (i.e. they will be reset, even if you hit enter a few times on empty command prompts)
+
+typeset -A host_repr
+
+# translate hostnames into shortened, colorcoded strings
+host_repr=('dieter-ws-a7n8x-arch' "%{$fg_bold[green]%}ws" 'dieter-p4sci-arch' "%{$fg_bold[blue]%}p4")
+
+# local time, color coded by last return code
+time_enabled="%(?.%{$fg[green]%}.%{$fg[red]%})%*%{$reset_color%}"
+time_disabled="%{$fg[green]%}%*%{$reset_color%}"
+time=$time_enabled
+
+# user part, color coded by privileges
+local user="%(!.%{$fg[blue]%}.%{$fg[blue]%})%n%{$reset_color%}"
+
+# Hostname part.  compressed and colorcoded per host_repr array
+# if not found, regular hostname in default color
+local host="@${host_repr[$(hostname)]:-$(hostname)}%{$reset_color%}"
+
+# Compacted $PWD
+local pwd="%{$fg[blue]%}%c%{$reset_color%}"
+
+PROMPT='${time} ${user}${host} ${pwd} $(git_prompt_info)'
+
+# i would prefer 1 icon that shows the "most drastic" deviation from HEAD,
+# but lets see how this works out
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%} %{$fg[yellow]%}?%{$fg[green]%}%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%}"
+
+# elaborate exitcode on the right when >0
+return_code_enabled="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+return_code_disabled=
+return_code=$return_code_enabled
+
+RPS1='${return_code}'
+
+function accept-line-or-clear-warning () {
+	if [[ -z $BUFFER ]]; then
+		time=$time_disabled
+		return_code=$return_code_disabled
+	else
+		time=$time_enabled
+		return_code=$return_code_enabled
+	fi
+	zle accept-line
+}
+zle -N accept-line-or-clear-warning
+bindkey '^M' accept-line-or-clear-warning

+ 1 - 1
themes/dst.zsh-theme

@@ -5,7 +5,7 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!"
 ZSH_THEME_GIT_PROMPT_CLEAN=""
 
 function prompt_char {
-	if [ "$(whoami)" = "root" ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi
+	if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi
 }
 
 PROMPT='%(?, ,%{$fg[red]%}FAIL%{$reset_color%}

+ 9 - 0
themes/fishy.zsh-theme

@@ -0,0 +1,9 @@
+# ZSH Theme emulating the Fish shell's default prompt.
+
+local user_color='green'; [ $UID -eq 0 ] && user_color='red'
+PROMPT='%n@%m %{$fg[$user_color]%}%~%{$reset_color%}%(!.#.>) '
+PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
+RPS1='%(?..%{$fg[red]%}%? ↵%{$reset_color%})$(git_prompt_info)'
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[cyan]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"

+ 19 - 0
themes/flazz.zsh-theme

@@ -0,0 +1,19 @@
+if [ "$(whoami)" = "root" ]
+then CARETCOLOR="red"
+else CARETCOLOR="blue"
+fi
+
+local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+PROMPT='%m%{${fg_bold[magenta]}%} :: %{$reset_color%}%{${fg[green]}%}%3~ $(git_prompt_info)%{${fg_bold[$CARETCOLOR]}%}%#%{${reset_color}%} '
+
+RPS1='$(vi_mode_prompt_info) ${return_code}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[cyan]%}‹"
+ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}"
+
+MODE_INDICATOR="%{$fg_bold[magenta]%}<%{$reset_color%}%{$fg[magenta]%}<<%{$reset_color%}"
+
+# TODO use 265 colors
+#MODE_INDICATOR="$FX[bold]$FG[020]<$FX[no_bold]%{$fg[blue]%}<<%{$reset_color%}"
+# TODO use two lines if git

+ 4 - 0
themes/gentoo.zsh-theme

@@ -0,0 +1,4 @@
+PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%#%{$reset_color%} '
+
+ZSH_THEME_GIT_PROMPT_PREFIX="("
+ZSH_THEME_GIT_PROMPT_SUFFIX=") "

+ 1 - 1
themes/jreese.zsh-theme

@@ -1,6 +1,6 @@
 # ZSH Theme - Preview: http://dl.dropbox.com/u/1552408/Screenshots/2010-04-08-oh-my-zsh.png
 
-if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi
+if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
 local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
 
 PROMPT='%{$fg[$NCOLOR]%}%n%{$fg[green]%}@%m%{$reset_color%} %~ \

+ 12 - 0
themes/kardan.zsh-theme

@@ -0,0 +1,12 @@
+# Simple theme based on my old zsh settings.
+
+function get_host {
+	echo '@'`hostname`''
+}
+
+PROMPT='> '
+RPROMPT='%~$(git_prompt_info)$(get_host)'
+
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_PREFIX="("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"

+ 6 - 0
themes/lambda.zsh-theme

@@ -0,0 +1,6 @@
+# ZSH Theme - Preview: http://cl.ly/350F0F0k1M2y3A2i3p1S
+
+PROMPT='λ %~/ $(git_prompt_info)%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "

+ 1 - 1
themes/philips.zsh-theme

@@ -1,4 +1,4 @@
-if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi
+if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
 
 PROMPT='%{$fg[$NCOLOR]%}%B%n%b%{$reset_color%}:%{$fg[blue]%}%B%c/%b%{$reset_color%} $(git_prompt_info)%(!.#.$) '
 RPROMPT='[%*]'

+ 1 - 1
themes/pmcgee.zsh-theme

@@ -1,4 +1,4 @@
-if [ "$(whoami)" = "root" ]; then NCOLOR="red"; else NCOLOR="green"; fi
+if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
 
 PROMPT='
 %{$fg[$NCOLOR]%}%B%n@%m%b%{$reset_color%} %{$fg[white]%}%B${PWD/#$HOME/~}%b%{$reset_color%}

+ 24 - 0
themes/rixius.zsh-theme

@@ -0,0 +1,24 @@
+# /|/ Code by Stephen
+# /|/ "Rixius" Middleton
+# 
+# name in folder (github)
+# ± if in github repo, or ≥ if otherwise Time in 24-hour format is on right.
+function collapse_pwd {
+    echo $(pwd | sed -e "s,^$HOME,~,")
+}
+function prompt_char {
+    echo -n "%{$bg[white]%}%{$fg[red]%}"
+    git branch >/dev/null 2>/dev/null && echo "±%{$reset_color%}" && return
+    echo "≥%{$reset_color%}"
+}
+RIXIUS_PRE="%{$bg[white]%}%{$fg[red]%}"
+
+PROMPT='
+%{$RIXIUS_PRE%}%n%{$reset_color%} in %{$fg_bold[green]%}$(collapse_pwd)%{$reset_color%}$(git_prompt_info)
+$(prompt_char) '
+RPROMPT='%{$RIXIUS_PRE%}%T%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$RIXIUS_PRE%}!%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN=" %{$RIXIUS_PRE%}√%{$reset_color%}"

+ 14 - 4
themes/theunraveler.zsh-theme

@@ -1,6 +1,16 @@
-# Comment 
+# Comment
 
-ZSH_THEME_GIT_PROMPT_PREFIX=' (git:'
-ZSH_THEME_GIT_PROMPT_SUFFIX=')'
+PROMPT='%{$fg[magenta]%}[%c] %{$reset_color%}'
 
-PROMPT='%{$fg[magenta]%}[%c]$(git_prompt_info) $ %{$reset_color%}'
+RPROMPT='%{$fg[magenta]%}$(git_prompt_info)%{$reset_color%} $(git_prompt_status)%{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX=""
+ZSH_THEME_GIT_PROMPT_SUFFIX=""
+ZSH_THEME_GIT_PROMPT_DIRTY=""
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[cyan]%} ✈"
+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[yellow]%} ✭"
+ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%} ✗"
+ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[blue]%} ➦"
+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[magenta]%} ✂"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%} ✱"