diff options
| author | Blista Kanjo | 2023-08-02 20:40:22 -0400 |
|---|---|---|
| committer | Blista Kanjo | 2023-08-02 20:40:22 -0400 |
| commit | 0b8db4f1c67d001d7e43ac9154a6cbdbcfb1790e (patch) | |
| tree | 45dfcfd0721c641a3b02b54dc9ec040861e6e63e /.config/shell/git-prompt_examples/kj_sh604.zsh | |
| parent | b8322b5b705e77e61800e9960bdac3e99bb23ac5 (diff) | |
feat: migrated `fish` config to `zsh` (may be buggy)
Diffstat (limited to '.config/shell/git-prompt_examples/kj_sh604.zsh')
| -rw-r--r-- | .config/shell/git-prompt_examples/kj_sh604.zsh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/.config/shell/git-prompt_examples/kj_sh604.zsh b/.config/shell/git-prompt_examples/kj_sh604.zsh new file mode 100644 index 0000000..05bc937 --- /dev/null +++ b/.config/shell/git-prompt_examples/kj_sh604.zsh @@ -0,0 +1,70 @@ +# Name: [Pure](https://github.com/sindresorhus/pure) clone +# Description: +# This clone of the Pure prompt has support for Python virtualenvs, but none of the timing +# features or a vi mode. If you are using [fzf](https://github.com/junegunn/fzf), source the +# example after sourcing fzf's keybindings. +# +# If you want to try other examples again after sourcing the Pure example, you might have to +# restart your shell, because this prompt will always print a newline between prompts. + +ZSH_GIT_PROMPT_FORCE_BLANK=1 +ZSH_GIT_PROMPT_SHOW_UPSTREAM="yes" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_no_bold[white]%}(" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg_no_bold[white]%}) " +ZSH_THEME_GIT_PROMPT_SEPARATOR=" " +ZSH_THEME_GIT_PROMPT_DETACHED="%{$fg_no_bold[cyan]%}:" +ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_no_bold[magenta]%}" +ZSH_THEME_GIT_PROMPT_UPSTREAM_SYMBOL="%{$fg_bold[yellow]%}^ " +ZSH_THEME_GIT_PROMPT_UPSTREAM_PREFIX="%{$fg[red]%}(%{$fg[yellow]%}" +ZSH_THEME_GIT_PROMPT_UPSTREAM_SUFFIX="%{$fg[red]%})" +ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg_no_bold[red]%}↓" +ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_no_bold[red]%}↑" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[red]%}x" +ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[yellow]%}•" +ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg[blue]%}+" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[blue]%}U " +ZSH_THEME_GIT_PROMPT_STASHED="%{$fg[blue]%}☐" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✓" + +# In the second line of the prompt $psvar[12] is read +PROMPT=$'%F{cyan}%~%f %F{242}$(gitprompt)%f%(12V.%F{242}%12v%f .)%(?.%F{white}.%F{red})%%%f ' + +setup() { + [[ -n $_PROMPT_INITIALIZED ]] && return + _PROMPT_INITIALIZED=1 + + # Prevent Python virtualenv from modifying the prompt + export VIRTUAL_ENV_DISABLE_PROMPT=1 + + # Set $psvar[12] to the current Python virtualenv + function _prompt_update_venv() { + psvar[12]= + if [[ -n $VIRTUAL_ENV ]] && [[ -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then + psvar[12]="${VIRTUAL_ENV:t}" + fi + } + add-zsh-hook precmd _prompt_update_venv + + # Draw a newline between every prompt + function _prompt_newline(){ + if [[ -z "$_PROMPT_NEWLINE" ]]; then + _PROMPT_NEWLINE=1 + elif [[ -n "$_PROMPT_NEWLINE" ]]; then + echo + fi + } + add-zsh-hook precmd _prompt_newline + + # To avoid glitching with fzf's alt+c binding we override the fzf-redraw-prompt widget. + # The widget by default reruns all precmd hooks, which prints the newline again. + # We therefore run all precmd hooks except _prompt_newline. + function fzf-redraw-prompt() { + local precmd + for precmd in ${precmd_functions:#_prompt_newline}; do + $precmd + done + zle reset-prompt + } +} +setup |
