summaryrefslogtreecommitdiff
path: root/powerlevel9k.zsh-theme
diff options
context:
space:
mode:
Diffstat (limited to 'powerlevel9k.zsh-theme')
-rwxr-xr-xpowerlevel9k.zsh-theme70
1 files changed, 51 insertions, 19 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 8e6bf9ad..c087cfbf 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -899,7 +899,9 @@ prompt_dir() {
fi
;;
*)
- current_path="$(print -P "%$((POWERLEVEL9K_SHORTEN_DIR_LENGTH+1))(c:$POWERLEVEL9K_SHORTEN_DELIMITER/:)%${POWERLEVEL9K_SHORTEN_DIR_LENGTH}c")"
+ if [[ $current_path != "~" ]]; then
+ current_path="$(print -P "%$((POWERLEVEL9K_SHORTEN_DIR_LENGTH+1))(c:$POWERLEVEL9K_SHORTEN_DELIMITER/:)%${POWERLEVEL9K_SHORTEN_DIR_LENGTH}c")"
+ fi
;;
esac
fi
@@ -1233,18 +1235,19 @@ prompt_ram() {
"$1_prompt_segment" "$0" "$2" "yellow" "$DEFAULT_COLOR" "$(printSizeHumanReadable "$ramfree" $base)" 'RAM_ICON'
}
-################################################################
-# Segment to display rbenv information
-set_default POWERLEVEL9K_RBENV_ALWAYS false
+
+set_default POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW false
+# rbenv information
prompt_rbenv() {
- if which rbenv 2>/dev/null >&2; then
+ if command which rbenv 2>/dev/null >&2; then
local rbenv_version_name="$(rbenv version-name)"
local rbenv_global="$(rbenv global)"
+
# Don't show anything if the current Ruby is the same as the global Ruby
- # unless `POWERLEVEL9K_RBENV_ALWAYS` is set.
- if [[ $POWERLEVEL9K_RBENV_ALWAYS == true || $rbenv_version_name != $rbenv_global ]];then
- "$1_prompt_segment" "$0" "$2" "red" "$DEFAULT_COLOR" "$rbenv_version_name" 'RUBY_ICON'
+ # unless `POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW` is set.
+ if [[ $rbenv_version_name == $rbenv_global && "$POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW" = false ]]; then
+ return
fi
fi
}
@@ -1253,11 +1256,24 @@ prompt_rbenv() {
# Segment to display chruby information
# see https://github.com/postmodern/chruby/issues/245 for chruby_auto issue with ZSH
prompt_chruby() {
- local chruby_env
- chrb_env="$(chruby 2> /dev/null | grep \* | tr -d '* ')"
+ # Uses $RUBY_VERSION and $RUBY_ENGINE set by chruby
+ set_default POWERLEVEL9K_CHRUBY_SHOW_VERSION true
+ set_default POWERLEVEL9K_CHRUBY_SHOW_ENGINE true
+ local chruby_label=""
+
+ if [[ "$POWERLEVEL9K_CHRUBY_SHOW_ENGINE" == true ]]; then
+ chruby_label+="$RUBY_ENGINE "
+ fi
+ if [[ "$POWERLEVEL9K_CHRUBY_SHOW_VERSION" == true ]]; then
+ chruby_label+="$RUBY_VERSION"
+ fi
+
+ # Truncate trailing spaces
+ chruby_label="${chruby_label%"${chruby_label##*[![:space:]]}"}"
+
# Don't show anything if the chruby did not change the default ruby
- if [[ "${chrb_env:-system}" != "system" ]]; then
- "$1_prompt_segment" "$0" "$2" "red" "$DEFAULT_COLOR" "${chrb_env}" 'RUBY_ICON'
+ if [[ "$RUBY_ENGINE" != "" ]]; then
+ "$1_prompt_segment" "$0" "$2" "red" "$DEFAULT_COLOR" "${chruby_label}" 'RUBY_ICON'
fi
}
@@ -1272,16 +1288,18 @@ prompt_root_indicator() {
################################################################
# Segment to display Rust version number
prompt_rust_version() {
- local rust_version
- rust_version=$(rustc --version 2>&1 | grep -oe "^rustc\s*[^ ]*" | grep -o '[0-9.a-z\\\-]*$')
+ local rust_version=$(command rustc --version 2>/dev/null)
+ # Remove "rustc " (including the whitespace) from the beginning
+ # of the version string and remove everything after the next
+ # whitespace. This way we'll end up with only the version.
+ rust_version=${${rust_version/rustc /}%% *}
if [[ -n "$rust_version" ]]; then
- "$1_prompt_segment" "$0" "$2" "darkorange" "$DEFAULT_COLOR" "Rust $rust_version" 'RUST_ICON'
+ "$1_prompt_segment" "$0" "$2" "darkorange" "$DEFAULT_COLOR" "$rust_version" 'RUST_ICON'
fi
}
-################################################################
-# Segment to display RSpec test ratio
+# RSpec test ratio
prompt_rspec_stats() {
if [[ (-d app && -d spec) ]]; then
local code_amount tests_amount
@@ -1341,8 +1359,13 @@ prompt_status() {
local ec
if [[ $POWERLEVEL9K_STATUS_SHOW_PIPESTATUS == true ]]; then
- ec_text=$(exit_code_or_status "${RETVALS[1]}")
- ec_sum=${RETVALS[1]}
+ if (( $#RETVALS > 1 )); then
+ ec_text=$(exit_code_or_status "${RETVALS[1]}")
+ ec_sum=${RETVALS[1]}
+ else
+ ec_text=$(exit_code_or_status "${RETVAL}")
+ ec_sum=${RETVAL}
+ fi
for ec in "${(@)RETVALS[2,-1]}"; do
ec_text="${ec_text}|$(exit_code_or_status "$ec")"
@@ -1658,7 +1681,16 @@ prompt_dropbox() {
"$1_prompt_segment" "$0" "$2" "white" "blue" "$dropbox_status" "DROPBOX_ICON"
fi
+}
+# print Java version number
+prompt_java_version() {
+ local java_version
+ java_version=$(java -fullversion 2>&1 | cut -d '"' -f 2)
+
+ if [[ -n "$java_version" ]]; then
+ "$1_prompt_segment" "$0" "$2" "red" "white" "$java_version" "JAVA_ICON"
+ fi
}
################################################################