diff options
author | Roman Perepelitsa <roman.perepelitsa@gmail.com> | 2021-09-10 14:21:31 +0300 |
---|---|---|
committer | Roman Perepelitsa <roman.perepelitsa@gmail.com> | 2021-09-10 14:21:31 +0300 |
commit | 4f3d2ffe7251a17aa10e00ed30d55f6fd9d65002 (patch) | |
tree | 20f6ff2692532414ec3e43b1cd8a20d240347bb3 /internal | |
parent | c5c9178341da88d0d55bad9bb3daa5e90d52411d (diff) |
new prompt segment: toolbox (https://github.com/containers/toolbox) #1560
Diffstat (limited to 'internal')
-rw-r--r-- | internal/icons.zsh | 6 | ||||
-rw-r--r-- | internal/p10k.zsh | 35 | ||||
-rw-r--r-- | internal/wizard.zsh | 2 |
3 files changed, 40 insertions, 3 deletions
diff --git a/internal/icons.zsh b/internal/icons.zsh index bf5a1a11..dfbe0a00 100644 --- a/internal/icons.zsh +++ b/internal/icons.zsh @@ -145,6 +145,7 @@ function _p9k_init_icons() { PACKAGE_ICON 'pkg' JULIA_ICON 'jl' SCALA_ICON 'scala' + TOOLBOX_ICON '\u2B22' # ⬢ ) ;; 'awesome-fontconfig') @@ -274,6 +275,7 @@ function _p9k_init_icons() { PACKAGE_ICON 'pkg' JULIA_ICON 'jl' SCALA_ICON 'scala' + TOOLBOX_ICON '\u2B22' # ⬢ ) ;; 'awesome-mapped-fontconfig') @@ -406,6 +408,7 @@ function _p9k_init_icons() { PACKAGE_ICON 'pkg' JULIA_ICON 'jl' SCALA_ICON 'scala' + TOOLBOX_ICON '\u2B22' # ⬢ ) ;; 'nerdfont-complete'|'nerdfont-fontconfig') @@ -536,6 +539,7 @@ function _p9k_init_icons() { PACKAGE_ICON '\uF8D6' # JULIA_ICON '\uE624' # SCALA_ICON '\uE737' # + TOOLBOX_ICON '\uE20F'$s # ) ;; ascii) @@ -663,6 +667,7 @@ function _p9k_init_icons() { PACKAGE_ICON 'pkg' JULIA_ICON 'jl' SCALA_ICON 'scala' + TOOLBOX_ICON 'toolbox' ) ;; *) @@ -792,6 +797,7 @@ function _p9k_init_icons() { PACKAGE_ICON 'pkg' JULIA_ICON 'jl' SCALA_ICON 'scala' + TOOLBOX_ICON '\u2B22' # ⬢ ) ;; esac diff --git a/internal/p10k.zsh b/internal/p10k.zsh index c50292f2..98090d99 100644 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -1652,6 +1652,20 @@ prompt_host() { instant_prompt_host() { prompt_host; } ################################################################ +# Toolbox: https://github.com/containers/toolbox +function prompt_toolbox() { + _p9k_prompt_segment $0 $_p9k_color1 yellow TOOLBOX_ICON 0 '' $P9K_TOOLBOX_NAME +} + +_p9k_prompt_toolbox_init() { + typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$P9K_TOOLBOX_NAME' +} + +function instant_prompt_toolbox() { + _p9k_prompt_segment prompt_toolbox $_p9k_color1 yellow TOOLBOX_ICON 1 '$P9K_TOOLBOX_NAME' '$P9K_TOOLBOX_NAME' +} + +################################################################ # The 'custom` prompt provides a way for users to invoke commands and display # the output in a segment. _p9k_custom_prompt() { @@ -5906,7 +5920,7 @@ _p9k_set_instant_prompt() { [[ -n $RPROMPT ]] || unset RPROMPT } -typeset -gri __p9k_instant_prompt_version=42 +typeset -gri __p9k_instant_prompt_version=43 _p9k_dump_instant_prompt() { local user=${(%):-%n} @@ -6117,6 +6131,9 @@ _p9k_dump_instant_prompt() { unfunction p10k-on-post-widget' fi >&$fd print -r -- ' + () { +'$functions[_p9k_init_toolbox]' + } trap "unset -m _p9k__\*; unfunction p10k" EXIT local -a _p9k_t=("${(@ps:$us:)${tail%%$rs*}}") if [[ $+VTE_VERSION == 1 || $TERM_PROGRAM == Hyper ]] && (( $+commands[stty] )); then @@ -8123,6 +8140,17 @@ _p9k_init_ssh() { [[ $w =~ "\(?($ipv4|$ipv6|$hostname)\)?\$" ]] && P9K_SSH=1 } +_p9k_init_toolbox() { + [[ -z $P9K_TOOLBOX_NAME && + -e /run/.toolboxenv && + -f /run/.containerenv && + -r /run/.containerenv ]] || return 0 + local name=(${(Q)${${(@M)${(f)"$(</run/.containerenv)"}:#name=*}#name=}}) + (( ${#name} == 1 )) || return 0 + [[ -n ${name[1]} ]] || return 0 + typeset -g P9K_TOOLBOX_NAME=${name[1]} +} + _p9k_must_init() { (( _POWERLEVEL9K_DISABLE_HOT_RELOAD && !_p9k__force_must_init )) && return 1 _p9k__force_must_init=0 @@ -8132,7 +8160,7 @@ _p9k_must_init() { [[ $sig == $_p9k__param_sig ]] && return 1 _p9k_deinit fi - _p9k__param_pat=$'v125\1'${(q)ZSH_VERSION}$'\1'${(q)ZSH_PATCHLEVEL}$'\1' + _p9k__param_pat=$'v126\1'${(q)ZSH_VERSION}$'\1'${(q)ZSH_PATCHLEVEL}$'\1' _p9k__param_pat+=$'${#parameters[(I)POWERLEVEL9K_*]}\1${(%):-%n%#}\1$GITSTATUS_LOG_LEVEL\1' _p9k__param_pat+=$'$GITSTATUS_ENABLE_LOGGING\1$GITSTATUS_DAEMON\1$GITSTATUS_NUM_THREADS\1' _p9k__param_pat+=$'$GITSTATUS_CACHE_DIR\1$GITSTATUS_AUTO_INSTALL\1${ZLE_RPROMPT_INDENT:-1}\1' @@ -8631,7 +8659,7 @@ _p9k_deinit() { fi (( $+_p9k__iterm2_precmd )) && functions[iterm2_precmd]=$_p9k__iterm2_precmd (( $+_p9k__iterm2_decorate_prompt )) && functions[iterm2_decorate_prompt]=$_p9k__iterm2_decorate_prompt - unset -m '(_POWERLEVEL9K_|P9K_|_p9k_)*~(P9K_SSH|P9K_TTY|_P9K_TTY)' + unset -m '(_POWERLEVEL9K_|P9K_|_p9k_)*~(P9K_SSH|P9K_TOOLBOX_NAME|P9K_TTY|_P9K_TTY)' [[ -n $__p9k_locale ]] || unset __p9k_locale } @@ -9044,4 +9072,5 @@ if [[ $__p9k_dump_file != $__p9k_instant_prompt_dump_file && -n $__p9k_instant_p fi _p9k_init_ssh +_p9k_init_toolbox prompt_powerlevel9k_setup diff --git a/internal/wizard.zsh b/internal/wizard.zsh index 793c8ef3..c4c7a87c 100644 --- a/internal/wizard.zsh +++ b/internal/wizard.zsh @@ -1767,6 +1767,7 @@ function generate_config() { uncomment 'typeset -g POWERLEVEL9K_CONTEXT_PREFIX' uncomment 'typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX' uncomment 'typeset -g POWERLEVEL9K_TIME_PREFIX' + uncomment 'typeset -g POWERLEVEL9K_TOOLBOX_PREFIX' if [[ $style == (lean|classic) ]]; then [[ $style == classic ]] && local fg="%$prefix_color[$color]F" || local fg="%f" sub VCS_PREFIX "'${fg}on '" @@ -1774,6 +1775,7 @@ function generate_config() { sub CONTEXT_PREFIX "'${fg}with '" sub KUBECONTEXT_PREFIX "'${fg}at '" sub TIME_PREFIX "'${fg}at '" + sub TOOLBOX_PREFIX "'${fg}in '" fi fi |