diff options
Diffstat (limited to 'themes')
38 files changed, 1078 insertions, 127 deletions
| diff --git a/themes/adben.zsh-theme b/themes/adben.zsh-theme index 9f777e847..b64714f32 100644 --- a/themes/adben.zsh-theme +++ b/themes/adben.zsh-theme @@ -1,26 +1,121 @@  #!/usr/bin/env zsh -local USER_HOST='%{$terminfo[bold]$fg[yellow]%}%n@%m%{$reset_color%}' -local RETURN_CODE="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -local GIT_BRANCH='%{$terminfo[bold]$fg[red]%}$(git_prompt_info)%{$reset_color%}' -local CURRENT_DIR='%{$terminfo[bold]$fg[green]%} %~%{$reset_color%}' -local RUBY_RVM='%{$fg[gray]%}‹$(rvm-prompt i v g)›%{$reset_color%}' -local COMMAND_TIP='%{$terminfo[bold]$fg[blue]%}$(wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' | sed 's/^/║/g')%{$reset_color%}' -######### PROMPT ######### -PROMPT="%{$terminfo[bold]$fg[blue]%}╔═ %{$reset_color%}${USER_HOST} ${CURRENT_DIR} ${RUBY_RVM} ${GIT_BRANCH} -${COMMAND_TIP} -%{$terminfo[bold]$fg[blue]%}╚═ %{$reset_color%}%B%{$terminfo[bold]$fg[white]%}$%b%{$reset_color%} " -RPS1='${RETURN_CODE}' -RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' -######### PROMPT ######### -########## GIT ########### -ZSH_THEME_GIT_PROMPT_PREFIX="‹" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%}›" -ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘" -ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔" -ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[082]%}✚%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[166]%}✹%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[160]%}✖%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[220]%}➜%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[082]%}═%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[190]%}✭%{$reset_color%}" -########## GIT ########### +# # +# # #README +# # +# # This theme provides two customizable header functionalities :  +# # a) displaying a pseudo-random message from a database of quotations +# # (https://en.wikipedia.org/wiki/Fortune_%28Unix%29) +# # b) displaying randomly command line tips from The command line fu  +# # (http://www.commandlinefu.com) community: in order to make use of this functionality +# # you will need Internet connection.  +# # This theme provides as well information for the current user's context, like; +# # branch and status for the current version control system (git and svn currently +# # supported) and time, presented to the user in a non invasive volatile way. +# # +# # #REQUIREMENTS +# # This theme requires wget:: +# # -Homebrew-osx- brew install wget +# # -Debian/Ubuntu- apt-get install wget +# # and fortune :: +# # -Homebrew-osx- brew install fortune +# # -Debian/Ubuntu- apt-get install fortune +# # +# # optionally: +# # -Oh-myzsh vcs plug-ins git and svn. +# # -Solarized theme (https://github.com/altercation/solarized/) +# # -OS X: iTerm 2 (http://www.iterm2.com/) +# # -font Source code pro (https://github.com/adobe/source-code-pro) +# #  +# # Author: Adolfo Benedetti +# # email: adolfo.benedetti@gmail.com +# # License: Public Domain +# # This theme's look and feel is based on the Aaron Toponce's zsh theme , more info:  +# # http://pthree.org/2008/11/23/727/ +# # enjoy! +########## COLOR ########### +for COLOR in CYAN WHITE YELLOW MAGENTA BLACK BLUE RED DEFAULT GREEN GREY; do +    eval PR_$COLOR='%{$fg[${(L)COLOR}]%}' +    eval PR_BRIGHT_$COLOR='%{$fg_bold[${(L)COLOR}]%}' +done +PR_RESET="%{$reset_color%}" +RED_START="${PR_RESET}${PR_GREY}<${PR_RESET}${PR_RED}<${PR_BRIGHT_RED}<${PR_RESET} " +RED_END="${PR_RESET}${PR_BRIGHT_RED}>${PR_RESET}${PR_RED}>${PR_GREY}>${PR_RESET} " +GREEN_END="${PR_RESET}${PR_BRIGHT_GREEN}>${PR_RESET}${PR_GREEN}>${PR_GREY}>${PR_RESET} " +GREEN_BASE_START="${PR_RESET}${PR_GREY}>${PR_RESET}${PR_GREEN}>${PR_BRIGHT_GREEN}>${PR_RESET}" +GREEN_START_P1="${PR_RESET}${GREEN_BASE_START}${PR_RESET} " +DIVISION="${PR_RESET}${PR_RED} < ${PR_RESET}" +VCS_DIRTY_COLOR="${PR_RESET}${PR_YELLOW}" +Vcs_CLEAN_COLOR="${PR_RESET}${PR_GREEN}" +VCS_SUFIX_COLOR="${PR_RESET}${PR_RED}› ${PR_RESET}" +# ########## COLOR ########### +# ########## SVN ########### +ZSH_THEME_SVN_PROMPT_PREFIX="${PR_RESET}${PR_RED}‹svn:" +ZSH_THEME_SVN_PROMPT_SUFFIX="" +ZSH_THEME_SVN_PROMPT_DIRTY="${VCS_DIRTY_COLOR} ✘${VCS_SUFIX_COLOR}" +ZSH_THEME_SVN_PROMPT_CLEAN="${VCS_CLEAN_COLOR} ✔${VCS_SUFIX_COLOR}" +# ########## SVN ########### +# ########## GIT ########### +ZSH_THEME_GIT_PROMPT_PREFIX="${PR_RESET}${PR_RED}‹git:" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_DIRTY="${VCS_DIRTY_COLOR} ✘${VCS_SUFIX_COLOR}" +ZSH_THEME_GIT_PROMPT_CLEAN="${VCS_CLEAN_COLOR} ✔${VCS_SUFIX_COLOR}" +ZSH_THEME_GIT_PROMPT_ADDED="${PR_RESET}${PR_YELLOW} ✚${PR_RESET}" +ZSH_THEME_GIT_PROMPT_MODIFIED="${PR_RESET}${PR_YELLOW} ✹${PR_RESET}" +ZSH_THEME_GIT_PROMPT_DELETED="${PR_RESET}${PR_YELLOW} ✖${PR_RESET}" +ZSH_THEME_GIT_PROMPT_RENAMED="${PR_RESET}${PR_YELLOW} ➜${PR_RESET}" +ZSH_THEME_GIT_PROMPT_UNMERGED="${PR_RESET}${PR_YELLOW} ═${PR_RESET}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="${PR_RESET}${PR_YELLOW} ✭${PR_RESET}" +# ########## GIT ########### +function precmd { +    #gets the fortune +    ps1_fortune () { +        #Choose from all databases, regardless of whether they are considered "offensive" +        fortune -a +    } +    #obtains the tip  +    ps1_command_tip () { +        wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' +    }   +    prompt_header () { +        if [[ "true" == "$ENABLE_COMMAND_TIP" ]]; then +            ps1_command_tip +        else +            ps1_fortune +        fi  +    }    +    PROMPT_HEAD="${RED_START}${PR_YELLOW}$(prompt_header)${PR_RESET}" +    # set a simple variable to show when in screen +    if [[ -n "${WINDOW}" ]]; then +        SCREEN="" +    fi +} + +# Context: user@directory or just directory +prompt_context () { +    local user=`whoami` +    if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then +        echo -n "${PR_RESET}${PR_RED}$user@%m${PR_RESET}${PR_BRIGHT_YELLOW}%~%<<${PR_RESET}" +    else +        echo -n "${PR_RESET}${PR_BRIGHT_YELLOW}%~%<<${PR_RESET}" +    fi +} + +set_prompt () { +    # required for the prompt +    setopt prompt_subst +    autoload colors zsh/terminfo +    if [[ "$terminfo[colors]" -gt 8 ]]; then +        colors +    fi  +     +    # ######### PROMPT ######### +    PROMPT='${PROMPT_HEAD} +${RED_START}$(prompt_context) +${GREEN_START_P1}' +    RPROMPT='${PR_RESET}$(git_prompt_info)$(svn_prompt_info)${PR_YELLOW}%D{%R.%S %a %b %d %Y} ${GREEN_END}${PR_RESET}' +    # Matching continuation prompt +    PROMPT2='${GREEN_BASE_START}${PR_RESET} %_ ${GREEN_BASE_START}${PR_RESET} ' +    # ######### PROMPT ######### +} + +set_prompt diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme index c1b00c62b..4cf282590 100644 --- a/themes/af-magic.zsh-theme +++ b/themes/af-magic.zsh-theme @@ -27,7 +27,7 @@ eval my_gray='$FG[237]'  eval my_orange='$FG[214]'  # right prompt -RPROMPT='$my_gray%n@%m%{$reset_color%}%' +PROMPT='$(virtualenv_prompt_info)$my_gray%n@%m%{$reset_color%}%'  # git settings  ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075](branch:" diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index bd6f1a6a2..01cdc80e5 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -26,7 +26,7 @@  # A few utility functions to make it easy and re-usable to draw segmented prompts  CURRENT_BG='NONE' -SEGMENT_SEPARATOR='⮀' +SEGMENT_SEPARATOR=''  # Begin a segment  # Takes two arguments, background and foreground. Both can be omitted, @@ -71,7 +71,6 @@ prompt_context() {  prompt_git() {    local ref dirty    if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then -    ZSH_THEME_GIT_PROMPT_DIRTY='±'      dirty=$(parse_git_dirty)      ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)"      if [[ -n $dirty ]]; then @@ -79,7 +78,54 @@ prompt_git() {      else        prompt_segment green black      fi -    echo -n "${ref/refs\/heads\//⭠ }$dirty" + +    setopt promptsubst +    autoload -Uz vcs_info + +    zstyle ':vcs_info:*' enable git +    zstyle ':vcs_info:*' get-revision true +    zstyle ':vcs_info:*' check-for-changes true +    zstyle ':vcs_info:*' stagedstr '✚' +    zstyle ':vcs_info:git:*' unstagedstr '●' +    zstyle ':vcs_info:*' formats ' %u%c' +    zstyle ':vcs_info:*' actionformats '%u%c' +    vcs_info +    echo -n "${ref/refs\/heads\//± }${vcs_info_msg_0_}" +  fi +} + +prompt_hg() { +  local rev status +  if $(hg id >/dev/null 2>&1); then +    if $(hg prompt >/dev/null 2>&1); then +      if [[ $(hg prompt "{status|unknown}") = "?" ]]; then +        # if files are not added +        prompt_segment red white +        st='±' +      elif [[ -n $(hg prompt "{status|modified}") ]]; then +        # if any modification +        prompt_segment yellow black +        st='±' +      else +        # if working copy is clean +        prompt_segment green black +      fi +      echo -n $(hg prompt "☿ {rev}@{branch}") $st +    else +      st="" +      rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g') +      branch=$(hg id -b 2>/dev/null) +      if `hg st | grep -Eq "^\?"`; then +        prompt_segment red black +        st='±' +      elif `hg st | grep -Eq "^(M|A)"`; then +        prompt_segment yellow black +        st='±' +      else +        prompt_segment green black +      fi +      echo -n "☿ $rev@$branch" $st +    fi    fi  } @@ -88,6 +134,14 @@ prompt_dir() {    prompt_segment blue black '%~'  } +# Virtualenv: current working virtualenv +prompt_virtualenv() { +  local virtualenv_path="$VIRTUAL_ENV" +  if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then +    prompt_segment blue black "(`basename $virtualenv_path`)" +  fi +} +  # Status:  # - was there an error  # - am I root @@ -95,7 +149,7 @@ prompt_dir() {  prompt_status() {    local symbols    symbols=() -  [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$RETVAL" +  [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘"    [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡"    [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" @@ -106,9 +160,11 @@ prompt_status() {  build_prompt() {    RETVAL=$?    prompt_status +  prompt_virtualenv    prompt_context    prompt_dir    prompt_git +  prompt_hg    prompt_end  } diff --git a/themes/amuse.zsh-theme b/themes/amuse.zsh-theme new file mode 100644 index 000000000..548f6d39d --- /dev/null +++ b/themes/amuse.zsh-theme @@ -0,0 +1,21 @@ +# vim:ft=zsh ts=2 sw=2 sts=2 + +rvm_current() { +  rvm current 2>/dev/null +} + +rbenv_version() { +  rbenv version 2>/dev/null | awk '{print $1}' +} + +PROMPT=' +%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) ⌚ %{$fg_bold[red]%}%*%{$reset_color%} +$ ' + +ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}⭠ " +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +RPROMPT='%{$fg_bold[red]%}$(rbenv_version)%{$reset_color%}' diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme new file mode 100644 index 000000000..51f5e375a --- /dev/null +++ b/themes/avit.zsh-theme @@ -0,0 +1,120 @@ +# +# Author:: Andrew Vit (<andrew@avit.ca>) +# +# AVIT ZSH Theme +# +# Copyright 2011, Andrew Vit +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +#     http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +PROMPT=' +$(_user_host)${_current_dir} $(git_prompt_info) $(_ruby_version) +▶ ' + +PROMPT2='%{$fg[grey]%}◀%{$reset_color%} ' + +RPROMPT='$(_vi_status)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' + +local _current_dir="%{$fg[blue]%}%3~%{$reset_color%} " +local _return_status="%{$fg[red]%}%(?..⍉)%{$reset_color%}" +local _hist_no="%{$fg[grey]%}%h%{$reset_color%}" + +function _user_host() { +  if [[ -n $SSH_CONNECTION ]]; then +    me="%n@%m" +  elif [[ $LOGNAME != $USER ]]; then +    me="%n" +  fi +  if [[ -n $me ]]; then +    echo "%{$fg[cyan]%}$me%{$reset_color%}:" +  fi +} + +function _vi_status() { +  if {echo $fpath | grep -q "plugins/vi-mode"}; then +    echo "$(vi_mode_prompt_info)" +  fi +} + +function _ruby_version() { +  if {echo $fpath | grep -q "plugins/rvm"}; then +    echo "%{$fg[grey]%}$(rvm_prompt_info)%{$reset_color%}" +  fi +} + +# Determine the time since last commit. If branch is clean, +# use a neutral color, otherwise colors will vary according to time. +function _git_time_since_commit() { +  if git rev-parse --git-dir > /dev/null 2>&1; then +    # Only proceed if there is actually a commit. +    if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then +      # Get the last commit. +      last_commit=$(git log --pretty=format:'%at' -1 2> /dev/null) +      now=$(date +%s) +      seconds_since_last_commit=$((now-last_commit)) + +      # Totals +      minutes=$((seconds_since_last_commit / 60)) +      hours=$((seconds_since_last_commit/3600)) + +      # Sub-hours and sub-minutes +      days=$((seconds_since_last_commit / 86400)) +      sub_hours=$((hours % 24)) +      sub_minutes=$((minutes % 60)) + +      if [ $hours -gt 24 ]; then +          commit_age="${days}d" +      elif [ $minutes -gt 60 ]; then +          commit_age="${sub_hours}h${sub_minutes}m" +      else +          commit_age="${minutes}m" +      fi + +      color=$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL +      echo "$color$commit_age%{$reset_color%}" +    fi +  fi +} + +if [[ $USER == "root" ]]; then +  CARETCOLOR="red" +else +  CARETCOLOR="white" +fi + +MODE_INDICATOR="%{$fg_bold[yellow]%}❮%{$reset_color%}%{$fg[yellow]%}❮❮%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%}✚ " +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[cyan]%}§ " +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}◒ " + +# Colors vary depending on time lapsed. +ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[green]%}" +ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[grey]%}" + +# LS colors, made with http://geoff.greer.fm/lscolors/ +export LSCOLORS="exfxcxdxbxegedabagacad" +export LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:' +export GREP_COLOR='1;33' + diff --git a/themes/blinks.zsh-theme b/themes/blinks.zsh-theme index 3db7012f4..ddb32f7c3 100644 --- a/themes/blinks.zsh-theme +++ b/themes/blinks.zsh-theme @@ -8,13 +8,23 @@ function _prompt_char() {    fi  } +# This theme works with both the "dark" and "light" variants of the +# Solarized color schema.  Set the SOLARIZED_THEME variable to one of +# these two values to choose.  If you don't specify, we'll assume you're +# using the "dark" variant. + +case ${SOLARIZED_THEME:-dark} in +    light) bkg=white;; +    *)     bkg=black;; +esac +  ZSH_THEME_GIT_PROMPT_PREFIX=" [%{%B%F{blue}%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{black}%B%F{green}%}]" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{${bkg}}%B%F{green}%}]"  ZSH_THEME_GIT_PROMPT_DIRTY=" %{%F{red}%}*%{%f%k%b%}"  ZSH_THEME_GIT_PROMPT_CLEAN=""  PROMPT='%{%f%k%b%} -%{%K{black}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%b%F{yellow}%K{black}%}%~%{%B%F{green}%}$(git_prompt_info)%E%{%f%k%b%} -%{%K{black}%}$(_prompt_char)%{%K{black}%} %#%{%f%k%b%} ' +%{%K{${bkg}}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%b%F{yellow}%K{${bkg}}%}%~%{%B%F{green}%}$(git_prompt_info)%E%{%f%k%b%} +%{%K{${bkg}}%}$(_prompt_char)%{%K{${bkg}}%} %#%{%f%k%b%} '  RPROMPT='!%{%B%F{cyan}%}%!%{%f%k%b%}' diff --git a/themes/bureau.zsh-theme b/themes/bureau.zsh-theme new file mode 100644 index 000000000..1d88f54d0 --- /dev/null +++ b/themes/bureau.zsh-theme @@ -0,0 +1,113 @@ +# oh-my-zsh Bureau Theme + +### NVM + +ZSH_THEME_NVM_PROMPT_PREFIX="%B⬡%b " +ZSH_THEME_NVM_PROMPT_SUFFIX="" + +### Git [±master ▾●] + +ZSH_THEME_GIT_PROMPT_PREFIX="[%{$fg_bold[green]%}±%{$reset_color%}%{$fg_bold[white]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}]" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✓%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg[cyan]%}▴%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[magenta]%}▾%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[yellow]%}●%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[red]%}●%{$reset_color%}" + +bureau_git_branch () { +  ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ +  ref=$(command git rev-parse --short HEAD 2> /dev/null) || return +  echo "${ref#refs/heads/}" +} + +bureau_git_status () { +  _INDEX=$(command git status --porcelain -b 2> /dev/null) +  _STATUS="" +  if $(echo "$_INDEX" | grep '^[AMRD]. ' &> /dev/null); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STAGED" +  fi +  if $(echo "$_INDEX" | grep '^.[MTD] ' &> /dev/null); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" +  fi +  if $(echo "$_INDEX" | grep -E '^\?\? ' &> /dev/null); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED" +  fi +  if $(echo "$_INDEX" | grep '^UU ' &> /dev/null); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED" +  fi +  if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STASHED" +  fi +  if $(echo "$_INDEX" | grep '^## .*ahead' &> /dev/null); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_AHEAD" +  fi +  if $(echo "$_INDEX" | grep '^## .*behind' &> /dev/null); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_BEHIND" +  fi +  if $(echo "$_INDEX" | grep '^## .*diverged' &> /dev/null); then +    _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_DIVERGED" +  fi + +  echo $_STATUS +} + +bureau_git_prompt () { +  local _branch=$(bureau_git_branch) +  local _status=$(bureau_git_status) +  local _result="" +  if [[ "${_branch}x" != "x" ]]; then +    _result="$ZSH_THEME_GIT_PROMPT_PREFIX$_branch" +    if [[ "${_status}x" != "x" ]]; then +      _result="$_result $_status" +    fi +    _result="$_result$ZSH_THEME_GIT_PROMPT_SUFFIX" +  fi +  echo $_result +} + + +_PATH="%{$fg_bold[white]%}%~%{$reset_color%}" + +if [[ "%#" == "#" ]]; then +  _USERNAME="%{$fg_bold[red]%}%n" +  _LIBERTY="%{$fg[red]%}#" +else +  _USERNAME="%{$fg_bold[white]%}%n" +  _LIBERTY="%{$fg[green]%}$" +fi +_USERNAME="$_USERNAME%{$reset_color%}@%m" +_LIBERTY="$_LIBERTY%{$reset_color%}" + + +get_space () { +  local STR=$1$2 +  local zero='%([BSUbfksu]|([FB]|){*})' +  local LENGTH=${#${(S%%)STR//$~zero/}}  +  local SPACES="" +  (( LENGTH = ${COLUMNS} - $LENGTH - 1)) +   +  for i in {0..$LENGTH} +    do +      SPACES="$SPACES " +    done + +  echo $SPACES +} + +_1LEFT="$_USERNAME $_PATH" +_1RIGHT="[%*] " + +bureau_precmd () { +  _1SPACES=`get_space $_1LEFT $_1RIGHT` +  echo +} + +setopt prompt_subst +PROMPT='$_1LEFT$_1SPACES$_1RIGHT +> $_LIBERTY ' +RPROMPT='$(nvm_prompt_info) $(bureau_git_prompt)' + +autoload -U add-zsh-hook +add-zsh-hook precmd bureau_precmd diff --git a/themes/crcandy.zsh-theme b/themes/crcandy.zsh-theme new file mode 100644 index 000000000..0a63c1245 --- /dev/null +++ b/themes/crcandy.zsh-theme @@ -0,0 +1,8 @@ +PROMPT=$' +%{$fg_bold[green]%}%n@%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$reset_color%}%{$fg[white]%}[%~]%{$reset_color%} $(git_prompt_info)\ +%{$fg[blue]%}->%{$fg_bold[blue]%} %#%{$reset_color%} ' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" diff --git a/themes/crunch.zsh-theme b/themes/crunch.zsh-theme index b2759a1b0..2fc066381 100644 --- a/themes/crunch.zsh-theme +++ b/themes/crunch.zsh-theme @@ -29,7 +29,7 @@ ZSH_THEME_GIT_PROMPT_DIRTY=" $CRUNCH_GIT_DIRTY_COLOR✗"  # Our elements:  CRUNCH_TIME_="$CRUNCH_BRACKET_COLOR{$CRUNCH_TIME_COLOR%T$CRUNCH_BRACKET_COLOR}%{$reset_color%}" -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; then    CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(~/.rvm/bin/rvm-prompt i v g)#ruby-}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}"  else    if which rbenv &> /dev/null; then diff --git a/themes/dallas.zsh-theme b/themes/dallas.zsh-theme index e9b4f852a..e9e86177b 100644 --- a/themes/dallas.zsh-theme +++ b/themes/dallas.zsh-theme @@ -3,7 +3,7 @@  # Grab the current date (%D) and time (%T) wrapped in {}: {%D %T}  DALLAS_CURRENT_TIME_="%{$fg[white]%}{%{$fg[yellow]%}%D %T%{$fg[white]%}}%{$reset_color%}"  # Grab the current version of ruby in use (via RVM): [ruby-1.8.7] -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; then    DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}"  else    if which rbenv &> /dev/null; then @@ -14,7 +14,7 @@ fi  DALLAS_CURRENT_MACH_="%{$fg[green]%}%m%{$fg[white]%}:%{$reset_color%}"  # Grab the current filepath, use shortcuts: ~/Desktop  # Append the current git branch, if in a git repository: ~aw@master -DALLAS_CURRENT_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}" +DALLAS_CURRENT_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}\$(parse_git_dirty)"  # Grab the current username: dallas  DALLAS_CURRENT_USER_="%{$fg[red]%}%n%{$reset_color%}"  # Use a % for normal users and a # for privelaged (root) users. diff --git a/themes/essembeh.zsh-theme b/themes/essembeh.zsh-theme new file mode 100644 index 000000000..8c98ea1ed --- /dev/null +++ b/themes/essembeh.zsh-theme @@ -0,0 +1,31 @@ +# Theme with full path names and hostname +# Handy if you work on different servers all the time; + + +local return_code="%(?..%{$fg_bold[red]%}%? ↵%{$reset_color%})" + +function my_git_prompt_info() { +	ref=$(git symbolic-ref HEAD 2> /dev/null) || return +	GIT_STATUS=$(git_prompt_status) +	[[ -n $GIT_STATUS ]] && GIT_STATUS=" $GIT_STATUS" +	echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$GIT_STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX" +} + +# Colored prompt +ZSH_THEME_COLOR_USER="green"  +ZSH_THEME_COLOR_HOST="green"  +ZSH_THEME_COLOR_PWD="yellow"  +test -n "$SSH_CONNECTION" && ZSH_THEME_COLOR_USER="red" && ZSH_THEME_COLOR_HOST="red" +test `id -u` = 0 && ZSH_THEME_COLOR_USER="magenta" && ZSH_THEME_COLOR_HOST="magenta" +PROMPT='%{$fg_bold[$ZSH_THEME_COLOR_USER]%}%n@%{$fg_bold[$ZSH_THEME_COLOR_HOST]%}%M%{$reset_color%}:%{$fg_bold[$ZSH_THEME_COLOR_PWD]%}%~%{$reset_color%} $(my_git_prompt_info)%(!.#.$) ' +RPS1="${return_code}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}(" +ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%%" +ZSH_THEME_GIT_PROMPT_ADDED="+" +ZSH_THEME_GIT_PROMPT_MODIFIED="*" +ZSH_THEME_GIT_PROMPT_RENAMED="~" +ZSH_THEME_GIT_PROMPT_DELETED="!" +ZSH_THEME_GIT_PROMPT_UNMERGED="?" + diff --git a/themes/fino.zsh-theme b/themes/fino.zsh-theme index 26e547176..4c7aabcff 100644 --- a/themes/fino.zsh-theme +++ b/themes/fino.zsh-theme @@ -1,7 +1,7 @@  # Fino theme by Max Masnick (http://max.masnick.me)  # Use with a dark background and 256-color terminal! -# Meant for people with RVM and git. Tested only on OS X 10.7. +# Meant for people with rbenv and git. Tested only on OS X 10.7.  # You can set your computer name in the ~/.box-name file if you want. @@ -11,34 +11,32 @@  #  # Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ -function virtualenv_info { -    [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' -}  function prompt_char { -    git branch >/dev/null 2>/dev/null && echo '±' && return -    echo '○' +  git branch >/dev/null 2>/dev/null && echo "±" && return +  echo '○'  }  function box_name {      [ -f ~/.box-name ] && cat ~/.box-name || hostname -s  } - -local rvm_ruby='' +local ruby_env=''  if which rvm-prompt &> /dev/null; then -  rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}' +  ruby_env=' ‹$(rvm-prompt i v g)›%{$reset_color%}'  else    if which rbenv &> /dev/null; then -    rvm_ruby='‹$(rbenv version | sed -e "s/ (set.*$//")›%{$reset_color%}' +    ruby_env=' ‹$(rbenv version-name)›%{$reset_color%}'    fi  fi +  local current_dir='${PWD/#$HOME/~}'  local git_info='$(git_prompt_info)' +local prompt_char='$(prompt_char)' -PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%} ${rvm_ruby} -╰─$(virtualenv_info)$(prompt_char) " +PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%}${ruby_env} +╰─${prompt_char} "  ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}"  ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" diff --git a/themes/fishy.zsh-theme b/themes/fishy.zsh-theme index e9f78a54e..8b24172a2 100644 --- a/themes/fishy.zsh-theme +++ b/themes/fishy.zsh-theme @@ -1,8 +1,13 @@  # ZSH Theme emulating the Fish shell's default prompt.  _fishy_collapsed_wd() { -  echo $(pwd | perl -pe "s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g") -} +  echo $(pwd | perl -pe " +   BEGIN { +      binmode STDIN,  ':encoding(UTF-8)'; +      binmode STDOUT, ':encoding(UTF-8)'; +   }; s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g +") +}   local user_color='green'; [ $UID -eq 0 ] && user_color='red'  PROMPT='%n@%m %{$fg[$user_color]%}$(_fishy_collapsed_wd)%{$reset_color%}%(!.#.>) ' diff --git a/themes/frisk.zsh-theme b/themes/frisk.zsh-theme index 2c999a6a6..653c7461f 100644 --- a/themes/frisk.zsh-theme +++ b/themes/frisk.zsh-theme @@ -10,13 +10,3 @@ ZSH_THEME_GIT_PROMPT_PREFIX=$ZSH_THEME_SCM_PROMPT_PREFIX$GIT_CB  ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} "  ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"  ZSH_THEME_GIT_PROMPT_CLEAN="" - -## Bazaar integration -bzr_prompt_info() { -	BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'` -	if [ -n "$BZR_CB" ]; then -		BZR_DIRTY="" -		[[ -n `bzr status` ]] && BZR_DIRTY="%{$fg[red]%} *%{$reset_color%}" -		echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX" -	fi -} diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index 3eac14867..d624e3afc 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -7,12 +7,12 @@ ZSH_THEME_GIT_PROMPT_CLEAN=""  git_custom_status() {    local cb=$(current_branch)    if [ -n "$cb" ]; then -    echo "$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX" +    echo "$(parse_git_dirty)%{$fg_bold[yellow]%}$(work_in_progress)%{$reset_color%}$ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"    fi  }  #RVM and git settings -if [[ -s ~/.rvm/scripts/rvm ]] ; then  +if [[ -s ~/.rvm/scripts/rvm ]] ; then    RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1'  else    if which rbenv &> /dev/null; then diff --git a/themes/gianu.zsh-theme b/themes/gianu.zsh-theme new file mode 100644 index 000000000..c7fe40665 --- /dev/null +++ b/themes/gianu.zsh-theme @@ -0,0 +1,11 @@ +# Oh-my-Zsh prompt created by gianu +# +# github.com/gianu +# sgianazza@gmail.com + +PROMPT='[%{$fg_bold[white]%}%n%{$reset_color%}@%{$fg_bold[red]%}%m%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)%{$reset_color%}]$ ' + +ZSH_THEME_GIT_PROMPT_PREFIX="(%{$fg_bold[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX=")" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%} %{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$reset_color%}" diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme new file mode 100644 index 000000000..c8d09ce47 --- /dev/null +++ b/themes/half-life.zsh-theme @@ -0,0 +1,99 @@ +# prompt style and colors based on Steve Losh's Prose theme: +# http://github.com/sjl/oh-my-zsh/blob/master/themes/prose.zsh-theme +# +# vcs_info modifications from Bart Trojanowski's zsh prompt: +# http://www.jukie.net/bart/blog/pimping-out-zsh-prompt +# +# git untracked files modification from Brian Carper: +# http://briancarper.net/blog/570/git-info-in-your-zsh-prompt + +function virtualenv_info { +    [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' +} +PR_GIT_UPDATE=1 + +setopt prompt_subst +autoload colors +colors + +autoload -U add-zsh-hook +autoload -Uz vcs_info + +#use extended color pallete if available +if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then +    turquoise="%F{81}" +    orange="%F{166}" +    purple="%F{135}" +    hotpink="%F{161}" +    limegreen="%F{118}" +else +    turquoise="$fg[cyan]" +    orange="$fg[yellow]" +    purple="$fg[magenta]" +    hotpink="$fg[red]" +    limegreen="$fg[green]" +fi + +# enable VCS systems you use +zstyle ':vcs_info:*' enable git svn + +# check-for-changes can be really slow. +# you should disable it, if you work with large repositories +zstyle ':vcs_info:*:prompt:*' check-for-changes true + +# set formats +# %b - branchname +# %u - unstagedstr (see below) +# %c - stagedstr (see below) +# %a - action (e.g. rebase-i) +# %R - repository path +# %S - path in the repository +PR_RST="%{${reset_color}%}" +FMT_BRANCH=" on %{$turquoise%}%b%u%c${PR_RST}" +FMT_ACTION=" performing a %{$limegreen%}%a${PR_RST}" +FMT_UNSTAGED="%{$orange%}●" +FMT_STAGED="%{$limegreen%}●" + +zstyle ':vcs_info:*:prompt:*' unstagedstr   "${FMT_UNSTAGED}" +zstyle ':vcs_info:*:prompt:*' stagedstr     "${FMT_STAGED}" +zstyle ':vcs_info:*:prompt:*' actionformats "${FMT_BRANCH}${FMT_ACTION}" +zstyle ':vcs_info:*:prompt:*' formats       "${FMT_BRANCH}" +zstyle ':vcs_info:*:prompt:*' nvcsformats   "" + + +function steeef_preexec { +    case "$(history $HISTCMD)" in +        *git*) +            PR_GIT_UPDATE=1 +            ;; +        *svn*) +            PR_GIT_UPDATE=1 +            ;; +    esac +} +add-zsh-hook preexec steeef_preexec + +function steeef_chpwd { +    PR_GIT_UPDATE=1 +} +add-zsh-hook chpwd steeef_chpwd + +function steeef_precmd { +    if [[ -n "$PR_GIT_UPDATE" ]] ; then +        # check for untracked files or updated submodules, since vcs_info doesn't +        if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then +            PR_GIT_UPDATE=1 +            FMT_BRANCH="${PM_RST} on %{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST}" +        else +            FMT_BRANCH="${PM_RST} on %{$turquoise%}%b%u%c${PR_RST}" +        fi +        zstyle ':vcs_info:*:prompt:*' formats       "${FMT_BRANCH}" + +        vcs_info 'prompt' +        PR_GIT_UPDATE= +    fi +} +add-zsh-hook precmd steeef_precmd + +PROMPT=$' +%{$purple%}%n%{$reset_color%} in %{$limegreen%}%~%{$reset_color%}$(rvm-prompt " with%{$fg[red]%} " v g "%{$reset_color%}")$vcs_info_msg_0_%{$orange%} λ%{$reset_color%} ' diff --git a/themes/itchy.zsh-theme b/themes/itchy.zsh-theme new file mode 100644 index 000000000..afc2abf69 --- /dev/null +++ b/themes/itchy.zsh-theme @@ -0,0 +1,19 @@ +# Created by Daniel Bayerlein https://github.com/danielbayerlein +# Inspired by http://peepcode.com/blog/2012/my-command-line-prompt + +local smiley="%(?,%{$fg[green]%}☺%{$reset_color%},%{$fg[red]%}☹%{$reset_color%})" + +local user="%{$fg[cyan]%}%n%{$reset_color%}" +local host="%{$fg[cyan]%}@%m%{$reset_color%}" +local pwd="%{$fg[yellow]%}%~%{$reset_color%}" + +PROMPT='${user}${host} ${pwd} +${smiley}  ' + +RPROMPT='$(rvm-prompt || rbenv version) %{$fg[white]%}$(git_prompt_info)%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%} ✔%{$reset_color%}" + diff --git a/themes/jaischeema.zsh-theme b/themes/jaischeema.zsh-theme new file mode 100644 index 000000000..aecc5b961 --- /dev/null +++ b/themes/jaischeema.zsh-theme @@ -0,0 +1,23 @@ +# ------------------------------------------------------------------------------ +#          FILE:  jaischeema.zsh-theme +#   DESCRIPTION:  oh-my-zsh theme file. +#        AUTHOR:  Jais Cheema +#       VERSION:  0.0.1 +# ------------------------------------------------------------------------------ + + + +PROMPT='%{$fg_bold[magenta]%}%m%{$reset_color%} at %{$fg_bold[green]%}%~%{$reset_color%} %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}%{$fg[red]%}❯%{$reset_color%} ' + +ZSH_THEME_GIT_PROMPT_PREFIX="±(%{$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]%}) " + +if which rbenv &> /dev/null; then +  RPROMPT='%{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//")%{$reset_color%}' +else +  if which rvm-prompt &> /dev/null; then +    RPROMPT='%{$fg[red]%}$(rvm-prompt)%{$reset_color%}' +  fi +fi diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme index 9f0f30271..bca92970c 100644 --- a/themes/jonathan.zsh-theme +++ b/themes/jonathan.zsh-theme @@ -71,17 +71,30 @@ setprompt () {      ###      # See if we can use extended characters to look nicer. - -    typeset -A altchar -    set -A altchar ${(s..)terminfo[acsc]} -    PR_SET_CHARSET="%{$terminfo[enacs]%}" -    PR_SHIFT_IN="%{$terminfo[smacs]%}" -    PR_SHIFT_OUT="%{$terminfo[rmacs]%}" -    PR_HBAR=${altchar[q]:--} -    PR_ULCORNER=${altchar[l]:--} -    PR_LLCORNER=${altchar[m]:--} -    PR_LRCORNER=${altchar[j]:--} -    PR_URCORNER=${altchar[k]:--} +    # UTF-8 Fixed + +    if [[ $(locale charmap) == "UTF-8" ]]; then +	PR_SET_CHARSET="" +	PR_SHIFT_IN="" +	PR_SHIFT_OUT="" +	PR_HBAR="─" +        PR_ULCORNER="┌" +        PR_LLCORNER="└" +        PR_LRCORNER="┘" +        PR_URCORNER="┐" +    else +        typeset -A altchar +        set -A altchar ${(s..)terminfo[acsc]} +        # Some stuff to help us draw nice lines +        PR_SET_CHARSET="%{$terminfo[enacs]%}" +        PR_SHIFT_IN="%{$terminfo[smacs]%}" +        PR_SHIFT_OUT="%{$terminfo[rmacs]%}" +        PR_HBAR='$PR_SHIFT_IN${altchar[q]:--}$PR_SHIFT_OUT' +        PR_ULCORNER='$PR_SHIFT_IN${altchar[l]:--}$PR_SHIFT_OUT' +        PR_LLCORNER='$PR_SHIFT_IN${altchar[m]:--}$PR_SHIFT_OUT' +        PR_LRCORNER='$PR_SHIFT_IN${altchar[j]:--}$PR_SHIFT_OUT' +        PR_URCORNER='$PR_SHIFT_IN${altchar[k]:--}$PR_SHIFT_OUT' +     fi      ### @@ -113,31 +126,31 @@ setprompt () {      # Finally, the prompt.      PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\ -$PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\ +$PR_CYAN$PR_ULCORNER$PR_HBAR$PR_GREY(\  $PR_GREEN%$PR_PWDLEN<...<%~%<<\ -$PR_GREY)`rvm_prompt_info || rbenv_prompt_info`$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\ +$PR_GREY)`rvm_prompt_info || rbenv_prompt_info`$PR_CYAN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_GREY(\  $PR_CYAN%(!.%SROOT%s.%n)$PR_GREY@$PR_GREEN%m:%l\ -$PR_GREY)$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_URCORNER$PR_SHIFT_OUT\ +$PR_GREY)$PR_CYAN$PR_HBAR$PR_URCORNER\ -$PR_CYAN$PR_SHIFT_IN$PR_LLCORNER$PR_BLUE$PR_HBAR$PR_SHIFT_OUT(\ +$PR_CYAN$PR_LLCORNER$PR_BLUE$PR_HBAR(\  $PR_YELLOW%D{%H:%M:%S}\ -$PR_LIGHT_BLUE%{$reset_color%}`git_prompt_info``git_prompt_status`$PR_BLUE)$PR_CYAN$PR_SHIFT_IN$PR_HBAR\ -$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ +$PR_LIGHT_BLUE%{$reset_color%}`git_prompt_info``git_prompt_status`$PR_BLUE)$PR_CYAN$PR_HBAR\ +$PR_HBAR\  >$PR_NO_COLOUR '      # display exitcode on the right when >0      return_code="%(?..%{$fg[red]%}%? ↵ %{$reset_color%})" -    RPROMPT=' $return_code$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_BLUE$PR_HBAR$PR_SHIFT_OUT\ -($PR_YELLOW%D{%a,%b%d}$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_CYAN$PR_LRCORNER$PR_SHIFT_OUT$PR_NO_COLOUR' +    RPROMPT=' $return_code$PR_CYAN$PR_HBAR$PR_BLUE$PR_HBAR\ +($PR_YELLOW%D{%a,%b%d}$PR_BLUE)$PR_HBAR$PR_CYAN$PR_LRCORNER$PR_NO_COLOUR' -    PS2='$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ -$PR_BLUE$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT(\ -$PR_LIGHT_GREEN%_$PR_BLUE)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\ -$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR ' +    PS2='$PR_CYAN$PR_HBAR\ +$PR_BLUE$PR_HBAR(\ +$PR_LIGHT_GREEN%_$PR_BLUE)$PR_HBAR\ +$PR_CYAN$PR_HBAR$PR_NO_COLOUR '  }  setprompt  autoload -U add-zsh-hook  add-zsh-hook precmd  theme_precmd -add-zsh-hook preexec theme_preexec
\ No newline at end of file +add-zsh-hook preexec theme_preexec diff --git a/themes/josh.zsh-theme b/themes/josh.zsh-theme index 142e76838..12dfe4069 100644 --- a/themes/josh.zsh-theme +++ b/themes/josh.zsh-theme @@ -31,7 +31,7 @@ function josh_prompt {      prompt=" $prompt"    done -  prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%} $(git_prompt_info)" +  prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%} $(current_branch)"    echo $prompt  } diff --git a/themes/kiwi.zsh-theme b/themes/kiwi.zsh-theme new file mode 100644 index 000000000..f93de2b75 --- /dev/null +++ b/themes/kiwi.zsh-theme @@ -0,0 +1,12 @@ +#  +# Kiwi ZSH Theme +#  + +PROMPT='%{$fg_bold[green]%}┌[%{$fg_bold[cyan]%}kiwish-4.2%{$fg_bold[green]%}]-(%{$fg_bold[white]%}%2~%{$fg_bold[green]%})-$(git_prompt_info)$(svn_prompt_info)$(battery_pct_prompt) +└> % %{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="[%{$reset_color%}%{$fg[white]%}git:%{$fg_bold[white]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg_bold[green]%}]-" + +ZSH_THEME_SVN_PROMPT_PREFIX="[%{$reset_color%}%{$fg[white]%}svn:%{$fg_bold[white]%}/" +ZSH_THEME_SVN_PROMPT_SUFFIX="%{$fg_bold[green]%}]-" diff --git a/themes/linuxonly b/themes/linuxonly.zsh-theme index a11b80d7f..a11b80d7f 100644 --- a/themes/linuxonly +++ b/themes/linuxonly.zsh-theme diff --git a/themes/macovsky-ruby.zsh-theme b/themes/macovsky-ruby.zsh-theme index 045376761..69d80d588 100644 --- a/themes/macovsky-ruby.zsh-theme +++ b/themes/macovsky-ruby.zsh-theme @@ -1,7 +1,7 @@  # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png  local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; then    PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '  else    if which rbenv &> /dev/null; then diff --git a/themes/macovsky.zsh-theme b/themes/macovsky.zsh-theme index b6978b929..2e6dce42d 100644 --- a/themes/macovsky.zsh-theme +++ b/themes/macovsky.zsh-theme @@ -1,7 +1,7 @@  # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png  local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; then    PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '  else    if which rbenv &> /dev/null; then diff --git a/themes/michelebologna.zsh-theme b/themes/michelebologna.zsh-theme new file mode 100644 index 000000000..ef4c6d740 --- /dev/null +++ b/themes/michelebologna.zsh-theme @@ -0,0 +1,44 @@ +# reference colors +GREEN="%{$fg_bold[green]%}" +RED="%{$fg_bold[red]%}" +CYAN="%{$fg_bold[cyan]%}" +YELLOW="%{$fg_bold[yellow]%}" +BLUE="%{$fg_bold[blue]%}" +MAGENTA="%{$fg_bold[magenta]%}" +WHITE="%{$fg_bold[white]%}" + +COLOR_ARRAY=($GREEN $RED $CYAN $YELLOW $BLUE $MAGENTA $WHITE) + +# color reset +RESET_COLOR="%{$reset_color%}" + +# which color should be applied? +USERNAME_NORMAL_COLOR=$WHITE +USERNAME_ROOT_COLOR=$RED +HOSTNAME_NORMAL_COLOR=$BLUE +# uncomment next line if you want auto-generated hostname color +#for i in `hostname`; HOSTNAME_NORMAL_COLOR=$COLOR_ARRAY[$[((#i))%7+1]] +HOSTNAME_ROOT_COLOR=$RED +HOSTNAME_COLOR=%(!.$HOSTNAME_ROOT_COLOR.$HOSTNAME_NORMAL_COLOR) +CURRENT_DIR_COLOR=$CYAN + +# zsh commands +USERNAME_COMMAND="%n" +HOSTNAME_COMMAND="%m" +CURRENT_DIR="%~" + +# output: colors + commands +USERNAME_OUTPUT="%(!..$USERNAME_NORMAL_COLOR$USERNAME_COMMAND$RESET_COLOR@)" +HOSTNAME_OUTPUT="$HOSTNAME_COLOR$HOSTNAME_COMMAND$RESET_COLOR" +CURRENT_DIR_OUTPUT="$CURRENT_DIR_COLOR$CURRENT_DIR" +LAST_COMMAND_OUTPUT="%(?.%(!.$RED.$GREEN).$YELLOW)" + +# git theming +ZSH_THEME_GIT_PROMPT_PREFIX="(" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_DIRTY=")$RED*" +ZSH_THEME_GIT_PROMPT_CLEAN=")" + +# wrap all together +PROMPT='$USERNAME_OUTPUT$HOSTNAME_OUTPUT:$CURRENT_DIR_OUTPUT $LAST_COMMAND_OUTPUT%#$RESET_COLOR ' +RPROMPT='%1(j.fg: [%j].) $GREEN$(git_prompt_info)$RESET_COLOR [%@]' diff --git a/themes/peepcode.zsh-theme b/themes/peepcode.zsh-theme new file mode 100644 index 000000000..ca2a8862f --- /dev/null +++ b/themes/peepcode.zsh-theme @@ -0,0 +1,44 @@ +# +# Based on Geoffrey Grosenbach's peepcode zsh theme from +# https://github.com/topfunky/zsh-simple +# + +git_repo_path() { +  git rev-parse --git-dir 2>/dev/null +} + +git_commit_id() { +  git rev-parse --short HEAD 2>/dev/null +} + +git_mode() { +  if [[ -e "$repo_path/BISECT_LOG" ]]; then +    echo "+bisect" +  elif [[ -e "$repo_path/MERGE_HEAD" ]]; then +    echo "+merge" +  elif [[ -e "$repo_path/rebase" || -e "$repo_path/rebase-apply" || -e "$repo_path/rebase-merge" || -e "$repo_path/../.dotest" ]]; then +    echo "+rebase" +  fi +} + +git_dirty() { +  if [[ "$repo_path" != '.' && `git ls-files -m` != "" ]]; then +    echo " %{$fg_bold[grey]%}✗%{$reset_color%}" +  fi +} + +git_prompt() { +  local cb=$(current_branch) +  if [ -n "$cb" ]; then +    local repo_path=$(git_repo_path) +    echo " %{$fg_bold[grey]%}$cb %{$fg[white]%}$(git_commit_id)%{$reset_color%}$(git_mode)$(git_dirty)" +  fi +} + +local smiley="%(?,%{$fg[green]%}☺%{$reset_color%},%{$fg[red]%}☹%{$reset_color%})" + +PROMPT=' +%~ +${smiley}  %{$reset_color%}' + +RPROMPT='%{$fg[white]%} $(~/.rvm/bin/rvm-prompt)$(git_prompt)%{$reset_color%}' diff --git a/themes/pure.zsh-theme b/themes/pure.zsh-theme new file mode 100644 index 000000000..d7ed624e4 --- /dev/null +++ b/themes/pure.zsh-theme @@ -0,0 +1,128 @@ +#!/usr/bin/env zsh + +# ------------------------------------------------------------------------------ +# +# Pure - A minimal and beautiful theme for oh-my-zsh +# +# Based on the custom Zsh-prompt of the same name by Sindre Sorhus. A huge +# thanks goes out to him for designing the fantastic Pure prompt in the first +# place! I'd also like to thank Julien Nicoulaud for his "nicoulaj" theme from +# which I've borrowed both some ideas and some actual code. You can find out +# more about both of these fantastic two people here: +# +# Sindre Sorhus +#   Github:   https://github.com/sindresorhus +#   Twitter:  https://twitter.com/sindresorhus +# +# Julien Nicoulaud +#   Github:   https://github.com/nicoulaj +#   Twitter:  https://twitter.com/nicoulaj +# +# License +# +# Copyright (c) 2013 Kasper Kronborg Isager +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +# ------------------------------------------------------------------------------ + +# Set required options +# +setopt prompt_subst + +# Load required modules +# +autoload -Uz vcs_info + +# Set vcs_info parameters +# +zstyle ':vcs_info:*' enable hg bzr git +zstyle ':vcs_info:*:*' unstagedstr '!' +zstyle ':vcs_info:*:*' stagedstr '+' +zstyle ':vcs_info:*:*' formats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%%u%c" +zstyle ':vcs_info:*:*' actionformats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%u%c (%a)" +zstyle ':vcs_info:*:*' nvcsformats "%~" "" "" + +# Fastest possible way to check if repo is dirty +# +git_dirty() { +    # Check if we're in a git repo +    command git rev-parse --is-inside-work-tree &>/dev/null || return +    # Check if it's dirty +    command git diff --quiet --ignore-submodules HEAD &>/dev/null; [ $? -eq 1 ] && echo "*" +} + +# Display information about the current repository +# +repo_information() { +    echo "%F{blue}${vcs_info_msg_0_%%/.} %F{8}$vcs_info_msg_1_`git_dirty` $vcs_info_msg_2_%f" +} + +# Displays the exec time of the last command if set threshold was exceeded +# +cmd_exec_time() { +    local stop=`date +%s` +    local start=${cmd_timestamp:-$stop} +    let local elapsed=$stop-$start +    [ $elapsed -gt 5 ] && echo ${elapsed}s +} + +# Get the intial timestamp for cmd_exec_time +# +preexec() { +    cmd_timestamp=`date +%s` +} + +# Output additional information about paths, repos and exec time +# +precmd() { +    vcs_info # Get version control info before we start outputting stuff +    print -P "\n$(repo_information) %F{yellow}$(cmd_exec_time)%f" +} + +# Define prompts +# +PROMPT="%(?.%F{magenta}.%F{red})❯%f " # Display a red prompt char on failure +RPROMPT="%F{8}${SSH_TTY:+%n@%m}%f"    # Display username if connected via SSH + +# ------------------------------------------------------------------------------ +# +# List of vcs_info format strings: +# +# %b => current branch +# %a => current action (rebase/merge) +# %s => current version control system +# %r => name of the root directory of the repository +# %S => current path relative to the repository root directory +# %m => in case of Git, show information about stashes +# %u => show unstaged changes in the repository +# %c => show staged changes in the repository +# +# List of prompt format strings: +# +# prompt: +# %F => color dict +# %f => reset color +# %~ => current path +# %* => time +# %n => username +# %m => shortname host +# %(?..) => prompt conditional - %(condition.true.false) +# +# ------------------------------------------------------------------------------ diff --git a/themes/pygmalion.zsh-theme b/themes/pygmalion.zsh-theme index cf3bb908f..654e0fc37 100644 --- a/themes/pygmalion.zsh-theme +++ b/themes/pygmalion.zsh-theme @@ -1,9 +1,34 @@  # Yay! High voltage and arrows! -ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_CLEAN="" +prompt_setup_pygmalion(){ +  ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}" +  ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " +  ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}" +  ZSH_THEME_GIT_PROMPT_CLEAN="" + +  base_prompt='%{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}' +  post_prompt='%{$fg[cyan]%}⇒%{$reset_color%}  ' + +  base_prompt_nocolor=$(echo "$base_prompt" | perl -pe "s/%\{[^}]+\}//g") +  post_prompt_nocolor=$(echo "$post_prompt" | perl -pe "s/%\{[^}]+\}//g") + +  add-zsh-hook precmd prompt_pygmalion_precmd +} + +prompt_pygmalion_precmd(){ +  local gitinfo=$(git_prompt_info) +  local gitinfo_nocolor=$(echo "$gitinfo" | perl -pe "s/%\{[^}]+\}//g") +  local exp_nocolor="$(print -P \"$base_prompt_nocolor$gitinfo_nocolor$post_prompt_nocolor\")" +  local prompt_length=${#exp_nocolor} + +  local nl="" + +  if [[ $prompt_length -gt 40 ]]; then +    nl=$'\n%{\r%}'; +  fi +  PROMPT="$base_prompt$gitinfo$nl$post_prompt" +} + +prompt_setup_pygmalion -PROMPT='%{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}$(git_prompt_info)%{$fg[cyan]%}⇒%{$reset_color%}  ' diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme index 318c315bb..4ab3bc757 100644 --- a/themes/rkj-repos.zsh-theme +++ b/themes/rkj-repos.zsh-theme @@ -22,8 +22,10 @@ function mygit() {    echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX"  } +function retcode() {} +  # alternate prompt with git & hg  PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} -%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b ' +%{\e[0;34m%}%B└─%B[%{\e[1;35m%}%?$(retcode)%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b '  PS2=$' \e[0;34m%}%B>%{\e[0m%}%b ' diff --git a/themes/rkj.zsh-theme b/themes/rkj.zsh-theme index 81b701e07..fe06161c8 100644 --- a/themes/rkj.zsh-theme +++ b/themes/rkj.zsh-theme @@ -2,7 +2,8 @@  # on two lines for easier vgrepping  # entry in a nice long thread on the Arch Linux forums: http://bbs.archlinux.org/viewtopic.php?pid=521888#p521888 -PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} -%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B]%{\e[0m%}%b ' +function retcode() {} +PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} +%{\e[0;34m%}%B└─%B[%{\e[1;35m%}%?$(retcode)%{\e[0;34m%}%B]%{\e[0m%}%b ' diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme index 7b524e82d..24e1e8c52 100644 --- a/themes/robbyrussell.zsh-theme +++ b/themes/robbyrussell.zsh-theme @@ -1,4 +1,5 @@ -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" +PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'  ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"  ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" diff --git a/themes/sonicradish.zsh-theme b/themes/sonicradish.zsh-theme new file mode 100644 index 000000000..508611830 --- /dev/null +++ b/themes/sonicradish.zsh-theme @@ -0,0 +1,37 @@ +#!/usr/bin/env zsh  +#local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" + +setopt promptsubst + +autoload -U add-zsh-hook +ROOT_ICON_COLOR=$FG[111] +MACHINE_NAME_COLOR=$FG[208] +PROMPT_SUCCESS_COLOR=$FG[103] +PROMPT_FAILURE_COLOR=$FG[124] +PROMPT_VCS_INFO_COLOR=$FG[242] +PROMPT_PROMPT=$FG[208] +GIT_DIRTY_COLOR=$FG[124] +GIT_CLEAN_COLOR=$FG[148] +GIT_PROMPT_INFO=$FG[148] + +# Hash +ROOT_ICON="# " +if [[ $EUID -ne 0 ]] ; then +	ROOT_ICON="" +fi + +PROMPT='%{$ROOT_ICON_COLOR%}$ROOT_ICON%{$reset_color%}%{$MACHINE_NAME_COLOR%}%m➜  %{$reset_color%}%{$PROMPT_SUCCESS_COLOR%}%c%{$reset_color%} %{$GIT_PROMPT_INFO%}$(git_prompt_info)%{$GIT_DIRTY_COLOR%}$(git_prompt_status) %{$reset_color%}%{$PROMPT_PROMPT%}ᐅ %{$reset_color%} ' + +#RPS1="${return_code}" + +ZSH_THEME_GIT_PROMPT_PREFIX=": " +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%} :" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔" + +ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[103]%}✚%{$rset_color%}" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[103]%}✹%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[103]%}✖%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[103]%}➜%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[103]%}═%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[103]%}✭%{$reset_color%}" diff --git a/themes/sunrise.zsh-theme b/themes/sunrise.zsh-theme index 88b371d79..acc6ed312 100644 --- a/themes/sunrise.zsh-theme +++ b/themes/sunrise.zsh-theme @@ -5,16 +5,15 @@  #-------------------------------------------------------------------------------  # Color shortcuts -R=$fg[red] -G=$fg[green] -M=$fg[magenta] -RB=$fg_bold[red] -YB=$fg_bold[yellow] -BB=$fg_bold[blue] +R=$fg_no_bold[red] +G=$fg_no_bold[green] +M=$fg_no_bold[magenta] +Y=$fg_no_bold[yellow] +B=$fg_no_bold[blue]  RESET=$reset_color  if [ "$(whoami)" = "root" ]; then -    PROMPTCOLOR="%{$RB%}" PREFIX="-!-"; +    PROMPTCOLOR="%{$R%}" PREFIX="-!-";  else      PROMPTCOLOR="" PREFIX="---";  fi @@ -73,13 +72,14 @@ function custom_git_prompt() {  PROMPT='%B$PREFIX %2~ $(custom_git_prompt)%{$M%}%B»%b%{$RESET%} '  RPS1="${return_code}" -ZSH_THEME_GIT_PROMPT_PREFIX="%{$YB%}‹" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$YB%}›%{$RESET%} " +ZSH_THEME_GIT_PROMPT_PREFIX="%{$Y%}‹" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$Y%}›%{$RESET%} "  ZSH_THEME_GIT_PROMPT_DIRTY="%{$R%}*"  ZSH_THEME_GIT_PROMPT_CLEAN="" -ZSH_THEME_GIT_PROMPT_AHEAD="%{$BB%}➔" +ZSH_THEME_GIT_PROMPT_AHEAD="%{$B%}➔" +  ZSH_THEME_GIT_STATUS_PREFIX=" " @@ -90,7 +90,7 @@ ZSH_THEME_GIT_PROMPT_STAGED_RENAMED="%{$G%}R"  ZSH_THEME_GIT_PROMPT_STAGED_DELETED="%{$G%}D"  # Not-staged -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$R%}⁇" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$R%}?"  ZSH_THEME_GIT_PROMPT_MODIFIED="%{$R%}M"  ZSH_THEME_GIT_PROMPT_DELETED="%{$R%}D"  ZSH_THEME_GIT_PROMPT_UNMERGED="%{$R%}UU" diff --git a/themes/superjarin.zsh-theme b/themes/superjarin.zsh-theme index 0be816de0..2920d17a2 100644 --- a/themes/superjarin.zsh-theme +++ b/themes/superjarin.zsh-theme @@ -1,5 +1,5 @@  # Grab the current version of ruby in use (via RVM): [ruby-1.8.7] -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; then    JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}"  else    if which rbenv &> /dev/null; then @@ -11,13 +11,13 @@ fi  # Append the current git branch, if in a git repository  JARIN_CURRENT_LOCA_="%{$fg_bold[cyan]%}%~\$(git_prompt_info)%{$reset_color%}"  ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%} <%{$fg[magenta]%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[white]%}"  # Do nothing if the branch is clean (no changes). -ZSH_THEME_GIT_PROMPT_CLEAN="%{$reset_color%}>" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[white]%}>"  # Add a yellow ✗ if the branch is dirty -ZSH_THEME_GIT_PROMPT_DIRTY="%{$reset_color%}> %{$fg[yellow]%}✗" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[white]%}> %{$fg[yellow]%}✗"  # Put it all together!  PROMPT="$JARIN_CURRENT_RUBY_ $JARIN_CURRENT_LOCA_ " diff --git a/themes/wedisagree.zsh-theme b/themes/wedisagree.zsh-theme index 7cb27934d..9bdbce40d 100644 --- a/themes/wedisagree.zsh-theme +++ b/themes/wedisagree.zsh-theme @@ -25,7 +25,7 @@ PROMPT='%{$fg[magenta]%}[%c] %{$reset_color%}'  # The right-hand prompt -RPROMPT='${time} %{$fg[magenta]%}$(git_prompt_info)%{$reset_color%}$(git_prompt_status)%{$reset_color%}' +RPROMPT='${time} %{$fg[magenta]%}$(git_prompt_info)%{$reset_color%}$(git_prompt_status)%{$reset_color%}$(git_prompt_ahead)%{$reset_color%}'  # Add this at the start of RPROMPT to include rvm info showing ruby-version@gemset-name  # %{$fg[yellow]%}$(~/.rvm/bin/rvm-prompt)%{$reset_color%}  @@ -46,6 +46,7 @@ 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_AHEAD="%{$fg[blue]%} 𝝙"  # More symbols to choose from:  # ☀ ✹ ☄ ♆ ♀ ♁ ♐ ♇ ♈ ♉ ♚ ♛ ♜ ♝ ♞ ♟ ♠ ♣ ⚢ ⚲ ⚳ ⚴ ⚥ ⚤ ⚦ ⚒ ⚑ ⚐ ♺ ♻ ♼ ☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷ @@ -104,4 +105,4 @@ function git_time_since_commit() {              echo "($(rvm_gemset)$COLOR~|"          fi      fi -}
\ No newline at end of file +} diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme new file mode 100644 index 000000000..43c101c2a --- /dev/null +++ b/themes/ys.zsh-theme @@ -0,0 +1,34 @@ +# Clean, simple, compatible and meaningful. +# Tested on Linux, Unix and Windows under ANSI colors. +# It is recommended to use with a dark background and the font Inconsolata. +# Colors: black, red, green, yellow, *blue, magenta, cyan, and white. +#  +# http://ysmood.org/wp/2013/03/my-ys-terminal-theme/ +# Mar 2013 ys + +# Machine name. +function box_name { +    [ -f ~/.box-name ] && cat ~/.box-name || hostname +} + +# Directory info. +local current_dir='${PWD/#$HOME/~}' + +# Git info. +local git_info='$(git_prompt_info)' +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}on%{$reset_color%} git:%{$fg[cyan]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}x" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}o" + +# Prompt format: \n # USER at MACHINE in DIRECTORY on git:BRANCH STATE [TIME] \n $  +PROMPT=" +%{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \ +%{$fg[cyan]%}%n \ +%{$fg[white]%}at \ +%{$fg[green]%}$(box_name) \ +%{$fg[white]%}in \ +%{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\ +${git_info} \ +%{$fg[white]%}[%*] +%{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" diff --git a/themes/zhann.zsh-theme b/themes/zhann.zsh-theme index 574e0cec3..5c0854730 100644 --- a/themes/zhann.zsh-theme +++ b/themes/zhann.zsh-theme @@ -1,15 +1,25 @@ -PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +autoload -U colors && colors -if which rvm-prompt &> /dev/null; then -  RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v g) %{$reset_color%}' -else -  if which rbenv &> /dev/null; then -    RPROMPT='%{$reset_color%} %{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//") %{$reset_color%}' -  fi -fi +autoload -Uz vcs_info +zstyle ':vcs_info:*' stagedstr '%F{green}●' +zstyle ':vcs_info:*' unstagedstr '%F{yellow}●' +zstyle ':vcs_info:*' check-for-changes true +zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r' +zstyle ':vcs_info:*' enable git svn +theme_precmd () { +    if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] { +        zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]' +    } else { +        zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{red}●%F{green}]' +    } + +    vcs_info +} + +setopt prompt_subst +PROMPT='%B%F{blue}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}% ' + +autoload -U add-zsh-hook +add-zsh-hook precmd  theme_precmd -ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$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]%})" | 
