|
|
|
@ -9,6 +9,7 @@ fi
|
|
|
|
|
emulate -L zsh
|
|
|
|
|
setopt no_unset
|
|
|
|
|
|
|
|
|
|
# The list of segments shown on the left. Fill it with the most important segments.
|
|
|
|
|
typeset -ga POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
|
|
|
|
# Line #1
|
|
|
|
|
dir # current directory
|
|
|
|
@ -18,6 +19,10 @@ fi
|
|
|
|
|
prompt_char # prompt symbol
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# The list of segments shown on the right. Fill it with less important segments.
|
|
|
|
|
# Right prompt on the last prompt line (where you are typing your commands) gets
|
|
|
|
|
# automatically hidden when the input line reaches it. Right prompt above the
|
|
|
|
|
# last prompt line gets hidden if it would overlap with left prompt.
|
|
|
|
|
typeset -ga POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
|
|
|
|
|
status # exit code of the last command
|
|
|
|
|
command_execution_time # duration of the last command
|
|
|
|
@ -44,19 +49,19 @@ fi
|
|
|
|
|
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' '
|
|
|
|
|
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR=
|
|
|
|
|
|
|
|
|
|
# Don't add an empty line before each prompt. If you set it to true, you'll probably
|
|
|
|
|
# want to set POWERLEVEL9K_SHOW_RULER=false below.
|
|
|
|
|
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
|
|
|
|
|
# Add an empty line before each prompt. If you set it to false, you might want to
|
|
|
|
|
# set POWERLEVEL9K_SHOW_RULER to true below.
|
|
|
|
|
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
|
|
|
|
|
|
|
|
|
|
# Add a horizontal line before each prompt. If you set it to false, you might want to
|
|
|
|
|
# set POWERLEVEL9K_PROMPT_ADD_NEWLINE=true above.
|
|
|
|
|
typeset -g POWERLEVEL9K_SHOW_RULER=true
|
|
|
|
|
# Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll
|
|
|
|
|
# probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE to false above.
|
|
|
|
|
typeset -g POWERLEVEL9K_SHOW_RULER=false
|
|
|
|
|
typeset -g POWERLEVEL9K_RULER_CHAR='─'
|
|
|
|
|
typeset -g POWERLEVEL9K_RULER_FOREGROUND=237
|
|
|
|
|
|
|
|
|
|
# Green prompt symbol on success ($? == 0).
|
|
|
|
|
# Green prompt symbol if the last command succeeded.
|
|
|
|
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=76
|
|
|
|
|
# Red prompt symbol on error ($? != 0).
|
|
|
|
|
# Red prompt symbol if the last command failed.
|
|
|
|
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=196
|
|
|
|
|
# Default prompt symbol.
|
|
|
|
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯ '
|
|
|
|
@ -65,46 +70,52 @@ fi
|
|
|
|
|
# Prompt symbol in visual vi mode.
|
|
|
|
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='Ⅴ '
|
|
|
|
|
|
|
|
|
|
# Enable special styling for non-writable directories. If set to false,
|
|
|
|
|
# POWERLEVEL9K_DIR_NOT_WRITABLE_FOREGROUND defined below won't have effect.
|
|
|
|
|
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
|
|
|
|
|
# Default current directory color.
|
|
|
|
|
typeset -g POWERLEVEL9K_DIR_FOREGROUND=39
|
|
|
|
|
# Directory color if it isn't writable.
|
|
|
|
|
typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_FOREGROUND=209
|
|
|
|
|
# Embed a hyperlink into the directory.
|
|
|
|
|
typeset -g POWERLEVEL9K_DIR_HYPERLINK=true
|
|
|
|
|
# Enable special styling for non-writable directories. If set to false,
|
|
|
|
|
# POWERLEVEL9K_DIR_NOT_WRITABLE_FOREGROUND defined above won't have effect.
|
|
|
|
|
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
|
|
|
|
|
|
|
|
|
|
# Git status: feature:master#tag ⇣42⇡42 *42 merge ~42 +42 !42 ?42
|
|
|
|
|
# If set to true, embed a hyperlink into the directory. Useful for quickly
|
|
|
|
|
# opening a directory in the file manager simply by clicking the link.
|
|
|
|
|
# Can also be handy when the directory is shortened, as it allows you to see
|
|
|
|
|
# the full directory that was used in previous commands.
|
|
|
|
|
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
|
|
|
|
|
|
|
|
|
|
# Git status: feature:master#tag ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
|
|
|
|
|
# We are using parameters defined by the gitstatus plugin. See reference:
|
|
|
|
|
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
|
|
|
|
|
local vcs=''
|
|
|
|
|
# 'feature' or '@72f5c8a' if not on a branch
|
|
|
|
|
# 'feature' or '@72f5c8a' if not on a branch.
|
|
|
|
|
vcs+='%76F${${VCS_STATUS_LOCAL_BRANCH//\%/%%}:-%f@%76F${VCS_STATUS_COMMIT[1,8]}}'
|
|
|
|
|
# ':master' if the tracking branch name differs from local branch
|
|
|
|
|
# ':master' if the tracking branch name differs from local branch.
|
|
|
|
|
vcs+='${${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH}:+%f:%76F${VCS_STATUS_REMOTE_BRANCH//\%/%%}}'
|
|
|
|
|
# '#tag' if on a tag
|
|
|
|
|
# '#tag' if on a tag.
|
|
|
|
|
vcs+='${VCS_STATUS_TAG:+%f#%76F${VCS_STATUS_TAG//\%/%%}}'
|
|
|
|
|
# ⇣42 if behind the remote
|
|
|
|
|
# ⇣42 if behind the remote.
|
|
|
|
|
vcs+='${${VCS_STATUS_COMMITS_BEHIND:#0}:+ %76F⇣${VCS_STATUS_COMMITS_BEHIND}}'
|
|
|
|
|
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42
|
|
|
|
|
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
|
|
|
|
|
# If you want '⇣42 ⇡42' instead, replace '${${(M)VCS_STATUS_COMMITS_BEHIND:#0}:+ }' with ' '.
|
|
|
|
|
vcs+='${${VCS_STATUS_COMMITS_AHEAD:#0}:+${${(M)VCS_STATUS_COMMITS_BEHIND:#0}:+ }%76F⇡${VCS_STATUS_COMMITS_AHEAD}}'
|
|
|
|
|
# *42 if have stashes
|
|
|
|
|
# *42 if have stashes.
|
|
|
|
|
vcs+='${${VCS_STATUS_STASHES:#0}:+ %76F*${VCS_STATUS_STASHES}}'
|
|
|
|
|
# 'merge' if the repo is in an unusual state
|
|
|
|
|
# 'merge' if the repo is in an unusual state.
|
|
|
|
|
vcs+='${VCS_STATUS_ACTION:+ %196F${VCS_STATUS_ACTION//\%/%%}}'
|
|
|
|
|
# ~42 if have merge conflicts
|
|
|
|
|
# ~42 if have merge conflicts.
|
|
|
|
|
vcs+='${${VCS_STATUS_NUM_CONFLICTED:#0}:+ %196F~${VCS_STATUS_NUM_CONFLICTED}}'
|
|
|
|
|
# +42 if have staged changes
|
|
|
|
|
# +42 if have staged changes.
|
|
|
|
|
vcs+='${${VCS_STATUS_NUM_STAGED:#0}:+ %11F+${VCS_STATUS_NUM_STAGED}}'
|
|
|
|
|
# !42 if have unstaged changes
|
|
|
|
|
# !42 if have unstaged changes.
|
|
|
|
|
vcs+='${${VCS_STATUS_NUM_UNSTAGED:#0}:+ %11F!${VCS_STATUS_NUM_UNSTAGED}}'
|
|
|
|
|
# ?42 if have untracked files
|
|
|
|
|
# ?42 if have untracked files.
|
|
|
|
|
vcs+='${${VCS_STATUS_NUM_UNTRACKED:#0}:+ %12F?${VCS_STATUS_NUM_UNTRACKED}}'
|
|
|
|
|
# If P9K_CONTENT is not empty, leave it unchanged. It's either "loading" or from vcs_info.
|
|
|
|
|
vcs="\${P9K_CONTENT:-$vcs}"
|
|
|
|
|
|
|
|
|
|
# Disable the default Git status formatting.
|
|
|
|
|
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
|
|
|
|
|
# Install our own Git status formatting.
|
|
|
|
|
# Install our own Git status formatter.
|
|
|
|
|
typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_CONTENT_EXPANSION=$vcs
|
|
|
|
|
# When Git status is being refreshed asynchronously, display the last known repo status in grey.
|
|
|
|
|
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION=${${vcs//\%f}//\%<->F}
|
|
|
|
@ -112,9 +123,8 @@ fi
|
|
|
|
|
# Enable counters for staged, unstaged, etc.
|
|
|
|
|
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
|
|
|
|
|
|
|
|
|
|
# These settings have no effect when vcs prompt is rendered from gitstatusd data.
|
|
|
|
|
# They are used for respositories other than Git or when gitstatusd fails and Powerlevel10k
|
|
|
|
|
# has to fall back to using vcs_info.
|
|
|
|
|
# These settings are used for respositories other than Git or when gitstatusd fails and
|
|
|
|
|
# Powerlevel10k has to fall back to using vcs_info.
|
|
|
|
|
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
|
|
|
|
|
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=11
|
|
|
|
|
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
|
|
|
|
@ -155,7 +165,7 @@ fi
|
|
|
|
|
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=244
|
|
|
|
|
# Context color when running with privileges.
|
|
|
|
|
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=11
|
|
|
|
|
# Don't show context unless running with privileges on in SSH.
|
|
|
|
|
# Don't show context unless running with privileges on via SSH.
|
|
|
|
|
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_CONTENT_EXPANSION=
|
|
|
|
|
typeset -g POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
|
|
|
|
|
|
|
|
@ -163,38 +173,54 @@ fi
|
|
|
|
|
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=6
|
|
|
|
|
# Show Python version next to the virtual environment name.
|
|
|
|
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=true
|
|
|
|
|
# Separate environment name from Python version only with a space.
|
|
|
|
|
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
|
|
|
|
|
|
|
|
|
# Anaconda environment color.
|
|
|
|
|
typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=6
|
|
|
|
|
# Show Python version next to the anaconda environment name.
|
|
|
|
|
typeset -g POWERLEVEL9K_ANACONDA_SHOW_PYTHON_VERSION=true
|
|
|
|
|
# Separate environment name from Python version only with a space.
|
|
|
|
|
typeset -g POWERLEVEL9K_ANACONDA_{LEFT,RIGHT}_DELIMITER=
|
|
|
|
|
|
|
|
|
|
typeset -g POWERLEVEL9K_PYENV_BACKGROUND=none
|
|
|
|
|
# Pyenv color.
|
|
|
|
|
typeset -g POWERLEVEL9K_PYENV_FOREGROUND=6
|
|
|
|
|
# Don't show the current Python version if it's the same as global.
|
|
|
|
|
typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
|
|
|
|
|
|
|
|
|
|
# Don't show trailing "/default" in kubernetes context.
|
|
|
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_DEFAULT_NAMESPACE=false
|
|
|
|
|
# Kubernetes context classes for the purpose of using different colors with different contexts.
|
|
|
|
|
# Kubernetes context classes for the purpose of using different colors with
|
|
|
|
|
# different contexts.
|
|
|
|
|
#
|
|
|
|
|
# POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element in
|
|
|
|
|
# each pair defines a pattern against which the current kubernetes context (in the format it is
|
|
|
|
|
# displayed in the prompt) gets matched. The second element defines the context class. Patterns
|
|
|
|
|
# are tried in order. The first match wins.
|
|
|
|
|
# POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements.
|
|
|
|
|
# The first element in each pair defines a pattern against which the current
|
|
|
|
|
# kubernetes context (in the format it is displayed in the prompt) gets matched.
|
|
|
|
|
# The second element defines the context class. Patterns are tried in order.
|
|
|
|
|
# The first match wins.
|
|
|
|
|
#
|
|
|
|
|
# For example, if your current kubernetes context is "deathray-testing", its class is TEST because
|
|
|
|
|
# "deathray-testing" doesn't match the pattern '*prod*' but does match '*test*'. Hence it'll be
|
|
|
|
|
# shown with the color of $POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND.
|
|
|
|
|
# For example, if your current kubernetes context is "deathray-testing", its
|
|
|
|
|
# class is TEST because "deathray-testing" doesn't match the pattern '*prod*'
|
|
|
|
|
# but does match '*test*'. Hence it'll be shown with the color of
|
|
|
|
|
# $POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND.
|
|
|
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
|
|
|
|
'*prod*' PROD
|
|
|
|
|
'*test*' TEST
|
|
|
|
|
# '*prod*' PROD # These values are examples that are unlikely
|
|
|
|
|
# '*test*' TEST # to match your needs. Customize them as needed.
|
|
|
|
|
'*' DEFAULT)
|
|
|
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_PROD_FOREGROUND=1
|
|
|
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=2
|
|
|
|
|
# typeset -g POWERLEVEL9K_KUBECONTEXT_PROD_FOREGROUND=1
|
|
|
|
|
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=2
|
|
|
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=3
|
|
|
|
|
|
|
|
|
|
# Kubernetes too long? You can shorten it by defining an expansion. The original
|
|
|
|
|
# Kubernetes context that you see in your prompt is stored in ${P9K_CONTENT} when
|
|
|
|
|
# the expansion is evaluated. To remove everything up to and including the last '/',
|
|
|
|
|
# set POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION='${P9K_CONTENT##*/}'. Parameter
|
|
|
|
|
# expansions are flexible and fast. See reference:
|
|
|
|
|
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
|
|
|
|
|
typeset POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION='${P9K_CONTENT}'
|
|
|
|
|
# Show the trailing "/default" in kubernetes context.
|
|
|
|
|
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_DEFAULT_NAMESPACE=true
|
|
|
|
|
|
|
|
|
|
# Current time color.
|
|
|
|
|
typeset -g POWERLEVEL9K_TIME_FOREGROUND=66
|
|
|
|
|
# Format for the time segment: 09:51:02. See `man 3 strftime`.
|
|
|
|
|
# Format for the current time: 09:51:02. See `man 3 strftime`.
|
|
|
|
|
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|