Created
April 15, 2016 18:42
-
-
Save xenogenesi/d283f6dafd319c0dd70b2d4d8ea65cb8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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