aboutsummaryrefslogtreecommitdiffstats
path: root/zsh/config/prompt.zsh
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2022-11-20 20:33:13 +0000
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2022-11-20 20:33:13 +0000
commit6b1b61f98813a58286e099d92767e01c2d40bc18 (patch)
treea3613fba312e0f324bdbca28ec3d3d0b5e6f6e13 /zsh/config/prompt.zsh
parent6a0e18aab79cefa8cd4917e9a6d121349f41eb3f (diff)
Redo deploy script
Diffstat (limited to 'zsh/config/prompt.zsh')
-rw-r--r--zsh/config/prompt.zsh42
1 files changed, 42 insertions, 0 deletions
diff --git a/zsh/config/prompt.zsh b/zsh/config/prompt.zsh
new file mode 100644
index 0000000..1a9776b
--- /dev/null
+++ b/zsh/config/prompt.zsh
@@ -0,0 +1,42 @@
+autoload -Uz vcs_info
+
+directory() {
+ echo "%{$fg_bold[magenta]%}%~%{$reset_color%}"
+}
+
+current_time() {
+ echo "%{$fg[white]%}[%*]"
+}
+
+return_status() {
+ local LAST_EXIT_CODE=$?
+ if [[ $LAST_EXIT_CODE -ne 0 ]]; then
+ local EXIT_CODE_PROMPT=' '
+ EXIT_CODE_PROMPT+="%{$fg_bold[red]%}$LAST_EXIT_CODE%{$reset_color%}"
+ echo "$EXIT_CODE_PROMPT "
+ fi
+}
+
+precmd() {
+ vcs_info
+ VCS_STATUS=""
+ if [[ -n ${vcs_info_msg_0_} ]]; then
+ STATUS=$(command git status --porcelain 2> /dev/null | tail -n1)
+ if [[ -n $STATUS ]]; then
+ VCS_STATUS="(%F{yellow}${vcs_info_msg_0_}%f) "
+ else
+ VCS_STATUS="(%F{green}${vcs_info_msg_0_}%f) "
+ fi
+ fi
+ PROMPT='%B$(directory)%b %# %f'
+ RPROMPT='$(return_status)${VCS_STATUS}$(current_time)%f'
+}
+
+zstyle ':vcs_info:*' check-for-changes true
+zstyle ':vcs_info:git*' formats "%b%u%c"
+zstyle ':vcs_info:git*' actionformats "%b|%a%u%c"
+zstyle ':vcs_info:*' unstagedstr ' *'
+zstyle ':vcs_info:*' stagedstr ' +'
+
+setopt prompt_subst
+