mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2025-12-25 22:22:31 +01:00
Merge branch 'master' into toMerge
This commit is contained in:
commit
c30284792d
15 changed files with 2732 additions and 1281 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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: "
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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=()
|
||||
|
|
|
|||
|
|
@ -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)."
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue