export CLICOLOR=1 COLOR_RED="\033[0;31m" COLOR_YELLOW="\033[0;33m" COLOR_GREEN="\033[0;32m" COLOR_OCHRE="\033[38;5;95m" COLOR_BLUE="\033[0;34m" COLOR_WHITE="\033[0;37m" COLOR_RESET="\033[0m" function git_color { local git_status="$(git status 2> /dev/null)" if [[ ! $git_status =~ "Working directory clean" ]]; then echo -e $COLOR_RED elif [[ $git_status =~ "Your branch is ahead of" ]]; then echo -e $COLOR_YELLOW elif [[ $git_status =~ "Nothing to commit" ]]; then echo -e $COLOR_GREEN else echo -e $COLOR_OCHRE fi } function git_branch { local git_status="$(git status 2> /dev/null)" local on_branch="On branch ([^${IFS}]*)" local on_commit="HEAD detached at ([^${IFS}]*)" if [[ $git_status =~ on_branch ]]; then local branch=${BASH_REMATCH[1]} echo "[$branch]" elif [[ $git_status =~ $on_branch ]]; then local commit=${BASH_REMATCH[1]} echo "[$commit]" fi } PS1='\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]' PS1+="\[\$(git_color)\]" # colors git status PS1+="\$(git_branch)" # prints current branch PS1+="\[$COLOR_BLUE\]\[$COLOR_RESET\]\$ " export PS1 export LC_ALL=en_US.UTF-8 export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx alias ls="ls -Gp"