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