#!/usr/bin/env zsh # Color definition GRAY="%F{237}" RED="%F{196}" ORANGE="%F{214}" BLUE="%F{032}" LBLUE="%F{075}" PURPLE="%F{105}" RESET="%f" git_prompt() { ref=$(command git symbolic-ref HEAD 2> /dev/null) || ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0 echo -n "$ORANGE${ref#refs/heads/}" if [ ! -z "$(git status --short)" ]; then echo "$RED+" fi } setopt PROMPT_SUBST # Primary Prompt [ "$EUID" -eq 0 ] && PS1="$RED%n@%m$RESET" || PS1="$GRAY%n@%m$RESET" # user@machine PS1+=" $BLUE%~" # Working directory PS1+=" \$(git_prompt)" PS1+=" $PURPLE%(!.#.»)$RESET " # Final symbol (# or ») # Next line prompt PS2="$RED\ $RESET" # Right side prompt (on error) RPS1="%(?..$RED%? ↵$RESET)"