From c2c16e24cfe2d95242c0880d15b29b3eb502f39c Mon Sep 17 00:00:00 2001 From: Greg Hedlund Date: Sat, 13 Oct 2012 15:05:21 -0230 Subject: [PATCH] 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. --- themes/redeye.zsh-theme | 100 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 themes/redeye.zsh-theme diff --git a/themes/redeye.zsh-theme b/themes/redeye.zsh-theme new file mode 100644 index 000000000..2a141e4d1 --- /dev/null +++ b/themes/redeye.zsh-theme @@ -0,0 +1,100 @@ +# +# redeye oh-my-zsh theme +# +# version 1.0 +# author: Greg Hedlund +# +# 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} " +