diff options
Diffstat (limited to '.zsh.prompts/prompt_dvzrv_setup')
-rw-r--r-- | .zsh.prompts/prompt_dvzrv_setup | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/.zsh.prompts/prompt_dvzrv_setup b/.zsh.prompts/prompt_dvzrv_setup new file mode 100644 index 0000000..4758b7a --- /dev/null +++ b/.zsh.prompts/prompt_dvzrv_setup @@ -0,0 +1,94 @@ +# +# A theme based on Steve Losh's Extravagant Prompt with vcs_info integration. +# +# Authors: +# Steve Losh <steve@stevelosh.com> +# Bart Trojanowski <bart@jukie.net> +# Brian Carper <brian@carper.ca> +# steeef_simplified <steeef_simplified@gmail.com> +# Sorin Ionescu <sorin.ionescu@gmail.com> +# +# Screenshots: +# http://i.imgur.com/HyRvv.png +# + +function prompt_steeef_simplified_precmd { + # Check for untracked files or updated submodules since vcs_info does not. + if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then + branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c${_prompt_steeef_simplified_colors[4]}●%f)" + else + branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c)" + fi + + zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" + + vcs_info 'prompt' + + if (( $+functions[python-info] )); then + python-info + fi + + # Get ruby information +# if (( $+functions[ruby-info] )); then +# ruby-info +# fi +} + +# Check if this shell is run through ssh +function ssh_connection { + if [[ -n $SSH_CONNECTION ]]; then + echo "[%F{red}ssh%f] " + fi +} + +function prompt_steeef_simplified_setup { + setopt LOCAL_OPTIONS + unsetopt XTRACE KSH_ARRAYS + prompt_opts=(cr percent subst) + + # Load required functions. + autoload -Uz add-zsh-hook + autoload -Uz vcs_info + + # Add hook for calling vcs_info before each command. + add-zsh-hook precmd prompt_steeef_simplified_precmd + + _prompt_steeef_simplified_colors=( + "%F{cyan}" + "%F{yellow}" + "%F{magenta}" + "%F{red}" + "%F{green}" + ) + + # Formats: + # %b - branchname + # %u - unstagedstr (see below) + # %c - stagedstr (see below) + # %a - action (e.g. rebase-i) + # %R - repository path + # %S - path in the repository + local branch_format="(${_prompt_steeef_simplified_colors[1]}%b%f%u%c)" + local action_format="(${_prompt_steeef_simplified_colors[5]}%a%f)" + local unstaged_format="${_prompt_steeef_simplified_colors[2]}●%f" + local staged_format="${_prompt_steeef_simplified_colors[5]}●%f" + + # Set vcs_info parameters. + zstyle ':vcs_info:*' enable bzr git hg svn + zstyle ':vcs_info:*:prompt:*' check-for-changes true + zstyle ':vcs_info:*:prompt:*' unstagedstr "${unstaged_format}" + zstyle ':vcs_info:*:prompt:*' stagedstr "${staged_format}" + zstyle ':vcs_info:*:prompt:*' actionformats "${branch_format}${action_format}" + zstyle ':vcs_info:*:prompt:*' formats "${branch_format}" + zstyle ':vcs_info:*:prompt:*' nvcsformats "" + + # Set python-info parameters. + zstyle ':prezto:module:python:info:virtualenv' format '(%v)' + + # Define prompts. + PROMPT="$(ssh_connection)${_prompt_steeef_simplified_colors[3]}%n%f@${_prompt_steeef_simplified_colors[2]}%m%f ${_prompt_steeef_simplified_colors[5]}%~%f "'${vcs_info_msg_0_}'"$ " + RPROMPT="%(?..[%F{red}%?%f] )" +} + +prompt_steeef_simplified_setup "$@" + |