All elements can now be on each side.

For better customization, you can add an array of elements in your zshrc:
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
pull/22/head
Dominik Ritter 10 years ago
parent 2d69716229
commit d3125e8b6f

@ -60,6 +60,14 @@ in your `~/.zshrc`:
export DEFAULT_USER=<your username> export DEFAULT_USER=<your username>
### Customization
You can choose, which segments are shown on each side. Just add the following variables to
your `~/.zshrc`:
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir git)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status history time)
### Bugs / Contact ### Bugs / Contact
If you have any requests or bug reports, please use the tracker in this Github If you have any requests or bug reports, please use the tracker in this Github

@ -91,7 +91,7 @@ right_prompt_segment() {
# Note that if $DEFAULT_USER is not set, this prompt segment will always print # Note that if $DEFAULT_USER is not set, this prompt segment will always print
prompt_context() { prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
left_prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m" $1_prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m"
fi fi
} }
@ -102,9 +102,9 @@ prompt_git() {
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
dirty=$(parse_git_dirty) dirty=$(parse_git_dirty)
if [[ -n $dirty ]]; then if [[ -n $dirty ]]; then
left_prompt_segment yellow black $1_prompt_segment yellow black
else else
left_prompt_segment green black $1_prompt_segment green black
fi fi
echo -n "${vcs_info_msg_0_}" echo -n "${vcs_info_msg_0_}"
@ -162,7 +162,7 @@ function +vi-git-tagname() {
# Dir: current working directory # Dir: current working directory
prompt_dir() { prompt_dir() {
left_prompt_segment blue black '%~' $1_prompt_segment blue black '%~'
} }
# Virtualenv: current working virtualenv # Virtualenv: current working virtualenv
@ -171,7 +171,7 @@ prompt_dir() {
prompt_virtualenv() { prompt_virtualenv() {
local virtualenv_path="$VIRTUAL_ENV" local virtualenv_path="$VIRTUAL_ENV"
if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
left_prompt_segment blue black "(`basename $virtualenv_path`)" $1_prompt_segment blue black "(`basename $virtualenv_path`)"
fi fi
} }
@ -184,13 +184,13 @@ prompt_status() {
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡"
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙"
[[ -n "$symbols" ]] && left_prompt_segment black default "$symbols" [[ -n "$symbols" ]] && $1_prompt_segment black default "$symbols"
} }
# Right Status: (return code, root status, background jobs) # Right Status: (return code, root status, background jobs)
# This creates a status segment for the *right* prompt. Exact same thing as # This creates a status segment for the *right* prompt. Exact same thing as
# above - just other side. # above - just other side.
rprompt_status() { prompt_longstatus() {
local symbols bg local symbols bg
symbols=() symbols=()
@ -205,17 +205,17 @@ rprompt_status() {
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡"
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙"
[[ -n "$symbols" ]] && right_prompt_segment $bg default "$symbols" [[ -n "$symbols" ]] && $1_prompt_segment $bg default "$symbols"
} }
# System time # System time
prompt_time() { prompt_time() {
right_prompt_segment white black '%D{%H:%M:%S} ' $1_prompt_segment white black '%D{%H:%M:%S} '
} }
# Command number (in local history) # Command number (in local history)
prompt_history() { prompt_history() {
right_prompt_segment "244" black '%h' $1_prompt_segment "244" black '%h'
} }
# Ruby Version Manager information # Ruby Version Manager information
@ -229,20 +229,28 @@ prompt_rvm() {
# Main prompt # Main prompt
build_left_prompt() { build_left_prompt() {
#prompt_virtualenv if (( ${#POWERLEVEL9K_LEFT_PROMPT_ELEMENTS} == 0 )); then
prompt_context POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir git)
prompt_dir fi
prompt_git
#prompt_rvm for element in $POWERLEVEL9K_LEFT_PROMPT_ELEMENTS; do
prompt_$element "left"
done
left_prompt_end left_prompt_end
} }
# Right prompt # Right prompt
build_right_prompt() { build_right_prompt() {
RETVAL=$? RETVAL=$?
rprompt_status
prompt_history if (( ${#POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS} == 0 )); then
prompt_time POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(longstatus history time)
fi
for element in $POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS; do
prompt_$element "right"
done
} }
# Create the prompts # Create the prompts

Loading…
Cancel
Save