Added 'redeye' theme.

Theme is based on 'Phil's zsh prompt' in that it displays a truncated, right-algined path in the first line.

Theme also displays git information if found.
This commit is contained in:
Greg Hedlund 2012-10-13 15:05:21 -02:30
commit c2c16e24cf

100
themes/redeye.zsh-theme Normal file
View file

@ -0,0 +1,100 @@
#
# redeye oh-my-zsh theme
#
# version 1.0
# author: Greg Hedlund <ghedlund@mun.ca>
#
# Based on 'Phil's zsh prompt'
#
function redeye_precmd {
local TERMWIDTH
(( TERMWIDTH = $COLUMNS - 1 ))
###
# Truncate the path if it's too long.
PR_FILLBAR=""
PR_PWDLEN=""
local promptsize=${#${(%):-[%n@%m:%l][]--}}
local pwdsize=${#${(%):-%~}}
if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then
((PR_PWDLEN=$TERMWIDTH - $promptsize))
else
PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize)))..${PR_HBAR}.)}"
fi
}
add-zsh-hook precmd redeye_precmd
# prompt components
#PR_ULCORNER="╭"
#PR_BLCORNER="╰"
#PR_URCORNER="╮"
#PR_BRCORNER="╯"
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_ULCORNER=${altchar[l]:--}
PR_BLCORNER=${altchar[m]:--}
PR_BRCORNER=${altchar[j]:--}
PR_URCORNER=${altchar[k]:--}
PR_HBAR=${altchar[q]:--}
PR_LBRACE="["
PR_RBRACE="]"
if [[ `uname` = "Darwin" ]]; then
PR_PROMPTCHAR=""
else
PR_PROMPTCHAR="$"
fi
PR_GIT_DIRTY=${altchar[g]:--}
# setup color aliases
autoload -U colors zsh/terminfo
colors
setopt prompt_subst
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$fg[${(L)color}]%}'
done
eval PR_NO_COLOR="%{$terminfo[sgr0]%}"
eval PR_BOLD="%{$terminfo[bold]%}"
# user info
if [[ $UID -eq 0 ]]; then # root
eval PR_USER="${PR_BOLD}${PR_RED}%n${PR_NO_COLOR}"
else
eval PR_USER="${PR_BOLD}${PR_WHITE}%n${PR_NO_COLOR}"
fi
# host info
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
eval PR_HOST='${PR_YELLOW}%m${PR_NO_COLOR}${PR_GREEN}:%l${PR_NO_COLOR}'
else
eval PR_HOST='${PR_BOLD}${PR_WHITE}%m${PR_NO_COLOR}${PR_GREEN}:%l${PR_NO_COLOR}'
fi
# git prompt components
ZSH_THEME_GIT_PROMPT_PREFIX="${PR_RED}${PR_SHIFT_IN}${PR_HBAR}${PR_LBRACE}${PR_SHIFT_OUT}${PR_NO_COLOR}${PR_BOLD}${PR_WHITE}"
ZSH_THEME_GIT_PROMPT_SUFFIX="${PR_NO_COLOR}${PR_RED}${PR_SHIFT_IN}${PR_RBRACE}${PR_SHIFT_OUT}${PR_NO_COLOR}"
ZSH_THEME_GIT_PROMPT_DIRTY="${PR_NO_COLOR}${PR_BOLD}${PR_YELLOW}${PR_SHIFT_IN}${PR_GIT_DIRTY}${PR_SHIFT_OUT}${PR_NO_COLOR}"
PR_PROMPT="${PR_NO_COLOR}${PR_RED}${PR_SHIFT_IN}${PR_BLCORNER}${PR_SHIFT_OUT}${PR_RETCODE}${PR_SHIFT_IN}${PR_HBAR}${PR_PROMPTCHAR}${PR_SHIFT_OUT}${PR_NO_COLOR} "
# setup prompt
PROMPT='${PR_SET_CHARSET}${PR_RED}${PR_SHIFT_IN}${PR_ULCORNER}${PR_LBRACE}${PR_SHIFT_OUT}${PR_NO_COLOR}${PR_USER}${PR_NO_COLOR}${PR_GREEN}@${PR_HOST}${PR_NO_COLOR}${PR_RED}${PR_SHIFT_IN}${PR_RBRACE}${(e)PR_FILLBAR}${PR_LBRACE}${PR_SHIFT_OUT}${PR_NO_COLOR}${PR_BOLD}${PR_WHITE}%$PR_PWDLEN<…<%~%<<${PR_NO_COLOR}${PR_RED}${PR_SHIFT_IN}${PR_RBRACE}${PR_URCORNER}${PR_SHIFT_OUT}
${PR_PROMPT}'
RPROMPT=' $(git_prompt_info)${PR_NO_COLOR}${PR_RED}${PR_SHIFT_IN}${PR_BRCORNER}${PR_SHIFT_OUT}${PR_NO_COLOR}'
PS2="${PR_NO_COLOR}${PR_RED}${PR_SHIFT_IN}${PR_BLCORNER}${PR_LBRACE}${PR_SHIFT_OUT}${PR_WHITE}%_${PR_RED}${PR_SHIFT_IN}${PR_RBRACE}${PR_HBAR}${PR_PROMPTCHAR}${PR_SHIFT_OUT}${PR_NO_COLOR} "