Skip to content

Instantly share code, notes, and snippets.

@xenogenesi
Created April 15, 2016 18:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xenogenesi/d283f6dafd319c0dd70b2d4d8ea65cb8 to your computer and use it in GitHub Desktop.
Save xenogenesi/d283f6dafd319c0dd70b2d4d8ea65cb8 to your computer and use it in GitHub Desktop.
myprompt_precmd() {
setopt noxtrace noksharrays localoptions
local exitstatus=$?
local git_dir git_ref
psvar=()
[[ $exitstatus -ge 128 ]] && psvar[1]=" $signals[$exitstatus-127]" || psvar[1]=""
local TERMWIDTH
(( TERMWIDTH = ${COLUMNS} - 1 ))
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
# [[ -o interactive ]] && jobs -l
vcs_info
[[ -n $vcs_info_msg_0_ ]] && psvar[2]="$vcs_info_msg_0_"
zle_highlight[(r)default:*]="default:fg=white,bold"
}
#setopt extended_glob
preexec() {
#echo -e "\033[1Adate +%H:%M:%S "
printf '# at %s\n' $(date +%H:%M:%S)
}
setprompt() {
setopt prompt_subst
autoload colors zsh/terminfo
autoload -Uz vcs_info
if [[ "$terminfo[colors]" -ge 8 ]]; then
colors
fi
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
(( count = $count + 1 ))
done
PR_NO_COLOUR="%{$terminfo[sgr0]%}"
PR_HBAR='-'
# PR_HIST="%(2L./$SHLVL.)%B%h%b "
PR_TIME="$PR_NO_COLOUR%D{%H:%M:%S} "
PR_HIST="$PR_LIGHT_YELLOW%h "
PR_RC="$PR_RED%(?..%?%1v )"
PR_VCS="$PR_NO_COLOR%(2v.%2v.)"
PROMPT='$PR_NO_COLOUR# $PR_GREEN%(!.%SROOT%s.%n)@%m:$PR_NO_COLOUR$PR_LIGHT_BLUE%l \
$PR_CYAN$PR_HBAR${(e)PR_FILLBAR} \
$PR_LIGHT_BLUE%$PR_PWDLEN<...<%~%<< \
$PR_NO_COLOUR# $PR_TIME\
$PR_HIST\
$PR_RC\
$PR_NO_COLOUR$PR_WHITE%#$PR_NO_COLOUR '
RPROMPT='$PR_MAGENTA$PR_VCS$PR_NO_COLOUR'
# FIXME space after %_ should be conditional (none if %_ is empty)
PS2='$PR_NO_COLOUR# $PR_LIGHT_GREEN%_$PR_WHITE >>$PR_NO_COLOUR '
add-zsh-hook precmd myprompt_precmd
}
setprompt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment