|
|
|
@ -963,6 +963,10 @@ prompt_anaconda() {
|
|
|
|
|
_p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PYTHON_ICON' 0 '' "$msg"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_anaconda_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${CONDA_PREFIX:-$CONDA_ENV_PATH}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# AWS Profile
|
|
|
|
|
prompt_aws() {
|
|
|
|
@ -975,11 +979,14 @@ prompt_aws() {
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_segment "$0$state" red white 'AWS_ICON' 0 '' "${aws_profile//\%/%%}"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_aws_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${AWS_VAULT:-${AWSUME_PROFILE:-${AWS_PROFILE:-$AWS_DEFAULT_PROFILE}}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Current Elastic Beanstalk environment
|
|
|
|
|
prompt_aws_eb_env() {
|
|
|
|
@ -1002,9 +1009,14 @@ prompt_aws_eb_env() {
|
|
|
|
|
_p9k_prompt_segment "$0" black green 'AWS_EB_ICON' 0 '' "${_p9k_cache_val[1]//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_aws_eb_env_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[eb]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to indicate background jobs with an icon.
|
|
|
|
|
prompt_background_jobs() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
local msg
|
|
|
|
|
if (( _POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE )); then
|
|
|
|
|
if (( _POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE_ALWAYS )); then
|
|
|
|
@ -1014,15 +1026,19 @@ prompt_background_jobs() {
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
_p9k_prompt_segment $0 "$_p9k_color1" cyan BACKGROUND_JOBS_ICON 1 '${${(%):-%j}:#0}' "$msg"
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment that indicates usage level of current partition.
|
|
|
|
|
prompt_disk_usage() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0_CRITICAL red white DISK_ICON 1 '$_p9k__disk_usage_critical' '$_p9k__disk_usage_pct%%'
|
|
|
|
|
_p9k_prompt_segment $0_WARNING yellow $_p9k_color1 DISK_ICON 1 '$_p9k__disk_usage_warning' '$_p9k__disk_usage_pct%%'
|
|
|
|
|
(( _POWERLEVEL9K_DISK_USAGE_ONLY_WARNING )) && return
|
|
|
|
|
if (( ! _POWERLEVEL9K_DISK_USAGE_ONLY_WARNING )); then
|
|
|
|
|
_p9k_prompt_segment $0_NORMAL $_p9k_color1 yellow DISK_ICON 1 '$_p9k__disk_usage_normal' '$_p9k__disk_usage_pct%%'
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_disk_usage_init() {
|
|
|
|
@ -1086,6 +1102,10 @@ prompt_fvm() {
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_fvm_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[fvm]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment that displays the battery status in levels and colors
|
|
|
|
|
prompt_battery() {
|
|
|
|
@ -1095,7 +1115,13 @@ prompt_battery() {
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_battery_init() {
|
|
|
|
|
typeset -ga _p9k__battery_args=()
|
|
|
|
|
[[ $_p9k_os == OSX ]] && _p9k__async_segments_compute+=_p9k_prompt_battery_compute
|
|
|
|
|
if [[ $_p9k_os == OSX && $+commands[pmset] == 1 ]]; then
|
|
|
|
|
_p9k__async_segments_compute+=_p9k_prompt_battery_compute
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
if [[ $_p9k_os != (Linux|Android) || -z /sys/class/power_supply/(BAT*|battery)/(#qFN) ]]; then
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_battery_compute() {
|
|
|
|
@ -1238,6 +1264,7 @@ _p9k_prompt_battery_set_args() {
|
|
|
|
|
################################################################
|
|
|
|
|
# Public IP segment
|
|
|
|
|
prompt_public_ip() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
local ip='${_p9k__public_ip:-$_POWERLEVEL9K_PUBLIC_IP_NONE}'
|
|
|
|
|
if [[ -n $_POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE ]]; then
|
|
|
|
|
_p9k_prompt_segment "$0" "$_p9k_color1" "$_p9k_color2" PUBLIC_IP_ICON 1 '${_p9k__public_ip_not_vpn:+'$ip'}' $ip
|
|
|
|
@ -1245,6 +1272,7 @@ prompt_public_ip() {
|
|
|
|
|
else
|
|
|
|
|
_p9k_prompt_segment "$0" "$_p9k_color1" "$_p9k_color2" PUBLIC_IP_ICON 1 $ip $ip
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_public_ip_init() {
|
|
|
|
@ -1307,26 +1335,18 @@ _p9k_prompt_public_ip_sync() {
|
|
|
|
|
################################################################
|
|
|
|
|
# Context: user@hostname (who am I and where am I)
|
|
|
|
|
prompt_context() {
|
|
|
|
|
if ! _p9k_cache_get $0 "${(%):-%#}"; then
|
|
|
|
|
local -i enabled=1
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
|
|
|
|
|
local content
|
|
|
|
|
if [[ $_POWERLEVEL9K_ALWAYS_SHOW_CONTEXT == 0 && -n $DEFAULT_USER && $P9K_SSH == 0 ]]; then
|
|
|
|
|
local user="${(%):-%n}"
|
|
|
|
|
if [[ $user == $DEFAULT_USER ]]; then
|
|
|
|
|
if (( _POWERLEVEL9K_ALWAYS_SHOW_USER )); then
|
|
|
|
|
content="${user//\%/%%}"
|
|
|
|
|
else
|
|
|
|
|
enabled=0
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
local state
|
|
|
|
|
if (( enabled )); then
|
|
|
|
|
state="DEFAULT"
|
|
|
|
|
if [[ "${(%):-%#}" == '#' ]]; then
|
|
|
|
|
state="ROOT"
|
|
|
|
|
elif (( P9K_SSH )); then
|
|
|
|
|
if (( P9K_SSH )); then
|
|
|
|
|
if [[ -n "$SUDO_COMMAND" ]]; then
|
|
|
|
|
state="REMOTE_SUDO"
|
|
|
|
|
else
|
|
|
|
@ -1334,57 +1354,86 @@ prompt_context() {
|
|
|
|
|
fi
|
|
|
|
|
elif [[ -n "$SUDO_COMMAND" ]]; then
|
|
|
|
|
state="SUDO"
|
|
|
|
|
else
|
|
|
|
|
state="DEFAULT"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ -z $content ]]; then
|
|
|
|
|
local cond
|
|
|
|
|
for state cond in $state '${${(%):-%#}:#\#}' ROOT '${${(%):-%#}:#\%}'; do
|
|
|
|
|
local text=$content
|
|
|
|
|
if [[ -z $text ]]; then
|
|
|
|
|
local var=_POWERLEVEL9K_CONTEXT_${state}_TEMPLATE
|
|
|
|
|
if (( $+parameters[$var] )); then
|
|
|
|
|
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
|
|
|
|
|
content=${(P)var}
|
|
|
|
|
content=${(g::)content}
|
|
|
|
|
text=${(P)var}
|
|
|
|
|
text=${(g::)text}
|
|
|
|
|
else
|
|
|
|
|
content=$_POWERLEVEL9K_CONTEXT_TEMPLATE
|
|
|
|
|
fi
|
|
|
|
|
text=$_POWERLEVEL9K_CONTEXT_TEMPLATE
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
_p9k_prompt_segment "$0_$state" "$_p9k_color1" yellow '' 0 "$cond" "$text"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
_p9k_cache_set "$enabled" "$state" "$content"
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
(( _p9k_cache_val[1] )) || return
|
|
|
|
|
_p9k_prompt_segment "$0_$_p9k_cache_val[2]" "$_p9k_color1" yellow '' 0 '' "$_p9k_cache_val[3]"
|
|
|
|
|
instant_prompt_context() {
|
|
|
|
|
if [[ $_POWERLEVEL9K_ALWAYS_SHOW_CONTEXT == 0 && -n $DEFAULT_USER && $P9K_SSH == 0 ]]; then
|
|
|
|
|
if [[ ${(%):-%n} == $DEFAULT_USER ]]; then
|
|
|
|
|
if (( ! _POWERLEVEL9K_ALWAYS_SHOW_USER )); then
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
prompt_context
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_context() { prompt_context; }
|
|
|
|
|
_p9k_prompt_context_init() {
|
|
|
|
|
if [[ $_POWERLEVEL9K_ALWAYS_SHOW_CONTEXT == 0 && -n $DEFAULT_USER && $P9K_SSH == 0 ]]; then
|
|
|
|
|
if [[ ${(%):-%n} == $DEFAULT_USER ]]; then
|
|
|
|
|
if (( ! _POWERLEVEL9K_ALWAYS_SHOW_USER )); then
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# User: user (who am I)
|
|
|
|
|
prompt_user() {
|
|
|
|
|
if ! _p9k_cache_get $0 "${(%):-%#}"; then
|
|
|
|
|
local user="${(%):-%n}"
|
|
|
|
|
if [[ $_POWERLEVEL9K_ALWAYS_SHOW_USER == 0 && $user == $DEFAULT_USER ]]; then
|
|
|
|
|
_p9k_cache_set true
|
|
|
|
|
elif [[ "${(%):-%#}" == '#' ]]; then
|
|
|
|
|
_p9k_cache_set _p9k_prompt_segment "${0}_ROOT" "${_p9k_color1}" yellow ROOT_ICON 0 '' "$_POWERLEVEL9K_USER_TEMPLATE"
|
|
|
|
|
elif [[ -n "$SUDO_COMMAND" ]]; then
|
|
|
|
|
_p9k_cache_set _p9k_prompt_segment "${0}_SUDO" "${_p9k_color1}" yellow SUDO_ICON 0 '' "$_POWERLEVEL9K_USER_TEMPLATE"
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment "${0}_ROOT" "${_p9k_color1}" yellow ROOT_ICON 0 '${${(%):-%#}:#\%}' "$_POWERLEVEL9K_USER_TEMPLATE"
|
|
|
|
|
if [[ -n "$SUDO_COMMAND" ]]; then
|
|
|
|
|
_p9k_prompt_segment "${0}_SUDO" "${_p9k_color1}" yellow SUDO_ICON 0 '${${(%):-%#}:#\#}' "$_POWERLEVEL9K_USER_TEMPLATE"
|
|
|
|
|
else
|
|
|
|
|
_p9k_cache_set _p9k_prompt_segment "${0}_DEFAULT" "${_p9k_color1}" yellow USER_ICON 0 '' "${user//\%/%%}"
|
|
|
|
|
_p9k_prompt_segment "${0}_DEFAULT" "${_p9k_color1}" yellow USER_ICON 0 '${${(%):-%#}:#\#}' "%n"
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_user() {
|
|
|
|
|
if [[ $_POWERLEVEL9K_ALWAYS_SHOW_USER == 0 && "${(%):-%n}" == $DEFAULT_USER ]]; then
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
"$_p9k_cache_val[@]"
|
|
|
|
|
prompt_user
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_user() { prompt_user; }
|
|
|
|
|
_p9k_prompt_user_init() {
|
|
|
|
|
if [[ $_POWERLEVEL9K_ALWAYS_SHOW_USER == 0 && "${(%):-%n}" == $DEFAULT_USER ]]; then
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Host: machine (where am I)
|
|
|
|
|
prompt_host() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
if (( P9K_SSH )); then
|
|
|
|
|
_p9k_prompt_segment "$0_REMOTE" "${_p9k_color1}" yellow SSH_ICON 0 '' "$_POWERLEVEL9K_HOST_TEMPLATE"
|
|
|
|
|
else
|
|
|
|
|
_p9k_prompt_segment "$0_LOCAL" "${_p9k_color1}" yellow HOST_ICON 0 '' "$_POWERLEVEL9K_HOST_TEMPLATE"
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_host() { prompt_host; }
|
|
|
|
@ -1824,6 +1873,10 @@ prompt_docker_machine() {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_docker_machine_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$DOCKER_MACHINE_NAME'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# GO prompt
|
|
|
|
|
prompt_go_version() {
|
|
|
|
@ -1852,10 +1905,16 @@ prompt_go_version() {
|
|
|
|
|
_p9k_prompt_segment "$0" "green" "grey93" "GO_ICON" 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_go_version_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[go]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Command number (in local history)
|
|
|
|
|
prompt_history() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment "$0" "grey50" "$_p9k_color1" '' 0 '' '%h'
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
@ -1871,16 +1930,24 @@ prompt_detect_virt() {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_detect_virt_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[systemd-detect-virt]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display the current IP address
|
|
|
|
|
prompt_ip() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment "$0" "cyan" "$_p9k_color1" 'NETWORK_ICON' 1 '$_p9k__ip_ip' '$_p9k__ip_ip'
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display if VPN is active
|
|
|
|
|
prompt_vpn_ip() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment "$0" "cyan" "$_p9k_color1" 'VPN_ICON' 1 '$_p9k__vpn_ip_ip' '$_p9k__vpn_ip_ip'
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
@ -1894,13 +1961,19 @@ prompt_laravel_version() {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_laravel_version_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[php]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display load
|
|
|
|
|
prompt_load() {
|
|
|
|
|
if [[ $_p9k_os == (OSX|BSD) ]]; then
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0_CRITICAL red "$_p9k_color1" LOAD_ICON 1 '$_p9k__load_critical' '$_p9k__load_value'
|
|
|
|
|
_p9k_prompt_segment $0_WARNING yellow "$_p9k_color1" LOAD_ICON 1 '$_p9k__load_warning' '$_p9k__load_value'
|
|
|
|
|
_p9k_prompt_segment $0_NORMAL green "$_p9k_color1" LOAD_ICON 1 '$_p9k__load_normal' '$_p9k__load_value'
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
@ -1918,12 +1991,15 @@ prompt_load() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_load_init() {
|
|
|
|
|
[[ $_p9k_os == (OSX|BSD) ]] || return
|
|
|
|
|
if [[ $_p9k_os == (OSX|BSD) ]]; then
|
|
|
|
|
typeset -g _p9k__load_value=
|
|
|
|
|
typeset -g _p9k__load_normal=
|
|
|
|
|
typeset -g _p9k__load_warning=
|
|
|
|
|
typeset -g _p9k__load_critical=
|
|
|
|
|
_p9k__async_segments_compute+=_p9k_prompt_load_compute
|
|
|
|
|
elif [[ ! -r /proc/loadavg ]]; then
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_load_compute() {
|
|
|
|
@ -2004,6 +2080,10 @@ prompt_node_version() {
|
|
|
|
|
_p9k_prompt_segment "$0" "green" "white" 'NODE_ICON' 0 '' "${_p9k_ret#v}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_node_version_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[node]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Almost the same as `nvm_version default` but faster. The differences shouldn't affect
|
|
|
|
|
# the observable behavior of Powerlevel10k.
|
|
|
|
|
function _p9k_nvm_ls_default() {
|
|
|
|
@ -2111,6 +2191,10 @@ prompt_nvm() {
|
|
|
|
|
_p9k_prompt_segment "$0" "magenta" "black" 'NODE_ICON' 0 '' "${${current#v}//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_nvm_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[nvm]:-${${+functions[nvm]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display NodeEnv
|
|
|
|
|
prompt_nodeenv() {
|
|
|
|
@ -2123,6 +2207,10 @@ prompt_nodeenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" "black" "green" 'NODE_ICON' 0 '' "$msg"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_nodeenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$NODE_VIRTUAL_ENV'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_read_nodenv_version_file() {
|
|
|
|
|
[[ -r $1 ]] || return
|
|
|
|
|
local rest
|
|
|
|
@ -2174,6 +2262,10 @@ prompt_nodenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" "black" "green" 'NODE_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_nodenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[nodenv]:-${${+functions[nodenv]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prompt_dotnet_version() {
|
|
|
|
|
(( $+commands[dotnet] )) || return
|
|
|
|
|
|
|
|
|
@ -2217,11 +2309,16 @@ prompt_dotnet_version() {
|
|
|
|
|
_p9k_prompt_segment "$0" "magenta" "white" 'DOTNET_ICON' 0 '' "$_p9k_ret"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_dotnet_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[dotnet]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to print a little OS icon
|
|
|
|
|
prompt_os_icon() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment "$0" "black" "white" '' 0 '' "$_p9k_os_icon"
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_os_icon() { prompt_os_icon; }
|
|
|
|
@ -2236,13 +2333,25 @@ prompt_php_version() {
|
|
|
|
|
_p9k_prompt_segment "$0" "fuchsia" "grey93" '' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_php_version_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[php]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display free RAM and used Swap
|
|
|
|
|
prompt_ram() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0 yellow "$_p9k_color1" RAM_ICON 1 '$_p9k__ram_free' '$_p9k__ram_free'
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_prompt_ram_init() {
|
|
|
|
|
if [[ $_p9k_os == OSX && $+commands[vm_stat] == 0 ||
|
|
|
|
|
$_p9k_os == BSD && ! -r /var/run/dmesg.boot ||
|
|
|
|
|
$_p9k_os != (OSX|BSD) && ! -r /proc/meminfo ]]; then
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
typeset -g _p9k__ram_free=
|
|
|
|
|
_p9k__async_segments_compute+=_p9k_prompt_ram_compute
|
|
|
|
|
}
|
|
|
|
@ -2335,6 +2444,10 @@ prompt_rbenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" "red" "$_p9k_color1" 'RUBY_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_rbenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[rbenv]:-${${+functions[rbenv]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_read_luaenv_version_file() {
|
|
|
|
|
[[ -r $1 ]] || return
|
|
|
|
|
local rest
|
|
|
|
@ -2382,6 +2495,10 @@ prompt_luaenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" blue "$_p9k_color1" 'LUA_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_luaenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[luaenv]:-${${+functions[luaenv]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_read_jenv_version_file() {
|
|
|
|
|
[[ -r $1 ]] || return
|
|
|
|
|
local rest
|
|
|
|
@ -2440,6 +2557,10 @@ prompt_plenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PERL_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_plenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[plenv]:-${${+functions[plenv]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display jenv information
|
|
|
|
|
# https://github.com/jenv/jenv
|
|
|
|
@ -2476,6 +2597,10 @@ prompt_jenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" white red 'JAVA_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_jenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[jenv]:-${${+functions[jenv]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display chruby information
|
|
|
|
|
# see https://github.com/postmodern/chruby/issues/245 for chruby_auto issue with ZSH
|
|
|
|
@ -2487,10 +2612,16 @@ prompt_chruby() {
|
|
|
|
|
_p9k_prompt_segment "$0" "red" "$_p9k_color1" 'RUBY_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_chruby_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$RUBY_ENGINE'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to print an icon if user is root.
|
|
|
|
|
prompt_root_indicator() {
|
|
|
|
|
_p9k_prompt_segment "$0" "$_p9k_color1" "yellow" 'ROOT_ICON' 0 '${${(%):-%#}:#%}' ''
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment "$0" "$_p9k_color1" "yellow" 'ROOT_ICON' 0 '${${(%):-%#}:#\%}' ''
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_root_indicator() { prompt_root_indicator; }
|
|
|
|
@ -2557,6 +2688,10 @@ prompt_rust_version() {
|
|
|
|
|
_p9k_prompt_segment "$0" "darkorange" "$_p9k_color1" 'RUST_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_rust_version_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[rustc]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# RSpec test ratio
|
|
|
|
|
prompt_rspec_stats() {
|
|
|
|
|
if [[ -d app && -d spec ]]; then
|
|
|
|
@ -2579,15 +2714,30 @@ prompt_rvm() {
|
|
|
|
|
_p9k_prompt_segment "$0" "240" "$_p9k_color1" 'RUBY_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_rvm_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[rvm-prompt]:-${${+functions[rvm-prompt]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display SSH icon when connected
|
|
|
|
|
prompt_ssh() {
|
|
|
|
|
if (( P9K_SSH )); then
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment "$0" "$_p9k_color1" "yellow" 'SSH_ICON' 0 '' ''
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_ssh_init() {
|
|
|
|
|
if (( ! P9K_SSH )); then
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_ssh() { prompt_ssh; }
|
|
|
|
|
instant_prompt_ssh() {
|
|
|
|
|
if (( ! P9K_SSH )); then
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
prompt_ssh
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Status: When an error occur, return the error code, or a cross icon if option is set
|
|
|
|
@ -2638,6 +2788,7 @@ instant_prompt_status() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prompt_prompt_char() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
if (( __p9k_sh_glob )); then
|
|
|
|
|
if (( _p9k__status )); then
|
|
|
|
|
if (( _POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE )); then
|
|
|
|
@ -2679,6 +2830,7 @@ prompt_prompt_char() {
|
|
|
|
|
_p9k_prompt_segment $0_OK_VIVIS "$_p9k_color1" 76 '' 0 '${(M)${:-$_p9k__keymap$_p9k__region_active}:#(vicmd1|vivis?|vivli?)}' 'Ⅴ'
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_prompt_char() {
|
|
|
|
@ -2688,6 +2840,25 @@ instant_prompt_prompt_char() {
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display Swap information
|
|
|
|
|
prompt_swap() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0 yellow "$_p9k_color1" SWAP_ICON 1 '$_p9k__swap_used' '$_p9k__swap_used'
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_prompt_swap_init() {
|
|
|
|
|
if [[ $_p9k_os == OSX && $+commands[sysctl] == 0 || $_p9k_os != OSX && ! -r /proc/meminfo ]]; then
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
typeset -g _p9k__swap_used=
|
|
|
|
|
_p9k__async_segments_compute+=_p9k_prompt_swap_compute
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_swap_compute() {
|
|
|
|
|
_p9k_worker_async _p9k_prompt_swap_async _p9k_prompt_swap_sync
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_swap_async() {
|
|
|
|
|
local -F used_bytes
|
|
|
|
|
|
|
|
|
|
if [[ "$_p9k_os" == "OSX" ]]; then
|
|
|
|
@ -2711,7 +2882,15 @@ prompt_swap() {
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
_p9k_human_readable_bytes $used_bytes
|
|
|
|
|
_p9k_prompt_segment $0 yellow "$_p9k_color1" SWAP_ICON 0 '' $_p9k_ret
|
|
|
|
|
[[ $_p9k_ret != $_p9k__swap_used ]] || return
|
|
|
|
|
_p9k__swap_used=$_p9k_ret
|
|
|
|
|
typeset -p _p9k__swap_used
|
|
|
|
|
echo -E - 'reset=1'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_swap_sync() {
|
|
|
|
|
eval $REPLY
|
|
|
|
|
_p9k_worker_reply $REPLY
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
@ -2846,6 +3025,10 @@ prompt_todo() {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_todo_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[todo.sh]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# VCS segment: shows the state of your repository, if you are in a folder under
|
|
|
|
|
# version control
|
|
|
|
@ -3446,6 +3629,7 @@ prompt_vcs() {
|
|
|
|
|
################################################################
|
|
|
|
|
# Vi Mode: show editing mode (NORMAL|INSERT|VISUAL)
|
|
|
|
|
prompt_vi_mode() {
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
if (( __p9k_sh_glob )); then
|
|
|
|
|
if (( $+_POWERLEVEL9K_VI_OVERWRITE_MODE_STRING )); then
|
|
|
|
|
if [[ -n $_POWERLEVEL9K_VI_INSERT_MODE_STRING ]]; then
|
|
|
|
@ -3483,6 +3667,7 @@ prompt_vi_mode() {
|
|
|
|
|
_p9k_prompt_segment $0_NORMAL "$_p9k_color1" white '' 0 '${(M)_p9k__keymap:#(vicmd|vivis|vivli)}' "$_POWERLEVEL9K_VI_COMMAND_MODE_STRING"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
instant_prompt_vi_mode() {
|
|
|
|
@ -3507,6 +3692,10 @@ prompt_virtualenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PYTHON_ICON' 0 '' "$msg"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_virtualenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$VIRTUAL_ENV'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_read_pyenv_version_file() {
|
|
|
|
|
[[ -r $1 ]] || return
|
|
|
|
|
local content
|
|
|
|
@ -3554,6 +3743,10 @@ prompt_pyenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PYTHON_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_pyenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[pyenv]:-${${+functions[pyenv]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_read_goenv_version_file() {
|
|
|
|
|
[[ -r $1 ]] || return
|
|
|
|
|
local content
|
|
|
|
@ -3595,6 +3788,10 @@ prompt_goenv() {
|
|
|
|
|
_p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'GO_ICON' 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_goenv_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[goenv]:-${${+functions[goenv]}:#0}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Display openfoam information
|
|
|
|
|
prompt_openfoam() {
|
|
|
|
@ -3607,6 +3804,10 @@ prompt_openfoam() {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_openfoam_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$WM_PROJECT_VERSION'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Segment to display Swift version
|
|
|
|
|
prompt_swift_version() {
|
|
|
|
@ -3615,6 +3816,10 @@ prompt_swift_version() {
|
|
|
|
|
_p9k_prompt_segment "$0" "magenta" "white" 'SWIFT_ICON' 0 '' "${match[1]//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_swift_version_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[swift]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# dir_writable: Display information about the user's permission to write in the current directory
|
|
|
|
|
prompt_dir_writable() {
|
|
|
|
@ -3704,6 +3909,10 @@ prompt_kubecontext() {
|
|
|
|
|
_p9k_prompt_segment $0$_p9k_cache_val[9] magenta white KUBERNETES_ICON 0 '' "${_p9k_cache_val[8]//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_kubecontext_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[kubectl]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################
|
|
|
|
|
# Dropbox status
|
|
|
|
|
prompt_dropbox() {
|
|
|
|
@ -3722,6 +3931,10 @@ prompt_dropbox() {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_dropbox_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[dropbox-cli]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# print Java version number
|
|
|
|
|
prompt_java_version() {
|
|
|
|
|
_p9k_cached_cmd_stdout_stderr java -fullversion || return
|
|
|
|
@ -3732,6 +3945,10 @@ prompt_java_version() {
|
|
|
|
|
_p9k_prompt_segment "$0" "red" "white" "JAVA_ICON" 0 '' "${v//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_java_version_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[java]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prompt_azure() {
|
|
|
|
|
(( $+commands[az] )) || return
|
|
|
|
|
local cfg=${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json
|
|
|
|
@ -3748,6 +3965,10 @@ prompt_azure() {
|
|
|
|
|
_p9k_prompt_segment "$0" "blue" "white" "AZURE_ICON" 0 '' "${_p9k_cache_val[1]//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_azure_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[az]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prompt_gcloud() {
|
|
|
|
|
unset P9K_GCLOUD_PROJECT P9K_GCLOUD_ACCOUNT
|
|
|
|
|
(( $+commands[gcloud] )) || return
|
|
|
|
@ -3760,6 +3981,10 @@ prompt_gcloud() {
|
|
|
|
|
_p9k_prompt_segment "$0" "blue" "white" "GCLOUD_ICON" 0 '' "${P9K_GCLOUD_ACCOUNT//\%/%%}:${P9K_GCLOUD_PROJECT//\%/%%}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_gcloud_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[gcloud]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prompt_google_app_cred() {
|
|
|
|
|
unset P9K_GOOGLE_APP_CRED_{TYPE,PROJECT_ID,CLIENT_EMAIL}
|
|
|
|
|
[[ -n $GOOGLE_APPLICATION_CREDENTIALS ]] || return
|
|
|
|
@ -3790,6 +4015,10 @@ prompt_google_app_cred() {
|
|
|
|
|
_p9k_prompt_segment "$0$_p9k_cache_val[6]" "blue" "white" "GCLOUD_ICON" 0 '' "$_p9k_cache_val[5]"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_google_app_cred_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${GOOGLE_APPLICATION_CREDENTIALS:+$commands[jq]}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
typeset -gra __p9k_nordvpn_tag=(
|
|
|
|
|
P9K_NORDVPN_STATUS
|
|
|
|
|
P9K_NORDVPN_TECHNOLOGY
|
|
|
|
@ -3891,9 +4120,18 @@ function prompt_nordvpn() {
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_nordvpn_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[nordvpn]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function prompt_ranger() {
|
|
|
|
|
[[ -n $RANGER_LEVEL ]] || return
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0 $_p9k_color1 yellow RANGER_ICON 0 '' $RANGER_LEVEL
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_ranger_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$RANGER_LEVEL'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function instant_prompt_ranger() {
|
|
|
|
@ -3901,8 +4139,13 @@ function instant_prompt_ranger() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function prompt_midnight_commander() {
|
|
|
|
|
[[ -n $MC_TMPDIR ]] || return
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0 $_p9k_color1 yellow MIDNIGHT_COMMANDER_ICON 0 '' ''
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_midnight_commander_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$MC_TMPDIR'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function instant_prompt_midnight_commander() {
|
|
|
|
@ -3910,8 +4153,13 @@ function instant_prompt_midnight_commander() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function prompt_nnn() {
|
|
|
|
|
[[ $NNNLVL == (0|) ]] && return
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0 6 $_p9k_color1 NNN_ICON 0 '' $NNNLVL
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_nnn_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${NNNLVL:#0}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function instant_prompt_nnn() {
|
|
|
|
@ -3919,8 +4167,13 @@ function instant_prompt_nnn() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function prompt_vim_shell() {
|
|
|
|
|
[[ -n $VIMRUNTIME ]] || return
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0 green $_p9k_color1 VIM_ICON 0 '' ''
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_vim_shell_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$VIMRUNTIME'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function instant_prompt_vim_shell() {
|
|
|
|
@ -3940,6 +4193,10 @@ function prompt_terraform() {
|
|
|
|
|
[[ $ws == default ]] || _p9k_prompt_segment $0 $_p9k_color1 blue TERRAFORM_ICON 0 '' $ws
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_terraform_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[terraform]'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function prompt_proxy() {
|
|
|
|
|
local -U p=(
|
|
|
|
|
$all_proxy $http_proxy $https_proxy $ftp_proxy
|
|
|
|
@ -3950,14 +4207,20 @@ function prompt_proxy() {
|
|
|
|
|
_p9k_prompt_segment $0 $_p9k_color1 blue PROXY_ICON 0 '' "$p[1]"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_proxy_init() {
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$all_proxy$http_proxy$https_proxy$ftp_proxy$ALL_PROXY$HTTP_PROXY$HTTPS_PROXY$FTP_PROXY'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function prompt_direnv() {
|
|
|
|
|
if [[ -n $DIRENV_DIR ]]; then
|
|
|
|
|
_p9k_prompt_segment $0 $_p9k_color1 yellow DIRENV_ICON 0 '' ''
|
|
|
|
|
elif [[ $precmd_functions[-1] != _p9k_precmd ]]; then
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_prompt_segment $0 $_p9k_color1 yellow DIRENV_ICON 0 '$DIRENV_DIR' ''
|
|
|
|
|
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_direnv_init() {
|
|
|
|
|
# DIRENV_DIR is set in a precmd hook. If our hook isn't the last, DIRENV_DIR might
|
|
|
|
|
# still get set before prompt is expanded.
|
|
|
|
|
_p9k_prompt_segment $0 $_p9k_color1 yellow DIRENV_ICON 0 '$DIRENV_DIR' ''
|
|
|
|
|
fi
|
|
|
|
|
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${DIRENV_DIR:-${precmd_functions[-1]:#_p9k_precmd}}'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function instant_prompt_direnv() {
|
|
|
|
@ -4066,33 +4329,6 @@ _p9k_prompt_net_iface_sync() {
|
|
|
|
|
_p9k_worker_reply $REPLY
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_build_segment() {
|
|
|
|
|
_p9k_segment_name=${_p9k_segment_name%_joined}
|
|
|
|
|
local disabled=_POWERLEVEL9K_${(U)_p9k_segment_name}_DISABLED_DIR_PATTERN
|
|
|
|
|
[[ $_p9k__pwd == ${(P)~disabled} ]] && return
|
|
|
|
|
if [[ $_p9k_segment_name == custom_* ]]; then
|
|
|
|
|
_p9k_custom_prompt $_p9k_segment_name[8,-1]
|
|
|
|
|
elif (( $+functions[prompt_$_p9k_segment_name] )); then
|
|
|
|
|
prompt_$_p9k_segment_name
|
|
|
|
|
fi
|
|
|
|
|
((++_p9k_segment_index))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_build_instant_segment() {
|
|
|
|
|
_p9k_segment_name=${_p9k_segment_name%_joined}
|
|
|
|
|
local disabled=_POWERLEVEL9K_${(U)_p9k_segment_name}_DISABLED_DIR_PATTERN
|
|
|
|
|
[[ $_p9k__pwd == ${(P)~disabled} ]] && return
|
|
|
|
|
if (( $+functions[instant_prompt_$_p9k_segment_name] )); then
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_non_hermetic_expansion=0
|
|
|
|
|
instant_prompt_$_p9k_segment_name
|
|
|
|
|
if (( _p9k_non_hermetic_expansion )); then
|
|
|
|
|
_p9k__prompt[len+1,-1]=
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
((++_p9k_segment_index))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _p9k_set_prompt() {
|
|
|
|
|
local ifs=$IFS
|
|
|
|
|
IFS=$' \t\n\0'
|
|
|
|
@ -4117,9 +4353,42 @@ function _p9k_set_prompt() {
|
|
|
|
|
_p9k__prompt=
|
|
|
|
|
_p9k_segment_index=right_idx
|
|
|
|
|
_p9k_prompt_side=right
|
|
|
|
|
for _p9k_segment_name in ${(@0)_p9k_line_segments_right[_p9k_line_index]}; do
|
|
|
|
|
_p9k_build_${1}segment
|
|
|
|
|
if [[ $1 == instant_ ]]; then
|
|
|
|
|
for _p9k_segment_name in ${${(0)_p9k_line_segments_right[_p9k_line_index]}%_joined}; do
|
|
|
|
|
if (( $+functions[instant_prompt_$_p9k_segment_name] )); then
|
|
|
|
|
local disabled=_POWERLEVEL9K_${(U)_p9k_segment_name}_DISABLED_DIR_PATTERN
|
|
|
|
|
if [[ $_p9k__pwd != ${(P)~disabled} ]]; then
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_non_hermetic_expansion=0
|
|
|
|
|
instant_prompt_$_p9k_segment_name
|
|
|
|
|
if (( _p9k_non_hermetic_expansion )); then
|
|
|
|
|
_p9k__prompt[len+1,-1]=
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
((++_p9k_segment_index))
|
|
|
|
|
done
|
|
|
|
|
else
|
|
|
|
|
for _p9k_segment_name in ${${(0)_p9k_line_segments_right[_p9k_line_index]}%_joined}; do
|
|
|
|
|
local cond=$_p9k__segment_cond_right[_p9k_segment_index]
|
|
|
|
|
if [[ -z $cond || -n ${(e)cond} ]]; then
|
|
|
|
|
local disabled=_POWERLEVEL9K_${(U)_p9k_segment_name}_DISABLED_DIR_PATTERN
|
|
|
|
|
if [[ $_p9k__pwd != ${(P)~disabled} ]]; then
|
|
|
|
|
local val=$_p9k__segment_val_right[_p9k_segment_index]
|
|
|
|
|
if [[ -n $val ]]; then
|
|
|
|
|
_p9k__prompt+=$val
|
|
|
|
|
else
|
|
|
|
|
if [[ $_p9k_segment_name == custom_* ]]; then
|
|
|
|
|
_p9k_custom_prompt $_p9k_segment_name[8,-1]
|
|
|
|
|
elif (( $+functions[prompt_$_p9k_segment_name] )); then
|
|
|
|
|
prompt_$_p9k_segment_name
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
((++_p9k_segment_index))
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
_p9k__prompt=${${_p9k__prompt//$' %{\b'/'%{%G'}//$' \b'}
|
|
|
|
|
right_idx=_p9k_segment_index
|
|
|
|
|
if [[ -n $_p9k__prompt || $_p9k_line_never_empty_right[_p9k_line_index] == 1 ]]; then
|
|
|
|
@ -4130,9 +4399,42 @@ function _p9k_set_prompt() {
|
|
|
|
|
_p9k__prompt=$_p9k_line_prefix_left[_p9k_line_index]
|
|
|
|
|
_p9k_segment_index=left_idx
|
|
|
|
|
_p9k_prompt_side=left
|
|
|
|
|
for _p9k_segment_name in ${(@0)_p9k_line_segments_left[_p9k_line_index]}; do
|
|
|
|
|
_p9k_build_${1}segment
|
|
|
|
|
if [[ $1 == instant_ ]]; then
|
|
|
|
|
for _p9k_segment_name in ${${(0)_p9k_line_segments_left[_p9k_line_index]}%_joined}; do
|
|
|
|
|
if (( $+functions[instant_prompt_$_p9k_segment_name] )); then
|
|
|
|
|
local disabled=_POWERLEVEL9K_${(U)_p9k_segment_name}_DISABLED_DIR_PATTERN
|
|
|
|
|
if [[ $_p9k__pwd != ${(P)~disabled} ]]; then
|
|
|
|
|
local -i len=$#_p9k__prompt
|
|
|
|
|
_p9k_non_hermetic_expansion=0
|
|
|
|
|
instant_prompt_$_p9k_segment_name
|
|
|
|
|
if (( _p9k_non_hermetic_expansion )); then
|
|
|
|
|
_p9k__prompt[len+1,-1]=
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
((++_p9k_segment_index))
|
|
|
|
|
done
|
|
|
|
|
else
|
|
|
|
|
for _p9k_segment_name in ${${(0)_p9k_line_segments_left[_p9k_line_index]}%_joined}; do
|
|
|
|
|
local cond=$_p9k__segment_cond_left[_p9k_segment_index]
|
|
|
|
|
if [[ -z $cond || -n ${(e)cond} ]]; then
|
|
|
|
|
local disabled=_POWERLEVEL9K_${(U)_p9k_segment_name}_DISABLED_DIR_PATTERN
|
|
|
|
|
if [[ $_p9k__pwd != ${(P)~disabled} ]]; then
|
|
|
|
|
local val=$_p9k__segment_val_left[_p9k_segment_index]
|
|
|
|
|
if [[ -n $val ]]; then
|
|
|
|
|
_p9k__prompt+=$val
|
|
|
|
|
else
|
|
|
|
|
if [[ $_p9k_segment_name == custom_* ]]; then
|
|
|
|
|
_p9k_custom_prompt $_p9k_segment_name[8,-1]
|
|
|
|
|
elif (( $+functions[prompt_$_p9k_segment_name] )); then
|
|
|
|
|
prompt_$_p9k_segment_name
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
((++_p9k_segment_index))
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
_p9k__prompt=${${_p9k__prompt//$' %{\b'/'%{%G'}//$' \b'}
|
|
|
|
|
left_idx=_p9k_segment_index
|
|
|
|
|
_p9k__prompt+=$_p9k_line_suffix_left[_p9k_line_index]
|
|
|
|
@ -4991,6 +5293,10 @@ typeset -g _p9k__param_pat
|
|
|
|
|
typeset -g _p9k__param_sig
|
|
|
|
|
|
|
|
|
|
_p9k_init_vars() {
|
|
|
|
|
typeset -ga _p9k__segment_cond_left
|
|
|
|
|
typeset -ga _p9k__segment_cond_right
|
|
|
|
|
typeset -ga _p9k__segment_val_left
|
|
|
|
|
typeset -ga _p9k__segment_val_right
|
|
|
|
|
typeset -ga _p9k_show_on_command
|
|
|
|
|
typeset -g _p9k__last_buffer
|
|
|
|
|
typeset -ga _p9k__last_commands
|
|
|
|
@ -5098,7 +5404,6 @@ _p9k_init_vars() {
|
|
|
|
|
typeset -g _p9k__last_prompt_pwd
|
|
|
|
|
typeset -gA _p9k_display_k
|
|
|
|
|
typeset -ga _p9k__display_v
|
|
|
|
|
typeset -ga _p9k_async_segments_init
|
|
|
|
|
typeset -ga _p9k__async_segments_compute
|
|
|
|
|
|
|
|
|
|
typeset -gA _p9k__dotnet_stat_cache
|
|
|
|
@ -6376,19 +6681,6 @@ function _p9k_init_cacheable() {
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
local -U segments=(
|
|
|
|
|
${_POWERLEVEL9K_LEFT_PROMPT_ELEMENTS%_joined}
|
|
|
|
|
${_POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS%_joined})
|
|
|
|
|
if [[ -n $_POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE ||
|
|
|
|
|
-n $_POWERLEVEL9K_IP_INTERFACE ||
|
|
|
|
|
-n $_POWERLEVEL9K_VPN_IP_INTERFACE ]]; then
|
|
|
|
|
segments+=net_iface
|
|
|
|
|
fi
|
|
|
|
|
for elem in $segments; do
|
|
|
|
|
local f_init=_p9k_prompt_${elem}_init
|
|
|
|
|
(( $+functions[$f_init] )) && _p9k_async_segments_init+=$f_init
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [[ $_POWERLEVEL9K_TRANSIENT_PROMPT != off ]]; then
|
|
|
|
|
_p9k_transient_prompt='%b%k%s%u%F{%(?.'
|
|
|
|
|
_p9k_color prompt_prompt_char_OK_VIINS FOREGROUND 76
|
|
|
|
@ -6630,10 +6922,34 @@ _p9k_init() {
|
|
|
|
|
_p9k_init_vars
|
|
|
|
|
_p9k_restore_state || _p9k_init_cacheable
|
|
|
|
|
|
|
|
|
|
local f_init
|
|
|
|
|
for f_init in $_p9k_async_segments_init; do
|
|
|
|
|
$f_init continue
|
|
|
|
|
local -i i
|
|
|
|
|
local elem
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_side=left
|
|
|
|
|
_p9k_segment_index=1
|
|
|
|
|
for i in {1..$#_p9k_line_segments_left}; do
|
|
|
|
|
for elem in ${${(@0)_p9k_line_segments_left[i]}%_joined}; do
|
|
|
|
|
local f_init=_p9k_prompt_${elem}_init
|
|
|
|
|
(( $+functions[$f_init] )) && $f_init
|
|
|
|
|
(( ++_p9k_segment_index ))
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
_p9k_prompt_side=right
|
|
|
|
|
_p9k_segment_index=1
|
|
|
|
|
for i in {1..$#_p9k_line_segments_right}; do
|
|
|
|
|
for elem in ${${(@0)_p9k_line_segments_right[i]}%_joined}; do
|
|
|
|
|
local f_init=_p9k_prompt_${elem}_init
|
|
|
|
|
(( $+functions[$f_init] )) && $f_init
|
|
|
|
|
(( ++_p9k_segment_index ))
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [[ -n $_POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE ||
|
|
|
|
|
-n $_POWERLEVEL9K_IP_INTERFACE ||
|
|
|
|
|
-n $_POWERLEVEL9K_VPN_IP_INTERFACE ]]; then
|
|
|
|
|
_p9k_prompt_net_iface_init
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
(( $#_p9k__async_segments_compute )) && _p9k_worker_start
|
|
|
|
|
|
|
|
|
|