diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | README.md | 19 | ||||
-rw-r--r-- | functions/colors.zsh | 359 | ||||
-rw-r--r-- | functions/icons.zsh | 81 | ||||
-rw-r--r-- | functions/vcs.zsh | 2 | ||||
-rwxr-xr-x | powerlevel9k.zsh-theme | 156 | ||||
-rwxr-xr-x | test/segments/command_execution_time.spec | 12 | ||||
-rwxr-xr-x | test/segments/go_version.spec | 2 | ||||
-rwxr-xr-x | test/segments/kubecontext.spec | 38 | ||||
-rwxr-xr-x | test/segments/rust_version.spec | 2 |
10 files changed, 567 insertions, 105 deletions
@@ -1,2 +1,3 @@ test-vm/.vagrant *.swp +.idea
\ No newline at end of file @@ -140,6 +140,7 @@ The segments that are currently available are: * `aws_eb_env` - The current Elastic Beanstalk Environment. * `docker_machine` - The current Docker Machine. * `kubecontext` - The current context of your `kubectl` configuration. +* `dropbox` - Indicates Dropbox directory and syncing status using `dropbox-cli` **Other:** * [`custom_command`](#custom_command) - Create a custom segment to display the @@ -148,6 +149,7 @@ The segments that are currently available are: * [`todo`](http://todotxt.com/) - Shows the number of tasks in your todo.txt tasks file. * `detect_virt` - Virtualization detection with systemd * `newline` - Continues the prompt on a new line. +* `openfoam` - Shows the currently sourced [OpenFOAM](https://openfoam.org/) environment. --------------------------------------------------------------------------------- @@ -186,6 +188,7 @@ your `~/.zshrc`: | Variable | Default Value | Description | |----------|---------------|-------------| |`POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE`|`true`|If there is more than one background job, this segment will show the number of jobs. Set this to `false` to turn this feature off.| +`POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE_ALWAYS`|`false`|Always show the jobs count (even if it's zero).| ##### battery @@ -243,7 +246,7 @@ battery level. This will override the following variables: `POWERLEVEL9K_BATTERY_DISCONNECTED`, and `POWERLEVEL9K_BATTERY_LOW_COLOR`. In order to do this, define a color array, from low to high, as shown below: ```zsh -POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND=(196 202 208 214 220 226 190 154 118 82 46) +POWERLEVEL9K_BATTERY_LEVEL_BACKGROUND=(red1 orangered1 darkorange orange1 gold1 yellow1 yellow2 greenyellow chartreuse1 chartreuse2 green1) ``` As with the battery stages, you can use any number of colors and Powerlevel9k @@ -251,9 +254,9 @@ will automatically use all of them appropriately. Some example settings: |Brightness|Possible Array| -|Bright Colors|(196 202 208 214 220 226 190 154 118 82 46)| -|Normal Colors|(124 130 136 142 148 112 76 40 34 28 22)| -|Subdued Colors|( 88 94 100 106 70 34 28 22)| +|Bright Colors|(red1 orangered1 darkorange orange1 gold1 yellow1 yellow2 greenyellow chartreuse1 chartreuse2 green1)| +|Normal Colors|(red3 darkorange3 darkgoldenrod gold3 yellow3 chartreuse2 mediumspringgreen green3 green3 green4 darkgreen)| +|Subdued Colors|(darkred orange4 yellow4 yellow4 chartreuse3 green3 green4 darkgreen)| ##### command_execution_time @@ -467,6 +470,8 @@ also specify which method you would like it to use. The methods available are di curl, or wget. The host used for wget and curl is http://ident.me by default but can be set to another host if you prefer. +If you activate a VPN, the icon for this segment will change to the defined VPN icon. + The public_ip segment will attempt to update your public IP address every 5 minutes by default(also configurable by the user). If you lose connection your cached IP address will be displayed until your timeout expires at which point every time your prompt is generated a new attempt will be made. @@ -509,7 +514,11 @@ This segment shows the version of Ruby being used when using `rbenv` to change y It figures out the version being used by taking the output of the `rbenv version-name` command. * If `rbenv` is not in $PATH, nothing will be shown. -* If the current Ruby version is the same as the global Ruby version, nothing will be shown. +* By default, if the current local Ruby version is the same as the global Ruby version, nothing will be shown. See the configuration variable, below, to modify this behavior. + +Variable | Default Value | Description | +|----------|---------------|-------------| +|`POWERLEVEL9K_RBENV_ALWAYS`|'false'|Always show the `rbenv` segment, even if the local version matches the global.| ##### rspec_stats diff --git a/functions/colors.zsh b/functions/colors.zsh index c82af9ea..253de7cb 100644 --- a/functions/colors.zsh +++ b/functions/colors.zsh @@ -6,6 +6,62 @@ # https://github.com/bhilburn/powerlevel9k ################################################################ +function termColors() { + local term_colors + + if which tput &>/dev/null; then + term_colors=$(tput colors) + else + term_colors=$(echotc Co) + fi + if (( ! $? && ${term_colors:-0} < 256 )); then + print -P "%F{red}WARNING!%f Your terminal appears to support fewer than 256 colors!" + print -P "If your terminal supports 256 colors, please export the appropriate environment variable" + print -P "_before_ loading this theme in your \~\/.zshrc. In most terminal emulators, putting" + print -P "%F{blue}export TERM=\"xterm-256color\"%f at the top of your \~\/.zshrc is sufficient." + fi +} + +# get the proper color code if it does not exist as a name. +function getColor() { + # no need to check numerical values + if [[ "$1" = <-> ]]; then + if [[ "$1" = <8-15> ]]; then + 1=$(($1 - 8)) + fi + else + # named color added to parameter expansion print -P to test if the name exists in terminal + named="%K{$1}" + # https://misc.flogisoft.com/bash/tip_colors_and_formatting + default="$'\033'\[49m" + # http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html + quoted=$(printf "%q" $(print -P "$named")) + if [[ $quoted = "$'\033'\[49m" && $1 != "black" ]]; then + # color not found, so try to get the code + 1=$(getColorCode $1) + fi + echo -n "$1" + fi +} + +# empty paramenter resets (stops) background color +function backgroundColor() { + if [[ -z $1 ]]; then + echo -n "%k" + else + echo -n "%K{$(getColor $1)}" + fi +} + +# empty paramenter resets (stops) foreground color +function foregroundColor() { + if [[ -z $1 ]]; then + echo -n "%f" + else + echo -n "%F{$(getColor $1)}" + fi +} + # Get numerical color codes. That way we translate ANSI codes # into ZSH-Style color codes. function getColorCode() { @@ -15,30 +71,292 @@ function getColorCode() { # and "background" colors. We don't need to do that, # as ZSH uses a 256 color space anyway. if [[ "$1" = <8-15> ]]; then - echo $(($1 - 8)) + echo -n $(($1 - 8)) else - echo "$1" + echo -n "$1" fi else typeset -A codes - codes=( - 'black' '000' - 'red' '001' - 'green' '002' - 'yellow' '003' - 'blue' '004' - 'magenta' '005' - 'cyan' '006' - 'white' '007' - ) - - # Strip eventual "bg-" prefixes - 1=${1#bg-} - # Strip eventual "fg-" prefixes - 1=${1#fg-} - # Strip eventual "br" prefixes ("bright" colors) - 1=${1#br} - echo $codes[$1] + # https://jonasjacek.github.io/colors/ + # use color names by default to allow dark/light themes to adjust colors based on names + codes[black]=000 + codes[maroon]=001 + codes[green]=002 + codes[olive]=003 + codes[navy]=004 + codes[purple]=005 + codes[teal]=006 + codes[silver]=007 + codes[grey]=008 + codes[red]=009 + codes[lime]=010 + codes[yellow]=011 + codes[blue]=012 + codes[fuchsia]=013 + codes[aqua]=014 + codes[white]=015 + codes[grey0]=016 + codes[navyblue]=017 + codes[darkblue]=018 + codes[blue3]=019 + codes[blue3]=020 + codes[blue1]=021 + codes[darkgreen]=022 + codes[deepskyblue4]=023 + codes[deepskyblue4]=024 + codes[deepskyblue4]=025 + codes[dodgerblue3]=026 + codes[dodgerblue2]=027 + codes[green4]=028 + codes[springgreen4]=029 + codes[turquoise4]=030 + codes[deepskyblue3]=031 + codes[deepskyblue3]=032 + codes[dodgerblue1]=033 + codes[green3]=034 + codes[springgreen3]=035 + codes[darkcyan]=036 + codes[lightseagreen]=037 + codes[deepskyblue2]=038 + codes[deepskyblue1]=039 + codes[green3]=040 + codes[springgreen3]=041 + codes[springgreen2]=042 + codes[cyan3]=043 + codes[darkturquoise]=044 + codes[turquoise2]=045 + codes[green1]=046 + codes[springgreen2]=047 + codes[springgreen1]=048 + codes[mediumspringgreen]=049 + codes[cyan2]=050 + codes[cyan1]=051 + codes[darkred]=052 + codes[deeppink4]=053 + codes[purple4]=054 + codes[purple4]=055 + codes[purple3]=056 + codes[blueviolet]=057 + codes[orange4]=058 + codes[grey37]=059 + codes[mediumpurple4]=060 + codes[slateblue3]=061 + codes[slateblue3]=062 + codes[royalblue1]=063 + codes[chartreuse4]=064 + codes[darkseagreen4]=065 + codes[paleturquoise4]=066 + codes[steelblue]=067 + codes[steelblue3]=068 + codes[cornflowerblue]=069 + codes[chartreuse3]=070 + codes[darkseagreen4]=071 + codes[cadetblue]=072 + codes[cadetblue]=073 + codes[skyblue3]=074 + codes[steelblue1]=075 + codes[chartreuse3]=076 + codes[palegreen3]=077 + codes[seagreen3]=078 + codes[aquamarine3]=079 + codes[mediumturquoise]=080 + codes[steelblue1]=081 + codes[chartreuse2]=082 + codes[seagreen2]=083 + codes[seagreen1]=084 + codes[seagreen1]=085 + codes[aquamarine1]=086 + codes[darkslategray2]=087 + codes[darkred]=088 + codes[deeppink4]=089 + codes[darkmagenta]=090 + codes[darkmagenta]=091 + codes[darkviolet]=092 + codes[purple]=093 + codes[orange4]=094 + codes[lightpink4]=095 + codes[plum4]=096 + codes[mediumpurple3]=097 + codes[mediumpurple3]=098 + codes[slateblue1]=099 + codes[yellow4]=100 + codes[wheat4]=101 + codes[grey53]=102 + codes[lightslategrey]=103 + codes[mediumpurple]=104 + codes[lightslateblue]=105 + codes[yellow4]=106 + codes[darkolivegreen3]=107 + codes[darkseagreen]=108 + codes[lightskyblue3]=109 + codes[lightskyblue3]=110 + codes[skyblue2]=111 + codes[chartreuse2]=112 + codes[darkolivegreen3]=113 + codes[palegreen3]=114 + codes[darkseagreen3]=115 + codes[darkslategray3]=116 + codes[skyblue1]=117 + codes[chartreuse1]=118 + codes[lightgreen]=119 + codes[lightgreen]=120 + codes[palegreen1]=121 + codes[aquamarine1]=122 + codes[darkslategray1]=123 + codes[red3]=124 + codes[deeppink4]=125 + codes[mediumvioletred]=126 + codes[magenta3]=127 + codes[darkviolet]=128 + codes[purple]=129 + codes[darkorange3]=130 + codes[indianred]=131 + codes[hotpink3]=132 + codes[mediumorchid3]=133 + codes[mediumorchid]=134 + codes[mediumpurple2]=135 + codes[darkgoldenrod]=136 + codes[lightsalmon3]=137 + codes[rosybrown]=138 + codes[grey63]=139 + codes[mediumpurple2]=140 + codes[mediumpurple1]=141 + codes[gold3]=142 + codes[darkkhaki]=143 + codes[navajowhite3]=144 + codes[grey69]=145 + codes[lightsteelblue3]=146 + codes[lightsteelblue]=147 + codes[yellow3]=148 + codes[darkolivegreen3]=149 + codes[darkseagreen3]=150 + codes[darkseagreen2]=151 + codes[lightcyan3]=152 + codes[lightskyblue1]=153 + codes[greenyellow]=154 + codes[darkolivegreen2]=155 + codes[palegreen1]=156 + codes[darkseagreen2]=157 + codes[darkseagreen1]=158 + codes[paleturquoise1]=159 + codes[red3]=160 + codes[deeppink3]=161 + codes[deeppink3]=162 + codes[magenta3]=163 + codes[magenta3]=164 + codes[magenta2]=165 + codes[darkorange3]=166 + codes[indianred]=167 + codes[hotpink3]=168 + codes[hotpink2]=169 + codes[orchid]=170 + codes[mediumorchid1]=171 + codes[orange3]=172 + codes[lightsalmon3]=173 + codes[lightpink3]=174 + codes[pink3]=175 + codes[plum3]=176 + codes[violet]=177 + codes[gold3]=178 + codes[lightgoldenrod3]=179 + codes[tan]=180 + codes[mistyrose3]=181 + codes[thistle3]=182 + codes[plum2]=183 + codes[yellow3]=184 + codes[khaki3]=185 + codes[lightgoldenrod2]=186 + codes[lightyellow3]=187 + codes[grey84]=188 + codes[lightsteelblue1]=189 + codes[yellow2]=190 + codes[darkolivegreen1]=191 + codes[darkolivegreen1]=192 + codes[darkseagreen1]=193 + codes[honeydew2]=194 + codes[lightcyan1]=195 + codes[red1]=196 + codes[deeppink2]=197 + codes[deeppink1]=198 + codes[deeppink1]=199 + codes[magenta2]=200 + codes[magenta1]=201 + codes[orangered1]=202 + codes[indianred1]=203 + codes[indianred1]=204 + codes[hotpink]=205 + codes[hotpink]=206 + codes[mediumorchid1]=207 + codes[darkorange]=208 + codes[salmon1]=209 + codes[lightcoral]=210 + codes[palevioletred1]=211 + codes[orchid2]=212 + codes[orchid1]=213 + codes[orange1]=214 + codes[sandybrown]=215 + codes[lightsalmon1]=216 + codes[lightpink1]=217 + codes[pink1]=218 + codes[plum1]=219 + codes[gold1]=220 + codes[lightgoldenrod2]=221 + codes[lightgoldenrod2]=222 + codes[navajowhite1]=223 + codes[mistyrose1]=224 + codes[thistle1]=225 + codes[yellow1]=226 + codes[lightgoldenrod1]=227 + codes[khaki1]=228 + codes[wheat1]=229 + codes[cornsilk1]=230 + codes[grey100]=231 + codes[grey3]=232 + codes[grey7]=233 + codes[grey11]=234 + codes[grey15]=235 + codes[grey19]=236 + codes[grey23]=237 + codes[grey27]=238 + codes[grey30]=239 + codes[grey35]=240 + codes[grey39]=241 + codes[grey42]=242 + codes[grey46]=243 + codes[grey50]=244 + codes[grey54]=245 + codes[grey58]=246 + codes[grey62]=247 + codes[grey66]=248 + codes[grey70]=249 + codes[grey74]=250 + codes[grey78]=251 + codes[grey82]=252 + codes[grey85]=253 + codes[grey89]=254 + codes[grey93]=255 + + # for testing purposes in terminal + if [[ "$1" == "foreground" ]]; then + # call via `getColorCode foreground` + for i in "${(k@)codes}"; do + print -P "$(foregroundColor $i)$(getColor $i) - $i$(foregroundColor)" + done + elif [[ "$1" == "background" ]]; then + # call via `getColorCode background` + for i in "${(k@)codes}"; do + print -P "$(backgroundColor $i)$(getColor $i) - $i$(backgroundColor)" + done + else + #[[ -n "$1" ]] bg="%K{$1}" || bg="%k" + # Strip eventual "bg-" prefixes + 1=${1#bg-} + # Strip eventual "fg-" prefixes + 1=${1#fg-} + # Strip eventual "br" prefixes ("bright" colors) + 1=${1#br} + echo -n $codes[$1] + fi fi } @@ -53,4 +371,3 @@ function isSameColor() { return $(( color1 != color2 )) } - diff --git a/functions/icons.zsh b/functions/icons.zsh index 7124386b..6ec07379 100644 --- a/functions/icons.zsh +++ b/functions/icons.zsh @@ -87,6 +87,7 @@ case $POWERLEVEL9K_MODE in SSH_ICON '(ssh)' VPN_ICON '(vpn)' KUBERNETES_ICON $'\U2388' # ⎈ + DROPBOX_ICON $'\UF16B' # ) ;; 'awesome-fontconfig') @@ -158,6 +159,84 @@ case $POWERLEVEL9K_MODE in SSH_ICON '(ssh)' VPN_ICON $'\uF023' KUBERNETES_ICON $'\U2388' # ⎈ + DROPBOX_ICON $'\UF16B' # + ) + ;; + 'awesome-mapped-fontconfig') + # mapped fontconfig with awesome-font required! See + # https://github.com/gabrielelana/awesome-terminal-fonts + # don't forget to source the font maps in your startup script + # Set the right locale to protect special characters + local LC_ALL="" LC_CTYPE="en_US.UTF-8" + + if [ -z "$AWESOME_GLYPHS_LOADED" ]; then + echo "Powerlevel9k warning: Awesome-Font mappings have not been loaded. + Source a font mapping in your shell config, per the Awesome-Font docs + (https://github.com/gabrielelana/awesome-terminal-fonts), + Or use a different Powerlevel9k font configuration."; + fi + + icons=( + LEFT_SEGMENT_SEPARATOR $'\uE0B0' # + RIGHT_SEGMENT_SEPARATOR $'\uE0B2' # + LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace + LEFT_SUBSEGMENT_SEPARATOR $'\uE0B1' # + RIGHT_SUBSEGMENT_SEPARATOR $'\uE0B3' # + CARRIAGE_RETURN_ICON $'\u21B5' # ↵ + ROOT_ICON '\u'$CODEPOINT_OF_OCTICONS_ZAP # + RUBY_ICON '\u'$CODEPOINT_OF_OCTICONS_RUBY' ' # + AWS_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER # + AWS_EB_ICON $'\U1F331 ' # 🌱 + BACKGROUND_JOBS_ICON '\u'$CODEPOINT_OF_AWESOME_COG' ' # + TEST_ICON '\u'$CODEPOINT_OF_AWESOME_BUG # + TODO_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O # + BATTERY_ICON '\U'$CODEPOINT_OF_AWESOME_BATTERY_FULL # + DISK_ICON '\u'$CODEPOINT_OF_AWESOME_HDD_O' ' # + OK_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK # + FAIL_ICON '\u'$CODEPOINT_OF_AWESOME_TIMES # + SYMFONY_ICON 'SF' + NODE_ICON $'\u2B22' # ⬢ + MULTILINE_FIRST_PROMPT_PREFIX $'\u256D'$'\U2500' # ╭─ + MULTILINE_SECOND_PROMPT_PREFIX $'\u2570'$'\U2500 ' # ╰─ + APPLE_ICON '\u'$CODEPOINT_OF_AWESOME_APPLE # + FREEBSD_ICON $'\U1F608 ' # 😈 + LINUX_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX # + SUNOS_ICON '\u'$CODEPOINT_OF_AWESOME_SUN_O' ' # + HOME_ICON '\u'$CODEPOINT_OF_AWESOME_HOME # + HOME_SUB_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_OPEN # + FOLDER_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_O # + NETWORK_ICON '\u'$CODEPOINT_OF_AWESOME_RSS # + LOAD_ICON '\u'$CODEPOINT_OF_AWESOME_BAR_CHART' ' # + SWAP_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD # + RAM_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD # + SERVER_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER # + VCS_UNTRACKED_ICON '\u'$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE # + VCS_UNSTAGED_ICON '\u'$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE # + VCS_STAGED_ICON '\u'$CODEPOINT_OF_AWESOME_PLUS_CIRCLE # + VCS_STASH_ICON '\u'$CODEPOINT_OF_AWESOME_INBOX' ' # + VCS_INCOMING_CHANGES_ICON '\u'$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN' ' # + VCS_OUTGOING_CHANGES_ICON '\u'$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP' ' # + VCS_TAG_ICON '\u'$CODEPOINT_OF_AWESOME_TAG' ' # + VCS_BOOKMARK_ICON '\u'$CODEPOINT_OF_OCTICONS_BOOKMARK # + VCS_COMMIT_ICON '\u'$CODEPOINT_OF_OCTICONS_GIT_COMMIT' ' # + VCS_BRANCH_ICON '\u'$CODEPOINT_OF_OCTICONS_GIT_BRANCH' ' # + VCS_REMOTE_BRANCH_ICON '\u'$CODEPOINT_OF_OCTICONS_REPO_PUSH # + VCS_GIT_ICON '\u'$CODEPOINT_OF_AWESOME_GIT' ' # + VCS_GIT_GITHUB_ICON '\u'$CODEPOINT_OF_AWESOME_GITHUB_ALT' ' # + VCS_GIT_BITBUCKET_ICON '\u'$CODEPOINT_OF_AWESOME_BITBUCKET' ' # + VCS_GIT_GITLAB_ICON '\u'$CODEPOINT_OF_AWESOME_GITLAB' ' # + VCS_HG_ICON '\u'$CODEPOINT_OF_AWESOME_FLASK' ' # + VCS_SVN_ICON '(svn) ' + RUST_ICON $'\uE6A8' # + PYTHON_ICON $'\U1F40D' # 🐍 + SWIFT_ICON $'\uE655' # + PUBLIC_IP_ICON '\u'$CODEPOINT_OF_AWESOME_GLOBE # + LOCK_ICON '\u'$CODEPOINT_OF_AWESOME_LOCK # + EXECUTION_TIME_ICON '\u'$CODEPOINT_OF_AWESOME_HOURGLASS_END # + SSH_ICON '(ssh)' + VPN_ICON '\u'$CODEPOINT_OF_AWESOME_LOCK + KUBERNETES_ICON $'\U2388' # ⎈ + DROPBOX_ICON '\u'$CODEPOINT_OF_AWESOME_DROPBOX # ) ;; 'nerdfont-complete'|'nerdfont-fontconfig') @@ -229,6 +308,7 @@ case $POWERLEVEL9K_MODE in SSH_ICON $'\uF489' # VPN_ICON '(vpn)' KUBERNETES_ICON $'\U2388' # ⎈ + DROPBOX_ICON $'\UF16B' # ) ;; *) @@ -300,6 +380,7 @@ case $POWERLEVEL9K_MODE in SSH_ICON '(ssh)' VPN_ICON '(vpn)' KUBERNETES_ICON $'\U2388' # ⎈ + DROPBOX_ICON 'Dropbox' ) ;; esac diff --git a/functions/vcs.zsh b/functions/vcs.zsh index 89f04143..e2e9f3a3 100644 --- a/functions/vcs.zsh +++ b/functions/vcs.zsh @@ -116,6 +116,8 @@ function +vi-vcs-detect-changes() { vcs_visual_identifier='VCS_GIT_GITHUB_ICON' elif [[ "$remote" =~ "bitbucket" ]] then vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON' + elif [[ "$remote" =~ "stash" ]] then + vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON' elif [[ "$remote" =~ "gitlab" ]] then vcs_visual_identifier='VCS_GIT_GITLAB_ICON' else diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 97e99f43..d5b3ef75 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -127,8 +127,8 @@ left_prompt_segment() { [[ -n $FG_COLOR_MODIFIER ]] && 4="$FG_COLOR_MODIFIER" local bg fg - [[ -n "$3" ]] && bg="%K{$3}" || bg="%k" - [[ -n "$4" ]] && fg="%F{$4}" || fg="%f" + [[ -n "$3" ]] && bg="$(backgroundColor $3)" || bg="$(backgroundColor)" + [[ -n "$4" ]] && fg="$(foregroundColor $4)" || fg="$(foregroundColor)" if [[ $CURRENT_BG != 'NONE' ]] && ! isSameColor "$3" "$CURRENT_BG"; then echo -n "$bg%F{$CURRENT_BG}" @@ -142,8 +142,8 @@ left_prompt_segment() { # subsegment (or the default color). This should have # enough contrast. local complement - [[ -n "$4" ]] && complement="$4" || complement=$DEFAULT_COLOR - echo -n "$bg%F{$complement}" + [[ -n "$4" ]] && complement="$fg" || complement="$(foregroundColor $DEFAULT_COLOR)" + echo -n "${bg}${complement}" if [[ $joined == false ]]; then echo -n "$(print_icon 'LEFT_SUBSEGMENT_SEPARATOR')$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS" fi @@ -218,8 +218,8 @@ right_prompt_segment() { [[ -n $FG_COLOR_MODIFIER ]] && 4="$FG_COLOR_MODIFIER" local bg fg - [[ -n "$3" ]] && bg="%K{$3}" || bg="%k" - [[ -n "$4" ]] && fg="%F{$4}" || fg="%f" + [[ -n "$3" ]] && bg="$(backgroundColor $3)" || bg="$(backgroundColor)" + [[ -n "$4" ]] && fg="$(foregroundColor $4)" || fg="$(foregroundColor)" # If CURRENT_RIGHT_BG is "NONE", we are the first right segment. if [[ $joined == false ]] || [[ "$CURRENT_RIGHT_BG" == "NONE" ]]; then @@ -229,10 +229,11 @@ right_prompt_segment() { # subsegment (or the default color). This should have # enough contrast. local complement - [[ -n "$4" ]] && complement="$4" || complement=$DEFAULT_COLOR - echo -n "%F{$complement}$(print_icon 'RIGHT_SUBSEGMENT_SEPARATOR')%f" + [[ -n "$4" ]] && complement="$fg" || complement="$(foregroundColor $DEFAULT_COLOR)" + echo -n "$complement$(print_icon 'RIGHT_SUBSEGMENT_SEPARATOR')%f" else - echo -n "%F{$3}$(print_icon 'RIGHT_SEGMENT_SEPARATOR')%f" + # Use the new BG color for the foreground with separator + echo -n "$(foregroundColor $3)$(print_icon 'RIGHT_SEGMENT_SEPARATOR')%f" fi fi @@ -305,6 +306,7 @@ prompt_aws_eb_env() { # Segment to indicate background jobs with an icon. set_default POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE true +set_default POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE_ALWAYS false prompt_background_jobs() { local background_jobs_number=${$(jobs -l | wc -l)// /} local wrong_lines=`jobs -l | awk '/pwd now/{ count++ } END {print count}'` @@ -313,7 +315,7 @@ prompt_background_jobs() { fi if [[ background_jobs_number -gt 0 ]]; then local background_jobs_number_print="" - if [[ "$POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE" == "true" ]] && [[ "$background_jobs_number" -gt 1 ]]; then + if [[ "$POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE" == "true" ]] && ([[ "$background_jobs_number" -gt 1 ]] || [[ "$POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE_ALWAYS" == "true" ]]); then background_jobs_number_print="$background_jobs_number" fi "$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR" "cyan" "$background_jobs_number_print" 'BACKGROUND_JOBS_ICON' @@ -555,7 +557,16 @@ prompt_public_ip() { # Draw the prompt segment if [[ -n $public_ip ]]; then - $1_prompt_segment "$0" "$2" "$DEFAULT_COLOR" "$DEFAULT_COLOR_INVERTED" "${public_ip}" 'PUBLIC_IP_ICON' + icon='PUBLIC_IP_ICON' + # Check VPN is on if VPN interface is set + if [[ -n $POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE ]]; then + for vpn_iface in $(/sbin/ifconfig | grep -e ^"$POWERLEVEL9K_PUBLIC_IP_VPN_INTERFACE" | cut -d":" -f1) + do + icon='VPN_ICON' + break + done + fi + $1_prompt_segment "$0" "$2" "$DEFAULT_COLOR" "$DEFAULT_COLOR_INVERTED" "${public_ip}" "$icon" fi } @@ -569,25 +580,26 @@ prompt_context() { typeset -AH context_states context_states=( "ROOT" "yellow" - "DEFAULT" "011" + "DEFAULT" "yellow" + "REMOTE" "yellow" ) local content="" if [[ "$POWERLEVEL9K_ALWAYS_SHOW_CONTEXT" == true ]] || [[ "$(whoami)" != "$DEFAULT_USER" ]] || [[ -n "$SSH_CLIENT" || -n "$SSH_TTY" ]]; then - - if [[ $(print -P "%#") == '#' ]]; then - current_state="ROOT" - fi - content="${POWERLEVEL9K_CONTEXT_TEMPLATE}" - elif [[ "$POWERLEVEL9K_ALWAYS_SHOW_USER" == true ]]; then content="$(whoami)" else return fi + if [[ $(print -P "%#") == '#' ]]; then + current_state="ROOT" + elif [[ -n "$SSH_CLIENT" || -n "$SSH_TTY" ]]; then + current_state="REMOTE" + fi + "$1_prompt_segment" "${0}_${current_state}" "$2" "$DEFAULT_COLOR" "${context_states[$current_state]}" "${content}" } @@ -612,7 +624,7 @@ prompt_user() { "STATE" "DEFAULT" "CONTENT" "$(whoami)" "BACKGROUND_COLOR" "${DEFAULT_COLOR}" - "FOREGROUND_COLOR" "011" + "FOREGROUND_COLOR" "yellow" "VISUAL_IDENTIFIER" "USER_ICON" ) fi @@ -639,7 +651,7 @@ prompt_host() { "STATE" "LOCAL" "CONTENT" "${POWERLEVEL9K_HOST_TEMPLATE}" "BACKGROUND_COLOR" "${DEFAULT_COLOR}" - "FOREGROUND_COLOR" "011" + "FOREGROUND_COLOR" "yellow" "VISUAL_IDENTIFIER" "HOST_ICON" ) fi @@ -686,7 +698,7 @@ prompt_command_execution_time() { fi if (( _P9K_COMMAND_DURATION >= POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD )); then - "$1_prompt_segment" "$0" "$2" "red" "226" "${humanReadableDuration}" 'EXECUTION_TIME_ICON' + "$1_prompt_segment" "$0" "$2" "red" "yellow1" "${humanReadableDuration}" 'EXECUTION_TIME_ICON' fi } @@ -704,10 +716,10 @@ prompt_dir() { case "$POWERLEVEL9K_SHORTEN_STRATEGY" in truncate_middle) - current_path=$(pwd | sed -e "s,^$HOME,~," | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})\//\1$POWERLEVEL9K_SHORTEN_DELIMITER\2\//g") + current_path=$(echo "$current_path" | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})\//\1$POWERLEVEL9K_SHORTEN_DELIMITER\2\//g") ;; truncate_from_right) - current_path=$(truncatePathFromRight "$(pwd | sed -e "s,^$HOME,~,")" ) + current_path=$(truncatePathFromRight "$current_path" ) ;; truncate_with_package_name) local name repo_path package_path current_dir zero @@ -757,8 +769,12 @@ prompt_dir() { # Instead of printing out the full path, print out the name of the package # from the package.json and append the current subdirectory current_path="`echo $packageName | tr -d '"'`$subdirectory_path" + if [[ "${POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER}" == "true" ]]; then + # add space before the packageName to allow for removing the "first" character, without messing up the package name. + current_path=" ${current_path}" + fi else - current_path=$(truncatePathFromRight "$(pwd | sed -e "s,^$HOME,~,")" ) + current_path=$(truncatePathFromRight "$current_path" ) fi ;; truncate_with_folder_marker) @@ -861,13 +877,13 @@ prompt_go_version() { go_path=$(go env GOPATH 2>/dev/null) if [[ -n "$go_version" && "${PWD##$go_path}" != "$PWD" ]]; then - "$1_prompt_segment" "$0" "$2" "green" "255" "$go_version" "GO_ICON" + "$1_prompt_segment" "$0" "$2" "green" "grey93" "$go_version" "GO_ICON" fi } # Command number (in local history) prompt_history() { - "$1_prompt_segment" "$0" "$2" "244" "$DEFAULT_COLOR" '%h' + "$1_prompt_segment" "$0" "$2" "grey50" "$DEFAULT_COLOR" '%h' } # Detection for virtualization (systemd based systems only) @@ -1029,7 +1045,7 @@ prompt_nodeenv() { # print a little OS icon prompt_os_icon() { - "$1_prompt_segment" "$0" "$2" "black" "255" "$OS_ICON" + "$1_prompt_segment" "$0" "$2" "black" "white" "$OS_ICON" } # print PHP version number @@ -1038,7 +1054,7 @@ prompt_php_version() { php_version=$(php -v 2>&1 | grep -oe "^PHP\s*[0-9.]*") if [[ -n "$php_version" ]]; then - "$1_prompt_segment" "$0" "$2" "013" "255" "$php_version" + "$1_prompt_segment" "$0" "$2" "fuchsia" "grey93" "$php_version" fi } @@ -1066,17 +1082,17 @@ prompt_ram() { } # rbenv information +set_default POWERLEVEL9K_RBENV_ALWAYS false prompt_rbenv() { if which rbenv 2>/dev/null >&2; then local rbenv_version_name="$(rbenv version-name)" local rbenv_global="$(rbenv global)" - # Don't show anything if the current Ruby is the same as the global Ruby. - if [[ $rbenv_version_name == $rbenv_global ]]; then - return + # Don't show anything if the current Ruby is the same as the global Ruby + # unless `POWERLEVEL9K_RBENV_ALWAYS` is set. + if [[ $POWERLEVEL9K_RBENV_ALWAYS == true || $rbenv_version_name != $rbenv_global ]];then + "$1_prompt_segment" "$0" "$2" "red" "$DEFAULT_COLOR" "$rbenv_version_name" 'RUBY_ICON' fi - - "$1_prompt_segment" "$0" "$2" "red" "$DEFAULT_COLOR" "$rbenv_version_name" 'RUBY_ICON' fi } @@ -1104,7 +1120,7 @@ prompt_rust_version() { rust_version=$(rustc --version 2>&1 | grep -oe "^rustc\s*[^ ]*" | grep -o '[0-9.a-z\\\-]*$') if [[ -n "$rust_version" ]]; then - "$1_prompt_segment" "$0" "$2" "208" "$DEFAULT_COLOR" "Rust $rust_version" 'RUST_ICON' + "$1_prompt_segment" "$0" "$2" "darkorange" "$DEFAULT_COLOR" "Rust $rust_version" 'RUST_ICON' fi } # RSpec test ratio @@ -1123,7 +1139,7 @@ prompt_rvm() { local version_and_gemset=${rvm_env_string/ruby-} if [[ -n "$version_and_gemset" ]]; then - "$1_prompt_segment" "$0" "$2" "240" "$DEFAULT_COLOR" "$version_and_gemset" 'RUBY_ICON' + "$1_prompt_segment" "$0" "$2" "grey35" "$DEFAULT_COLOR" "$version_and_gemset" 'RUBY_ICON' fi } @@ -1153,7 +1169,7 @@ exit_code_or_status() { else local sig=$(( ec - 128 )) local idx=$(( sig + 1 )) - echo "${signals[$idx]}(-${sig})" + echo "SIG${signals[$idx]}(${sig})" fi } @@ -1179,7 +1195,7 @@ prompt_status() { if (( ec_sum > 0 )); then if [[ "$POWERLEVEL9K_STATUS_CROSS" == false && "$POWERLEVEL9K_STATUS_VERBOSE" == true ]]; then - "$1_prompt_segment" "$0_ERROR" "$2" "red" "226" "$ec_text" 'CARRIAGE_RETURN_ICON' + "$1_prompt_segment" "$0_ERROR" "$2" "red" "yellow1" "$ec_text" 'CARRIAGE_RETURN_ICON' else "$1_prompt_segment" "$0_ERROR" "$2" "$DEFAULT_COLOR" "red" "" 'FAIL_ICON' fi @@ -1228,7 +1244,7 @@ prompt_symfony2_version() { if [[ -f app/bootstrap.php.cache ]]; then local symfony2_version symfony2_version=$(grep " VERSION " app/bootstrap.php.cache | sed -e 's/[^.0-9]*//g') - "$1_prompt_segment" "$0" "$2" "240" "$DEFAULT_COLOR" "$symfony2_version" 'SYMFONY_ICON' + "$1_prompt_segment" "$0" "$2" "grey35" "$DEFAULT_COLOR" "$symfony2_version" 'SYMFONY_ICON' fi } @@ -1262,7 +1278,7 @@ prompt_todo() { if $(hash todo.sh 2>&-); then count=$(todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }') if [[ "$count" = <-> ]]; then - "$1_prompt_segment" "$0" "$2" "244" "$DEFAULT_COLOR" "$count" 'TODO_ICON' + "$1_prompt_segment" "$0" "$2" "grey50" "$DEFAULT_COLOR" "$count" 'TODO_ICON' fi fi } @@ -1389,6 +1405,16 @@ prompt_pyenv() { fi } +prompt_openfoam() { + local wm_project_version="$WM_PROJECT_VERSION" + local wm_fork="$WM_FORK" + if [[ -n "$wm_project_version" ]] && [[ -z "$wm_fork" ]] ; then + "$1_prompt_segment" "$0" "$2" "yellow" "$DEFAULT_COLOR" "OF: $(basename "$wm_project_version")" + elif [[ -n "$wm_project_version" ]] && [[ -n "$wm_fork" ]] ; then + "$1_prompt_segment" "$0" "$2" "yellow" "$DEFAULT_COLOR" "F-X: $(basename "$wm_project_version")" + fi +} + # Swift version prompt_swift_version() { # Get the first number as this is probably the "main" version number.. @@ -1401,38 +1427,53 @@ prompt_swift_version() { # dir_writable: Display information about the user's permission to write in the current directory prompt_dir_writable() { if [[ ! -w "$PWD" ]]; then - "$1_prompt_segment" "$0_FORBIDDEN" "$2" "red" "226" "" 'LOCK_ICON' + "$1_prompt_segment" "$0_FORBIDDEN" "$2" "red" "yellow1" "" 'LOCK_ICON' fi } -# Kubernetes Current Context +# Kubernetes Current Context/Namespace prompt_kubecontext() { local kubectl_version="$(kubectl version --client 2>/dev/null)" if [[ -n "$kubectl_version" ]]; then - # Get the current Kubernetes config context's namespaece - local k8s_namespace=$(kubectl config get-contexts --no-headers | grep '*' | awk '{print $5}') # Get the current Kuberenetes context - local k8s_context=$(kubectl config current-context) - - if [[ -z "$k8s_namespace" ]]; then - k8s_namespace="default" + local cur_ctx=$(kubectl config view -o=jsonpath='{.current-context}') + cur_namespace="$(kubectl config view -o=jsonpath="{.contexts[?(@.name==\"${cur_ctx}\")].context.namespace}")" + # If the namespace comes back empty set it default. + if [[ -z "${cur_namespace}" ]]; then + cur_namespace="default" fi - + local k8s_final_text="" - if [[ "$k8s_context" == "k8s_namespace" ]]; then + if [[ "$cur_ctx" == "cur_namespace" ]]; then # No reason to print out the same identificator twice - k8s_final_text="$k8s_context" + k8s_final_text="$cur_ctx" else - k8s_final_text="$k8s_context/$k8s_namespace" + k8s_final_text="$cur_ctx/$cur_namespace" fi - - + "$1_prompt_segment" "$0" "$2" "magenta" "white" "$k8s_final_text" "KUBERNETES_ICON" fi } +# Dropbox status +prompt_dropbox() { + # The first column is just the directory, so cut it + local dropbox_status="$(dropbox-cli filestatus . | cut -d\ -f2-)" + + # Only show if the folder is tracked and dropbox is running + if [[ "$dropbox_status" != 'unwatched' && "$dropbox_status" != "isn't running!" ]]; then + # If "up to date", only show the icon + if [[ "$dropbox_status" =~ 'up to date' ]]; then + dropbox_status="" + fi + + "$1_prompt_segment" "$0" "$2" "white" "blue" "$dropbox_status" "DROPBOX_ICON" + fi + +} + ################################################################ # Prompt processing and drawing @@ -1541,14 +1582,7 @@ prompt_powerlevel9k_setup() { setopt noprompt{bang,cr,percent,sp,subst} "prompt${^prompt_opts[@]}" # Display a warning if the terminal does not support 256 colors - local term_colors - term_colors=$(echotc Co 2>/dev/null) - if (( ! $? && ${term_colors:-0} < 256 )); then - print -P "%F{red}WARNING!%f Your terminal appears to support fewer than 256 colors!" - print -P "If your terminal supports 256 colors, please export the appropriate environment variable" - print -P "_before_ loading this theme in your \~\/.zshrc. In most terminal emulators, putting" - print -P "%F{blue}export TERM=\"xterm-256color\"%f at the top of your \~\/.zshrc is sufficient." - fi + termColors # If the terminal `LANG` is set to `C`, this theme will not work at all. local term_lang diff --git a/test/segments/command_execution_time.spec b/test/segments/command_execution_time.spec index 09738859..e8be508f 100755 --- a/test/segments/command_execution_time.spec +++ b/test/segments/command_execution_time.spec @@ -28,7 +28,7 @@ function testCommandExecutionTimeThresholdCouldBeChanged() { POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=1 _P9K_COMMAND_DURATION=2.03 - assertEquals "%K{red} %F{226%}Dur%f %F{226}2.03 %k%F{red}%f " "$(build_left_prompt)" + assertEquals "%K{red} %F{yellow1%}Dur%f %F{yellow1}2.03 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION @@ -40,7 +40,7 @@ function testCommandExecutionTimeThresholdCouldBeSetToZero() { POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 _P9K_COMMAND_DURATION=0.03 - assertEquals "%K{red} %F{226%}Dur%f %F{226}0.03 %k%F{red}%f " "$(build_left_prompt)" + assertEquals "%K{red} %F{yellow1%}Dur%f %F{yellow1}0.03 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION @@ -53,7 +53,7 @@ function testCommandExecutionTimePrecisionCouldBeChanged() { POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=4 _P9K_COMMAND_DURATION=0.0001 - assertEquals "%K{red} %F{226%}Dur%f %F{226}0.0001 %k%F{red}%f " "$(build_left_prompt)" + assertEquals "%K{red} %F{yellow1%}Dur%f %F{yellow1}0.0001 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION @@ -66,7 +66,7 @@ function testCommandExecutionTimePrecisionCouldBeSetToZero() { POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 _P9K_COMMAND_DURATION=23.5001 - assertEquals "%K{red} %F{226%}Dur%f %F{226}23 %k%F{red}%f " "$(build_left_prompt)" + assertEquals "%K{red} %F{yellow1%}Dur%f %F{yellow1}23 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION @@ -77,7 +77,7 @@ function testCommandExecutionTimeIsFormattedHumandReadbleForMinuteLongCommand() POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) _P9K_COMMAND_DURATION=180 - assertEquals "%K{red} %F{226%}Dur%f %F{226}03:00 %k%F{red}%f " "$(build_left_prompt)" + assertEquals "%K{red} %F{yellow1%}Dur%f %F{yellow1}03:00 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION @@ -87,7 +87,7 @@ function testCommandExecutionTimeIsFormattedHumandReadbleForHourLongCommand() { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time) _P9K_COMMAND_DURATION=7200 - assertEquals "%K{red} %F{226%}Dur%f %F{226}02:00:00 %k%F{red}%f " "$(build_left_prompt)" + assertEquals "%K{red} %F{yellow1%}Dur%f %F{yellow1}02:00:00 %k%F{red}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unset _P9K_COMMAND_DURATION diff --git a/test/segments/go_version.spec b/test/segments/go_version.spec index 2aac460b..347ba4c0 100755 --- a/test/segments/go_version.spec +++ b/test/segments/go_version.spec @@ -40,7 +40,7 @@ function testGo() { PWD="$HOME/go/src/github.com/bhilburn/powerlevel9k" - assertEquals "%K{green} %F{255%}%f %F{255}go1.5.3 %k%F{green}%f " "$(build_left_prompt)" + assertEquals "%K{green} %F{grey93%}%f %F{grey93}go1.5.3 %k%F{green}%f " "$(build_left_prompt)" unset POWERLEVEL9K_GO_ICON unset PWD diff --git a/test/segments/kubecontext.spec b/test/segments/kubecontext.spec index eaaa2300..4f1d2c5e 100755 --- a/test/segments/kubecontext.spec +++ b/test/segments/kubecontext.spec @@ -18,11 +18,19 @@ function mockKubectl() { ;; 'config') case "$2" in - 'current-context') - echo 'minikube' - ;; - 'get-contexts') - echo '* minikube minikube minikube ' + 'view') + case "$3" in + '-o=jsonpath={.current-context}') + echo 'minikube' + ;; + '-o=jsonpath={.contexts'*) + echo '' + ;; + *) + echo "Mock value missed" + exit 1 + ;; + esac ;; esac ;; @@ -36,11 +44,21 @@ function mockKubectlOtherNamespace() { ;; 'config') case "$2" in - 'current-context') - echo 'minikube' - ;; - 'get-contexts') - echo '* minikube minikube minikube kube-system' + 'view') + case "$3" in + # Get Current Context + '-o=jsonpath={.current-context}') + echo 'minikube' + ;; + # Get current namespace + '-o=jsonpath={.contexts'*) + echo 'kube-system' + ;; + *) + echo "Mock value missed" + exit 1 + ;; + esac ;; esac ;; diff --git a/test/segments/rust_version.spec b/test/segments/rust_version.spec index 49b06bcf..a9668671 100755 --- a/test/segments/rust_version.spec +++ b/test/segments/rust_version.spec @@ -19,7 +19,7 @@ function testRust() { alias rustc=mockRust POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(rust_version) - assertEquals "%K{208} %F{black}Rust 0.4.1a-alpha %k%F{208}%f " "$(build_left_prompt)" + assertEquals "%K{208} %F{black}Rust 0.4.1a-alpha %k%F{darkorange}%f " "$(build_left_prompt)" unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS unalias rustc |