dotfiles/zsh/prompt.zsh
Thomas Preisner e09da88655 zsh: cleanup color formatting
This might be problematic for older zsh version which do not support
%F{..} nor %f.
2017-05-04 17:16:01 +02:00

70 lines
1.4 KiB
Bash

function precmd {
local TERMWIDTH
(( TERMWIDTH = ${COLUMNS} - 1 ))
###
# Truncate the path if it's too long.
PR_FILLBAR=""
PR_PWDLEN=""
local promptsize=${#${(%):---(%n@%m)---()--}}
local pwdsize=${#${(%):-%~}}
if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then
((PR_PWDLEN=$TERMWIDTH - $promptsize))
else
PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize)))..${PR_HBAR}.)}"
fi
}
function show_battery {
if [[ $HAS_PMSET -eq 1 ]]; then
~/.zsh/scripts/battery_osx.sh
fi
}
function setprompt {
PR_HBAR="─"
if [[ "$TERM" != "xterm" ]]; then
PR_ULCORNER="╭"
PR_LLCORNER="╰"
PR_LRCORNER="╯"
PR_URCORNER="╮"
else
PR_ULCORNER="+"
PR_LLCORNER="+"
PR_LRCORNER="+"
PR_URCORNER="+"
fi
PR_RESET="%{$terminfo[sgr0]%}"
###
# Finally, the prompt.
PROMPT='%F{cyan}$PR_ULCORNER%F{blue}$PR_HBAR(\
%F{magenta}%$PR_PWDLEN<...<%~%<<\
%F{blue})$PR_HBAR%F{cyan}$PR_HBAR${(e)PR_FILLBAR}%F{blue}$PR_HBAR(\
%F{green}%n@%m%F{blue}\
%F{blue})$PR_HBAR%F{cyan}$PR_URCORNER\
%F{cyan}$PR_LLCORNER%F{blue}$PR_HBAR(\
%F{yellow}%D{%H:%M}\
%F{blue})$PR_HBAR%F{cyan}$PR_HBAR\
%f '
RPROMPT='%F{cyan}$PR_HBAR%F{blue}$PR_HBAR(\
%F{yellow}$(show_battery)\
%F{blue})$PR_HBAR%F{cyan}$PR_LRCORNER\
%f'
PS2='%F{cyan}$PR_HBAR%F{blue}$PR_HBAR(\
%F{green}%_
%F{blue})$PR_HBAR%F{cyan}$PR_HBAR\
%f '
}
setprompt