diff options
author | Starfall <us@starfall.systems> | 2021-09-16 13:49:19 -0500 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2021-09-16 13:49:19 -0500 |
commit | 948dd9523f5370e7a9d233d849a4ebf51a1f7ed1 (patch) | |
tree | 95f6804b0d8aa85379d7832490236a56d52be34f /.config/zsh/prompt.zsh | |
parent | 34c3df43639dbd2042cd42d85c5f788e5d86cf74 (diff) |
zsh: split prompt into its own file
Diffstat (limited to '.config/zsh/prompt.zsh')
-rw-r--r-- | .config/zsh/prompt.zsh | 24 |
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 |