__dotfiles_git_prompt() { local branch marks='' branch=$(git symbolic-ref --quiet --short HEAD 2>/dev/null) || return git diff --no-ext-diff --quiet --ignore-submodules -- 2>/dev/null || marks+=' *' git diff --cached --no-ext-diff --quiet --ignore-submodules -- 2>/dev/null || marks+=' +' printf '\[\e[38;5;166m\](%s\[\e[38;5;204m\]%s\[\e[38;5;166m\])\[\e[0m\]' "$branch" "$marks" } PS1=' \[\e[38;5;106m\]\w\[\e[0m\]$(__dotfiles_git_prompt)\$ '