mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-12-18 21:41:57 +00:00
add a screen for selecting background color
This commit is contained in:
parent
3ae642c788
commit
deb0093a02
2 changed files with 87 additions and 27 deletions
|
@ -129,13 +129,13 @@ fi
|
|||
|
||||
# Connect left prompt lines with these symbols. You'll probably want to use the same color
|
||||
# as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%F{240}╭─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%F{240}├─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%F{240}╰─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%242F├─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%242F╰─'
|
||||
# Connect right prompt lines with these symbols.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%F{240}─╮'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%F{240}─┤'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%F{240}─╯'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F─╮'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F─┤'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F─╯'
|
||||
|
||||
# Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or
|
||||
# '─'. The last two make it easier to see the alignment between left and right prompt and to
|
||||
|
@ -146,7 +146,7 @@ fi
|
|||
if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
|
||||
# The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE
|
||||
# ornaments defined above.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=240
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242
|
||||
# Start filler from the edge of the screen if there are no left segments on the first line.
|
||||
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
|
||||
# End filler on the edge of the screen if there are no right segments on the first line.
|
||||
|
@ -154,7 +154,7 @@ fi
|
|||
fi
|
||||
|
||||
# Default background color.
|
||||
typeset -g POWERLEVEL9K_BACKGROUND=236
|
||||
typeset -g POWERLEVEL9K_BACKGROUND=238
|
||||
|
||||
# Separator between same-color segments on the left.
|
||||
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%244F\uE0B1'
|
||||
|
|
|
@ -31,7 +31,11 @@ typeset -gri force
|
|||
|
||||
source $__p9k_root_dir/internal/configure.zsh || return
|
||||
|
||||
typeset -ri prompt_indent=4
|
||||
typeset -ri prompt_indent=2
|
||||
|
||||
typeset -ra bg_color=(238 236 234)
|
||||
typeset -ra frame_color=(242 240 238)
|
||||
typeset -ra sep_color=(244 242 240)
|
||||
|
||||
typeset -ra lean_left=(
|
||||
'' '%31F$extra_icons[1]%B%39F~%b%31F/%B%39Fpowerlevel10k%b%f $prefixes[1]%76F$extra_icons[2]master ⇡2%f '
|
||||
|
@ -44,13 +48,13 @@ typeset -ra lean_right=(
|
|||
)
|
||||
|
||||
typeset -ra classic_left=(
|
||||
'%240F╭─' '%K{236} %31F$extra_icons[1]%B%39F~%b%K{236}%31F/%B%39Fpowerlevel10k%b%K{236} %244F\uE0B1%f $prefixes[1]%76F$extra_icons[2]master ⇡2 %k%236F\uE0B0%f'
|
||||
'%240F╰─' '%f █'
|
||||
'%$frame_color[$color]F╭─' '%K{$bg_color[$color]} %31F$extra_icons[1]%B%39F~%b%K{$bg_color[$color]}%31F/%B%39Fpowerlevel10k%b%K{$bg_color[$color]} %$sep_color[$color]F\uE0B1%f $prefixes[1]%76F$extra_icons[2]master ⇡2 %k%$bg_color[$color]F\uE0B0%f'
|
||||
'%$frame_color[$color]F╰─' '%f █'
|
||||
)
|
||||
|
||||
typeset -ra classic_right=(
|
||||
'%236F\uE0B2%K{236}%f $prefixes[2]%134Fminikube ⎈ %k%f' '%240F─╮%f'
|
||||
'' '%240F─╯%f'
|
||||
'%$bg_color[$color]F\uE0B2%K{$bg_color[$color]}%f $prefixes[2]%134Fminikube ⎈ %k%f' '%$frame_color[$color]F─╮%f'
|
||||
'' '%$frame_color[$color]F─╯%f'
|
||||
)
|
||||
|
||||
function prompt_length() {
|
||||
|
@ -97,7 +101,7 @@ function print_prompt() {
|
|||
(( num_lines == 2 && i == 1 )) && local fill=$gap_char || local fill=' '
|
||||
print -n -- ${(pl:$prompt_indent:: :)}
|
||||
print -nP -- $l
|
||||
print -nP -- "%240F${(pl:$gap::$fill:)}%f"
|
||||
print -nP -- "%$frame_color[$color]F${(pl:$gap::$fill:)}%f"
|
||||
print -P -- $r
|
||||
done
|
||||
}
|
||||
|
@ -266,7 +270,7 @@ function ask_narrow_icons() {
|
|||
q) quit; return 1;;
|
||||
r) return 2;;
|
||||
y) cap_narrow_icons=1; break;;
|
||||
n) cap_narrow_icons=2; break;;
|
||||
n) cap_narrow_icons=0; break;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
@ -300,6 +304,39 @@ function ask_style() {
|
|||
done
|
||||
}
|
||||
|
||||
function ask_color() {
|
||||
[[ $style != classic ]] && return
|
||||
while true; do
|
||||
clear
|
||||
centered "%BPrompt Color%b"
|
||||
print -P ""
|
||||
print -P "%B(1) Light.%b"
|
||||
print -P ""
|
||||
color=1 print_prompt
|
||||
print -P ""
|
||||
print -P "%B(2) Medium.%b"
|
||||
print -P ""
|
||||
color=2 print_prompt
|
||||
print -P ""
|
||||
print -P "%B(3) Dark.%b"
|
||||
print -P ""
|
||||
color=3 print_prompt
|
||||
print -P ""
|
||||
print -P "(r) Restart from the beginning."
|
||||
print -P ""
|
||||
print -P "(q) Quit and do nothing."
|
||||
print -P ""
|
||||
|
||||
local key=
|
||||
read -k key${(%):-"?%BChoice [123rq]: %b"} || return 1
|
||||
case $key in
|
||||
q) quit; return 1;;
|
||||
r) return 2;;
|
||||
1|2|3) color=$key; break;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
function ask_extra_icons() {
|
||||
if [[ $POWERLEVEL9K_MODE == (powerline|compatible) ]]; then
|
||||
extra_icons=('' '')
|
||||
|
@ -603,7 +640,7 @@ function generate_config() {
|
|||
local lines=("${(@f)base}")
|
||||
|
||||
function sub() {
|
||||
lines=("${(@)lines/# typeset -g POWERLEVEL9K_$1=*/ typeset -g POWERLEVEL9K_$1=$2}")
|
||||
lines=("${(@)lines/#(#b)([[:space:]]#)typeset -g POWERLEVEL9K_$1=*/$match[1]typeset -g POWERLEVEL9K_$1=$2}")
|
||||
}
|
||||
|
||||
function uncomment() {
|
||||
|
@ -625,6 +662,37 @@ function generate_config() {
|
|||
sub BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION "'⇶'"
|
||||
fi
|
||||
|
||||
if [[ $style == classic ]]; then
|
||||
sub BACKGROUND $bg_color[$color]
|
||||
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─╯'"
|
||||
|
||||
local left_sep='\uE0B0'
|
||||
local right_sep='\uE0B2'
|
||||
local left_subsep='\uE0B1'
|
||||
local right_subset='\uE0B3'
|
||||
local left_end='\uE0B0'
|
||||
local right_start='\uE0B2'
|
||||
|
||||
if (( straight )); then
|
||||
[[ $POWERLEVEL9K_MODE == nerdfont-complete ]] && subsep='\uE0BD' || subsep='|'
|
||||
left_end='▓▒░'
|
||||
right_start='░▒▓'
|
||||
fi
|
||||
|
||||
sub LEFT_SUBSEGMENT_SEPARATOR "'%$sep_color[$color]F$subsep'"
|
||||
sub RIGHT_SUBSEGMENT_SEPARATOR "'%$sep_color[$color]F$subsep'"
|
||||
sub LEFT_SEGMENT_SEPARATOR "'$subsep'"
|
||||
sub RIGHT_SEGMENT_SEPARATOR "'$subsep'"
|
||||
sub LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL "'$left_end'"
|
||||
sub RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL "'$right_start'"
|
||||
fi
|
||||
|
||||
if [[ -n ${(j::)extra_icons} ]]; then
|
||||
local branch_icon=$icons[VCS_BRANCH_ICON]
|
||||
(( cap_narrow_icons )) && branch_icon=${branch_icon// }
|
||||
|
@ -649,16 +717,6 @@ function generate_config() {
|
|||
sub CONTEXT_ROOT_TEMPLATE "'%n%f at %227F%m'"
|
||||
fi
|
||||
|
||||
if (( straight )); then
|
||||
[[ $POWERLEVEL9K_MODE == nerdfont-complete ]] && local subsep='\uE0BD' || local subsep='|'
|
||||
sub LEFT_SUBSEGMENT_SEPARATOR "'%244F$subsep'"
|
||||
sub RIGHT_SUBSEGMENT_SEPARATOR "'%244F$subsep'"
|
||||
sub LEFT_SEGMENT_SEPARATOR "'$subsep'"
|
||||
sub RIGHT_SEGMENT_SEPARATOR "'$subsep'"
|
||||
sub LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL "'▓▒░'"
|
||||
sub RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL "'░▒▓'"
|
||||
fi
|
||||
|
||||
if (( num_lines == 1 )); then
|
||||
local -a tmp
|
||||
local line
|
||||
|
@ -697,6 +755,7 @@ function generate_config() {
|
|||
header+=$'.\n'
|
||||
header+="# Wizard options: $POWERLEVEL9K_MODE"
|
||||
(( cap_narrow_icons )) && header+=", small icons" || header+=", big icons"
|
||||
[[ $style == classic ]] && header+=", color $color"
|
||||
[[ -n ${(j::)extra_icons} ]] && header+=", many icons" || header+=", few icons"
|
||||
[[ -n ${(j::)prefixes} ]] && header+=", fluent" || header+=", concise"
|
||||
if [[ $style == classic ]]; then
|
||||
|
@ -757,7 +816,7 @@ source $__p9k_root_dir/internal/icons.zsh || return
|
|||
|
||||
while true; do
|
||||
local POWERLEVEL9K_MODE= style= config_backup= gap_char=' '
|
||||
local -i num_lines=0 write_config=0 straight=0 empty_line=0 frame=1
|
||||
local -i num_lines=0 write_config=0 straight=0 empty_line=0 frame=1 color=1
|
||||
local -i cap_diamond=0 cap_python=0 cap_narrow_icons=0 cap_lock=0
|
||||
local -a extra_icons=('' '')
|
||||
local -a prefixes=('' '')
|
||||
|
@ -785,6 +844,7 @@ while true; do
|
|||
_p9k_init_icons
|
||||
ask_narrow_icons || { (( $? == 2 )) && continue || return }
|
||||
ask_style || { (( $? == 2 )) && continue || return }
|
||||
ask_color || { (( $? == 2 )) && continue || return }
|
||||
ask_extra_icons || { (( $? == 2 )) && continue || return }
|
||||
ask_prefixes || { (( $? == 2 )) && continue || return }
|
||||
ask_straight || { (( $? == 2 )) && continue || return }
|
||||
|
|
Loading…
Reference in a new issue