about summary refs log tree commit diff
path: root/.config/zsh/prompt.zsh
diff options
context:
space:
mode:
Diffstat (limited to '.config/zsh/prompt.zsh')
-rw-r--r--.config/zsh/prompt.zsh24
1 files changed, 24 insertions, 0 deletions
diff --git a/.config/zsh/prompt.zsh b/.config/zsh/prompt.zsh
new file mode 100644
index 0000000..81e3664
--- /dev/null
+++ b/.config/zsh/prompt.zsh
@@ -0,0 +1,24 @@
+# prompt
+# TODO maybe just use someone else's theme altogether
+# TODO location should control its length a little better
+# TODO only color the last segment of the path (pwd)?
+setopt prompt_subst
+
+autoload -Uz vcs_info
+zstyle ':vcs_info:*' enable git
+zstyle ':vcs_info:*' actionformats '%F{purple}[%F{green}%b%F{olive}|%F{red}%a%F{purple}]%f '
+zstyle ':vcs_info:*' formats '%F{purple}[%F{green}%b%F{purple}]%f '
+precmd () { 
+	[[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" == "true" ]] && vcs_info || vcs_info_msg_0_=""
+}
+
+user="%n"
+if [[ -n "$SSH_CLIENT" || "$USER" == "root" ]]; then
+	user+="@%M"
+fi
+last_status="%(?.%F{green}%#.%F{red}%?)%f"
+location="%F{blue}%3~%f"
+PROMPT="[$user:$location] "'${vcs_info_msg_0_}'"${last_status} "
+unset user
+unset last_status
+unset location