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='$PR_CYAN$PR_ULCORNER$PR_BLUE$PR_HBAR(\ $PR_MAGENTA%$PR_PWDLEN<...<%~%<<$\ PR_BLUE)$PR_HBAR$PR_CYAN$PR_HBAR${(e)PR_FILLBAR}$PR_BLUE$PR_HBAR(\ $PR_GREEN%n@%m$PR_BLUE\ $PR_BLUE)$PR_HBAR$PR_CYAN$PR_URCORNER\ $PR_CYAN$PR_LLCORNER$PR_BLUE$PR_HBAR(\ $PR_YELLOW%D{%H:%M}\ $PR_BLUE)$PR_HBAR$PR_CYAN$PR_HBAR\ $PR_RESET ' RPROMPT='$PR_CYAN$PR_HBAR$PR_BLUE$PR_HBAR(\ $PR_YELLOW$(show_battery)\ $PR_BLUE)$PR_HBAR$PR_CYAN$PR_LRCORNER\ $PR_RESET' PS2='$PR_CYAN$PR_HBAR$PR_BLUE$PR_HBAR(\ $PR_LIGHT_GREEN%_ $PR_BLUE)$PR_HBAR$PR_CYAN$PR_HBAR\ $PR_RESET ' } setprompt