Merge branch 'master' into toMerge

This commit is contained in:
jD4rk 2020-02-07 16:53:12 +01:00
commit c30284792d
15 changed files with 2732 additions and 1281 deletions

1416
README.md

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
@ -34,7 +34,7 @@
dir # current directory
vcs # git status
# =========================[ Line #2 ]=========================
newline
newline # \n
# prompt_char # prompt symbol
)
@ -48,6 +48,7 @@
command_execution_time # duration of the last command
background_jobs # presence of background jobs
direnv # direnv status (https://direnv.net/)
asdf # asdf version manager (https://github.com/asdf-vm/asdf)
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
@ -70,7 +71,7 @@
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
gcloud # google cloud cli acccount and project (https://cloud.google.com/)
gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
@ -78,6 +79,7 @@
nnn # nnn shell (https://github.com/jarun/nnn)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
vi_mode # vi mode (you don't need this if you've enabled prompt_char)
# vpn_ip # virtual private network indicator
# load # CPU load
@ -88,10 +90,12 @@
timewarrior # timewarrior tracking status (https://timewarrior.net/)
# time # current time
# =========================[ Line #2 ]=========================
newline
newline # \n
# ip # ip address and bandwidth usage for a specified network interface
# public_ip # public IP address
# proxy # system-wide http/https/ftp proxy
# battery # internal battery
# wifi # wifi speed
# example # example user-defined segment (see prompt_example function below)
)
@ -267,6 +271,11 @@
package.json
)
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
# If set to true, remove everything before the last (deepest) subdirectory that contains files
# matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
# /foo/bar/git_repo/baz, prompt will display git_repo/baz. This assumes that /foo/bar/git_repo
# contains a marker (.git) and other directories don't.
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false
# Don't shorten this many last directory segments. They are anchors.
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
# Shorten directory if it's longer than this even if there is space for it. The value can
@ -515,6 +524,62 @@
# Custom icon.
# typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############
# Default asdf color. Only used to display tools for which there is no color override (see below).
typeset -g POWERLEVEL9K_ASDF_FOREGROUND=66
# Ruby version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=168
# typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Python version from asdf.
typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=37
# typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Go version from asdf.
typeset -g POWERLEVEL9K_ASDF_GO_FOREGROUND=37
# typeset -g POWERLEVEL9K_ASDF_GO_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Node.js version from asdf.
typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=70
# typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Rust version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=37
# typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# .NET Core version from asdf.
typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=134
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Flutter version from asdf.
typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=38
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Lua version from asdf.
typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=32
# typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Java version from asdf.
typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=32
# typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Perl version from asdf.
typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=67
# typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Erlang version from asdf.
typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=125
# typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Elixir version from asdf.
typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=129
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Postgres version from asdf.
typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=31
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
# NordVPN connection indicator color.
typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39
@ -548,6 +613,16 @@
# Custom icon.
# typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##
# Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
##################################[ disk_usgae: disk usage ]##################################
# Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
@ -821,10 +896,35 @@
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
# Terraform color.
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38
# Custom icon.
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
# POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current terraform workspace gets matched.
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
#
# typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD
# '*test*' TEST
# '*' DEFAULT)
#
# If your current terraform workspace is "project_test", its class is TEST because "project_test"
# doesn't match the pattern '*prod*' but does match '*test*'.
#
# You can define different colors, icons and content expansions for different classes:
#
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=28
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD # These values are examples that are unlikely
# '*test*' TEST # to match your needs. Customize them as needed.
'*' DEFAULT)
typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_FOREGROUND=38
# typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the the command you are typing invokes one of these tools.
@ -923,7 +1023,7 @@
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_AWS_CLASSES defines the context class. Patterns are tried in order. The
# POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
@ -963,7 +1063,7 @@
# Custom icon.
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud acccount and project (https://cloud.google.com/) ]###########
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show gcloud.
typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs'
@ -1048,12 +1148,32 @@
# When on VPN, show just an icon without the IP address.
# Tip: To display the private IP address when on VPN, remove the next line.
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
# name of the interface.
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
# Custom icon.
# typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
###########[ ip: ip address and bandwidth usage for a specified network interface ]###########
# IP color.
typeset -g POWERLEVEL9K_IP_FOREGROUND=38
# The following parameters are accessible within the expansion:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_IP_IP | IP address
# P9K_IP_INTERFACE | network interface
# P9K_IP_RX_BYTES | total number of bytes received
# P9K_IP_TX_BYTES | total number of bytes sent
# P9K_IP_RX_RATE | receive rate (since last prompt)
# P9K_IP_TX_RATE | send rate (since last prompt)
typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='%70F⇣$P9K_IP_RX_RATE %215F⇡$P9K_IP_TX_RATE %38F$P9K_IP_IP'
# Show information for the first network interface whose name matches this regular expression.
# Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
typeset -g POWERLEVEL9K_IP_INTERFACE='e.*'
# Custom icon.
# typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
# Proxy color.
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
@ -1073,6 +1193,36 @@
# Don't show the remaining time to charge/discharge.
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
#####################################[ wifi: wifi speed ]#####################################
# WiFi color.
typeset -g POWERLEVEL9K_WIFI_FOREGROUND=68
# Custom icon.
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).
#
# # Wifi colors and icons for different signal strength levels (low to high).
# typeset -g my_wifi_fg=(68 68 68 68 68) # <-- change these values
# typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values
#
# typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'
#
# The following parameters are accessible within the expansions:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_WIFI_SSID | service set identifier, a.k.a. network name
# P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"
# P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second
# P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0
# P9K_WIFI_NOISE | noise in dBm, from -120 to 0
# P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)
#
# All parameters except P9K_WIFI_BARS are extracted from the output of the following command:
#
# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
####################################[ time: current time ]####################################
# Current time color.
typeset -g POWERLEVEL9K_TIME_FOREGROUND=66

View File

@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
@ -34,7 +34,7 @@
dir # current directory
vcs # git status
# =========================[ Line #2 ]=========================
newline
newline # \n
prompt_char # prompt symbol
)
@ -48,6 +48,7 @@
command_execution_time # duration of the last command
background_jobs # presence of background jobs
direnv # direnv status (https://direnv.net/)
asdf # asdf version manager (https://github.com/asdf-vm/asdf)
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
@ -70,7 +71,7 @@
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
gcloud # google cloud cli acccount and project (https://cloud.google.com/)
gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
@ -78,6 +79,7 @@
nnn # nnn shell (https://github.com/jarun/nnn)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
# vpn_ip # virtual private network indicator
# load # CPU load
# disk_usage # disk usage
@ -87,10 +89,12 @@
timewarrior # timewarrior tracking status (https://timewarrior.net/)
# time # current time
# =========================[ Line #2 ]=========================
newline
newline # \n
# ip # ip address and bandwidth usage for a specified network interface
# public_ip # public IP address
# proxy # system-wide http/https/ftp proxy
# battery # internal battery
# wifi # wifi speed
# example # example user-defined segment (see prompt_example function below)
)
@ -252,7 +256,12 @@
.hg
.node-version
.python-version
.go-version
.ruby-version
.lua-version
.java-version
.perl-version
.tool-version
.shorten_folder_marker
.svn
.terraform
@ -263,6 +272,11 @@
package.json
)
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
# If set to true, remove everything before the last (deepest) subdirectory that contains files
# matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
# /foo/bar/git_repo/baz, prompt will display git_repo/baz. This assumes that /foo/bar/git_repo
# contains a marker (.git) and other directories don't.
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false
# Don't shorten this many last directory segments. They are anchors.
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
# Shorten directory if it's longer than this even if there is space for it. The value can
@ -511,6 +525,62 @@
# Custom icon.
# typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############
# Default asdf color. Only used to display tools for which there is no color override (see below).
typeset -g POWERLEVEL9K_ASDF_FOREGROUND=6
# Ruby version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=1
# typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Python version from asdf.
typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=6
# typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Go version from asdf.
typeset -g POWERLEVEL9K_ASDF_GO_FOREGROUND=6
# typeset -g POWERLEVEL9K_ASDF_GO_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Node.js version from asdf.
typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=2
# typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Rust version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=4
# typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# .NET Core version from asdf.
typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=5
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Flutter version from asdf.
typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=4
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Lua version from asdf.
typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=4
# typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Java version from asdf.
typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=4
# typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Perl version from asdf.
typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=6
# typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Erlang version from asdf.
typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=1
# typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Elixir version from asdf.
typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=5
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Postgres version from asdf.
typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=6
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
# NordVPN connection indicator color.
typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=6
@ -544,6 +614,16 @@
# Custom icon.
# typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##
# Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=4
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
##################################[ disk_usgae: disk usage ]##################################
# Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=2
@ -887,10 +967,35 @@
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat '
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
# Terraform color.
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=4
# Custom icon.
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
# POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current terraform workspace gets matched.
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
#
# typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD
# '*test*' TEST
# '*' DEFAULT)
#
# If your current terraform workspace is "project_test", its class is TEST because "project_test"
# doesn't match the pattern '*prod*' but does match '*test*'.
#
# You can define different colors, icons and content expansions for different classes:
#
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD # These values are examples that are unlikely
# '*test*' TEST # to match your needs. Customize them as needed.
'*' DEFAULT)
typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_FOREGROUND=4
# typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
# Show aws only when the the command you are typing invokes one of these tools.
@ -902,7 +1007,7 @@
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_AWS_CLASSES defines the context class. Patterns are tried in order. The
# POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
@ -942,7 +1047,7 @@
# Custom icon.
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud acccount and project (https://cloud.google.com/) ]###########
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show gcloud.
typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs'
@ -1027,12 +1132,32 @@
# When on VPN, show just an icon without the IP address.
# Tip: To display the private IP address when on VPN, remove the next line.
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
# name of the interface.
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
# Custom icon.
# typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
###########[ ip: ip address and bandwidth usage for a specified network interface ]###########
# IP color.
typeset -g POWERLEVEL9K_IP_FOREGROUND=4
# The following parameters are accessible within the expansion:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_IP_IP | IP address
# P9K_IP_INTERFACE | network interface
# P9K_IP_RX_BYTES | total number of bytes received
# P9K_IP_TX_BYTES | total number of bytes sent
# P9K_IP_RX_RATE | receive rate (since last prompt)
# P9K_IP_TX_RATE | send rate (since last prompt)
typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='$P9K_IP_IP %2F⇣$P9K_IP_RX_RATE %3F⇡$P9K_IP_TX_RATE'
# Show information for the first network interface whose name matches this regular expression.
# Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
typeset -g POWERLEVEL9K_IP_INTERFACE='e.*'
# Custom icon.
# typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
# Proxy color.
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=2
@ -1052,6 +1177,36 @@
# Don't show the remaining time to charge/discharge.
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
#####################################[ wifi: wifi speed ]#####################################
# WiFi color.
typeset -g POWERLEVEL9K_WIFI_FOREGROUND=4
# Custom icon.
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).
#
# # Wifi colors and icons for different signal strength levels (low to high).
# typeset -g my_wifi_fg=(4 4 4 4 4) # <-- change these values
# typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values
#
# typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'
#
# The following parameters are accessible within the expansions:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_WIFI_SSID | service set identifier, a.k.a. network name
# P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"
# P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second
# P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0
# P9K_WIFI_NOISE | noise in dBm, from -120 to 0
# P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)
#
# All parameters except P9K_WIFI_BARS are extracted from the output of the following command:
#
# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
####################################[ time: current time ]####################################
# Current time color.
typeset -g POWERLEVEL9K_TIME_FOREGROUND=6

View File

@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
@ -34,7 +34,7 @@
dir # current directory
vcs # git status
# =========================[ Line #2 ]=========================
newline
newline # \n
prompt_char # prompt symbol
)
@ -48,6 +48,7 @@
command_execution_time # duration of the last command
background_jobs # presence of background jobs
direnv # direnv status (https://direnv.net/)
asdf # asdf version manager (https://github.com/asdf-vm/asdf)
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
@ -70,7 +71,7 @@
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
gcloud # google cloud cli acccount and project (https://cloud.google.com/)
gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
@ -78,6 +79,7 @@
nnn # nnn shell (https://github.com/jarun/nnn)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
# vpn_ip # virtual private network indicator
# load # CPU load
# disk_usage # disk usage
@ -88,9 +90,11 @@
# time # current time
# =========================[ Line #2 ]=========================
newline
# ip # ip address and bandwidth usage for a specified network interface
# public_ip # public IP address
# proxy # system-wide http/https/ftp proxy
# battery # internal battery
# wifi # wifi speed
# example # example user-defined segment (see prompt_example function below)
)
@ -252,7 +256,12 @@
.hg
.node-version
.python-version
.go-version
.ruby-version
.lua-version
.java-version
.perl-version
.tool-version
.shorten_folder_marker
.svn
.terraform
@ -263,6 +272,11 @@
package.json
)
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
# If set to true, remove everything before the last (deepest) subdirectory that contains files
# matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
# /foo/bar/git_repo/baz, prompt will display git_repo/baz. This assumes that /foo/bar/git_repo
# contains a marker (.git) and other directories don't.
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false
# Don't shorten this many last directory segments. They are anchors.
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
# Shorten directory if it's longer than this even if there is space for it. The value can
@ -511,6 +525,62 @@
# Custom icon.
# typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############
# Default asdf color. Only used to display tools for which there is no color override (see below).
typeset -g POWERLEVEL9K_ASDF_FOREGROUND=66
# Ruby version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=168
# typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Python version from asdf.
typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=37
# typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Go version from asdf.
typeset -g POWERLEVEL9K_ASDF_GO_FOREGROUND=37
# typeset -g POWERLEVEL9K_ASDF_GO_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Node.js version from asdf.
typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=70
# typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Rust version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=37
# typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# .NET Core version from asdf.
typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=134
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Flutter version from asdf.
typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=38
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Lua version from asdf.
typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=32
# typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Java version from asdf.
typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=32
# typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Perl version from asdf.
typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=67
# typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Erlang version from asdf.
typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=125
# typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Elixir version from asdf.
typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=129
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Postgres version from asdf.
typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=31
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
# NordVPN connection indicator color.
typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39
@ -544,6 +614,16 @@
# Custom icon.
# typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##
# Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
##################################[ disk_usgae: disk usage ]##################################
# Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
@ -887,10 +967,35 @@
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat '
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
# Terraform color.
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38
# Custom icon.
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
# POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current terraform workspace gets matched.
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
#
# typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD
# '*test*' TEST
# '*' DEFAULT)
#
# If your current terraform workspace is "project_test", its class is TEST because "project_test"
# doesn't match the pattern '*prod*' but does match '*test*'.
#
# You can define different colors, icons and content expansions for different classes:
#
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=28
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD # These values are examples that are unlikely
# '*test*' TEST # to match your needs. Customize them as needed.
'*' DEFAULT)
typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_FOREGROUND=38
# typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
# Show aws only when the the command you are typing invokes one of these tools.
@ -902,7 +1007,7 @@
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_AWS_CLASSES defines the context class. Patterns are tried in order. The
# POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
@ -942,7 +1047,7 @@
# Custom icon.
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud acccount and project (https://cloud.google.com/) ]###########
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show gcloud.
typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs'
@ -1027,12 +1132,32 @@
# When on VPN, show just an icon without the IP address.
# Tip: To display the private IP address when on VPN, remove the next line.
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
# name of the interface.
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
# Custom icon.
# typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
###########[ ip: ip address and bandwidth usage for a specified network interface ]###########
# IP color.
typeset -g POWERLEVEL9K_IP_FOREGROUND=38
# The following parameters are accessible within the expansion:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_IP_IP | IP address
# P9K_IP_INTERFACE | network interface
# P9K_IP_RX_BYTES | total number of bytes received
# P9K_IP_TX_BYTES | total number of bytes sent
# P9K_IP_RX_RATE | receive rate (since last prompt)
# P9K_IP_TX_RATE | send rate (since last prompt)
typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='$P9K_IP_IP %70F⇣$P9K_IP_RX_RATE %215F⇡$P9K_IP_TX_RATE'
# Show information for the first network interface whose name matches this regular expression.
# Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
typeset -g POWERLEVEL9K_IP_INTERFACE='e.*'
# Custom icon.
# typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
# Proxy color.
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
@ -1052,6 +1177,36 @@
# Don't show the remaining time to charge/discharge.
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
#####################################[ wifi: wifi speed ]#####################################
# WiFi color.
typeset -g POWERLEVEL9K_WIFI_FOREGROUND=68
# Custom icon.
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).
#
# # Wifi colors and icons for different signal strength levels (low to high).
# typeset -g my_wifi_fg=(68 68 68 68 68) # <-- change these values
# typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values
#
# typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'
#
# The following parameters are accessible within the expansions:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_WIFI_SSID | service set identifier, a.k.a. network name
# P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"
# P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second
# P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0
# P9K_WIFI_NOISE | noise in dBm, from -120 to 0
# P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)
#
# All parameters except P9K_WIFI_BARS are extracted from the output of the following command:
#
# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
####################################[ time: current time ]####################################
# Current time color.
typeset -g POWERLEVEL9K_TIME_FOREGROUND=66

View File

@ -12,7 +12,8 @@
# doesn't fit on one line, it wraps around with no attempt to shorten it.
#
# If you like the general style of Pure but not particularly attached to all its quirks, type
# `p10k configure` while having Powerlevel10k theme active and pick "Lean" style.
# `p10k configure` and pick "Lean" style. This will give you slick minimalist prompt while taking
# advantage of Powerlevel10k features that aren't present in Pure.
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
@ -41,17 +42,27 @@
# Left prompt segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
dir # current directory
vcs # git status
context # user@host
command_execution_time # previous command duration
# =========================[ Line #2 ]=========================
newline # \n
virtualenv # python virtual environment
prompt_char # prompt symbol
)
# Right prompt segments.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
# command_execution_time # previous command duration
# virtualenv # python virtual environment
# context # user@host
# time # current time
# =========================[ Line #2 ]=========================
newline # \n
)
# Basic style options that define the overall prompt look.
typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
@ -61,7 +72,7 @@
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION= # no segment icons
# Add an empty line before each prompt except the first. This doesn't emulate the bug
# in Pure that makes prompt drift down whenever you use the ALT-C binding from fzf or similar.
# in Pure that makes prompt drift down whenever you use the Alt-C binding from fzf or similar.
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
# Magenta prompt symbol if the last command succeeded.
@ -117,12 +128,12 @@
typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=$cyan
# Don't show remote branch, current tag or stashes.
typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind)
# Don't show the branh icon.
# Don't show the branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# When in detached HEAD state, show @commit where branch normally goes.
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
# Don't show staged, unstaged, untracked indicators.
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=$'\b'
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=
# Show '*' when there are staged, unstaged or untracked files.
typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
# Show '⇣' if local branch is behind remote.
@ -131,8 +142,17 @@
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='⇡'
# Don't show the number of commits next to the ahead/behind arrows.
typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1
# Remove space between '⇣' and '⇡'.
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${P9K_CONTENT/⇣* ⇡/⇣⇡}'
# Remove space between '⇣' and '⇡' and all trailing spaces.
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${${P9K_CONTENT/⇣* ⇡/⇣⇡}// }'
# Grey current time.
typeset -g POWERLEVEL9K_TIME_FOREGROUND=$grey
# Format for the current time: 09:51:02. See `man 3 strftime`.
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
# If set to true, time will update when you hit enter. This way prompts for the past
# commands will contain the start times of their commands rather than the end times of
# their preceding commands.
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
# when accepting a command line. Supported values:

View File

@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
@ -34,7 +34,7 @@
dir # current directory
vcs # git status
# =========================[ Line #2 ]=========================
newline
newline # \n
# prompt_char # prompt symbol
)
@ -48,6 +48,7 @@
command_execution_time # duration of the last command
background_jobs # presence of background jobs
direnv # direnv status (https://direnv.net/)
asdf # asdf version manager (https://github.com/asdf-vm/asdf)
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
@ -70,7 +71,7 @@
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
gcloud # google cloud cli acccount and project (https://cloud.google.com/)
gcloud # google cloud cli account and project (https://cloud.google.com/)
google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
@ -78,6 +79,7 @@
nnn # nnn shell (https://github.com/jarun/nnn)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
vi_mode # vi mode (you don't need this if you've enabled prompt_char)
# vpn_ip # virtual private network indicator
# load # CPU load
@ -89,9 +91,11 @@
# time # current time
# =========================[ Line #2 ]=========================
newline
# ip # ip address and bandwidth usage for a specified network interface
# public_ip # public IP address
# proxy # system-wide http/https/ftp proxy
# battery # internal battery
# wifi # wifi speed
# example # example user-defined segment (see prompt_example function below)
)
@ -256,7 +260,12 @@
.hg
.node-version
.python-version
.go-version
.ruby-version
.lua-version
.java-version
.perl-version
.tool-version
.shorten_folder_marker
.svn
.terraform
@ -267,6 +276,11 @@
package.json
)
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
# If set to true, remove everything before the last (deepest) subdirectory that contains files
# matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
# /foo/bar/git_repo/baz, prompt will display git_repo/baz. This assumes that /foo/bar/git_repo
# contains a marker (.git) and other directories don't.
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false
# Don't shorten this many last directory segments. They are anchors.
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
# Shorten directory if it's longer than this even if there is space for it. The value can
@ -512,6 +526,76 @@
# Custom icon.
# typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############
# Default asdf color. Only used to display tools for which there is no color override (see below).
typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7
# Ruby version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1
# typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Python version from asdf.
typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4
# typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Go version from asdf.
typeset -g POWERLEVEL9K_ASDF_GO_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_GO_BACKGROUND=4
# typeset -g POWERLEVEL9K_ASDF_GO_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Node.js version from asdf.
typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2
# typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Rust version from asdf.
typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208
# typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# .NET Core version from asdf.
typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5
# typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Flutter version from asdf.
typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4
# typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Lua version from asdf.
typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4
# typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Java version from asdf.
typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1
typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7
# typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Perl version from asdf.
typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4
# typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Erlang version from asdf.
typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1
# typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Elixir version from asdf.
typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5
# typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Postgres version from asdf.
typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0
typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6
# typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
# NordVPN connection indicator color.
# typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7
@ -550,6 +634,17 @@
# Custom icon.
# typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##
# Nix shell color.
# typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0
# typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
##################################[ disk_usgae: disk usage ]##################################
# Colors for different levels of disk usage.
# typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3
@ -734,7 +829,8 @@
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color.
# typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
# typeset -g POWERLEVEL9K_NVM_FOREGROUND=0
# typeset -g POWERLEVEL9K_NVM_BACKGROUND=5
# Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@ -852,11 +948,36 @@
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
# Terraform color.
# typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=4
# typeset -g POWERLEVEL9K_TERRAFORM_BACKGROUND=0
# Custom icon.
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
# POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current terraform workspace gets matched.
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
#
# typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD
# '*test*' TEST
# '*' DEFAULT)
#
# If your current terraform workspace is "project_test", its class is TEST because "project_test"
# doesn't match the pattern '*prod*' but does match '*test*'.
#
# You can define different colors, icons and content expansions for different classes:
#
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
# '*prod*' PROD # These values are examples that are unlikely
# '*test*' TEST # to match your needs. Customize them as needed.
'*' DEFAULT)
typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_FOREGROUND=4
typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_BACKGROUND=0
# typeset -g POWERLEVEL9K_TERRAFORM_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the the command you are typing invokes one of these tools.
@ -957,7 +1078,7 @@
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_AWS_CLASSES defines the context class. Patterns are tried in order. The
# POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
@ -1000,7 +1121,7 @@
# Custom icon.
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud acccount and project (https://cloud.google.com/) ]###########
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show gcloud.
typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs'
@ -1089,12 +1210,33 @@
# When on VPN, show just an icon without the IP address.
# Tip: To display the private IP address when on VPN, remove the next line.
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
# name of the interface.
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
# Custom icon.
# typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
###########[ ip: ip address and bandwidth usage for a specified network interface ]###########
# IP color.
typeset -g POWERLEVEL9K_IP_BACKGROUND=4
typeset -g POWERLEVEL9K_IP_FOREGROUND=0
# The following parameters are accessible within the expansion:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_IP_IP | IP address
# P9K_IP_INTERFACE | network interface
# P9K_IP_RX_BYTES | total number of bytes received
# P9K_IP_TX_BYTES | total number of bytes sent
# P9K_IP_RX_RATE | receive rate (since last prompt)
# P9K_IP_TX_RATE | send rate (since last prompt)
typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='⇣$P9K_IP_RX_RATE ⇡$P9K_IP_TX_RATE $P9K_IP_IP'
# Show information for the first network interface whose name matches this regular expression.
# Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
typeset -g POWERLEVEL9K_IP_INTERFACE='e.*'
# Custom icon.
# typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
# Proxy color.
# typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4
@ -1116,6 +1258,37 @@
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
# typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0
#####################################[ wifi: wifi speed ]#####################################
# WiFi color.
# typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0
# typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4
# Custom icon.
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).
#
# # Wifi colors and icons for different signal strength levels (low to high).
# typeset -g my_wifi_fg=(0 0 0 0 0) # <-- change these values
# typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values
#
# typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'
# typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'
#
# The following parameters are accessible within the expansions:
#
# Parameter | Meaning
# ----------------------+---------------
# P9K_WIFI_SSID | service set identifier, a.k.a. network name
# P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"
# P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second
# P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0
# P9K_WIFI_NOISE | noise in dBm, from -120 to 0
# P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)
#
# All parameters except P9K_WIFI_BARS are extracted from the output of the following command:
#
# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
####################################[ time: current time ]####################################
# Current time color.
# typeset -g POWERLEVEL9K_TIME_FOREGROUND=0

View File

@ -59,7 +59,7 @@ function _p9k_can_configure() {
}
function p9k_configure() {
eval $__p9k_intro
eval "$__p9k_intro"
(
set -- -f
source $__p9k_root_dir/internal/wizard.zsh

View File

@ -1,13 +1,15 @@
typeset -gA icons
function _p9k_init_icons() {
[[ $+_p9k_icon_mode == 1 && $_p9k_icon_mode == $POWERLEVEL9K_MODE ]] && return
typeset -g _p9k_icon_mode=$POWERLEVEL9K_MODE
zmodload zsh/langinfo
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
typeset -g _p9k_locale=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
[[ $+_p9k_icon_mode == 1 && $_p9k_icon_mode == $POWERLEVEL9K_MODE/$POWERLEVEL9K_LEGACY_ICON_SPACING ]] && return
typeset -g _p9k_icon_mode=$POWERLEVEL9K_MODE/$POWERLEVEL9K_LEGACY_ICON_SPACING
if [[ $POWERLEVEL9K_LEGACY_ICON_SPACING == true ]]; then
local s=
local q=' '
else
typeset -g _p9k_locale=
local s=' '
local q=
fi
case $POWERLEVEL9K_MODE in
@ -21,61 +23,62 @@ function _p9k_init_icons() {
LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' # 
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
CARRIAGE_RETURN_ICON '\u21B5 ' # ↵
CARRIAGE_RETURN_ICON '\u21B5'$s # ↵
ROOT_ICON '\uE801' # 
SUDO_ICON '\uE0A2' # 
RUBY_ICON '\uE847 ' # 
AWS_ICON '\uE895 ' # 
AWS_EB_ICON '\U1F331' # 🌱
AWS_ICON '\uE895'$s # 
AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON '\uE82F ' # 
TEST_ICON '\uE891 ' # 
TEST_ICON '\uE891'$s # 
TODO_ICON '\u2611' # ☑
BATTERY_ICON '\uE894 ' # 
BATTERY_ICON '\uE894'$s # 
DISK_ICON '\uE1AE ' # 
OK_ICON '\u2714' # ✔
FAIL_ICON '\u2718' # ✘
SYMFONY_ICON 'SF'
NODE_ICON '\u2B22 ' # ⬢
NODE_ICON '\u2B22'$s # ⬢
NODEJS_ICON '\u2B22'$s # ⬢
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
APPLE_ICON '\uE26E ' # 
WINDOWS_ICON '\uE26F ' # 
FREEBSD_ICON '\U1F608' # 😈
ANDROID_ICON '\uE270 ' # 
LINUX_ICON '\uE271 ' # 
LINUX_ARCH_ICON '\uE271 ' # 
LINUX_DEBIAN_ICON '\uE271 ' # 
LINUX_RASPBIAN_ICON '\uE271 ' # 
LINUX_UBUNTU_ICON '\uE271 ' # 
LINUX_CENTOS_ICON '\uE271 ' # 
LINUX_COREOS_ICON '\uE271 ' # 
LINUX_ELEMENTARY_ICON '\uE271 ' # 
LINUX_MINT_ICON '\uE271 ' # 
LINUX_FEDORA_ICON '\uE271 ' # 
LINUX_GENTOO_ICON '\uE271 ' # 
LINUX_MAGEIA_ICON '\uE271 ' # 
LINUX_NIXOS_ICON '\uE271 ' # 
LINUX_MANJARO_ICON '\uE271 ' # 
LINUX_DEVUAN_ICON '\uE271 ' # 
LINUX_ALPINE_ICON '\uE271 ' # 
LINUX_AOSC_ICON '\uE271 ' # 
LINUX_OPENSUSE_ICON '\uE271 ' # 
LINUX_SABAYON_ICON '\uE271 ' # 
LINUX_SLACKWARE_ICON '\uE271 ' # 
SUNOS_ICON '\U1F31E' # 🌞
HOME_ICON '\uE12C ' # 
HOME_SUB_ICON '\uE18D ' # 
FOLDER_ICON '\uE818 ' # 
NETWORK_ICON '\uE1AD ' # 
ETC_ICON '\uE82F ' # 
APPLE_ICON '\uE26E'$s # 
WINDOWS_ICON '\uE26F'$s # 
FREEBSD_ICON '\U1F608'$q # 😈
ANDROID_ICON '\uE270'$s # 
LINUX_ICON '\uE271'$s # 
LINUX_ARCH_ICON '\uE271'$s # 
LINUX_DEBIAN_ICON '\uE271'$s # 
LINUX_RASPBIAN_ICON '\uE271'$s # 
LINUX_UBUNTU_ICON '\uE271'$s # 
LINUX_CENTOS_ICON '\uE271'$s # 
LINUX_COREOS_ICON '\uE271'$s # 
LINUX_ELEMENTARY_ICON '\uE271'$s # 
LINUX_MINT_ICON '\uE271'$s # 
LINUX_FEDORA_ICON '\uE271'$s # 
LINUX_GENTOO_ICON '\uE271'$s # 
LINUX_MAGEIA_ICON '\uE271'$s # 
LINUX_NIXOS_ICON '\uE271'$s # 
LINUX_MANJARO_ICON '\uE271'$s # 
LINUX_DEVUAN_ICON '\uE271'$s # 
LINUX_ALPINE_ICON '\uE271'$s # 
LINUX_AOSC_ICON '\uE271'$s # 
LINUX_OPENSUSE_ICON '\uE271'$s # 
LINUX_SABAYON_ICON '\uE271'$s # 
LINUX_SLACKWARE_ICON '\uE271'$s # 
SUNOS_ICON '\U1F31E'$q # 🌞
HOME_ICON '\uE12C'$s # 
HOME_SUB_ICON '\uE18D'$s # 
FOLDER_ICON '\uE818'$s # 
NETWORK_ICON '\uE1AD'$s # 
ETC_ICON '\uE82F'$s # 
LOAD_ICON '\uE190 ' # 
SWAP_ICON '\uE87D ' # 
SWAP_ICON '\uE87D'$s # 
RAM_ICON '\uE1E2 ' # 
SERVER_ICON '\uE895 ' # 
VCS_UNTRACKED_ICON '\uE16C ' # 
VCS_UNSTAGED_ICON '\uE17C ' # 
VCS_STAGED_ICON '\uE168 ' # 
SERVER_ICON '\uE895'$s # 
VCS_UNTRACKED_ICON '\uE16C'$s # 
VCS_UNSTAGED_ICON '\uE17C'$s # 
VCS_STAGED_ICON '\uE168'$s # 
VCS_STASH_ICON '\uE133 ' # 
#VCS_INCOMING_CHANGES_ICON '\uE1EB ' # 
#VCS_INCOMING_CHANGES_ICON '\uE80D ' # 
@ -94,28 +97,29 @@ function _p9k_init_icons() {
VCS_GIT_BITBUCKET_ICON '\uE20E ' #
VCS_GIT_GITLAB_ICON '\uE20E ' #
VCS_HG_ICON '\uE1C3 ' # 
VCS_SVN_ICON 'svn'
VCS_SVN_ICON 'svn'$q
RUST_ICON 'R'
PYTHON_ICON '\uE63C ' #  (doesn't always work)
PYTHON_ICON '\uE63C'$s #  (doesn't always work)
SWIFT_ICON 'Swift'
GO_ICON 'Go'
PUBLIC_IP_ICON 'IP'
LOCK_ICON '\UE138' # 
EXECUTION_TIME_ICON '\UE89C ' # 
EXECUTION_TIME_ICON '\UE89C'$s # 
SSH_ICON 'ssh'
VPN_ICON '\UE138'
KUBERNETES_ICON '\U2388 ' # ⎈
DROPBOX_ICON '\UF16B ' #  (doesn't always work)
DATE_ICON '\uE184 ' # 
TIME_ICON '\uE12E ' # 
KUBERNETES_ICON '\U2388'$s # ⎈
DROPBOX_ICON '\UF16B'$s #  (doesn't always work)
DATE_ICON '\uE184'$s # 
TIME_ICON '\uE12E'$s # 
JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
TERRAFORM_ICON 'tf'
PROXY_ICON '\u2B82' # ⮂
DOTNET_ICON '.NET'
DOTNET_CORE_ICON '.NET'
AZURE_ICON '\u2601' # ☁
DIRENV_ICON '\u25BC' # ▼
FLUTTER_ICON 'F'
@ -124,6 +128,11 @@ function _p9k_init_icons() {
PERL_ICON 'perl'
NNN_ICON 'nnn'
TIMEWARRIOR_ICON 'tw'
NIX_SHELL_ICON 'nix'
WIFI_ICON 'WiFi'
ERLANG_ICON 'erl'
ELIXIR_ICON 'elixir'
POSTGRES_ICON 'postgres'
)
;;
'awesome-fontconfig')
@ -137,13 +146,13 @@ function _p9k_init_icons() {
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' # 
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
CARRIAGE_RETURN_ICON '\u21B5' # ↵
ROOT_ICON '\uF201 ' # 
SUDO_ICON '\uF09C ' # 
ROOT_ICON '\uF201'$s # 
SUDO_ICON '\uF09C'$s # 
RUBY_ICON '\uF219 ' # 
AWS_ICON '\uF270 ' # 
AWS_EB_ICON '\U1F331' # 🌱
AWS_ICON '\uF270'$s # 
AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON '\uF013 ' # 
TEST_ICON '\uF291 ' # 
TEST_ICON '\uF291'$s # 
TODO_ICON '\u2611' # ☑
BATTERY_ICON '\U1F50B' # 🔋
DISK_ICON '\uF0A0 ' # 
@ -151,49 +160,50 @@ function _p9k_init_icons() {
FAIL_ICON '\u2718' # ✘
SYMFONY_ICON 'SF'
NODE_ICON '\u2B22' # ⬢
NODEJS_ICON '\u2B22' # ⬢
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
APPLE_ICON '\uF179 ' # 
WINDOWS_ICON '\uF17A ' # 
FREEBSD_ICON '\U1F608' # 😈
ANDROID_ICON '\uE17B ' #  (doesn't always work)
LINUX_ICON '\uF17C ' # 
LINUX_ARCH_ICON '\uF17C ' # 
LINUX_DEBIAN_ICON '\uF17C ' # 
LINUX_RASPBIAN_ICON '\uF17C ' # 
LINUX_UBUNTU_ICON '\uF17C ' # 
LINUX_CENTOS_ICON '\uF17C ' # 
LINUX_COREOS_ICON '\uF17C ' # 
LINUX_ELEMENTARY_ICON '\uF17C ' # 
LINUX_MINT_ICON '\uF17C ' # 
LINUX_FEDORA_ICON '\uF17C ' # 
LINUX_GENTOO_ICON '\uF17C ' # 
LINUX_MAGEIA_ICON '\uF17C ' # 
LINUX_NIXOS_ICON '\uF17C ' # 
LINUX_MANJARO_ICON '\uF17C ' # 
LINUX_DEVUAN_ICON '\uF17C ' # 
LINUX_ALPINE_ICON '\uF17C ' # 
LINUX_AOSC_ICON '\uF17C ' # 
LINUX_OPENSUSE_ICON '\uF17C ' # 
LINUX_SABAYON_ICON '\uF17C ' # 
LINUX_SLACKWARE_ICON '\uF17C ' # 
APPLE_ICON '\uF179'$s # 
WINDOWS_ICON '\uF17A'$s # 
FREEBSD_ICON '\U1F608'$q # 😈
ANDROID_ICON '\uE17B'$s #  (doesn't always work)
LINUX_ICON '\uF17C'$s # 
LINUX_ARCH_ICON '\uF17C'$s # 
LINUX_DEBIAN_ICON '\uF17C'$s # 
LINUX_RASPBIAN_ICON '\uF17C'$s # 
LINUX_UBUNTU_ICON '\uF17C'$s # 
LINUX_CENTOS_ICON '\uF17C'$s # 
LINUX_COREOS_ICON '\uF17C'$s # 
LINUX_ELEMENTARY_ICON '\uF17C'$s # 
LINUX_MINT_ICON '\uF17C'$s # 
LINUX_FEDORA_ICON '\uF17C'$s # 
LINUX_GENTOO_ICON '\uF17C'$s # 
LINUX_MAGEIA_ICON '\uF17C'$s # 
LINUX_NIXOS_ICON '\uF17C'$s # 
LINUX_MANJARO_ICON '\uF17C'$s # 
LINUX_DEVUAN_ICON '\uF17C'$s # 
LINUX_ALPINE_ICON '\uF17C'$s # 
LINUX_AOSC_ICON '\uF17C'$s # 
LINUX_OPENSUSE_ICON '\uF17C'$s # 
LINUX_SABAYON_ICON '\uF17C'$s # 
LINUX_SLACKWARE_ICON '\uF17C'$s # 
SUNOS_ICON '\uF185 ' # 
HOME_ICON '\uF015 ' # 
HOME_SUB_ICON '\uF07C ' # 
FOLDER_ICON '\uF115 ' # 
HOME_ICON '\uF015'$s # 
HOME_SUB_ICON '\uF07C'$s # 
FOLDER_ICON '\uF115'$s # 
ETC_ICON '\uF013 ' # 
NETWORK_ICON '\uF09E ' # 
NETWORK_ICON '\uF09E'$s # 
LOAD_ICON '\uF080 ' # 
SWAP_ICON '\uF0E4 ' # 
RAM_ICON '\uF0E4 ' # 
SERVER_ICON '\uF233 ' # 
VCS_UNTRACKED_ICON '\uF059 ' # 
VCS_UNSTAGED_ICON '\uF06A ' # 
VCS_STAGED_ICON '\uF055 ' # 
SWAP_ICON '\uF0E4'$s # 
RAM_ICON '\uF0E4'$s # 
SERVER_ICON '\uF233'$s # 
VCS_UNTRACKED_ICON '\uF059'$s # 
VCS_UNSTAGED_ICON '\uF06A'$s # 
VCS_STAGED_ICON '\uF055'$s # 
VCS_STASH_ICON '\uF01C ' # 
VCS_INCOMING_CHANGES_ICON '\uF01A ' # 
VCS_OUTGOING_CHANGES_ICON '\uF01B ' # 
VCS_INCOMING_CHANGES_ICON '\uF0AB ' # 
VCS_OUTGOING_CHANGES_ICON '\uF0AA ' # 
VCS_TAG_ICON '\uF217 ' # 
VCS_BOOKMARK_ICON '\uF27B ' # 
VCS_COMMIT_ICON '\uF221 ' # 
@ -205,18 +215,18 @@ function _p9k_init_icons() {
VCS_GIT_BITBUCKET_ICON '\uF171 ' # 
VCS_GIT_GITLAB_ICON '\uF296 ' # 
VCS_HG_ICON '\uF0C3 ' # 
VCS_SVN_ICON 'svn'
VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' # 
PYTHON_ICON '\uE63C ' # 
PYTHON_ICON '\uE63C'$s # 
SWIFT_ICON 'Swift'
GO_ICON 'Go'
PUBLIC_IP_ICON 'IP'
LOCK_ICON '\UF023' # 
EXECUTION_TIME_ICON '\uF253 ' # 
EXECUTION_TIME_ICON '\uF253'$s # 
SSH_ICON 'ssh'
VPN_ICON '\uF023'
KUBERNETES_ICON '\U2388' # ⎈
DROPBOX_ICON '\UF16B ' # 
DROPBOX_ICON '\UF16B'$s # 
DATE_ICON '\uF073 ' # 
TIME_ICON '\uF017 ' # 
JAVA_ICON '\U2615' # ☕︎
@ -224,9 +234,10 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
TERRAFORM_ICON 'tf'
PROXY_ICON '\u2B82' # ⮂
DOTNET_ICON '.NET'
DOTNET_CORE_ICON '.NET'
AZURE_ICON '\u2601' # ☁
DIRENV_ICON '\u25BC' # ▼
FLUTTER_ICON 'F'
@ -235,6 +246,11 @@ function _p9k_init_icons() {
PERL_ICON 'perl'
NNN_ICON 'nnn'
TIMEWARRIOR_ICON 'tw'
NIX_SHELL_ICON 'nix'
WIFI_ICON 'WiFi'
ERLANG_ICON 'erl'
ELIXIR_ICON 'elixir'
POSTGRES_ICON 'postgres'
)
;;
'awesome-mapped-fontconfig')
@ -256,57 +272,58 @@ function _p9k_init_icons() {
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
CARRIAGE_RETURN_ICON '\u21B5' # ↵
ROOT_ICON "${CODEPOINT_OF_OCTICONS_ZAP:+\\u$CODEPOINT_OF_OCTICONS_ZAP}"
SUDO_ICON "${CODEPOINT_OF_AWESOME_UNLOCK:+\\u$CODEPOINT_OF_AWESOME_UNLOCK }"
SUDO_ICON "${CODEPOINT_OF_AWESOME_UNLOCK:+\\u$CODEPOINT_OF_AWESOME_UNLOCK$s}"
RUBY_ICON "${CODEPOINT_OF_OCTICONS_RUBY:+\\u$CODEPOINT_OF_OCTICONS_RUBY }"
AWS_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER }"
AWS_EB_ICON '\U1F331' # 🌱
AWS_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER$s}"
AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON "${CODEPOINT_OF_AWESOME_COG:+\\u$CODEPOINT_OF_AWESOME_COG }"
TEST_ICON "${CODEPOINT_OF_AWESOME_BUG:+\\u$CODEPOINT_OF_AWESOME_BUG }"
TODO_ICON "${CODEPOINT_OF_AWESOME_CHECK_SQUARE_O:+\\u$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O }"
BATTERY_ICON "${CODEPOINT_OF_AWESOME_BATTERY_FULL:+\\U$CODEPOINT_OF_AWESOME_BATTERY_FULL }"
TEST_ICON "${CODEPOINT_OF_AWESOME_BUG:+\\u$CODEPOINT_OF_AWESOME_BUG$s}"
TODO_ICON "${CODEPOINT_OF_AWESOME_CHECK_SQUARE_O:+\\u$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O$s}"
BATTERY_ICON "${CODEPOINT_OF_AWESOME_BATTERY_FULL:+\\U$CODEPOINT_OF_AWESOME_BATTERY_FULL$s}"
DISK_ICON "${CODEPOINT_OF_AWESOME_HDD_O:+\\u$CODEPOINT_OF_AWESOME_HDD_O }"
OK_ICON "${CODEPOINT_OF_AWESOME_CHECK:+\\u$CODEPOINT_OF_AWESOME_CHECK }"
OK_ICON "${CODEPOINT_OF_AWESOME_CHECK:+\\u$CODEPOINT_OF_AWESOME_CHECK$s}"
FAIL_ICON "${CODEPOINT_OF_AWESOME_TIMES:+\\u$CODEPOINT_OF_AWESOME_TIMES}"
SYMFONY_ICON 'SF'
NODE_ICON '\u2B22' # ⬢
NODEJS_ICON '\u2B22' # ⬢
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
APPLE_ICON "${CODEPOINT_OF_AWESOME_APPLE:+\\u$CODEPOINT_OF_AWESOME_APPLE }"
FREEBSD_ICON '\U1F608' # 😈
LINUX_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_ARCH_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_DEBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_RASPBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_UBUNTU_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_CENTOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_COREOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_ELEMENTARY_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_MINT_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_FEDORA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_GENTOO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_MAGEIA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_NIXOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_MANJARO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_DEVUAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_ALPINE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_AOSC_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_OPENSUSE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_SABAYON_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
LINUX_SLACKWARE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
APPLE_ICON "${CODEPOINT_OF_AWESOME_APPLE:+\\u$CODEPOINT_OF_AWESOME_APPLE$s}"
FREEBSD_ICON '\U1F608'$q # 😈
LINUX_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_ARCH_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_DEBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_RASPBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_UBUNTU_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_CENTOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_COREOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_ELEMENTARY_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_MINT_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_FEDORA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_GENTOO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_MAGEIA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_NIXOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_MANJARO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_DEVUAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_ALPINE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_AOSC_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_OPENSUSE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_SABAYON_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_SLACKWARE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
SUNOS_ICON "${CODEPOINT_OF_AWESOME_SUN_O:+\\u$CODEPOINT_OF_AWESOME_SUN_O }"
HOME_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME }"
HOME_SUB_ICON "${CODEPOINT_OF_AWESOME_FOLDER_OPEN:+\\u$CODEPOINT_OF_AWESOME_FOLDER_OPEN }"
FOLDER_ICON "${CODEPOINT_OF_AWESOME_FOLDER_O:+\\u$CODEPOINT_OF_AWESOME_FOLDER_O }"
HOME_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME$s}"
HOME_SUB_ICON "${CODEPOINT_OF_AWESOME_FOLDER_OPEN:+\\u$CODEPOINT_OF_AWESOME_FOLDER_OPEN$s}"
FOLDER_ICON "${CODEPOINT_OF_AWESOME_FOLDER_O:+\\u$CODEPOINT_OF_AWESOME_FOLDER_O$s}"
ETC_ICON "${CODEPOINT_OF_AWESOME_COG:+\\u$CODEPOINT_OF_AWESOME_COG }"
NETWORK_ICON "${CODEPOINT_OF_AWESOME_RSS:+\\u$CODEPOINT_OF_AWESOME_RSS }"
NETWORK_ICON "${CODEPOINT_OF_AWESOME_RSS:+\\u$CODEPOINT_OF_AWESOME_RSS$s}"
LOAD_ICON "${CODEPOINT_OF_AWESOME_BAR_CHART:+\\u$CODEPOINT_OF_AWESOME_BAR_CHART }"
SWAP_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD }"
RAM_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD }"
SERVER_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER }"
VCS_UNTRACKED_ICON "${CODEPOINT_OF_AWESOME_QUESTION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE }"
VCS_UNSTAGED_ICON "${CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE }"
VCS_STAGED_ICON "${CODEPOINT_OF_AWESOME_PLUS_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_PLUS_CIRCLE }"
SWAP_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD$s}"
RAM_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD$s}"
SERVER_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER$s}"
VCS_UNTRACKED_ICON "${CODEPOINT_OF_AWESOME_QUESTION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE$s}"
VCS_UNSTAGED_ICON "${CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE$s}"
VCS_STAGED_ICON "${CODEPOINT_OF_AWESOME_PLUS_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_PLUS_CIRCLE$s}"
VCS_STASH_ICON "${CODEPOINT_OF_AWESOME_INBOX:+\\u$CODEPOINT_OF_AWESOME_INBOX }"
VCS_INCOMING_CHANGES_ICON "${CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN:+\\u$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN }"
VCS_OUTGOING_CHANGES_ICON "${CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP:+\\u$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP }"
@ -314,24 +331,24 @@ function _p9k_init_icons() {
VCS_BOOKMARK_ICON "${CODEPOINT_OF_OCTICONS_BOOKMARK:+\\u$CODEPOINT_OF_OCTICONS_BOOKMARK}"
VCS_COMMIT_ICON "${CODEPOINT_OF_OCTICONS_GIT_COMMIT:+\\u$CODEPOINT_OF_OCTICONS_GIT_COMMIT }"
VCS_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_GIT_BRANCH:+\\u$CODEPOINT_OF_OCTICONS_GIT_BRANCH }"
VCS_REMOTE_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_REPO_PUSH:+\\u$CODEPOINT_OF_OCTICONS_REPO_PUSH }"
VCS_REMOTE_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_REPO_PUSH:+\\u$CODEPOINT_OF_OCTICONS_REPO_PUSH$s}"
VCS_LOADING_ICON ''
VCS_GIT_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
VCS_GIT_GITHUB_ICON "${CODEPOINT_OF_AWESOME_GITHUB_ALT:+\\u$CODEPOINT_OF_AWESOME_GITHUB_ALT }"
VCS_GIT_BITBUCKET_ICON "${CODEPOINT_OF_AWESOME_BITBUCKET:+\\u$CODEPOINT_OF_AWESOME_BITBUCKET }"
VCS_GIT_GITLAB_ICON "${CODEPOINT_OF_AWESOME_GITLAB:+\\u$CODEPOINT_OF_AWESOME_GITLAB }"
VCS_HG_ICON "${CODEPOINT_OF_AWESOME_FLASK:+\\u$CODEPOINT_OF_AWESOME_FLASK }"
VCS_SVN_ICON 'svn'
VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' # 
PYTHON_ICON '\U1F40D' # 🐍
SWIFT_ICON '\uE655 ' # 
PUBLIC_IP_ICON "${CODEPOINT_OF_AWESOME_GLOBE:+\\u$CODEPOINT_OF_AWESOME_GLOBE }"
SWIFT_ICON '\uE655'$s # 
PUBLIC_IP_ICON "${CODEPOINT_OF_AWESOME_GLOBE:+\\u$CODEPOINT_OF_AWESOME_GLOBE$s}"
LOCK_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
EXECUTION_TIME_ICON "${CODEPOINT_OF_AWESOME_HOURGLASS_END:+\\u$CODEPOINT_OF_AWESOME_HOURGLASS_END }"
EXECUTION_TIME_ICON "${CODEPOINT_OF_AWESOME_HOURGLASS_END:+\\u$CODEPOINT_OF_AWESOME_HOURGLASS_END$s}"
SSH_ICON 'ssh'
VPN_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
KUBERNETES_ICON '\U2388' # ⎈
DROPBOX_ICON "${CODEPOINT_OF_AWESOME_DROPBOX:+\\u$CODEPOINT_OF_AWESOME_DROPBOX }"
DROPBOX_ICON "${CODEPOINT_OF_AWESOME_DROPBOX:+\\u$CODEPOINT_OF_AWESOME_DROPBOX$s}"
DATE_ICON '\uF073 ' # 
TIME_ICON '\uF017 ' # 
JAVA_ICON '\U2615' # ☕︎
@ -339,9 +356,10 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
TERRAFORM_ICON 'tf'
PROXY_ICON '\u2B82' # ⮂
DOTNET_ICON '.NET'
DOTNET_CORE_ICON '.NET'
AZURE_ICON '\u2601' # ☁
DIRENV_ICON '\u25BC' # ▼
FLUTTER_ICON 'F'
@ -350,6 +368,11 @@ function _p9k_init_icons() {
PERL_ICON 'perl'
NNN_ICON 'nnn'
TIMEWARRIOR_ICON 'tw'
NIX_SHELL_ICON 'nix'
WIFI_ICON 'WiFi'
ERLANG_ICON 'erl'
ELIXIR_ICON 'elixir'
POSTGRES_ICON 'postgres'
)
;;
'nerdfont-complete'|'nerdfont-fontconfig')
@ -364,62 +387,63 @@ function _p9k_init_icons() {
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' # 
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
CARRIAGE_RETURN_ICON '\u21B5' # ↵
ROOT_ICON '\uE614' # 
SUDO_ICON '\uF09C ' # 
ROOT_ICON '\uE614'$q # 
SUDO_ICON '\uF09C'$s # 
RUBY_ICON '\uF219 ' # 
AWS_ICON '\uF270 ' # 
AWS_EB_ICON '\UF1BD' # 
AWS_ICON '\uF270'$s # 
AWS_EB_ICON '\UF1BD'$q$q # 
BACKGROUND_JOBS_ICON '\uF013 ' # 
TEST_ICON '\uF188 ' # 
TEST_ICON '\uF188'$s # 
TODO_ICON '\u2611' # ☑
BATTERY_ICON '\UF240 ' #  upTo F244 (5 icons in total) from full to empty
BATTERY_ICON_UNKNOW '\uF590 ' #  '\uF582' 
BATTERY_ICON_AC '\uF492 ' # 
DISK_ICON '\uF0A0 ' # 
OK_ICON '\uF00C ' # 
DISK_ICON '\uF0A0'$s # 
OK_ICON '\uF00C'$s # 
FAIL_ICON '\uF00D' # 
SYMFONY_ICON '\uE757' # 
NODE_ICON '\uE617 ' # 
NODEJS_ICON '\uE617 ' # 
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
APPLE_ICON '\uF179' # 
WINDOWS_ICON '\uF17A ' # 
WINDOWS_ICON '\uF17A'$s # 
FREEBSD_ICON '\UF30C ' # 
ANDROID_ICON '\uF17B' # 
LINUX_ARCH_ICON '\uF303' # 
LINUX_CENTOS_ICON '\uF304 ' # 
LINUX_COREOS_ICON '\uF305 ' # 
LINUX_CENTOS_ICON '\uF304'$s # 
LINUX_COREOS_ICON '\uF305'$s # 
LINUX_DEBIAN_ICON '\uF306' # 
LINUX_RASPBIAN_ICON '\uF315' # 
LINUX_ELEMENTARY_ICON '\uF309 ' # 
LINUX_FEDORA_ICON '\uF30a ' # 
LINUX_GENTOO_ICON '\uF30d ' # 
LINUX_ELEMENTARY_ICON '\uF309'$s # 
LINUX_FEDORA_ICON '\uF30a'$s # 
LINUX_GENTOO_ICON '\uF30d'$s # 
LINUX_MAGEIA_ICON '\uF310' # 
LINUX_MINT_ICON '\uF30e ' # 
LINUX_NIXOS_ICON '\uF313 ' # 
LINUX_MANJARO_ICON '\uF312 ' # 
LINUX_DEVUAN_ICON '\uF307 ' # 
LINUX_ALPINE_ICON '\uF300 ' # 
LINUX_AOSC_ICON '\uF301 ' # 
LINUX_OPENSUSE_ICON '\uF314 ' # 
LINUX_SABAYON_ICON '\uF317 ' # 
LINUX_SLACKWARE_ICON '\uF319 ' # 
LINUX_UBUNTU_ICON '\uF31b ' # 
LINUX_MINT_ICON '\uF30e'$s # 
LINUX_NIXOS_ICON '\uF313'$s # 
LINUX_MANJARO_ICON '\uF312'$s # 
LINUX_DEVUAN_ICON '\uF307'$s # 
LINUX_ALPINE_ICON '\uF300'$s # 
LINUX_AOSC_ICON '\uF301'$s # 
LINUX_OPENSUSE_ICON '\uF314'$s # 
LINUX_SABAYON_ICON '\uF317'$s # 
LINUX_SLACKWARE_ICON '\uF319'$s # 
LINUX_UBUNTU_ICON '\uF31b'$s # 
LINUX_ICON '\uF17C' # 
SUNOS_ICON '\uF185 ' # 
HOME_ICON '\uF015 ' # 
HOME_SUB_ICON '\uF07C ' # 
FOLDER_ICON '\uF115 ' # 
ETC_ICON '\uF013 ' # 
NETWORK_ICON '\uF1EB ' # 
HOME_ICON '\uF015'$s # 
HOME_SUB_ICON '\uF07C'$s # 
FOLDER_ICON '\uF115'$s # 
ETC_ICON '\uF013'$s # 
NETWORK_ICON '\uFBF1'$s # ﯱ
LOAD_ICON '\uF080 ' # 
SWAP_ICON '\uF464 ' # 
RAM_ICON '\uF0E4 ' # 
SERVER_ICON '\uF0AE ' # 
VCS_UNTRACKED_ICON '\uF059 ' # 
VCS_UNSTAGED_ICON '\uF06A ' # 
VCS_STAGED_ICON '\uF055 ' # 
SWAP_ICON '\uF464'$s # 
RAM_ICON '\uF0E4'$s # 
SERVER_ICON '\uF0AE'$s # 
VCS_UNTRACKED_ICON '\uF059'$s # 
VCS_UNSTAGED_ICON '\uF06A'$s # 
VCS_STAGED_ICON '\uF055'$s # 
VCS_STASH_ICON '\uF01C ' # 
VCS_INCOMING_CHANGES_ICON '\uF0AB ' # 
VCS_OUTGOING_CHANGES_ICON '\uF0AA ' # 
@ -434,28 +458,29 @@ function _p9k_init_icons() {
VCS_GIT_BITBUCKET_ICON '\uE703 ' # 
VCS_GIT_GITLAB_ICON '\uF296 ' # 
VCS_HG_ICON '\uF0C3 ' # 
VCS_SVN_ICON '\uE72D' # 
RUST_ICON '\uE7A8' # 
VCS_SVN_ICON '\uE72D'$q # 
RUST_ICON '\uE7A8'$q # 
PYTHON_ICON '\UE73C ' # 
SWIFT_ICON '\uE755' # 
GO_ICON '\uE626' # 
PUBLIC_IP_ICON '\UF0AC ' # 
PUBLIC_IP_ICON '\UF0AC'$s # 
LOCK_ICON '\UF023' # 
EXECUTION_TIME_ICON '\uF252 ' # 
SSH_ICON '\uF489 ' # 
EXECUTION_TIME_ICON '\uF252'$s # 
SSH_ICON '\uF489'$s # 
VPN_ICON '\UF023'
KUBERNETES_ICON '\U2388' # ⎈
DROPBOX_ICON '\UF16B ' # 
DROPBOX_ICON '\UF16B'$s # 
DATE_ICON '\uF073 ' # 
TIME_ICON '\uF017 ' # 
JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON '\ue73f' # 
RANGER_ICON '\u2B50' # ⭐
JAVA_ICON '\uE738' # 
LARAVEL_ICON '\ue73f'$q # 
RANGER_ICON '\uF00b ' # 
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON '\uE62B' # 
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
TERRAFORM_ICON '\uF1BB ' # 
PROXY_ICON '\u2B82' # ⮂
DOTNET_ICON '\uE77F' # 
DOTNET_CORE_ICON '\uE77F' # 
AZURE_ICON '\uFD03' # ﴃ
DIRENV_ICON '\u25BC' # ▼
FLUTTER_ICON 'F'
@ -463,7 +488,12 @@ function _p9k_init_icons() {
LUA_ICON '\uE620' # 
PERL_ICON '\uE769' # 
NNN_ICON 'nnn'
TIMEWARRIOR_ICON '\uF132' # 
TIMEWARRIOR_ICON '\uF49B' # 
NIX_SHELL_ICON '\uF313 ' # 
WIFI_ICON '\uF1EB ' # 
ERLANG_ICON '\uE7B1 ' # 
ELIXIR_ICON '\uE62D' # 
POSTGRES_ICON '\uE76E' # 
)
;;
*)
@ -481,7 +511,7 @@ function _p9k_init_icons() {
SUDO_ICON ''
RUBY_ICON 'Ruby'
AWS_ICON 'AWS'
AWS_EB_ICON '\U1F331' # 🌱
AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON '\u2699' # ⚙
TEST_ICON ''
TODO_ICON '\u2206' # ∆
@ -491,6 +521,7 @@ function _p9k_init_icons() {
FAIL_ICON '\u2718' # ✘
SYMFONY_ICON 'SF'
NODE_ICON 'Node'
NODEJS_ICON 'Node'
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
@ -564,9 +595,10 @@ function _p9k_init_icons() {
RANGER_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
TERRAFORM_ICON 'tf'
PROXY_ICON '\u2194' # ↔
DOTNET_ICON '.NET'
DOTNET_CORE_ICON '.NET'
AZURE_ICON '\u2601' # ☁
DIRENV_ICON '\u25BC' # ▼
FLUTTER_ICON 'F'
@ -575,6 +607,11 @@ function _p9k_init_icons() {
PERL_ICON 'perl'
NNN_ICON 'nnn'
TIMEWARRIOR_ICON 'tw'
NIX_SHELL_ICON 'nix'
WIFI_ICON 'WiFi'
ERLANG_ICON 'erl'
ELIXIR_ICON 'elixir'
POSTGRES_ICON 'postgres'
)
;;
esac
@ -598,7 +635,6 @@ function _p9k_init_icons() {
# Sadly, this is a part of public API. Its use is emphatically discouraged.
function _p9k_print_icon() {
_p9k_init_icons
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
local icon_name=$1
local var_name=POWERLEVEL9K_${icon_name}
if [[ -n "${(tP)var_name}" ]]; then
@ -615,7 +651,6 @@ function _p9k_print_icon() {
# overrides into account.
function _p9k_get_icon_names() {
_p9k_init_icons
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
# Iterate over a ordered list of keys of the icons array
for key in ${(@kon)icons}; do
echo -n "POWERLEVEL9K_$key: "

View File

@ -8,3 +8,49 @@
disabling implicit reset on every eval in _p9k_worker_receive.
- implement fake gitstatus api on top of vcs_info (or plain git?) + worker and use it if there is no
gitstatus.
## asdf
- https://asdf-vm.com/#/core-configuration?id=environment-variables
- https://asdf-vm.com/#/core-configuration?id=tool-versions
- https://asdf-vm.com/#/core-configuration?id=homeasdfrc
- https://asdf-vm.com/#/plugins-create?id=binlist-legacy-filenames
- https://asdf-vm.com/#/plugins-create?id=binparse-legacy-file
- `print -lr -- ${ASDF_DATA_DIR:-~/.asdf}/plugins/*(/N:t)`
- `print -lr -- $(${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin/list-legacy-filenames)`
- `${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin/parse-legacy-file ~/powerlevel10k/test/foo/.ruby-version`
- if empty, keep looking
- ASDF_${upcase_name}_VERSION wins over everything
- deeper version overrides win
- .tool-versions wins over .ruby-version when in the same directory
- versions for different tools are looked up independently: if /foo/bar/.tool-versions doesn't
override "ruby" it's as if it doesn't exist as far as ruby version is concerned.
- after upglob look $HOME (same file patterns)
- finally look at $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME (single file; parse it like .tool-versions)
- ${ASDF_CONFIG_FILE:-~/.asdfrc} parsing:
opt="$(
grep -E "^\\s*legacy_version_file\\s*=\\s*" "$config_path" |
head |
awk -F '=' '{print $2}' |
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
[[ $opt == yes ]]
Stat caches:
- ${ASDF_CONFIG_FILE:-~/.asdfrc} => legacy_version_file (yes or no)
- ${ASDF_DATA_DIR:-~/.asdf}/plugins => list of plugins
- ${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin => list of relevant scripts
(list-legacy-filenames and parse-legacy-file)
- ${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin/list-legacy-filenames => list (or pattern made from it?)
- /foo/bar => { tool => version } (permanent cache via stat cache)
---
typeset -ga _p9k_asdf_meta_files=(
${ASDF_CONFIG_FILE:-~/.asdfrc}
${ASDF_DATA_DIR:-~/.asdf}/plugins
${ASDF_DATA_DIR:-~/.asdf}/plugins/*/bin{,/list-legacy-filenames,/parse-legacy-file}(N)
)
typeset -g _p9k_asdf_meta_sig # $ASDF_CONFIG_FILE ':' $ASDF_DATA_DIR ':' $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME ':' $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME ':' ${(j.:.)mtimes}
typeset -g _p9k_asdf_file_pat # example: '(.tool-versions|.ruby-version)'
typeset -gA _p9k_asdf_file_info # .ruby-version => ruby1 ('1' means parse-legacy-file is present)

View File

@ -1,4 +1,4 @@
if [[ $__p9k_sourced != 3 ]]; then
if [[ $__p9k_sourced != 5 ]]; then
>&2 print -P ""
>&2 print -P "[%F{1}ERROR%f]: Corrupted powerlevel10k installation."
>&2 print -P ""
@ -112,7 +112,7 @@ typeset -grA __p9k_colors=(
#
# Type `getColorCode background` or `getColorCode foreground` to see the list of predefined colors.
function getColorCode() {
eval $__p9k_intro
eval "$__p9k_intro"
if (( ARGC == 1 )); then
case $1 in
foreground)
@ -139,7 +139,11 @@ function getColorCode() {
# Sadly, this is a part of public API. Its use is emphatically discouraged.
function print_icon() {
eval $__p9k_intro
eval "$__p9k_intro"
if (( ! $+_p9k__locale )); then
_p9k_init_locale
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale
fi
(( $+functions[_p9k_print_icon] )) || source "${__p9k_root_dir}/internal/icons.zsh"
_p9k_print_icon "$@"
}
@ -150,7 +154,11 @@ function print_icon() {
# otherwise "print_icon" is used, which takes the users
# overrides into account.
function get_icon_names() {
eval $__p9k_intro
eval "$__p9k_intro"
if (( ! $+_p9k__locale )); then
_p9k_init_locale
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale
fi
(( $+functions[_p9k_get_icon_names] )) || source "${__p9k_root_dir}/internal/icons.zsh"
_p9k_get_icon_names "$@"
}
@ -188,7 +196,6 @@ function _p9k_declare() {
(( set )) && typeset -g _$2=${(P)2} || typeset -g _$2=$3
;;
-e)
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
if (( set )); then
local v=${(P)2}
typeset -g _$2=${(g::)v}
@ -209,6 +216,7 @@ function _p9k_read_word() {
_p9k_ret=${cached#*:}
else
local rest
_p9k_ret=
{ read _p9k_ret rest <$1 } 2>/dev/null
_p9k__read_word_cache[$1]=$stat[1]:$_p9k_ret
fi
@ -516,7 +524,7 @@ _p9k_param() {
# _p9k_get_icon prompt_foo_BAR BAZ_ICON quix
_p9k_get_icon() {
local key="_p9k_param ${(pj:\0:)*}"
local key="_p9k_get_icon ${(pj:\0:)*}"
_p9k_ret=$_p9k_cache[$key]
if [[ -n $_p9k_ret ]]; then
_p9k_ret[-1,-1]=''
@ -524,11 +532,10 @@ _p9k_get_icon() {
if [[ $2 == $'\1'* ]]; then
_p9k_ret=${2[2,-1]}
else
_p9k_param "$@" ${icons[$2]-$'\1'$3}
_p9k_param "$1" "$2" ${icons[$2]-$'\1'$3}
if [[ $_p9k_ret == $'\1'* ]]; then
_p9k_ret=${_p9k_ret[2,-1]}
else
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
_p9k_ret=${(g::)_p9k_ret}
[[ $_p9k_ret != $'\b'? ]] || _p9k_ret="%{$_p9k_ret%}" # penance for past sins
fi
@ -766,7 +773,6 @@ _p9k_left_prompt_segment() {
p+='${${_p9k_e:#00}:+${${_p9k_t[$_p9k_n]/'$ss'/$_p9k_ss}/'$s'/$_p9k_s}'
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
_p9k_param $1 ICON_BEFORE_CONTENT ''
if [[ $_p9k_ret != false ]]; then
_p9k_param $1 PREFIX ''
@ -987,7 +993,6 @@ _p9k_right_prompt_segment() {
p+='${${_p9k_e:#00}:+${_p9k_t[$_p9k_n]/'$w'/$_p9k_w}'
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
_p9k_param $1 ICON_BEFORE_CONTENT ''
if [[ $_p9k_ret != true ]]; then
_p9k_param $1 PREFIX ''
@ -1311,6 +1316,7 @@ _p9k_prompt_battery_set_args() {
;;
Linux|Android)
# See https://sourceforge.net/projects/acpiclient.
local -a bats=( /sys/class/power_supply/(BAT*|battery)/(FN) )
(( $#bats )) || return
@ -1373,24 +1379,27 @@ _p9k_prompt_battery_set_args() {
[[ $_POWERLEVEL9K_BATTERY_VERBOSE == 1 && -n $remain ]] && msg+=" ($remain)"
local icon=BATTERY_ICON
if (( $#_POWERLEVEL9K_BATTERY_STAGES )); then
local -i idx=$#_POWERLEVEL9K_BATTERY_STAGES
(( bat_percent < 100 )) && idx=$((bat_percent * $#_POWERLEVEL9K_BATTERY_STAGES / 100 + 1))
icon=$'\1'$_POWERLEVEL9K_BATTERY_STAGES[idx]
local var=_POWERLEVEL9K_BATTERY_${state}_STAGES
local -i idx="${#${(@P)var}}"
if (( idx )); then
(( bat_percent < 100 )) && idx=$((bat_percent * idx / 100 + 1))
icon=$'\1'"${${(@P)var}[idx]}"
fi
local bg=$_p9k_color1
if (( $#_POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND )); then
local -i idx=$#_POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND
(( bat_percent < 100 )) && idx=$((bat_percent * $#_POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND / 100 + 1))
bg=$_POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND[idx]
local var=_POWERLEVEL9K_BATTERY_${state}_LEVEL_BACKGROUND
local -i idx="${#${(@P)var}}"
if (( idx )); then
(( bat_percent < 100 )) && idx=$((bat_percent * idx / 100 + 1))
bg="${${(@P)var}[idx]}"
fi
local fg=$_p9k_battery_states[$state]
if (( $#_POWERLEVEL9K_BATTERY_LEVEL_FOREGROUND )); then
local -i idx=$#_POWERLEVEL9K_BATTERY_LEVEL_FOREGROUND
(( bat_percent < 100 )) && idx=$((bat_percent * $#_POWERLEVEL9K_BATTERY_LEVEL_FOREGROUND / 100 + 1))
fg=$_POWERLEVEL9K_BATTERY_LEVEL_FOREGROUND[idx]
local var=_POWERLEVEL9K_BATTERY_${state}_LEVEL_FOREGROUND
local -i idx="${#${(@P)var}}"
if (( idx )); then
(( bat_percent < 100 )) && idx=$((bat_percent * idx / 100 + 1))
fg="${${(@P)var}[idx]}"
fi
_p9k__battery_args=(prompt_battery_$state "$bg" "$fg" $icon 0 '' $msg)
@ -1499,7 +1508,6 @@ prompt_context() {
if [[ -z $text ]]; then
local var=_POWERLEVEL9K_CONTEXT_${state}_TEMPLATE
if (( $+parameters[$var] )); then
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
text=${(P)var}
text=${(g::)text}
else
@ -1673,7 +1681,6 @@ prompt_dir() {
fi
local -i fake_first=0 expand=0
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
local delim=${_POWERLEVEL9K_SHORTEN_DELIMITER-$'\u2026'}
local -i shortenlen=${_POWERLEVEL9K_SHORTEN_DIR_LENGTH:--1}
@ -2061,7 +2068,7 @@ _p9k_prompt_detect_virt_init() {
# 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'
_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]
}
@ -3594,7 +3601,7 @@ function _p9k_maybe_ignore_git_repo() {
}
function _p9k_vcs_resume() {
eval $__p9k_intro
eval "$__p9k_intro"
_p9k_maybe_ignore_git_repo
@ -4088,6 +4095,7 @@ _p9k_prompt_azure_init() {
}
prompt_gcloud() {
# TODO: Use `gcloud config configurations list` instead.
unset P9K_GCLOUD_PROJECT P9K_GCLOUD_ACCOUNT
if ! _p9k_cache_stat_get $0 ~/.config/gcloud/active_config ~/.config/gcloud/configurations/config_default; then
_p9k_cache_stat_set "$(gcloud config get-value account 2>/dev/null)" "$(gcloud config get-value project 2>/dev/null)"
@ -4153,22 +4161,27 @@ function _p9k_fetch_nordvpn_status() {
>&$fd echo -nE - $'PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n\0\0\0\4\1\0\0\0\0\0\0N\1\4\0\0\0\1\203\206E\221bA\226\223\325\\k\337\31i=LnH\323j?A\223\266\243y\270\303\fYmLT{$\357]R.\203\223\257_\213\35u\320b\r&=LMedz\212\232\312\310\264\307`+\210K\203@\2te\206M\2035\5\261\37\0\0\5\0\1\0\0\0\1\0\0\0\0\0'
local tag len val
local -i n
IFS='' read -t 0.25 -r tag <&3
tag=$'\015'
while true; do
tag=$((#tag))
(( (tag >>= 3) && tag <= $#__p9k_nordvpn_tag )) || break
tag=$__p9k_nordvpn_tag[tag]
sysread -c n -s 1 -t 0.25 len <&3
len=$((#len))
val=
(( ! len )) || {
sysread -c n -s $len -t 0.25 val <&3
(( n == len ))
}
typeset -g $tag=$val
sysread -c n -s 1 -t 0.25 tag <&3
done
{
IFS='' read -t 0.25 -r tag
tag=$'\015'
while true; do
tag=$((#tag))
(( (tag >>= 3) && tag <= $#__p9k_nordvpn_tag )) || break
tag=$__p9k_nordvpn_tag[tag]
[[ -t $fd ]] || true
sysread -c n -s 1 -t 0.25 len
len=$((#len))
val=
(( ! len )) || {
[[ -t $fd ]] || true
sysread -c n -s $len -t 0.25 val
(( n == len ))
}
typeset -g $tag=$val
[[ -t $fd ]] || true
sysread -c n -s 1 -t 0.25 tag
done
} <&$fd
} always {
exec {fd}>&-
}
@ -4240,9 +4253,7 @@ _p9k_prompt_nordvpn_init() {
}
function prompt_ranger() {
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() {
@ -4268,9 +4279,7 @@ function instant_prompt_midnight_commander() {
}
function prompt_nnn() {
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() {
@ -4295,16 +4304,32 @@ function instant_prompt_vim_shell() {
_p9k_prompt_segment prompt_vim_shell green $_p9k_color1 VIM_ICON 0 '$VIMRUNTIME' ''
}
function prompt_nix_shell() {
_p9k_prompt_segment $0 4 $_p9k_color1 NIX_SHELL_ICON 0 '' "${(M)IN_NIX_SHELL:#(pure|impure)}"
}
_p9k_prompt_nix_shell_init() {
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${IN_NIX_SHELL:#0}'
}
function instant_prompt_nix_shell() {
_p9k_prompt_segment prompt_nix_shell 4 $_p9k_color1 NIX_SHELL_ICON 1 '${IN_NIX_SHELL:#0}' '${(M)IN_NIX_SHELL:#(pure|impure)}'
}
function prompt_terraform() {
local ws=default
if [[ -n $TF_WORKSPACE ]]; then
ws=$TF_WORKSPACE
else
local f=${TF_DATA_DIR:-.terraform}/environment
[[ -r $f ]] && _p9k_read_file $f && ws=$_p9k_ret
local ws=$TF_WORKSPACE
if [[ -z $TF_WORKSPACE ]]; then
_p9k_read_word ${${TF_DATA_DIR:-.terraform}:A}/environment && ws=$_p9k_ret
fi
ws=${${ws##[[:space:]]#}%%[[:space:]]#}
[[ $ws == default ]] || _p9k_prompt_segment $0 $_p9k_color1 blue TERRAFORM_ICON 0 '' $ws
[[ $ws == (|default) ]] && return
local pat class
for pat class in "${_POWERLEVEL9K_TERRAFORM_CLASSES[@]}"; do
if [[ $ws == ${~pat} ]]; then
[[ -n $class ]] && state=_${(U)class}
break
fi
done
_p9k_prompt_segment "$0$state" $_p9k_color1 blue TERRAFORM_ICON 0 '' $ws
}
_p9k_prompt_terraform_init() {
@ -4344,8 +4369,9 @@ function instant_prompt_direnv() {
function prompt_timewarrior() {
local -a stat
local timewarriordb=${TIMEWARRIORDB:-~/.timewarrior}
if [[ -n $_p9k_timewarrior_file_name ]]; then
zstat -A stat +mtime -- ~/.timewarrior/data $_p9k_timewarrior_file_name 2>/dev/null || stat=()
zstat -A stat +mtime -- ${timewarriordb}/data $_p9k_timewarrior_file_name 2>/dev/null || stat=()
if [[ $stat[1] == $_p9k_timewarrior_dir_mtime && $stat[2] == $_p9k_timewarrior_file_mtime ]]; then
if (( $+_p9k_timewarrior_tags )); then
_p9k_prompt_segment $0 grey 255 TIMEWARRIOR_ICON 0 '' "${_p9k_timewarrior_tags//\%/%%}"
@ -4353,7 +4379,7 @@ function prompt_timewarrior() {
return
fi
fi
if [[ ! -d ~/.timewarrior/data ]]; then
if [[ ! -d ${timewarriordb}/data ]]; then
_p9k_timewarrior_dir_mtime=0
_p9k_timewarrior_file_mtime=0
_p9k_timewarrior_file_name=
@ -4361,12 +4387,12 @@ function prompt_timewarrior() {
return
fi
if [[ $stat[1] != $_p9k_timewarrior_dir_mtime ]]; then
local -a files=(~/.timewarrior/data/<->-<->.data(.N))
local -a files=(${timewarriordb}/data/<->-<->.data(.N))
if (( ! $#files )); then
if (( $#stat )) || zstat -A stat +mtime -- ~/.timewarrior/data 2>/dev/null; then
if (( $#stat )) || zstat -A stat +mtime -- ${timewarriordb}/data 2>/dev/null; then
_p9k_timewarrior_dir_mtime=$stat[1]
_p9k_timewarrior_file_mtime=$stat[1]
_p9k_timewarrior_file_name=~/.timewarrior/data
_p9k_timewarrior_file_name=${timewarriordb}/data
else
_p9k_timewarrior_dir_mtime=0
_p9k_timewarrior_file_mtime=0
@ -4377,7 +4403,7 @@ function prompt_timewarrior() {
fi
_p9k_timewarrior_file_name=${${(AO)files}[1]}
fi
if ! zstat -A stat +mtime -- ~/.timewarrior/data $_p9k_timewarrior_file_name 2>/dev/null; then
if ! zstat -A stat +mtime -- ${timewarriordb}/data $_p9k_timewarrior_file_name 2>/dev/null; then
_p9k_timewarrior_dir_mtime=0
_p9k_timewarrior_file_mtime=0
_p9k_timewarrior_file_name=
@ -4399,6 +4425,286 @@ function _p9k_prompt_timewarrior_init() {
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='$commands[timew]'
}
prompt_wifi() {
local -i len=$#_p9k__prompt
_p9k_prompt_segment $0 green $_p9k_color1 WIFI_ICON 1 '$_p9k__wifi_on' '$P9K_WIFI_LAST_TX_RATE Mbps'
typeset -g "_p9k__segment_val_${_p9k_prompt_side}[_p9k_segment_index]"=$_p9k__prompt[len+1,-1]
}
_p9k_prompt_wifi_init() {
if [[ -x /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport ]]; then
typeset -g _p9k__wifi_on=
typeset -g P9K_WIFI_LAST_TX_RATE=
typeset -g P9K_WIFI_SSID=
typeset -g P9K_WIFI_LINK_AUTH=
typeset -g P9K_WIFI_RSSI=
typeset -g P9K_WIFI_NOISE=
typeset -g P9K_WIFI_BARS=
_p9k__async_segments_compute+=_p9k_prompt_wifi_compute
else
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${:-}'
fi
}
_p9k_prompt_wifi_compute() {
_p9k_worker_async _p9k_prompt_wifi_async _p9k_prompt_wifi_sync
}
_p9k_prompt_wifi_async() {
local airport=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
local last_tx_rate ssid link_auth rssi noise bars on out line v state
{
[[ -x $airport ]] || return 0
out="$($airport -I)" || return 0
for line in ${${${(f)out}##[[:space:]]#}%%[[:space:]]#}; do
v=${line#*: }
case $line[1,-$#v-3] in
agrCtlRSSI) rssi=$v;;
agrCtlNoise) noise=$v;;
state) state=$v;;
lastTxRate) last_tx_rate=$v;;
link\ auth) link_auth=$v;;
SSID) ssid=$v;;
esac
done
if [[ $state != running || $rssi != (0|-<->) || $noise != (0|-<->) ]]; then
rssi=
noise=
last_tx_rate=
link_auth=
ssid=
bars=
return 0
fi
# https://www.speedguide.net/faq/how-to-read-rssisignal-and-snrnoise-ratings-440
# http://www.wireless-nets.com/resources/tutorials/define_SNR_values.html
local -i snr_margin='rssi - noise'
if (( snr_margin >= 40 )); then
bars=4
elif (( snr_margin >= 25 )); then
bars=3
elif (( snr_margin >= 15 )); then
bars=2
elif (( snr_margin >= 10 )); then
bars=1
else
bars=0
fi
on=1
} always {
if [[ $_p9k__wifi_on != $on ||
$P9K_WIFI_LAST_TX_RATE != $last_tx_rate ||
$P9K_WIFI_SSID != $ssid ||
$P9K_WIFI_LINK_AUTH != $link_auth ||
$P9K_WIFI_RSSI != $rssi ||
$P9K_WIFI_NOISE != $noise ||
$P9K_WIFI_BARS != $bars ]]; then
_p9k__wifi_on=$on
P9K_WIFI_LAST_TX_RATE=$last_tx_rate
P9K_WIFI_SSID=$ssid
P9K_WIFI_LINK_AUTH=$link_auth
P9K_WIFI_RSSI=$rssi
P9K_WIFI_NOISE=$noise
P9K_WIFI_BARS=$bars
_p9k_print_params \
_p9k__wifi_on \
P9K_WIFI_LAST_TX_RATE \
P9K_WIFI_SSID \
P9K_WIFI_LINK_AUTH \
P9K_WIFI_RSSI \
P9K_WIFI_NOISE \
P9K_WIFI_BARS
echo -E - 'reset=1'
fi
}
}
_p9k_prompt_wifi_sync() {
if [[ -n $REPLY ]]; then
eval $REPLY
_p9k_worker_reply $REPLY
fi
}
function _p9k_asdf_check_meta() {
[[ -n $_p9k_asdf_meta_sig ]] || return
[[ -z $^_p9k_asdf_meta_non_files(#qN) ]] || return
local -a stat
zstat -A stat +mtime -- $_p9k_asdf_meta_files 2>/dev/null || return
[[ $_p9k_asdf_meta_sig == "$ASDF_CONFIG_FILE:$ASDF_DATA_DIR:${(j.:.)stat}" ]] || return
}
function _p9k_asdf_init_meta() {
{
local -a files
local -i legacy_enabled
_p9k_asdf_plugins=()
_p9k_asdf_file_info=()
local cfg=${ASDF_CONFIG_FILE:-~/.asdfrc}
files+=$cfg
if [[ -f $cfg && -r $cfg ]]; then
# Config parser in adsf is very strange.
#
# This gives "yes":
#
# legacy_version_file = yes = no
#
# This gives "no":
#
# legacy_version_file = yes
# legacy_version_file = yes
#
# We do the same.
local lines=(${(@M)${(f)"$(<$cfg)"}:#[[:space:]]#legacy_version_file[[:space:]]#=*})
if [[ $#lines == 1 && ${${(s:=:)lines[1]}[2]} == [[:space:]]#yes[[:space:]]# ]]; then
legacy_enabled=1
fi
fi
local root=${ASDF_DATA_DIR:-~/.asdf}/plugins
files+=$root
if [[ -d $root ]]; then
local plugin
for plugin in $root/[^[:space:]]##(N); do
_p9k_asdf_plugins+=${plugin:t}
if [[ ! -e $plugin/bin ]]; then
files+=$plugin/bin
else
local list_names=$plugin/bin/list-legacy-filenames
files+=$list_names
if [[ -x $list_names ]]; then
local -i has_parse=0
if (( legacy_enabled )); then
local parse=$plugin/bin/parse-legacy-file
files+=$parse
[[ -x $parse ]] && has_parse=1
fi
local name
for name in $($list_names 2>/dev/null); do
_p9k_asdf_file_info[$name]+="${plugin:t} $has_parse "
done
fi
fi
done
fi
_p9k_asdf_meta_files=($^files(N))
_p9k_asdf_meta_non_files=(${files:|_p9k_asdf_meta_files})
local -a stat
zstat -A stat +mtime -- $_p9k_asdf_meta_files 2>/dev/null || return
_p9k_asdf_meta_sig="$ASDF_CONFIG_FILE:$ASDF_DATA_DIR:${(j.:.)stat}"
} always {
(( $? )) || return
_p9k_asdf_meta_files=()
_p9k_asdf_meta_non_files=()
_p9k_asdf_meta_sig=
_p9k_asdf_plugins=()
_p9k_asdf_file_info=()
_p9k__asdf_dir2files=()
_p9k_asdf_file2versions=()
}
}
function prompt_asdf() {
_p9k_asdf_check_meta || _p9k_asdf_init_meta || return
local -A versions
local plugin
for plugin in $_p9k_asdf_plugins; do
local var=ASDF_${(U)plugin//-/_}_VERSION
local val="${(P)var}"
[[ -n $val ]] && versions[$plugin]=$val
done
local -a stat
zstat -A stat +mtime ~ 2>/dev/null || return
local dirs=($_p9k__parent_dirs ~)
local mtimes=($_p9k__parent_mtimes $stat[1])
local elem
for elem in ${(@)${:-{1..$#dirs}}/(#m)*/${${:-$MATCH:$_p9k__asdf_dir2files[$dirs[MATCH]]}#$MATCH:$mtimes[MATCH]:}}; do
if [[ $elem == *:* ]]; then
local dir=$dirs[${elem%%:*}]
zstat -A stat +mtime $dir 2>/dev/null || return
local files=($dir/.tool-versions(N) $dir/${(k)^_p9k_asdf_file_info}(N))
_p9k__asdf_dir2files[$dir]=$stat[1]:${(pj:\0:)files}
else
local files=(${(0)elem})
fi
local file
for file in $files; do
zstat -A stat +mtime $file 2>/dev/null || return
local cached=$_p9k_asdf_file2versions[$file]
if [[ $cached == $stat[1]:* ]]; then
local file_versions=(${(0)${cached#*:}})
else
local file_versions=()
if [[ $file == */.tool-versions ]]; then
{ local lines=(${(@)${(f)"$(<$file)"}/\#*}) } 2>/dev/null
local line
for line in $lines; do
local words=($=line)
(( $#words > 1 && $_p9k_asdf_plugins[(Ie)$words[1]] )) || continue
file_versions+=($words[1] "${words[2,-1]}")
done
else
local plugin has_parse
for plugin has_parse in $=_p9k_asdf_file_info[$file:t]; do
if (( has_parse )); then
local v=($(${ASDF_DATA_DIR:-~/.asdf}/plugins/$plugin/bin/parse-legacy-file $file 2>/dev/null))
else
{ local v=($(<$file)) } 2>/dev/null
fi
(( $#v )) && file_versions+=($plugin "$v")
done
fi
_p9k_asdf_file2versions[$file]=$stat[1]:${(pj:\0:)file_versions}
fi
local plugin version
for plugin version in $file_versions; do
[[ -z $versions[$plugin] ]] && versions[$plugin]=$version
done
done
done
if [[ -r $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME ]]; then
local file=$ASDF_DEFAULT_TOOL_VERSIONS_FILENAME
zstat -A stat +mtime $file 2>/dev/null || return
local cached=$_p9k_asdf_file2versions[$file]
if [[ $cached == $stat[1]:* ]]; then
local file_versions=(${(0)${cached#*:}})
else
local file_versions=()
{ local lines=(${(@)${(f)"$(<$file)"}/\#*}) } 2>/dev/null
local line
for line in $lines; do
local words=($=line)
(( $#words > 1 && $_p9k_asdf_plugins[(Ie)$words[1]] )) || continue
file_versions+=($words[1] "${words[2,-1]}")
done
_p9k_asdf_file2versions[$file]=$stat[1]:${(pj:\0:)file_versions}
fi
local plugin version
for plugin version in $file_versions; do
[[ -z $versions[$plugin] ]] && versions[$plugin]=$version
done
fi
local plugin version
for plugin version in ${(kv)versions}; do
local upper=${(U)plugin//-/_}
_p9k_get_icon $0_$upper ${upper}_ICON $plugin
_p9k_prompt_segment $0_$upper green $_p9k_color1 $'\1'$_p9k_ret 0 '' ${version//\%/%%}
done
}
_p9k_prompt_asdf_init() {
typeset -g "_p9k__segment_cond_${_p9k_prompt_side}[_p9k_segment_index]"='${commands[asdf]:-${${+functions[asdf]}:#0}}'
}
# Use two preexec hooks to survive https://github.com/MichaelAquilina/zsh-you-should-use with
# YSU_HARDCORE=1. See https://github.com/romkatv/powerlevel10k/issues/427.
_p9k_preexec1() {
@ -4421,15 +4727,21 @@ _p9k_preexec2() {
function _p9k_prompt_net_iface_init() {
typeset -g _p9k__public_ip_vpn=
typeset -g _p9k__public_ip_not_vpn=
typeset -g _p9k__ip_ip=
typeset -g P9K_IP_IP=
typeset -g P9K_IP_INTERFACE=
typeset -g P9K_IP_TX_BYTES=
typeset -g P9K_IP_RX_BYTES=
typeset -g P9K_IP_TX_RATE=
typeset -g P9K_IP_RX_RATE=
typeset -g _p9__ip_timestamp=
typeset -g _p9k__vpn_ip_ip=
[[ -z $_POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE ]] && _p9k__public_ip_not_vpn=1
_p9k__async_segments_compute+=_p9k_prompt_net_iface_compute
}
# reads `iface2ip` and sets `ip`
# reads `iface2ip` and sets `iface` and `ip`
function _p9k_prompt_net_iface_match() {
local iface_regex="^($1)\$" iface
local iface_regex="^($1)\$"
for iface ip in "${(@kv)iface2ip}"; do
[[ $iface =~ $iface_regex ]] && return
done
@ -4441,23 +4753,24 @@ function _p9k_prompt_net_iface_compute() {
}
function _p9k_prompt_net_iface_async() {
# netstat -inbI en0
local iface ip line var
typeset -A iface2ip
if [[ -x /sbin/ifconfig ]]; then
for line in ${(f)"$(/sbin/ifconfig 2>/dev/null)"}; do
typeset -a iface2ip
if (( $+commands[ifconfig] )); then
for line in ${(f)"$(command ifconfig 2>/dev/null)"}; do
if [[ $line == (#b)([^[:space:]]##):[[:space:]]##flags=(<->)'<'* ]]; then
[[ $match[2] == *[13579] ]] && iface=$match[1] || iface=
elif [[ -n $iface && $line == (#b)[[:space:]]##inet[[:space:]]##([0-9.]##)* ]]; then
iface2ip[$iface]=$match[1]
iface2ip+=($iface $match[1])
iface=
fi
done
elif [[ -x /sbin/ip ]]; then
for line in ${(f)"$(/sbin/ip -4 a show 2>/dev/null)"}; do
elif (( $+commands[ip] )); then
for line in ${(f)"$(command ip -4 a show 2>/dev/null)"}; do
if [[ $line == (#b)<->:[[:space:]]##([^:]##):[[:space:]]##\<([^\>]#)\>* ]]; then
[[ ,$match[2], == *,UP,* ]] && iface=$match[1] || iface=
elif [[ -n $iface && $line == (#b)[[:space:]]##inet[[:space:]]##([0-9.]##)* ]]; then
iface2ip[$iface]=$match[1]
iface2ip+=($iface $match[1])
iface=
fi
done
@ -4471,9 +4784,43 @@ function _p9k_prompt_net_iface_async() {
local public_ip_not_vpn=1
fi
if _p9k_prompt_net_iface_match $_POWERLEVEL9K_IP_INTERFACE; then
local ip_ip=$ip
local ip_ip=$ip ip_interface=$iface ip_timestamp=$EPOCHREALTIME
local ip_tx_bytes=0 ip_rx_bytes=0 ip_tx_rate='0 B/s' ip_rx_rate='0 B/s'
if [[ $_p9k_os == (Linux|Android) ]]; then
if [[ -r /sys/class/net/$iface/statistics/rx_bytes ]] &&
_p9k_read_file /sys/class/net/$iface/statistics/rx_bytes; then
ip_rx_bytes=$_p9k_ret
fi
if [[ -r /sys/class/net/$iface/statistics/tx_bytes ]] &&
_p9k_read_file /sys/class/net/$iface/statistics/tx_bytes; then
ip_tx_bytes=$_p9k_ret
fi
elif [[ $_p9k_os == (BSD|OSX) && $+commands[netstat] == 1 ]]; then
local -a lines
if lines=(${(f)"$(netstat -inbI $iface)"}); then
local header=($=lines[1])
local -i rx_idx=$header[(Ie)Ibytes]
local -i tx_idx=$header[(Ie)Obytes]
for line in ${lines:1}; do
(( ip_rx_bytes += ${line[(w)rx_idx]} ))
(( ip_tx_bytes += ${line[(w)tx_idx]} ))
done
fi
fi
if [[ $ip_ip == $P9K_IP_IP && $iface == $P9K_IP_INTERFACE ]]; then
local -F t='ip_timestamp - _p9__ip_timestamp'
if (( t <= 0 )); then
ip_tx_rate=$P9K_IP_TX_RATE
ip_rx_rate=$P9K_IP_RX_RATE
else
_p9k_human_readable_bytes $(((ip_tx_bytes - P9K_IP_TX_BYTES) / t))
[[ $_p9k_ret == *B ]] && ip_tx_rate="$_p9k_ret[1,-2] B/s" || ip_tx_rate="$_p9k_ret[1,-2] $_p9k_ret[-1]iB/s"
_p9k_human_readable_bytes $(((ip_rx_bytes - P9K_IP_RX_BYTES) / t))
[[ $_p9k_ret == *B ]] && ip_rx_rate="$_p9k_ret[1,-2] B/s" || ip_rx_rate="$_p9k_ret[1,-2] $_p9k_ret[-1]iB/s"
fi
fi
else
local ip_ip=
local ip_ip= ip_interface= ip_tx_bytes= ip_rx_bytes= ip_tx_rate= ip_rx_rate= ip_timestamp=
fi
if _p9k_prompt_net_iface_match $_POWERLEVEL9K_VPN_IP_INTERFACE; then
local vpn_ip_ip=$ip
@ -4482,13 +4829,34 @@ function _p9k_prompt_net_iface_async() {
fi
[[ $_p9k__public_ip_vpn == $public_ip_vpn &&
$_p9k__public_ip_not_vpn == $public_ip_not_vpn &&
$_p9k__ip_ip == $ip_ip &&
$P9K_IP_IP == $ip_ip &&
$P9K_IP_INTERFACE == $ip_interface &&
$P9K_IP_TX_BYTES == $ip_tx_bytes &&
$P9K_IP_RX_BYTES == $ip_rx_bytes &&
$P9K_IP_TX_RATE == $ip_tx_rate &&
$P9K_IP_RX_RATE == $ip_rx_rate &&
$_p9k__vpn_ip_ip == $vpn_ip_ip ]] && return 1
_p9k__public_ip_vpn=$public_ip_vpn
_p9k__public_ip_not_vpn=$public_ip_not_vpn
_p9k__ip_ip=$ip_ip
P9K_IP_IP=$ip_ip
P9K_IP_INTERFACE=$ip_interface
P9K_IP_TX_BYTES=$ip_tx_bytes
P9K_IP_RX_BYTES=$ip_rx_bytes
P9K_IP_TX_RATE=$ip_tx_rate
P9K_IP_RX_RATE=$ip_rx_rate
_p9__ip_timestamp=$ip_timestamp
_p9k__vpn_ip_ip=$vpn_ip_ip
_p9k_print_params _p9k__public_ip_vpn _p9k__public_ip_not_vpn _p9k__ip_ip _p9k__vpn_ip_ip
_p9k_print_params \
_p9k__public_ip_vpn \
_p9k__public_ip_not_vpn \
P9K_IP_IP \
P9K_IP_INTERFACE \
P9K_IP_TX_BYTES \
P9K_IP_RX_BYTES \
P9K_IP_TX_RATE \
P9K_IP_RX_RATE \
_p9__ip_timestamp \
_p9k__vpn_ip_ip
echo -E - 'reset=1'
}
@ -4640,6 +5008,8 @@ function _p9k_set_prompt() {
_p9k_prompt_side=
(( $#_p9k_cache < _POWERLEVEL9K_MAX_CACHE_SIZE )) || _p9k_cache=()
(( $#_p9k__cache_ephemeral < _POWERLEVEL9K_MAX_CACHE_SIZE )) || _p9k__cache_ephemeral=()
[[ -n $RPROMPT ]] || unset RPROMPT
}
_p9k_set_instant_prompt() {
@ -4649,6 +5019,7 @@ _p9k_set_instant_prompt() {
typeset -g _p9k_instant_prompt=$PROMPT$'\x1f'$_p9k__prompt$'\x1f'$RPROMPT
PROMPT=$saved_prompt
RPROMPT=$saved_rprompt
[[ -n $RPROMPT ]] || unset RPROMPT
}
typeset -gri __p9k_instant_prompt_version=18
@ -4689,7 +5060,7 @@ _p9k_dump_instant_prompt() {
local prompt_dir=${(q)prompt_dir}
zmodload zsh/langinfo
if [[ \${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
local lc=${(q)${${${_p9k_locale:-${(M)LC_CTYPE:#*.(utf|UTF)(-|)8}}:-${(M)LC_ALL:#*.(utf|UTF)(-|)8}}}:-${(M)LANG:#*.(utf|UTF)(-|)8}}
local lc=${(q)${${${_p9k__locale:-${(M)LC_CTYPE:#*.(utf|UTF)(-|)8}}:-${(M)LC_ALL:#*.(utf|UTF)(-|)8}}}:-${(M)LANG:#*.(utf|UTF)(-|)8}}
local LC_ALL=\${lc:-\${\${(@M)\$(locale -a 2>/dev/null):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}}
fi"
>&$fd print -r -- '
@ -4954,7 +5325,7 @@ _p9k_dump_instant_prompt() {
echo -n >$tmp || return
fi
{ print -rn -- entry=$'\x1e'$_p9k__instant_prompt_sig$'\x1f'${(pj:\x1f:)_p9k_t}$'\x1f'$_p9k_instant_prompt >>$tmp } 2>/dev/null || return
{ print -rn -- $'\x1e'$_p9k__instant_prompt_sig$'\x1f'${(pj:\x1f:)_p9k_t}$'\x1f'$_p9k_instant_prompt >>$tmp } 2>/dev/null || return
zf_mv -f $tmp $prompt_file 2>/dev/null || return
}
@ -5208,7 +5579,7 @@ function _p9k_on_expand() {
(( _p9k__expanded && ! $+__p9k_instant_prompt_active )) && return
() {
eval $__p9k_intro
eval "$__p9k_intro"
_p9k_maybe_dump
(( $+__p9k_instant_prompt_active )) && _p9k_clear_instant_prompt
@ -5298,10 +5669,15 @@ function _p9k_on_expand() {
functions -M _p9k_on_expand
_p9k_precmd_impl() {
eval $__p9k_intro
eval "$__p9k_intro"
(( __p9k_enabled )) || return
if (( ! $+_p9k__locale )); then
_p9k_init_locale
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale
fi
if ! zle || [[ -z $_p9k__param_sig ]]; then
if zle; then
__p9k_new_status=0
@ -5397,7 +5773,7 @@ _p9k_precmd_impl() {
_p9k_trapint() {
if (( __p9k_enabled )); then
eval $__p9k_intro
eval "$__p9k_intro"
zle && _p9k_on_widget_zle-line-finish int
fi
return 0
@ -5447,10 +5823,38 @@ function _p9k_prompt_overflow_bug() {
is-at-least 5.5 && ! is-at-least 5.7.2
}
function _p9k_init_locale() {
zmodload zsh/langinfo
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
typeset -g _p9k__locale=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
else
typeset -g _p9k__locale=
fi
}
typeset -g _p9k__param_pat
typeset -g _p9k__param_sig
_p9k_init_vars() {
typeset -ga _p9k_asdf_meta_files
typeset -ga _p9k_asdf_meta_non_files
typeset -g _p9k_asdf_meta_sig
# example: (ruby lua chubaka)
typeset -ga _p9k_asdf_plugins
# example: (.ruby-version "ruby 1 chubaka 0")
#
# - "1" means parse-legacy-file is present
# - "chubaka" is another plugin that claims to be able to parse .ruby-version
typeset -gA _p9k_asdf_file_info
# dir => mtime ':' ${(pj:\0:)files}
typeset -gA _p9k__asdf_dir2files
# file => mtime ':' ${(pj:\0:)versions}
typeset -gA _p9k_asdf_file2versions
# filepath => mtime ':' word
typeset -gA _p9k__read_word_cache
# filepath:prefix => mtime ':' versions
@ -5599,7 +6003,7 @@ _p9k_init_vars() {
typeset -g _p9k__last_prompt_pwd
typeset -gA _p9k_display_k
typeset -ga _p9k__display_v
typeset -ga _p9k__async_segments_compute
typeset -gaU _p9k__async_segments_compute
typeset -gA _p9k__dotnet_stat_cache
typeset -gA _p9k__dir_stat_cache
@ -5672,16 +6076,32 @@ _p9k_init_params() {
_p9k_declare -i POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL 95
_p9k_declare -i POWERLEVEL9K_BATTERY_LOW_THRESHOLD 10
_p9k_declare -i POWERLEVEL9K_BATTERY_HIDE_ABOVE_THRESHOLD 999
_p9k_declare -b POWERLEVEL9K_BATTERY_VERBOSE 1
_p9k_declare -a POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND --
_p9k_declare -a POWERLEVEL9K_BATTERY_LEVEL_FOREGROUND --
_p9k_declare -b POWERLEVEL9K_BATTERY_VERBOSE 1
if [[ $parameters[POWERLEVEL9K_BATTERY_STAGES] == scalar ]]; then
_p9k_declare -e POWERLEVEL9K_BATTERY_STAGES
else
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
_p9k_declare -a POWERLEVEL9K_BATTERY_STAGES --
_POWERLEVEL9K_BATTERY_STAGES=("${(@g::)_POWERLEVEL9K_BATTERY_STAGES}")
fi
case $parameters[POWERLEVEL9K_BATTERY_STAGES] in
scalar*) typeset -ga _POWERLEVEL9K_BATTERY_STAGES=("${(@s::)${(g::)POWERLEVEL9K_BATTERY_STAGES}}");;
array*) typeset -ga _POWERLEVEL9K_BATTERY_STAGES=("${(@g::)POWERLEVEL9K_BATTERY_STAGES}");;
esac
local state
for state in CHARGED CHARGING LOW DISCONNECTED; do
local var=POWERLEVEL9K_BATTERY_${state}_STAGES
case $parameters[$var] in
scalar*) eval "typeset -ga _$var=(${(@qq)${(@s::)${(g::)${(P)var}}}})";;
array*) eval "typeset -ga _$var=(${(@qq)${(@g::)${(@P)var}}})";;
*) eval "typeset -ga _$var=(${(@qq)_POWERLEVEL9K_BATTERY_STAGES})";;
esac
local var=POWERLEVEL9K_BATTERY_${state}_LEVEL_BACKGROUND
case $parameters[$var] in
array*) eval "typeset -ga _$var=(${(@qq)${(@P)var}})";;
*) eval "typeset -ga _$var=(${(@qq)_POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND})";;
esac
local var=POWERLEVEL9K_BATTERY_${state}_LEVEL_FOREGROUND
case $parameters[$var] in
array*) eval "typeset -ga _$var=(${(@qq)${(@P)var}})";;
*) eval "typeset -ga _$var=(${(@qq)_POWERLEVEL9K_BATTERY_LEVEL_FOREGROUND})";;
esac
done
_p9k_declare -F POWERLEVEL9K_PUBLIC_IP_TIMEOUT 300
_p9k_declare -a POWERLEVEL9K_PUBLIC_IP_METHODS -- dig curl wget
_p9k_declare -e POWERLEVEL9K_PUBLIC_IP_NONE ""
@ -5885,6 +6305,7 @@ _p9k_init_params() {
# POWERLEVEL9K_KUBECONTEXT_OTHER_BACKGROUND=yellow
_p9k_declare -a POWERLEVEL9K_KUBECONTEXT_CLASSES --
_p9k_declare -a POWERLEVEL9K_AWS_CLASSES --
_p9k_declare -a POWERLEVEL9K_TERRAFORM_CLASSES --
_p9k_declare -a POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES -- 'service_account:*' SERVICE_ACCOUNT
# Specifies the format of java version.
#
@ -6015,7 +6436,7 @@ function _p9k_widget_hook() {
fi
fi
eval $__p9k_intro
eval "$__p9k_intro"
(( _p9k__restore_prompt_fd )) && _p9k_restore_prompt $_p9k__restore_prompt_fd
__p9k_reset_state=1
local pat idx var
@ -6089,7 +6510,7 @@ function _p9k_wrap_widgets() {
}
function _p9k_restore_prompt() {
eval $__p9k_intro
eval "$__p9k_intro"
{
(( _p9k__must_restore_prompt )) || return
_p9k__must_restore_prompt=0
@ -6157,7 +6578,6 @@ _p9k_build_gap_post() {
}
_p9k_init_lines() {
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
local -a left_segments=($_POWERLEVEL9K_LEFT_PROMPT_ELEMENTS)
local -a right_segments=($_POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS)
@ -6198,6 +6618,11 @@ _p9k_init_lines() {
[[ -n $_p9k_ret ]] && _p9k_line_never_empty_right+=1 || _p9k_line_never_empty_right+=0
_p9k_line_prefix_right+='${_p9k__'$i'r-${${:-${_p9k_bg::=NONE}${_p9k_i::=0}${_p9k_sss::='$_p9k_ret'}}+}'
_p9k_line_suffix_right+='$_p9k_sss%b%k%f}' # gets overridden for _p9k_emulate_zero_rprompt_indent
if (( i == num_lines )); then
# it's safe to use _p9k_prompt_length on the last line because it cannot have prompt connection
_p9k_prompt_length ${(e)_p9k_ret}
(( _p9k_ret )) || _p9k_line_never_empty_right[-1]=0
fi
done
_p9k_get_icon '' LEFT_SEGMENT_END_SEPARATOR
@ -6251,7 +6676,9 @@ _p9k_init_lines() {
if [[ -n $_p9k_ret ]]; then
[[ _p9k_ret == *%* ]] && _p9k_ret+=%b%k%f
_p9k_line_suffix_right[-1]+='${_p9k__'$num_lines'r_frame-'${(qqq)_p9k_ret}'}'
_p9k_line_never_empty_right[-1]=1
# it's safe to use _p9k_prompt_length on the last line because it cannot have prompt connection
_p9k_prompt_length $_p9k_ret
(( _p9k_ret )) && _p9k_line_never_empty_right[-1]=1
fi
if (( num_lines > 2 )); then
@ -6447,7 +6874,7 @@ _p9k_must_init() {
[[ $sig == $_p9k__param_sig ]] && return 1
_p9k_deinit
fi
_p9k__param_pat=$'v30\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
_p9k__param_pat=$'v38\1'${ZSH_VERSION}$'\1'${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+=$'$DEFAULT_USER\1${ZLE_RPROMPT_INDENT:-1}\1$P9K_SSH\1$__p9k_ksh_arrays'
@ -6609,7 +7036,6 @@ function _p9k_init_cacheable() {
if _p9k_segment_in_use dir; then
if (( $+_POWERLEVEL9K_DIR_CLASSES )); then
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
local -i i=3
for ((; i <= $#_POWERLEVEL9K_DIR_CLASSES; i+=3)); do
_POWERLEVEL9K_DIR_CLASSES[i]=${(g::)_POWERLEVEL9K_DIR_CLASSES[i]}
@ -6883,7 +7309,7 @@ _p9k_setup() {
prompt_opts+=cr
fi
eval $__p9k_intro
eval "$__p9k_intro"
prompt_powerlevel9k_teardown
__p9k_enabled=1
typeset -ga preexec_functions=(_p9k_preexec1 $preexec_functions _p9k_preexec2)
@ -6893,7 +7319,7 @@ _p9k_setup() {
prompt_powerlevel9k_setup() { _p9k_setup }
prompt_powerlevel9k_teardown() {
eval $__p9k_intro
eval "$__p9k_intro"
add-zsh-hook -D precmd '(_p9k_|powerlevel9k_)*'
add-zsh-hook -D preexec '(_p9k_|powerlevel9k_)*'
PROMPT='%m%# '
@ -7061,7 +7487,7 @@ typeset -gi __p9k_reset_state
function p10k() {
[[ $# != 1 || $1 != finalize ]] || { p10k-instant-prompt-finalize; return 0 }
eval $__p9k_intro
eval "$__p9k_intro"
if (( !ARGC )); then
print -rP -- $__p9k_p10k_usage >&2

View File

@ -141,7 +141,7 @@ function _p9k_parse_buffer() {
local rcquotes
[[ -o rcquotes ]] && rcquotes=rcquotes
eval $__p9k_intro
eval "$__p9k_intro"
setopt no_nomatch $rcquotes
typeset -ga P9K_COMMANDS=()

View File

@ -1,10 +1,3 @@
zmodload zsh/langinfo
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
fi
zmodload -F zsh/files b:zf_mv b:zf_rm
local -i force=0
local opt
@ -80,12 +73,12 @@ local -ra classic_right=(
)
local -ra pure_left=(
'' '%F{$pure_color[blue]}~/src%f %F{$pure_color[grey]}master%f %F{$pure_color[yellow]}5s%f'
'' '%F{$pure_color[blue]}~/src%f %F{$pure_color[grey]}master%f ${pure_use_rprompt-%F{$pure_color[yellow]\}5s%f }'
'' '%F{$pure_color[magenta]}%f ${buffer:-█}'
)
local -ra pure_right=(
'' ''
'${pure_use_rprompt+%F{$pure_color[yellow]\}5s%f${show_time:+ }}${show_time:+%F{$pure_color[grey]\}16:23:42%f}' ''
'' ''
)
@ -769,7 +762,7 @@ function ask_ornaments_color() {
}
function ask_time() {
if (( wizard_columns < 80 )); then
if (( wizard_columns < 80 )) && [[ $style != pure ]]; then
show_time=
return 0
fi
@ -801,6 +794,35 @@ function ask_time() {
done
}
function ask_use_rprompt() {
[[ $style != pure ]] && return
while true; do
clear
flowing -c "%BNon-permanent content location%b"
print -P ""
print -P "%B(1) Left.%b"
print -P ""
print_prompt
print -P ""
print -P "%B(2) Right.%b"
print -P ""
pure_use_rprompt= 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 [12rq]: %b"} || quit -c
case $key in
q) quit;;
r) return 1;;
1) break;;
2) pure_use_rprompt=; options+=rpromt; break;;
esac
done
}
function os_icon_name() {
local uname="$(uname)"
if [[ $uname == Linux && "$(uname -o 2>/dev/null)" == Android ]]; then
@ -846,7 +868,7 @@ function os_icon_name() {
}
function ask_extra_icons() {
if [[ $POWERLEVEL9K_MODE == (powerline|compatible) ]]; then
if [[ $style == pure || $POWERLEVEL9K_MODE == (powerline|compatible) ]]; then
return 0
fi
local os_icon=${(g::)icons[$(os_icon_name)]}
@ -900,6 +922,7 @@ function ask_extra_icons() {
}
function ask_prefixes() {
[[ $style == pure ]] && return
local concise=('' '' '')
local fluent=('on ' 'took ' 'at ')
if (( wizard_columns < 80 )); then
@ -1201,9 +1224,7 @@ function ask_num_lines() {
}
function ask_gap_char() {
if [[ $num_lines != 2 ]]; then
return 0
fi
[[ $num_lines != 2 || $style == pure ]] && return
while true; do
clear
flowing -c "%BPrompt Connection%b"
@ -1543,8 +1564,6 @@ function generate_config() {
if [[ $POWERLEVEL9K_MODE == (compatible|powerline) ]]; then
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'
@ -1569,7 +1588,7 @@ function generate_config() {
fi
if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
sub BATTERY_STAGES "\$'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'"
sub BATTERY_STAGES "'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'"
fi
if [[ $style == (classic|rainbow) ]]; then
@ -1599,10 +1618,6 @@ function generate_config() {
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 '"
@ -1633,15 +1648,6 @@ function generate_config() {
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'"
if [[ $style == (classic|rainbow) && $num_lines == 2 ]]; then
@ -1683,10 +1689,32 @@ function generate_config() {
uncomment vi_mode
fi
fi
(( empty_line )) && sub PROMPT_ADD_NEWLINE true || sub PROMPT_ADD_NEWLINE false
fi
if (( $+pure_use_rprompt )); then
local segment
for segment in command_execution_time virtualenv context; do
rep " $segment" " tmp_$segment"
uncomment $segment
rep " tmp_$segment " " # $segment"
done
fi
if [[ -n $show_time ]]; then
uncomment time
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
(( empty_line )) && sub PROMPT_ADD_NEWLINE true || sub PROMPT_ADD_NEWLINE false
sub INSTANT_PROMPT $instant_prompt
(( transient_prompt )) && sub TRANSIENT_PROMPT always
@ -1793,6 +1821,8 @@ while true; do
local -A pure_color=(${(kv)pure_original})
fi
unset pure_use_rprompt
ask_font || continue
ask_diamond || continue
if [[ $AWESOME_GLYPHS_LOADED == 1 ]]; then
@ -1847,27 +1877,26 @@ while true; do
right_head=$fade_in
fi
_p9k_init_icons
ask_narrow_icons || continue
ask_style || continue
ask_color_scheme || 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_ornaments_color || continue
ask_empty_line || continue
ask_extra_icons || continue
ask_prefixes || continue
fi
ask_transient_prompt || continue
ask_instant_prompt || continue
ask_config_overwrite || continue
ask_zshrc_edit || continue
ask_narrow_icons || continue
ask_style || continue
ask_color_scheme || continue
ask_color || continue
ask_use_rprompt || 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
ask_transient_prompt || continue
ask_instant_prompt || continue
ask_config_overwrite || continue
ask_zshrc_edit || continue
break
done
@ -1882,7 +1911,7 @@ if [[ -n $zshrc_backup ]]; then
fi
generate_config || return
change_zshrc || return
change_zshrc || return
print -rP ""
flowing +c File feature requests and bug reports at "$(href https://github.com/romkatv/powerlevel10k/issues)."

View File

@ -34,6 +34,7 @@ function _p9k_worker_main() {
if [[ $fd == 0 ]]; then
local buf=
while true; do
[[ -t 0 ]]
sysread -t 0 'buf[$#buf+1]' && continue
(( $? == 4 )) || return
[[ $buf[-1] == (|$'\x1e') ]] && break
@ -85,7 +86,7 @@ function _p9k_worker_invoke() {
}
function _p9k_worker_cleanup() {
eval $__p9k_intro
eval "$__p9k_intro"
[[ $_p9k__worker_shell_pid == $sysparams[pid] ]] && _p9k_worker_stop
return 0
}
@ -106,7 +107,7 @@ function _p9k_worker_stop() {
}
function _p9k_worker_receive() {
eval $__p9k_intro
eval "$__p9k_intro"
[[ -z $_p9k__worker_resp_fd ]] && return
@ -115,13 +116,14 @@ function _p9k_worker_receive() {
local buf resp
while true; do
[[ -t $_p9k__worker_resp_fd ]]
sysread -t 0 -i $_p9k__worker_resp_fd 'buf[$#buf+1]' && continue
(( $? == 4 )) || return
[[ $buf == (|*$'\x1e')$'\x05'# ]] && break
sysread -i $_p9k__worker_resp_fd 'buf[$#buf+1]' || return
done
local -i reset
local -i reset max_reset
for resp in ${(ps:\x1e:)${buf//$'\x05'}}; do
local arg=$resp[2,-1]
case $resp[1] in
@ -135,13 +137,8 @@ function _p9k_worker_receive() {
fi
;;
e)
if (( start_time )); then
local -F end_time=EPOCHREALTIME
local -F3 latency=$((1000*(end_time-start_time)))
echo "latency: $latency ms" >>/tmp/log
start_time=0
fi
() { eval $arg }
(( reset > max_reset )) && max_reset=reset
;;
s)
[[ -z $_p9k__worker_pid ]] || return
@ -160,12 +157,12 @@ function _p9k_worker_receive() {
esac
done
if (( reset == 2 )); then
if (( max_reset == 2 )); then
_p9k_refresh_reason=worker
_p9k_set_prompt
_p9k_refresh_reason=''
fi
(( reset )) && _p9k_reset_prompt
(( max_reset )) && _p9k_reset_prompt
return 0
} always {
(( $? )) && _p9k_worker_stop

View File

@ -1,573 +0,0 @@
{"version": 2, "width": 127, "height": 45, "timestamp": 1559376160, "env": {"SHELL": "/usr/bin/zsh", "TERM": "xterm-256color"}, "title": "p9k vs p10k"}
[0.53704, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[1.802793, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.54 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[2.645571, "i", "c"]
[2.645863, "o", "c"]
[2.749229, "i", "a"]
[2.749471, "o", "\bca"]
[2.821008, "i", "t"]
[2.821208, "o", "t"]
[2.917345, "i", " "]
[2.917563, "o", " "]
[3.141259, "i", "~"]
[3.141483, "o", "~"]
[3.317344, "i", "/"]
[3.31756, "o", "/"]
[3.501341, "i", "."]
[3.501574, "o", "."]
[3.709525, "i", "z"]
[3.709787, "o", "z"]
[4.285646, "i", "s"]
[4.28589, "o", "s"]
[4.40539, "i", "h"]
[4.405619, "o", "h"]
[4.517287, "i", "r"]
[4.517532, "o", "r"]
[4.741459, "i", "c"]
[4.741702, "o", "c"]
[5.957417, "i", "\r"]
[5.957699, "o", "\u001b[?2004l\r\r\n"]
[5.963966, "o", "export NVM_DIR=~/nvm\r\nsource $NVM_DIR/nvm.sh\r\n\r\nPOWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(load todo background_jobs kubecontext nvm dir vcs)\r\nPOWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()\r\nPOWERLEVEL9K_DIR_PATH_ABSOLUTE=true\r\nPOWERLEVEL9K_SHORTEN_STRATEGY=truncate_with_package_name\r\n\r\nsource ~/powerlevel9k/powerlevel9k.zsh-theme\r\n"]
[5.964191, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[6.960979, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[7.341627, "i", "e"]
[7.341903, "o", "e"]
[7.557579, "i", "c"]
[7.557797, "o", "\bec"]
[7.629363, "i", "h"]
[7.629586, "o", "h"]
[7.757141, "i", "o"]
[7.757369, "o", "o"]
[7.837404, "i", " "]
[7.83764, "o", " "]
[7.965308, "i", "o"]
[7.965505, "o", "o"]
[8.085223, "i", "r"]
[8.08542, "o", "r"]
[8.181345, "i", "i"]
[8.181584, "o", "i"]
[8.285333, "i", "g"]
[8.285535, "o", "g"]
[8.357376, "i", "i"]
[8.357591, "o", "i"]
[8.501418, "i", "n"]
[8.501621, "o", "n"]
[8.581417, "i", "a"]
[8.581623, "o", "a"]
[8.661315, "i", "l"]
[8.661516, "o", "l"]
[8.789288, "i", " "]
[8.78952, "o", " "]
[8.973335, "i", "p"]
[8.97356, "o", "p"]
[9.125345, "i", "o"]
[9.125551, "o", "o"]
[9.253231, "i", "w"]
[9.253426, "o", "w"]
[9.301294, "i", "e"]
[9.301469, "o", "e"]
[9.373118, "i", "r"]
[9.373317, "o", "r"]
[9.516979, "i", "l"]
[9.517165, "o", "l"]
[9.557044, "i", "e"]
[9.557246, "o", "e"]
[9.741259, "i", "v"]
[9.741461, "o", "v"]
[9.797193, "i", "e"]
[9.797413, "o", "e"]
[9.868882, "i", "l"]
[9.869078, "o", "l"]
[10.036815, "i", "9"]
[10.037002, "o", "9"]
[10.180929, "i", "k"]
[10.181134, "o", "k"]
[10.413048, "i", "\r"]
[10.413272, "o", "\u001b[?2004l\r\r\n"]
[10.413438, "o", "original powerlevel9k\r\n"]
[10.413519, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[11.421676, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[11.573397, "i", "l"]
[11.573648, "o", "l"]
[11.773387, "i", "s"]
[11.773623, "o", "\bls"]
[12.013242, "i", "\r"]
[12.013481, "o", "\u001b[?2004l\r\r\n"]
[12.015871, "o", "azure-pipelines.yml cgmanifest.json gulpfile.js product.json resources test\t\t tslint.json\r\nbuild\t\t CONTRIBUTING.md LICENSE.txt README.md\t scripts ThirdPartyNotices.txt yarn.lock\r\ncglicenses.json extensions package.json remote\t src\t tsfmt.json\r\n"]
[12.016178, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[12.36554, "i", "p"]
[12.365781, "o", "p"]
[12.493436, "i", "w"]
[12.493666, "o", "w"]
[12.693192, "i", "d"]
[12.693423, "o", "d"]
[13.00701, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[13.007104, "o", "p\bpwd"]
[13.453428, "i", "\r"]
[13.45367, "o", "\u001b[?2004l\r\r\n"]
[13.453791, "o", "/home/romka/projects/vscode\r\n"]
[13.453887, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[14.349251, "i", "\r"]
[14.349349, "o", "\r\n"]
[14.456024, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[14.485142, "i", "\r"]
[14.485402, "o", "\r\n"]
[14.637102, "i", "\r"]
[14.637302, "o", "\r\n"]
[14.797341, "i", "\r"]
[14.797434, "o", "\r\n"]
[14.94944, "i", "\r"]
[14.949542, "o", "\r\n"]
[15.109413, "i", "e"]
[15.109507, "o", "e"]
[15.309269, "i", "c"]
[15.309362, "o", "c"]
[15.397125, "i", "h"]
[15.39722, "o", "h"]
[15.493601, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
[15.493698, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[15.509382, "i", "o"]
[15.509602, "o", "o"]
[15.653098, "i", " "]
[15.653296, "o", " "]
[16.501217, "i", "a"]
[16.501314, "o", "a"]
[16.511071, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
[16.511154, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[16.701189, "i", " "]
[16.701425, "o", " "]
[17.093404, "i", "b"]
[17.093502, "o", "b"]
[17.221118, "i", "i"]
[17.221356, "o", "i"]
[17.300863, "i", "t"]
[17.301097, "o", "t"]
[17.532571, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[17.877348, "i", " "]
[17.877587, "o", " "]
[18.205341, "i", "s"]
[18.205619, "o", "s"]
[18.325276, "i", "l"]
[18.3255, "o", "l"]
[18.469261, "i", "o"]
[18.469534, "o", "o"]
[18.533346, "i", "w"]
[18.533582, "o", "w"]
[18.547089, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
[18.547178, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[19.565682, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m "]
[19.565787, "o", "\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004he\becho a bi"]
[19.565836, "o", "t sl"]
[19.566076, "o", "ow"]
[19.589236, "i", " "]
[19.589418, "o", " "]
[19.749008, "i", "h"]
[19.749231, "o", "h"]
[19.876872, "i", "u"]
[19.877089, "o", "u"]
[20.053127, "i", "h"]
[20.053343, "o", "h"]
[20.7413, "i", "\r"]
[20.741536, "o", "\u001b[?2004l\r\r\n"]
[20.741719, "o", "a bit slow huh\r\n"]
[20.741768, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[21.727487, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[22.829268, "i", "\r"]
[22.829523, "o", "\u001b[?2004l\r\r\n"]
[22.829632, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[22.973134, "i", "\r"]
[22.973394, "o", "\r\n"]
[23.10913, "i", "\r"]
[23.109377, "o", "\r\n"]
[23.237105, "i", "\r"]
[23.237321, "o", "\r\n"]
[23.348944, "i", "\r"]
[23.349046, "o", "\r\n"]
[23.837798, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
[23.837904, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[24.832648, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[24.832756, "o", "\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[25.832667, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[26.181402, "i", "\u0003"]
[26.181692, "o", "^C"]
[26.182089, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m"]
[26.182196, "o", "\u001b[K\u001b[105C\u001b[39m\u001b[0m\u001b[49m$(build_right_prompt)$reset_color\r\u001b[?2004h"]
[27.445169, "i", "c"]
[27.445436, "o", "c"]
[27.612934, "i", "d"]
[27.613158, "o", "\rcd"]
[27.756896, "i", " "]
[27.757162, "o", " "]
[28.165022, "i", "s"]
[28.165255, "o", "s"]
[28.268955, "i", "r"]
[28.269166, "o", "r"]
[28.484901, "i", "c"]
[28.485152, "o", "c"]
[29.637189, "i", "\r"]
[29.63745, "o", "\u001b[?2004l\r\r\n"]
[29.637628, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[30.143699, "o", "truncatePath:4: bad math expression: illegal character: \\\r\n"]
[30.646309, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[32.013179, "i", "\r"]
[32.013428, "o", "\u001b[?2004l\r\r\n"]
[32.013549, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[32.517756, "o", "truncatePath:4: bad math expression: illegal character: \\\r\n"]
[32.973297, "i", "w"]
[32.973372, "o", "w"]
[33.03069, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[33.030753, "o", "w"]
[33.125041, "i", "t"]
[33.125269, "o", "\bwt"]
[33.269129, "i", "f"]
[33.269353, "o", "f"]
[33.653444, "i", "\r"]
[33.653708, "o", "\u001b[?2004l\r\r\n"]
[33.654751, "o", "zsh: command not found: wtf\r\n"]
[33.655067, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[34.154929, "o", "truncatePath:4: bad math expression: illegal character: \\\r\n"]
[34.663887, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[34.725177, "i", "c"]
[34.725427, "o", "c"]
[34.924913, "i", "d"]
[34.925115, "o", "\bcd"]
[35.077086, "i", " "]
[35.07735, "o", " "]
[35.292953, "i", "."]
[35.293177, "o", "."]
[35.42103, "i", "."]
[35.421273, "o", "."]
[35.629217, "i", "\r"]
[35.629483, "o", "\u001b[?2004l\r\r\n"]
[35.629712, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[36.638245, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.56 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
[37.477061, "i", "s"]
[37.47733, "o", "s"]
[37.588878, "i", "o"]
[37.589089, "o", "\bso"]
[37.700765, "i", "u"]
[37.700985, "o", "u"]
[37.796705, "i", "r"]
[37.796949, "o", "r"]
[37.988864, "i", "c"]
[37.989098, "o", "c"]
[38.180799, "i", "e"]
[38.181013, "o", "e"]
[38.420809, "i", " "]
[38.421035, "o", " "]
[38.604822, "i", "~"]
[38.605035, "o", "~"]
[38.764974, "i", "/"]
[38.765208, "o", "/"]
[39.197038, "i", "o"]
[39.197274, "o", "o"]
[39.36479, "i", "w"]
[39.365033, "o", "w"]
[39.404619, "i", "e"]
[39.404787, "o", "e"]
[39.500881, "i", "r"]
[39.501076, "o", "r"]
[39.981133, "i", ""]
[39.981387, "o", "\b \b"]
[40.100922, "i", ""]
[40.101164, "o", "\b \b"]
[40.244966, "i", ""]
[40.245181, "o", "\b \b"]
[40.781038, "i", ""]
[40.781341, "o", "\b \b"]
[41.397117, "i", "p"]
[41.397357, "o", "p"]
[41.549006, "i", "o"]
[41.549223, "o", "o"]
[41.66894, "i", "\t"]
[41.669987, "o", "werlevel"]
[42.39715, "i", "1"]
[42.397388, "o", "1"]
[42.637011, "i", "\t"]
[42.637557, "o", "0k"]
[43.317189, "i", "/"]
[43.317426, "o", "/"]
[43.50879, "i", "p"]
[43.508993, "o", "p"]
[43.669076, "i", "o"]
[43.669314, "o", "o"]
[43.74891, "i", "\t"]
[43.749325, "o", "werlevel"]
[44.077215, "i", "1"]
[44.077486, "o", "1"]
[44.340992, "i", "\t"]
[44.341411, "o", "0k.zsh-theme\u001b[1m \u001b[0m"]
[45.261252, "i", "\r"]
[45.261515, "o", "\b\u001b[0m \b\u001b[?2004l\r\r\n"]
[45.287095, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[45.595079, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[46.077089, "i", "e"]
[46.077322, "o", "e"]
[46.276969, "i", "c"]
[46.277208, "o", "\bec"]
[46.348751, "i", "h"]
[46.348969, "o", "h"]
[46.508875, "i", "o"]
[46.509094, "o", "o"]
[46.604929, "i", " "]
[46.605148, "o", " "]
[46.740751, "i", "t"]
[46.740977, "o", "t"]
[46.828853, "i", "h"]
[46.829071, "o", "h"]
[46.908719, "i", "e"]
[46.90893, "o", "e"]
[47.068923, "i", " "]
[47.069147, "o", " "]
[47.205066, "i", "s"]
[47.205306, "o", "s"]
[47.373022, "i", "a"]
[47.373266, "o", "a"]
[47.516846, "i", "m"]
[47.517072, "o", "m"]
[47.588891, "i", "e"]
[47.589101, "o", "e"]
[47.732787, "i", " "]
[47.733003, "o", " "]
[47.908991, "i", "c"]
[47.909219, "o", "c"]
[47.98101, "i", "o"]
[47.981233, "o", "o"]
[48.132892, "i", "n"]
[48.133112, "o", "n"]
[48.501069, "i", "f"]
[48.501307, "o", "f"]
[48.605085, "i", "i"]
[48.605318, "o", "i"]
[48.692956, "i", "g"]
[48.693179, "o", "g"]
[48.836976, "i", "\r"]
[48.837202, "o", "\u001b[?2004l\r\r\n"]
[48.837389, "o", "the same config\r\n"]
[48.837478, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[48.848952, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[49.301199, "i", "e"]
[49.301437, "o", "e"]
[49.492908, "i", "c"]
[49.49313, "o", "\bec"]
[49.540911, "i", "h"]
[49.541102, "o", "h"]
[49.644811, "i", "o"]
[49.64501, "o", "o"]
[49.732905, "i", " "]
[49.733092, "o", " "]
[49.805042, "i", "t"]
[49.805265, "o", "t"]
[49.884917, "i", "h"]
[49.885119, "o", "h"]
[49.9726, "i", "e"]
[49.972829, "o", "e"]
[50.036777, "i", " "]
[50.036994, "o", " "]
[50.132761, "i", "s"]
[50.132964, "o", "s"]
[50.300762, "i", "a"]
[50.300978, "o", "a"]
[50.420838, "i", "m"]
[50.421037, "o", "m"]
[50.476859, "i", "e"]
[50.477044, "o", "e"]
[50.556939, "i", " "]
[50.557134, "o", " "]
[50.692809, "i", "p"]
[50.693014, "o", "p"]
[50.756686, "i", "r"]
[50.756859, "o", "r"]
[50.86083, "i", "o"]
[50.861015, "o", "o"]
[51.325156, "i", "m"]
[51.325389, "o", "m"]
[51.524926, "i", "p"]
[51.525147, "o", "p"]
[51.645054, "i", "t"]
[51.645277, "o", "t"]
[51.821133, "i", "\r"]
[51.82137, "o", "\u001b[?2004l\r\r\n"]
[51.82155, "o", "the same prompt\r\n"]
[51.82163, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[51.833309, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.53 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[52.373203, "i", "e"]
[52.373441, "o", "e"]
[52.549106, "i", "c"]
[52.549339, "o", "\bec"]
[52.612882, "i", "h"]
[52.613054, "o", "h"]
[52.732732, "i", "o"]
[52.732936, "o", "o"]
[52.81272, "i", " "]
[52.812893, "o", " "]
[52.892775, "i", "b"]
[52.892965, "o", "b"]
[52.988718, "i", "u"]
[52.988905, "o", "u"]
[53.068771, "i", "t"]
[53.068984, "o", "t"]
[53.16478, "i", " "]
[53.164995, "o", " "]
[53.26088, "i", "f"]
[53.261093, "o", "f"]
[53.364842, "i", "a"]
[53.365037, "o", "a"]
[53.548877, "i", "s"]
[53.549081, "o", "s"]
[53.620878, "i", "t"]
[53.621084, "o", "t"]
[53.828977, "i", "!"]
[53.829212, "o", "!"]
[54.00484, "i", "\r"]
[54.005073, "o", "\u001b[?2004l\r\r\n"]
[54.005239, "o", "but fast!\r\n"]
[54.005328, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[54.01702, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[54.941013, "i", "l"]
[54.941252, "o", "l"]
[54.996943, "i", "s"]
[54.997163, "o", "\bls"]
[55.212915, "i", "\r"]
[55.213166, "o", "\u001b[?2004l\r\r\n"]
[55.215862, "o", "azure-pipelines.yml cgmanifest.json gulpfile.js product.json resources test\t\t tslint.json\r\nbuild\t\t CONTRIBUTING.md LICENSE.txt README.md\t scripts ThirdPartyNotices.txt yarn.lock\r\ncglicenses.json extensions package.json remote\t src\t tsfmt.json\r\n"]
[55.21612, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[55.22789, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[55.701246, "i", "p"]
[55.701481, "o", "p"]
[55.780794, "i", "w"]
[55.781022, "o", "\bpw"]
[55.924905, "i", "d"]
[55.925126, "o", "d"]
[56.045009, "i", "\r"]
[56.04525, "o", "\u001b[?2004l\r\r\n"]
[56.045413, "o", "/home/romka/projects/vscode\r\n"]
[56.045495, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[56.057015, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[56.24519, "i", "c"]
[56.24544, "o", "c"]
[56.421036, "i", "d"]
[56.421263, "o", "\bcd"]
[56.524989, "i", " "]
[56.525211, "o", " "]
[56.645023, "i", "s"]
[56.645242, "o", "s"]
[56.684883, "i", "r"]
[56.685114, "o", "r"]
[56.876966, "i", "c"]
[56.877193, "o", "c"]
[56.972829, "i", "\r"]
[56.973067, "o", "\u001b[?2004l\r\r\n"]
[56.973332, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[56.985413, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev/\u001b[0m\u001b[30m\u001b[44m\u001b[30msrc \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[56C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[56D\u001b[?2004h"]
[57.205194, "i", "c"]
[57.205449, "o", "c"]
[57.373149, "i", "d"]
[57.373389, "o", "\bcd"]
[57.47697, "i", " "]
[57.477182, "o", " "]
[57.620957, "i", "."]
[57.621177, "o", "."]
[57.756947, "i", "."]
[57.757161, "o", "."]
[57.941039, "i", "\r"]
[57.941263, "o", "\u001b[?2004l\r\r\n"]
[57.941513, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[57.953015, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[58.581266, "i", "\r"]
[58.581538, "o", "\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[58.593219, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.081009, "i", "\r"]
[59.081281, "o", "\u001b[?2004l\r\r\n"]
[59.081429, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.093237, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.110986, "i", "\r"]
[59.111193, "o", "\u001b[?2004l\r\r\n"]
[59.111314, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.12356, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.143273, "i", "\r"]
[59.143485, "o", "\u001b[?2004l\r\r\n"]
[59.143613, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.155374, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.173369, "i", "\r"]
[59.17359, "o", "\u001b[?2004l\r\r\n"]
[59.173683, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.185113, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.20241, "i", "\r"]
[59.202603, "o", "\u001b[?2004l\r\r\n"]
[59.202716, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.214455, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.233834, "i", "\r"]
[59.234018, "o", "\u001b[?2004l\r\r\n"]
[59.234128, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.24564, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.262345, "i", "\r"]
[59.262542, "o", "\u001b[?2004l\r\r\n"]
[59.262655, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.274662, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.292442, "i", "\r"]
[59.292644, "o", "\u001b[?2004l\r\r\n"]
[59.292742, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.30501, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.322867, "i", "\r"]
[59.323066, "o", "\u001b[?2004l\r\r\n"]
[59.323163, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.335113, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.352291, "i", "\r"]
[59.352496, "o", "\u001b[?2004l\r\r\n"]
[59.352635, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.364051, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.383162, "i", "\r"]
[59.383361, "o", "\u001b[?2004l\r\r\n"]
[59.383485, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.395, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.414121, "i", "\r"]
[59.414333, "o", "\u001b[?2004l\r\r\n"]
[59.414437, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.425938, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.444624, "i", "\r"]
[59.444904, "o", "\u001b[?2004l\r\r\n"]
[59.445057, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.456824, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.474566, "i", "\r"]
[59.474735, "o", "\u001b[?2004l\r\r\n"]
[59.474827, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.486114, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.504654, "i", "\r"]
[59.504847, "o", "\u001b[?2004l\r\r\n"]
[59.504961, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.516844, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.534681, "i", "\r"]
[59.534897, "o", "\u001b[?2004l\r\r\n"]
[59.534989, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.547367, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.564722, "i", "\r"]
[59.564909, "o", "\u001b[?2004l\r\r\n"]
[59.565018, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.576476, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.59495, "i", "\r"]
[59.595135, "o", "\u001b[?2004l\r\r\n"]
[59.595259, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.606554, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.625117, "i", "\r"]
[59.625332, "o", "\u001b[?2004l\r\r\n"]
[59.625445, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.637157, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.656009, "i", "\r"]
[59.656191, "o", "\u001b[?2004l\r\r\n"]
[59.656301, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.667971, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.68654, "i", "\r"]
[59.686754, "o", "\u001b[?2004l\r\r\n"]
[59.686864, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.698208, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.718816, "i", "\r"]
[59.719023, "o", "\u001b[?2004l\r\r\n"]
[59.719125, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.730853, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[59.750483, "i", "\r"]
[59.750685, "o", "\u001b[?2004l\r\r\n"]
[59.750823, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[59.762142, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
[60.412948, "i", "\u0004"]
[60.413188, "o", "\u001b[?2004l\r\r\n"]

View File

@ -23,10 +23,10 @@
local -a match mbegin mend reply
local -i MBEGIN MEND OPTIND
local MATCH REPLY OPTARG IFS=$'\'' \t\n\0'\''
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale'
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale'
() {
eval $__p9k_intro
eval "$__p9k_intro"
if (( $+__p9k_sourced )); then
(( $+functions[_p9k_setup] )) && _p9k_setup
return 0
@ -35,7 +35,7 @@
if [[ $__p9k_dump_file != $__p9k_instant_prompt_dump_file ]] && (( ! $+functions[_p9k_preinit] )) && source $__p9k_dump_file 2>/dev/null && (( $+functions[_p9k_preinit] )); then
_p9k_preinit
fi
typeset -gr __p9k_sourced=3
typeset -gr __p9k_sourced=5
if [[ -w $__p9k_root_dir && -w $__p9k_root_dir/internal && -w $__p9k_root_dir/gitstatus && ${(%):-%#} == % ]]; then
local f
for f in $__p9k_root_dir/{powerlevel9k.zsh-theme,powerlevel10k.zsh-theme,internal/p10k.zsh,internal/icons.zsh,internal/configure.zsh,internal/worker.zsh,internal/parser.zsh,gitstatus/gitstatus.plugin.zsh}; do