aboutsummaryrefslogtreecommitdiff
path: root/internal/wizard.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'internal/wizard.zsh')
-rwxr-xr-xinternal/wizard.zsh450
1 files changed, 250 insertions, 200 deletions
diff --git a/internal/wizard.zsh b/internal/wizard.zsh
index a8382eef..651ffa1b 100755
--- a/internal/wizard.zsh
+++ b/internal/wizard.zsh
@@ -63,18 +63,18 @@ typeset -r vertical_bar='|'
typeset -r slanted_bar='\uE0BD'
typeset -ra lean_left=(
- '' '${extra_icons[1]:+$extra_icons[1] }%31F$extra_icons[2]%B%39F~%b%31F/%B%39Fsrc%b%f $prefixes[1]%76F$extra_icons[3]master%f '
- '' '%76F❯%f █'
+ '%$frame_color[$color]F╭─ ' '${extra_icons[1]:+$extra_icons[1] }%31F$extra_icons[2]%B%39F~%b%31F/%B%39Fsrc%b%f $prefixes[1]%76F$extra_icons[3]master%f '
+ '%$frame_color[$color]F╰─ ' '%76F❯%f ${buffer:-█}'
)
typeset -ra lean_right=(
- ' $prefixes[2]%101F$extra_icons[4]5s%f${show_time:+ $prefixes[3]%66F$extra_icons[5]16:23:42%f}' ''
- '' ''
+ ' $prefixes[2]%101F$extra_icons[4]5s%f${show_time:+ $prefixes[3]%66F$extra_icons[5]16:23:42%f}' ' %$frame_color[$color]F─╮%f'
+ '' ' %$frame_color[$color]F─╯%f'
)
typeset -ra classic_left=(
'%$frame_color[$color]F╭─' '%F{$bg_color[$color]}$left_tail%K{$bg_color[$color]} ${extra_icons[1]:+$extra_icons[1]%K{$bg_color[$color]\} %$sep_color[$color]F$left_subsep%f }%31F$extra_icons[2]%B%39F~%b%K{$bg_color[$color]}%31F/%B%39Fsrc%b%K{$bg_color[$color]} %$sep_color[$color]F$left_subsep%f %$prefix_color[$color]F$prefixes[1]%76F$extra_icons[3]master %k%$bg_color[$color]F$left_head%f'
- '%$frame_color[$color]F╰─' '%f █'
+ '%$frame_color[$color]F╰─' '%f ${buffer:-█}'
)
typeset -ra classic_right=(
@@ -84,7 +84,7 @@ typeset -ra classic_right=(
typeset -ra pure_left=(
'' '%4F~/src%f %242Fmaster%f %3F5s%f'
- '' '%5F❯%f █'
+ '' '%5F❯%f ${buffer:-█}'
)
typeset -ra pure_right=(
@@ -94,7 +94,7 @@ typeset -ra pure_right=(
typeset -ra rainbow_left=(
'%$frame_color[$color]F╭─' '%F{${${extra_icons[1]:+0}:-4}}$left_tail${extra_icons[1]:+%K{0\} $extra_icons[1] %K{4\}%0F$left_sep}%K{4}%254F $extra_icons[2]%B%255F~%b%K{4}%254F/%B%255Fsrc%b%K{4} %K{2}%4F$left_sep %0F$prefixes[1]$extra_icons[3]master %k%2F$left_head%f'
- '%$frame_color[$color]F╰─' '%f █'
+ '%$frame_color[$color]F╰─' '%f ${buffer:-█}'
)
typeset -ra rainbow_right=(
@@ -116,7 +116,7 @@ function prompt_length() {
typeset ${${(%):-$1%$m(l.x.y)}[-1]}=$m
done
fi
- print $x
+ REPLY=$x
}
function print_prompt() {
@@ -124,17 +124,19 @@ function print_prompt() {
local right=${style}_right
left=("${(@P)left}")
right=("${(@P)right}")
+ (( disable_rprompt )) && right=()
eval "left=(${(@)left:/(#b)(*)/\"$match[1]\"})"
eval "right=(${(@)right:/(#b)(*)/\"$match[1]\"})"
if (( num_lines == 1)); then
left=($left[2] $left[4])
right=($right[1] $right[3])
else
- (( left_frame )) || left=('' $left[2] '' '%76F❯%f █')
+ (( left_frame )) || left=('' $left[2] '' "%76F❯%f ${buffer:-█}")
(( right_frame )) || right=($right[1] '' '' '')
fi
local -i right_indent=prompt_indent
- local -i width=$(prompt_length ${(g::):-$left[1]$left[2]$right[1]$right[2]})
+ prompt_length ${(g::):-$left[1]$left[2]$right[1]$right[2]}
+ local -i width=REPLY
while (( wizard_columns - width <= prompt_indent + right_indent )); do
(( --right_indent ))
done
@@ -142,7 +144,8 @@ function print_prompt() {
for ((i = 1; i < $#left; i+=2)); do
local l=${(g::):-$left[i]$left[i+1]}
local r=${(g::):-$right[i]$right[i+1]}
- local -i gap=$((wizard_columns - prompt_indent - right_indent - $(prompt_length $l$r)))
+ prompt_length $l$r
+ local -i gap=$((wizard_columns - prompt_indent - right_indent - REPLY))
(( num_lines == 2 && i == 1 )) && local fill=$gap_char || local fill=' '
print -n -- ${(pl:$prompt_indent:: :)}
print -nP -- $l
@@ -169,8 +172,8 @@ function flowing() {
shift $((OPTIND-1))
local line word lines=()
for word in "$@"; do
- local n=$(prompt_length ${(g::):-"$line $word"})
- if (( n > wizard_columns )); then
+ prompt_length ${(g::):-"$line $word"}
+ if (( REPLY > wizard_columns )); then
[[ -z $line ]] || lines+=$line
line=
fi
@@ -183,8 +186,8 @@ function flowing() {
done
[[ -z $line ]] || lines+=$line
for line in $lines; do
- local n=$(prompt_length ${(g::)line})
- (( centered && n < wizard_columns )) && print -n -- ${(pl:$(((wizard_columns - n) / 2)):: :)}
+ prompt_length ${(g::)line}
+ (( centered && REPLY < wizard_columns )) && print -n -- ${(pl:$(((wizard_columns - REPLY) / 2)):: :)}
print -P -- $line
done
}
@@ -264,7 +267,7 @@ function can_install_font() {
[[ -w ~ ]] || return
fi
terminal=Termux
- return
+ return 0
fi
if [[ "$(uname)" == Darwin && $TERM_PROGRAM == iTerm.app ]]; then
(( $+commands[curl] )) || return
@@ -288,7 +291,7 @@ function can_install_font() {
[[ $font == (#b)*' '(<->) ]] || return
iterm2_font_size=$match[1]
terminal=iTerm2
- return
+ return 0
fi
return 1
}
@@ -339,6 +342,9 @@ function install_font() {
'"Use Non-ASCII Font"' 0
'"Ambiguous Double Width"' 0
'"Terminal Type"' '"xterm-256color"'
+ '"Minimum Contrast"' 0.000000
+ '"ASCII Anti Aliased"' 1
+ '"Non-ASCII Anti Aliased"' 1
)
for k v in $settings; do
run_command "" /usr/libexec/PlistBuddy -c \
@@ -503,7 +509,7 @@ function ask_debian() {
function ask_narrow_icons() {
if [[ $POWERLEVEL9K_MODE == (powerline|compatible) ]]; then
cap_narrow_icons=0
- return
+ return 0
fi
local text="X"
text+="%1F${icons[VCS_GIT_ICON]// }%fX"
@@ -552,7 +558,7 @@ function ask_style() {
print -n $nl
print -P "%B(1) Lean.%b"
print -n $nl
- style=lean print_prompt
+ style=lean left_frame=0 right_frame=0 print_prompt
print -P ""
print -P "%B(2) Classic.%b"
print -n $nl
@@ -575,7 +581,7 @@ function ask_style() {
case $key in
q) quit;;
r) return 1;;
- 1) style=lean; options+=lean; break;;
+ 1) style=lean; left_frame=0; right_frame=0; options+=lean; break;;
2) style=classic; options+=classic; break;;
3) style=rainbow; options+=rainbow; break;;
4) style=pure; empty_line=1; options+=pure; break;;
@@ -627,8 +633,8 @@ function ask_color() {
done
}
-function ask_frame_color() {
- [[ $style != rainbow || $num_lines == 1 ]] && return
+function ask_ornaments_color() {
+ [[ $style != (rainbow|lean) || $num_lines == 1 ]] && return
[[ $gap_char == ' ' && $left_frame == 0 && $right_frame == 0 ]] && return
if [[ $LINES -lt 26 ]]; then
local nl=''
@@ -637,7 +643,7 @@ function ask_frame_color() {
fi
while true; do
clear
- flowing -c "%BFrame Color%b"
+ flowing -c "%BOrnaments Color%b"
print -n $nl
print -P "%B(1) Lightest.%b"
print -n $nl
@@ -675,7 +681,7 @@ function ask_frame_color() {
function ask_time() {
if (( wizard_columns < 80 )); then
show_time=
- return
+ return 0
fi
while true; do
@@ -751,7 +757,7 @@ function os_icon_name() {
function ask_extra_icons() {
if [[ $POWERLEVEL9K_MODE == (powerline|compatible) ]]; then
- return
+ return 0
fi
local os_icon=${(g::)icons[$(os_icon_name)]}
local dir_icon=${(g::)icons[HOME_SUB_ICON]}
@@ -808,7 +814,7 @@ function ask_prefixes() {
if (( wizard_columns < 80 )); then
prefixes=("$concise[@]")
options+=concise
- return
+ return 0
fi
while true; do
clear
@@ -839,7 +845,7 @@ function ask_prefixes() {
function ask_separators() {
if [[ $style != (classic|rainbow) || $cap_diamond != 1 ]]; then
- return
+ return 0
fi
if [[ $POWERLEVEL9K_MODE == nerdfont-complete && $LINES -lt 26 ]]; then
local nl=''
@@ -926,7 +932,7 @@ function ask_separators() {
function ask_heads() {
if [[ $style != (classic|rainbow) || $cap_diamond != 1 ]]; then
- return
+ return 0
fi
if [[ $POWERLEVEL9K_MODE == nerdfont-complete && $LINES -lt 26 ]]; then
local nl=''
@@ -995,7 +1001,7 @@ function ask_heads() {
function ask_tails() {
if [[ $style != (classic|rainbow) ]]; then
- return
+ return 0
fi
if [[ $POWERLEVEL9K_MODE == nerdfont-complete && $LINES -lt 31 ]]; then
local nl=''
@@ -1105,7 +1111,7 @@ function ask_num_lines() {
function ask_gap_char() {
if [[ $num_lines != 2 ]]; then
- return
+ return 0
fi
while true; do
clear
@@ -1140,8 +1146,8 @@ function ask_gap_char() {
}
function ask_frame() {
- if [[ $style != (classic|rainbow) || $num_lines != 2 ]]; then
- return
+ if [[ $style != (classic|rainbow|lean) || $num_lines != 2 ]]; then
+ return 0
fi
(( LINES >= 26 )) && local nl=$'\n' || local nl=''
@@ -1217,7 +1223,7 @@ function ask_instant_prompt() {
autoload -Uz is-at-least
if ! is-at-least 5.4; then
instant_prompt=off
- return
+ return 0
fi
if (( LINES < 24 )); then
local nl=''
@@ -1257,27 +1263,53 @@ function ask_instant_prompt() {
done
}
-function ask_confirm() {
+function ask_transient_prompt() {
+ local disable_rprompt=$((num_lines == 1))
+ local prompt_char='%76F❯%f'
+ [[ $style == pure ]] && prompt_char='%5F❯%f'
while true; do
clear
- flowing -c "%BLooks good?%b"
- print -P ""
- print_prompt
- (( empty_line )) && print -P ""
- print_prompt
+ flowing -c "%BEnable Transient Prompt?%b"
print -P ""
print -P "%B(y) Yes.%b"
+ if (( LINES >= 25 || num_lines == 1 )); then
+ print -P ""
+ print -P "${(pl:$prompt_indent:: :)}$prompt_char %2Fgit%f pull"
+ elif (( LINES < 23 )); then
+ print -P ""
+ else
+ print -P "${(pl:$prompt_indent:: :)}$prompt_char %2Fgit%f pull"
+ fi
+ print -P "${(pl:$prompt_indent:: :)}$prompt_char %2Fgit%f branch x"
+ (( empty_line )) && echo
+ buffer="%2Fgit%f checkout x█" print_prompt
+ print -P ""
+ print -P "%B(n) No.%b"
+ if (( LINES >= 25 || num_lines == 1 )); then
+ print -P ""
+ buffer="%2Fgit%f pull" print_prompt
+ (( empty_line )) && echo
+ elif (( LINES < 23 )); then
+ print -P ""
+ else
+ buffer="%2Fgit%f pull" print_prompt
+ (( empty_line )) && echo
+ fi
+ buffer="%2Fgit%f branch x" print_prompt
+ (( empty_line )) && echo
+ buffer="%2Fgit%f checkout x█" print_prompt
print -P ""
print -P "(r) Restart from the beginning."
print -P "(q) Quit and do nothing."
print -P ""
local key=
- read -k key${(%):-"?%BChoice [yrq]: %b"} || quit -c
+ read -k key${(%):-"?%BChoice [ynrq]: %b"} || quit -c
case $key in
q) quit;;
r) return 1;;
- y) break;;
+ y) transient_prompt=1; break;;
+ n) transient_prompt=0; break;;
esac
done
}
@@ -1286,7 +1318,7 @@ function ask_config_overwrite() {
config_backup=
config_backup_u=0
if [[ ! -e $__p9k_cfg_path ]]; then
- return
+ return 0
fi
while true; do
clear
@@ -1368,22 +1400,14 @@ function ask_zshrc_edit() {
cp -p $__p9k_zshrc $zshrc_backup || quit -c
print -r -- $zshrc_content >$zshrc_backup || quit -c
zshrc_backup_u=${${TMPDIR:+\$TMPDIR}:-/tmp}/${(q-)zshrc_backup:t}
- break
fi
+ break
;;
esac
done
}
function generate_config() {
- if [[ $style == pure ]]; then
- if [[ -e $__p9k_cfg_path ]]; then
- unlink $__p9k_cfg_path || return
- fi
- cp $__p9k_root_dir/config/p10k-$style.zsh $__p9k_cfg_path || return
- return
- fi
-
local base && base="$(<$__p9k_root_dir/config/p10k-$style.zsh)" || return
local lines=("${(@f)base}")
@@ -1399,154 +1423,180 @@ function generate_config() {
lines=("${(@)lines//$1/$2}")
}
- sub MODE $POWERLEVEL9K_MODE
+ if [[ $style != pure ]]; then
+ sub MODE $POWERLEVEL9K_MODE
+
+ if (( cap_narrow_icons )); then
+ uncomment 'typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION'
+ sub VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER// }'"
+ sub BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER// }'"
+ sub VPN_IP_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER// }'"
+ sub OS_ICON_CONTENT_EXPANSION "'%B\${P9K_CONTENT// }'"
+ else
+ sub VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER}'"
+ sub BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER}'"
+ sub VPN_IP_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER}'"
+ fi
- if (( cap_narrow_icons )); then
- uncomment 'typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION'
- sub VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER// }'"
- sub BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER// }'"
- sub VPN_IP_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER// }'"
- sub OS_ICON_CONTENT_EXPANSION "'%B\${P9K_CONTENT// }'"
- else
- sub VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER}'"
- sub BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER}'"
- sub VPN_IP_VISUAL_IDENTIFIER_EXPANSION "'\${P9K_VISUAL_IDENTIFIER}'"
- fi
+ if [[ $POWERLEVEL9K_MODE == (compatible|powerline) ]]; then
+ # Many fonts don't have the default icons.
+ [[ $POWERLEVEL9K_MODE == compatible ]] && local error='х' || local error='✘'
+ uncomment 'typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION'
+ sub STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION "'$error'"
+ uncomment 'typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION'
+ sub STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION "'$error'"
+ uncomment 'typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION'
+ sub STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION "'$error'"
+ uncomment 'typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION'
+ sub DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION "'∅'"
+ uncomment 'typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION'
+ sub TERRAFORM_VISUAL_IDENTIFIER_EXPANSION "'tf'"
+ uncomment 'typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION'
+ sub RANGER_VISUAL_IDENTIFIER_EXPANSION "'▲'"
+ uncomment 'typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION'
+ sub KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION "'○'"
+ uncomment 'typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION'
+ sub AZURE_VISUAL_IDENTIFIER_EXPANSION "'az'"
+ uncomment 'typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION'
+ sub AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION "'eb'"
+ sub BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION "'≡'"
+ fi
- if [[ $POWERLEVEL9K_MODE == (compatible|powerline) ]]; then
- # Many fonts don't have the default icons.
- [[ $POWERLEVEL9K_MODE == compatible ]] && local error='х' || local error='✘'
- uncomment 'typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION'
- sub STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION "'$error'"
- uncomment 'typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION'
- sub STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION "'$error'"
- uncomment 'typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION'
- sub STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION "'$error'"
- uncomment 'typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION'
- sub DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION "'∅'"
- uncomment 'typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION'
- sub TERRAFORM_VISUAL_IDENTIFIER_EXPANSION "'tf'"
- uncomment 'typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION'
- sub RANGER_VISUAL_IDENTIFIER_EXPANSION "'▲'"
- uncomment 'typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION'
- sub KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION "'○'"
- uncomment 'typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION'
- sub AZURE_VISUAL_IDENTIFIER_EXPANSION "'az'"
- uncomment 'typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION'
- sub AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION "'eb'"
- sub BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION "'≡'"
- fi
+ if [[ $POWERLEVEL9K_MODE == (awesome-patched|awesome-fontconfig) && $cap_python == 0 ]]; then
+ uncomment 'typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION'
+ uncomment 'typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION'
+ uncomment 'typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION'
+ uncomment 'typeset -g POWERLEVEL9K_PYTHON_ICON'
+ sub VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION "'🐍'"
+ sub ANACONDA_VISUAL_IDENTIFIER_EXPANSION "'🐍'"
+ sub PYENV_VISUAL_IDENTIFIER_EXPANSION "'🐍'"
+ sub PYTHON_ICON "'🐍'"
+ fi
- if [[ $POWERLEVEL9K_MODE == (awesome-patched|awesome-fontconfig) && $cap_python == 0 ]]; then
- uncomment 'typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION'
- uncomment 'typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION'
- uncomment 'typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION'
- uncomment 'typeset -g POWERLEVEL9K_PYTHON_ICON'
- sub VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION "'🐍'"
- sub ANACONDA_VISUAL_IDENTIFIER_EXPANSION "'🐍'"
- sub PYENV_VISUAL_IDENTIFIER_EXPANSION "'🐍'"
- sub PYTHON_ICON "'🐍'"
- fi
+ if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
+ sub BATTERY_STAGES "\$'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'"
+ fi
- if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
- sub BATTERY_STAGES "\$'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'"
- fi
+ if [[ $style == (classic|rainbow) ]]; then
+ if [[ $style == classic ]]; then
+ sub BACKGROUND $bg_color[$color]
+ sub LEFT_SUBSEGMENT_SEPARATOR "'%$sep_color[$color]F$left_subsep'"
+ sub RIGHT_SUBSEGMENT_SEPARATOR "'%$sep_color[$color]F$right_subsep'"
+ sub VCS_LOADING_FOREGROUND $sep_color[$color]
+ rep '%248F' "%$prefix_color[$color]F"
+ else
+ sub LEFT_SUBSEGMENT_SEPARATOR "'$left_subsep'"
+ sub RIGHT_SUBSEGMENT_SEPARATOR "'$right_subsep'"
+ fi
+ sub MULTILINE_FIRST_PROMPT_GAP_FOREGROUND $frame_color[$color]
+ sub MULTILINE_FIRST_PROMPT_PREFIX "'%$frame_color[$color]F╭─'"
+ sub MULTILINE_NEWLINE_PROMPT_PREFIX "'%$frame_color[$color]F├─'"
+ sub MULTILINE_LAST_PROMPT_PREFIX "'%$frame_color[$color]F╰─'"
+ sub MULTILINE_FIRST_PROMPT_SUFFIX "'%$frame_color[$color]F─╮'"
+ sub MULTILINE_NEWLINE_PROMPT_SUFFIX "'%$frame_color[$color]F─┤'"
+ sub MULTILINE_LAST_PROMPT_SUFFIX "'%$frame_color[$color]F─╯'"
+ sub LEFT_SEGMENT_SEPARATOR "'$left_sep'"
+ sub RIGHT_SEGMENT_SEPARATOR "'$right_sep'"
+ sub LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL "'$left_tail'"
+ sub LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL "'$left_head'"
+ sub RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL "'$right_head'"
+ sub RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL "'$right_tail'"
+ fi
- if [[ $style == (classic|rainbow) ]]; then
- if [[ $style == classic ]]; then
- sub BACKGROUND $bg_color[$color]
- sub LEFT_SUBSEGMENT_SEPARATOR "'%$sep_color[$color]F$left_subsep'"
- sub RIGHT_SUBSEGMENT_SEPARATOR "'%$sep_color[$color]F$right_subsep'"
- sub VCS_LOADING_FOREGROUND $sep_color[$color]
- rep '%248F' "%$prefix_color[$color]F"
- else
- sub LEFT_SUBSEGMENT_SEPARATOR "'$left_subsep'"
- sub RIGHT_SUBSEGMENT_SEPARATOR "'$right_subsep'"
+ if [[ -n $show_time ]]; then
+ uncomment time
fi
- sub MULTILINE_FIRST_PROMPT_GAP_FOREGROUND $frame_color[$color]
- sub MULTILINE_FIRST_PROMPT_PREFIX "'%$frame_color[$color]F╭─'"
- sub MULTILINE_NEWLINE_PROMPT_PREFIX "'%$frame_color[$color]F├─'"
- sub MULTILINE_LAST_PROMPT_PREFIX "'%$frame_color[$color]F╰─'"
- sub MULTILINE_FIRST_PROMPT_SUFFIX "'%$frame_color[$color]F─╮'"
- sub MULTILINE_NEWLINE_PROMPT_SUFFIX "'%$frame_color[$color]F─┤'"
- sub MULTILINE_LAST_PROMPT_SUFFIX "'%$frame_color[$color]F─╯'"
- sub LEFT_SEGMENT_SEPARATOR "'$left_sep'"
- sub RIGHT_SEGMENT_SEPARATOR "'$right_sep'"
- sub LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL "'$left_tail'"
- sub LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL "'$left_head'"
- sub RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL "'$right_head'"
- sub RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL "'$right_tail'"
- fi
- if [[ -n $show_time ]]; then
- uncomment time
- fi
+ if [[ -n ${(j::)extra_icons} ]]; then
+ local branch_icon=${icons[VCS_BRANCH_ICON]// }
+ sub VCS_BRANCH_ICON "'$branch_icon '"
+ uncomment os_icon
+ else
+ uncomment 'typeset -g POWERLEVEL9K_DIR_CLASSES'
+ uncomment 'typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION'
+ uncomment 'typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION'
+ uncomment 'typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION'
+ sub VCS_VISUAL_IDENTIFIER_EXPANSION ''
+ sub COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION ''
+ sub TIME_VISUAL_IDENTIFIER_EXPANSION ''
+ fi
- if [[ -n ${(j::)extra_icons} ]]; then
- local branch_icon=${icons[VCS_BRANCH_ICON]// }
- sub VCS_BRANCH_ICON "'$branch_icon '"
- uncomment os_icon
- else
- uncomment 'typeset -g POWERLEVEL9K_DIR_CLASSES'
- uncomment 'typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION'
- uncomment 'typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION'
- uncomment 'typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION'
- sub VCS_VISUAL_IDENTIFIER_EXPANSION ''
- sub COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION ''
- sub TIME_VISUAL_IDENTIFIER_EXPANSION ''
- fi
+ if [[ -n ${(j::)prefixes} ]]; then
+ uncomment 'typeset -g POWERLEVEL9K_VCS_PREFIX'
+ uncomment 'typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX'
+ uncomment 'typeset -g POWERLEVEL9K_CONTEXT_PREFIX'
+ uncomment 'typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX'
+ uncomment 'typeset -g POWERLEVEL9K_TIME_PREFIX'
+ if [[ $style == (lean|classic) ]]; then
+ [[ $style == classic ]] && local fg="%$prefix_color[$color]F" || local fg="%f"
+ sub VCS_PREFIX "'${fg}on '"
+ sub COMMAND_EXECUTION_TIME_PREFIX "'${fg}took '"
+ sub CONTEXT_PREFIX "'${fg}with '"
+ sub KUBECONTEXT_PREFIX "'${fg}at '"
+ sub TIME_PREFIX "'${fg}at '"
+ sub CONTEXT_TEMPLATE "'%n$fg at %180F%m'"
+ sub CONTEXT_ROOT_TEMPLATE "'%n$fg at %227F%m'"
+ else
+ sub CONTEXT_TEMPLATE "'%n at %m'"
+ sub CONTEXT_ROOT_TEMPLATE "'%n at %m'"
+ fi
+ fi
- if [[ -n ${(j::)prefixes} ]]; then
- uncomment 'typeset -g POWERLEVEL9K_VCS_PREFIX'
- uncomment 'typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX'
- uncomment 'typeset -g POWERLEVEL9K_CONTEXT_PREFIX'
- uncomment 'typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX'
- uncomment 'typeset -g POWERLEVEL9K_TIME_PREFIX'
- if [[ $style == (lean|classic) ]]; then
- [[ $style == classic ]] && local fg="%$prefix_color[$color]F" || local fg="%f"
- sub VCS_PREFIX "'${fg}on '"
- sub COMMAND_EXECUTION_TIME_PREFIX "'${fg}took '"
- sub CONTEXT_PREFIX "'${fg}with '"
- sub KUBECONTEXT_PREFIX "'${fg}at '"
- sub TIME_PREFIX "'${fg}at '"
- sub CONTEXT_TEMPLATE "'%n$fg at %180F%m'"
- sub CONTEXT_ROOT_TEMPLATE "'%n$fg at %227F%m'"
- else
- sub CONTEXT_TEMPLATE "'%n at %m'"
- sub CONTEXT_ROOT_TEMPLATE "'%n at %m'"
+ if (( num_lines == 1 )); then
+ local -a tmp
+ local line
+ for line in "$lines[@]"; do
+ [[ $line == (' newline'|*'===[ Line #'*) ]] || tmp+=$line
+ done
+ lines=("$tmp[@]")
fi
- fi
- if (( num_lines == 1 )); then
- local -a tmp
- local line
- for line in "$lines[@]"; do
- [[ $line == (' newline'|*'===[ Line #'*) ]] || tmp+=$line
- done
- lines=("$tmp[@]")
- fi
+ sub MULTILINE_FIRST_PROMPT_GAP_CHAR "'$gap_char'"
- sub MULTILINE_FIRST_PROMPT_GAP_CHAR "'$gap_char'"
+ if [[ $style == (classic|rainbow) && $num_lines == 2 ]]; then
+ if (( ! right_frame )); then
+ sub MULTILINE_FIRST_PROMPT_SUFFIX ''
+ sub MULTILINE_NEWLINE_PROMPT_SUFFIX ''
+ sub MULTILINE_LAST_PROMPT_SUFFIX ''
+ fi
+ if (( ! left_frame )); then
+ sub MULTILINE_FIRST_PROMPT_PREFIX ''
+ sub MULTILINE_NEWLINE_PROMPT_PREFIX ''
+ sub MULTILINE_LAST_PROMPT_PREFIX ''
+ sub STATUS_OK false
+ sub STATUS_ERROR false
+ fi
+ fi
- if [[ $style == (classic|rainbow) && $num_lines == 2 ]]; then
- if (( ! right_frame )); then
- sub MULTILINE_FIRST_PROMPT_SUFFIX ''
- sub MULTILINE_NEWLINE_PROMPT_SUFFIX ''
- sub MULTILINE_LAST_PROMPT_SUFFIX ''
+ if [[ $style == lean ]]; then
+ sub MULTILINE_FIRST_PROMPT_GAP_FOREGROUND $frame_color[$color]
+ if (( right_frame )); then
+ sub MULTILINE_FIRST_PROMPT_SUFFIX "'%$frame_color[$color]F─╮'"
+ sub MULTILINE_NEWLINE_PROMPT_SUFFIX "'%$frame_color[$color]F─┤'"
+ sub MULTILINE_LAST_PROMPT_SUFFIX "'%$frame_color[$color]F─╯'"
+ sub RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL "' '"
+ fi
+ if (( left_frame )); then
+ sub MULTILINE_FIRST_PROMPT_PREFIX "'%$frame_color[$color]F╭─'"
+ sub MULTILINE_NEWLINE_PROMPT_PREFIX "'%$frame_color[$color]F├─'"
+ sub MULTILINE_LAST_PROMPT_PREFIX "'%$frame_color[$color]F╰─'"
+ sub LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL "' '"
+ fi
fi
- if (( ! left_frame )); then
- sub MULTILINE_FIRST_PROMPT_PREFIX ''
- sub MULTILINE_NEWLINE_PROMPT_PREFIX ''
- sub MULTILINE_LAST_PROMPT_PREFIX ''
- uncomment prompt_char
- sub STATUS_OK false
- sub STATUS_ERROR false
+
+ if [[ $style == (classic|rainbow) ]]; then
+ if (( num_lines == 2 && ! left_frame )); then
+ uncomment prompt_char
+ else
+ uncomment vi_mode
+ fi
fi
- fi
- (( empty_line )) && sub PROMPT_ADD_NEWLINE true || sub PROMPT_ADD_NEWLINE false
+ (( empty_line )) && sub PROMPT_ADD_NEWLINE true || sub PROMPT_ADD_NEWLINE false
+ fi
sub INSTANT_PROMPT $instant_prompt
+ (( transient_prompt )) && sub TRANSIENT_PROMPT always
local header=${(%):-"# Generated by Powerlevel10k configuration wizard on %D{%Y-%m-%d at %H:%M %Z}."}$'\n'
header+="# Based on romkatv/powerlevel10k/config/p10k-$style.zsh"
@@ -1630,7 +1680,7 @@ while true; do
local -i zshrc_has_cfg=0 zshrc_has_instant_prompt=0 write_zshrc=0
local POWERLEVEL9K_MODE= style= config_backup= config_backup_u= gap_char=' '
local left_subsep= right_subsep= left_tail= right_tail= left_head= right_head= show_time=
- local -i num_lines=0 empty_line=0 color=2 left_frame=1 right_frame=1
+ local -i num_lines=0 empty_line=0 color=2 left_frame=1 right_frame=1 transient_prompt=0
local -i cap_diamond=0 cap_python=0 cap_debian=0 cap_narrow_icons=0 cap_lock=0
local -a extra_icons=('' '' '')
local -a prefixes=('' '')
@@ -1690,26 +1740,26 @@ while true; do
right_head=$fade_in
fi
_p9k_init_icons
- ask_narrow_icons || continue
- ask_style || continue
+ ask_narrow_icons || continue
+ ask_style || continue
if [[ $style != pure ]]; then
- ask_color || continue
- ask_time || continue
- ask_separators || continue
- ask_heads || continue
- ask_tails || continue
- ask_num_lines || continue
- ask_gap_char || continue
- ask_frame || continue
- ask_frame_color || continue
- ask_empty_line || continue
- ask_extra_icons || continue
- ask_prefixes || continue
+ ask_color || continue
+ ask_time || continue
+ ask_separators || continue
+ ask_heads || continue
+ ask_tails || continue
+ ask_num_lines || continue
+ ask_gap_char || continue
+ ask_frame || continue
+ ask_ornaments_color || continue
+ ask_empty_line || continue
+ ask_extra_icons || continue
+ ask_prefixes || continue
fi
- ask_confirm || continue
- ask_instant_prompt || continue
- ask_config_overwrite || continue
- ask_zshrc_edit || continue
+ ask_transient_prompt || continue
+ ask_instant_prompt || continue
+ ask_config_overwrite || continue
+ ask_zshrc_edit || continue
break
done