mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-16 17:50:09 +00:00
Merge branch 'next' into master
This commit is contained in:
commit
f17a715610
10 changed files with 690 additions and 136 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
test-vm/.vagrant
|
test-vm/.vagrant
|
||||||
*.swp
|
*.swp
|
||||||
|
.idea
|
30
README.md
30
README.md
|
@ -88,6 +88,7 @@ The segments that are currently available are:
|
||||||
* [`background_jobs`](#background_jobs) - Indicator for background jobs.
|
* [`background_jobs`](#background_jobs) - Indicator for background jobs.
|
||||||
* [`battery`](#battery) - Current battery status.
|
* [`battery`](#battery) - Current battery status.
|
||||||
* [`context`](#context) - Your username and host, conditionalized based on $USER and SSH status.
|
* [`context`](#context) - Your username and host, conditionalized based on $USER and SSH status.
|
||||||
|
* [`date`](#date) - System date.
|
||||||
* [`dir`](#dir) - Your current working directory.
|
* [`dir`](#dir) - Your current working directory.
|
||||||
* `dir_writable` - Displays a lock icon, if you do not have write permissions on the current folder.
|
* `dir_writable` - Displays a lock icon, if you do not have write permissions on the current folder.
|
||||||
* [`disk_usage`](#disk_usage) - Disk usage of your current partition.
|
* [`disk_usage`](#disk_usage) - Disk usage of your current partition.
|
||||||
|
@ -140,6 +141,7 @@ The segments that are currently available are:
|
||||||
* `aws_eb_env` - The current Elastic Beanstalk Environment.
|
* `aws_eb_env` - The current Elastic Beanstalk Environment.
|
||||||
* `docker_machine` - The current Docker Machine.
|
* `docker_machine` - The current Docker Machine.
|
||||||
* `kubecontext` - The current context of your `kubectl` configuration.
|
* `kubecontext` - The current context of your `kubectl` configuration.
|
||||||
|
* `dropbox` - Indicates Dropbox directory and syncing status using `dropbox-cli`
|
||||||
|
|
||||||
**Other:**
|
**Other:**
|
||||||
* [`custom_command`](#custom_command) - Create a custom segment to display the
|
* [`custom_command`](#custom_command) - Create a custom segment to display the
|
||||||
|
@ -148,6 +150,7 @@ The segments that are currently available are:
|
||||||
* [`todo`](http://todotxt.com/) - Shows the number of tasks in your todo.txt tasks file.
|
* [`todo`](http://todotxt.com/) - Shows the number of tasks in your todo.txt tasks file.
|
||||||
* `detect_virt` - Virtualization detection with systemd
|
* `detect_virt` - Virtualization detection with systemd
|
||||||
* `newline` - Continues the prompt on a new line.
|
* `newline` - Continues the prompt on a new line.
|
||||||
|
* `openfoam` - Shows the currently sourced [OpenFOAM](https://openfoam.org/) environment.
|
||||||
|
|
||||||
---------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -186,6 +189,7 @@ your `~/.zshrc`:
|
||||||
| Variable | Default Value | Description |
|
| 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`|`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
|
##### battery
|
||||||
|
|
||||||
|
@ -243,7 +247,7 @@ battery level. This will override the following variables:
|
||||||
`POWERLEVEL9K_BATTERY_DISCONNECTED`, and `POWERLEVEL9K_BATTERY_LOW_COLOR`. In
|
`POWERLEVEL9K_BATTERY_DISCONNECTED`, and `POWERLEVEL9K_BATTERY_LOW_COLOR`. In
|
||||||
order to do this, define a color array, from low to high, as shown below:
|
order to do this, define a color array, from low to high, as shown below:
|
||||||
```zsh
|
```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
|
As with the battery stages, you can use any number of colors and Powerlevel9k
|
||||||
|
@ -251,9 +255,9 @@ will automatically use all of them appropriately.
|
||||||
|
|
||||||
Some example settings:
|
Some example settings:
|
||||||
|Brightness|Possible Array|
|
|Brightness|Possible Array|
|
||||||
|Bright Colors|(196 202 208 214 220 226 190 154 118 82 46)|
|
|Bright Colors|(red1 orangered1 darkorange orange1 gold1 yellow1 yellow2 greenyellow chartreuse1 chartreuse2 green1)|
|
||||||
|Normal Colors|(124 130 136 142 148 112 76 40 34 28 22)|
|
|Normal Colors|(red3 darkorange3 darkgoldenrod gold3 yellow3 chartreuse2 mediumspringgreen green3 green3 green4 darkgreen)|
|
||||||
|Subdued Colors|( 88 94 100 106 70 34 28 22)|
|
|Subdued Colors|(darkred orange4 yellow4 yellow4 chartreuse3 green3 green4 darkgreen)|
|
||||||
|
|
||||||
##### command_execution_time
|
##### command_execution_time
|
||||||
|
|
||||||
|
@ -334,6 +338,14 @@ end of the hostname.
|
||||||
|`POWERLEVEL9K_ALWAYS_SHOW_USER`|false|Always show the username, but conditionalize the hostname.|
|
|`POWERLEVEL9K_ALWAYS_SHOW_USER`|false|Always show the username, but conditionalize the hostname.|
|
||||||
|`POWERLEVEL9K_CONTEXT_TEMPLATE`|%n@%m|Default context prompt (username@machine). Refer to the [ZSH Documentation](http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html) for all possible expansions, including deeper host depths.|
|
|`POWERLEVEL9K_CONTEXT_TEMPLATE`|%n@%m|Default context prompt (username@machine). Refer to the [ZSH Documentation](http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html) for all possible expansions, including deeper host depths.|
|
||||||
|
|
||||||
|
##### date
|
||||||
|
|
||||||
|
The `date` segment shows the current system date.
|
||||||
|
|
||||||
|
| Variable | Default Value | Description |
|
||||||
|
|----------|---------------|-------------|
|
||||||
|
|`POWERLEVEL9K_DATE_FORMAT`|`%D{%d.%m.%y}`|[ZSH time format](http://zsh.sourceforge.net/Doc/Release Prompt-Expansion.html) to use in this segment.|
|
||||||
|
|
||||||
##### dir
|
##### dir
|
||||||
|
|
||||||
The `dir` segment shows the current working directory. When using the "Awesome
|
The `dir` segment shows the current working directory. When using the "Awesome
|
||||||
|
@ -388,7 +400,7 @@ The `truncate_with_package_name` strategy gives your directory path relative to
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
the path shown would be `my-cool-project`. If you navigate to `$HOME/projects/my-project/src`, then the path shown would be `my-cool-project/src`. Please note that this currently looks for `.git` directory to determine the root of the project.
|
The path shown would be `my-cool-project`. If you navigate to `$HOME/projects/my-project/src`, then the path shown would be `my-cool-project/src`. Please note that this currently looks for `.git` directory to determine the root of the project.
|
||||||
|
|
||||||
If you want to customize the directory separator, you could set:
|
If you want to customize the directory separator, you could set:
|
||||||
```zsh
|
```zsh
|
||||||
|
@ -467,6 +479,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
|
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.
|
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
|
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
|
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.
|
your timeout expires at which point every time your prompt is generated a new attempt will be made.
|
||||||
|
@ -509,7 +523,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.
|
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 `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
|
##### rspec_stats
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,66 @@
|
||||||
# https://github.com/bhilburn/powerlevel9k
|
# https://github.com/bhilburn/powerlevel9k
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
|
function termColors() {
|
||||||
|
if [[ $POWERLEVEL9K_IGNORE_TERM_COLORS == true ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
echo -n "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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
|
# Get numerical color codes. That way we translate ANSI codes
|
||||||
# into ZSH-Style color codes.
|
# into ZSH-Style color codes.
|
||||||
function getColorCode() {
|
function getColorCode() {
|
||||||
|
@ -15,30 +75,292 @@ function getColorCode() {
|
||||||
# and "background" colors. We don't need to do that,
|
# and "background" colors. We don't need to do that,
|
||||||
# as ZSH uses a 256 color space anyway.
|
# as ZSH uses a 256 color space anyway.
|
||||||
if [[ "$1" = <8-15> ]]; then
|
if [[ "$1" = <8-15> ]]; then
|
||||||
echo $(($1 - 8))
|
echo -n $(($1 - 8))
|
||||||
else
|
else
|
||||||
echo "$1"
|
echo -n "$1"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
typeset -A codes
|
typeset -A codes
|
||||||
codes=(
|
# https://jonasjacek.github.io/colors/
|
||||||
'black' '000'
|
# use color names by default to allow dark/light themes to adjust colors based on names
|
||||||
'red' '001'
|
codes[black]=000
|
||||||
'green' '002'
|
codes[maroon]=001
|
||||||
'yellow' '003'
|
codes[green]=002
|
||||||
'blue' '004'
|
codes[olive]=003
|
||||||
'magenta' '005'
|
codes[navy]=004
|
||||||
'cyan' '006'
|
codes[purple]=005
|
||||||
'white' '007'
|
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
|
# Strip eventual "bg-" prefixes
|
||||||
1=${1#bg-}
|
1=${1#bg-}
|
||||||
# Strip eventual "fg-" prefixes
|
# Strip eventual "fg-" prefixes
|
||||||
1=${1#fg-}
|
1=${1#fg-}
|
||||||
# Strip eventual "br" prefixes ("bright" colors)
|
# Strip eventual "br" prefixes ("bright" colors)
|
||||||
1=${1#br}
|
1=${1#br}
|
||||||
echo $codes[$1]
|
echo -n $codes[$1]
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,4 +375,3 @@ function isSameColor() {
|
||||||
|
|
||||||
return $(( color1 != color2 ))
|
return $(( color1 != color2 ))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,6 +87,9 @@ case $POWERLEVEL9K_MODE in
|
||||||
SSH_ICON '(ssh)'
|
SSH_ICON '(ssh)'
|
||||||
VPN_ICON '(vpn)'
|
VPN_ICON '(vpn)'
|
||||||
KUBERNETES_ICON $'\U2388' # ⎈
|
KUBERNETES_ICON $'\U2388' # ⎈
|
||||||
|
DROPBOX_ICON $'\UF16B' #
|
||||||
|
DATE_ICON $'\uE184' #
|
||||||
|
TIME_ICON $'\uE12E' #
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
'awesome-fontconfig')
|
'awesome-fontconfig')
|
||||||
|
@ -158,11 +161,94 @@ case $POWERLEVEL9K_MODE in
|
||||||
SSH_ICON '(ssh)'
|
SSH_ICON '(ssh)'
|
||||||
VPN_ICON $'\uF023'
|
VPN_ICON $'\uF023'
|
||||||
KUBERNETES_ICON $'\U2388' # ⎈
|
KUBERNETES_ICON $'\U2388' # ⎈
|
||||||
|
DROPBOX_ICON $'\UF16B' #
|
||||||
|
DATE_ICON $'\uF073 ' #
|
||||||
|
TIME_ICON $'\uF017 ' #
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
'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 #
|
||||||
|
DATE_ICON $'\uF073 ' #
|
||||||
|
TIME_ICON $'\uF017 ' #
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
'nerdfont-complete'|'nerdfont-fontconfig')
|
'nerdfont-complete'|'nerdfont-fontconfig')
|
||||||
# nerd-font patched (complete) font required! See
|
# nerd-font patched (complete) font required! See
|
||||||
# https://github.com/ryanoasis/nerd-fonts
|
# https://github.com/ryanoasis/nerd-fonts
|
||||||
|
# http://nerdfonts.com/#cheat-sheet
|
||||||
# Set the right locale to protect special characters
|
# Set the right locale to protect special characters
|
||||||
local LC_ALL="" LC_CTYPE="en_US.UTF-8"
|
local LC_ALL="" LC_CTYPE="en_US.UTF-8"
|
||||||
icons=(
|
icons=(
|
||||||
|
@ -213,8 +299,8 @@ case $POWERLEVEL9K_MODE in
|
||||||
VCS_COMMIT_ICON $'\uE729 ' #
|
VCS_COMMIT_ICON $'\uE729 ' #
|
||||||
VCS_BRANCH_ICON $'\uF126 ' #
|
VCS_BRANCH_ICON $'\uF126 ' #
|
||||||
VCS_REMOTE_BRANCH_ICON $'\uE728 ' #
|
VCS_REMOTE_BRANCH_ICON $'\uE728 ' #
|
||||||
VCS_GIT_ICON $'\uF113 ' #
|
VCS_GIT_ICON $'\uF1D3 ' #
|
||||||
VCS_GIT_GITHUB_ICON $'\uE709 ' #
|
VCS_GIT_GITHUB_ICON $'\uF113 ' #
|
||||||
VCS_GIT_BITBUCKET_ICON $'\uE703 ' #
|
VCS_GIT_BITBUCKET_ICON $'\uE703 ' #
|
||||||
VCS_GIT_GITLAB_ICON $'\uF296 ' #
|
VCS_GIT_GITLAB_ICON $'\uF296 ' #
|
||||||
VCS_HG_ICON $'\uF0C3 ' #
|
VCS_HG_ICON $'\uF0C3 ' #
|
||||||
|
@ -229,6 +315,9 @@ case $POWERLEVEL9K_MODE in
|
||||||
SSH_ICON $'\uF489' #
|
SSH_ICON $'\uF489' #
|
||||||
VPN_ICON '(vpn)'
|
VPN_ICON '(vpn)'
|
||||||
KUBERNETES_ICON $'\U2388' # ⎈
|
KUBERNETES_ICON $'\U2388' # ⎈
|
||||||
|
DROPBOX_ICON $'\UF16B' #
|
||||||
|
DATE_ICON $'\uF073 ' #
|
||||||
|
TIME_ICON $'\uF017 ' #
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -300,6 +389,9 @@ case $POWERLEVEL9K_MODE in
|
||||||
SSH_ICON '(ssh)'
|
SSH_ICON '(ssh)'
|
||||||
VPN_ICON '(vpn)'
|
VPN_ICON '(vpn)'
|
||||||
KUBERNETES_ICON $'\U2388' # ⎈
|
KUBERNETES_ICON $'\U2388' # ⎈
|
||||||
|
DROPBOX_ICON 'Dropbox'
|
||||||
|
DATE_ICON ''
|
||||||
|
TIME_ICON ''
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -116,6 +116,8 @@ function +vi-vcs-detect-changes() {
|
||||||
vcs_visual_identifier='VCS_GIT_GITHUB_ICON'
|
vcs_visual_identifier='VCS_GIT_GITHUB_ICON'
|
||||||
elif [[ "$remote" =~ "bitbucket" ]] then
|
elif [[ "$remote" =~ "bitbucket" ]] then
|
||||||
vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON'
|
vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON'
|
||||||
|
elif [[ "$remote" =~ "stash" ]] then
|
||||||
|
vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON'
|
||||||
elif [[ "$remote" =~ "gitlab" ]] then
|
elif [[ "$remote" =~ "gitlab" ]] then
|
||||||
vcs_visual_identifier='VCS_GIT_GITLAB_ICON'
|
vcs_visual_identifier='VCS_GIT_GITLAB_ICON'
|
||||||
else
|
else
|
||||||
|
|
|
@ -127,8 +127,8 @@ left_prompt_segment() {
|
||||||
[[ -n $FG_COLOR_MODIFIER ]] && 4="$FG_COLOR_MODIFIER"
|
[[ -n $FG_COLOR_MODIFIER ]] && 4="$FG_COLOR_MODIFIER"
|
||||||
|
|
||||||
local bg fg
|
local bg fg
|
||||||
[[ -n "$3" ]] && bg="%K{$3}" || bg="%k"
|
[[ -n "$3" ]] && bg="$(backgroundColor $3)" || bg="$(backgroundColor)"
|
||||||
[[ -n "$4" ]] && fg="%F{$4}" || fg="%f"
|
[[ -n "$4" ]] && fg="$(foregroundColor $4)" || fg="$(foregroundColor)"
|
||||||
|
|
||||||
if [[ $CURRENT_BG != 'NONE' ]] && ! isSameColor "$3" "$CURRENT_BG"; then
|
if [[ $CURRENT_BG != 'NONE' ]] && ! isSameColor "$3" "$CURRENT_BG"; then
|
||||||
echo -n "$bg%F{$CURRENT_BG}"
|
echo -n "$bg%F{$CURRENT_BG}"
|
||||||
|
@ -142,8 +142,8 @@ left_prompt_segment() {
|
||||||
# subsegment (or the default color). This should have
|
# subsegment (or the default color). This should have
|
||||||
# enough contrast.
|
# enough contrast.
|
||||||
local complement
|
local complement
|
||||||
[[ -n "$4" ]] && complement="$4" || complement=$DEFAULT_COLOR
|
[[ -n "$4" ]] && complement="$fg" || complement="$(foregroundColor $DEFAULT_COLOR)"
|
||||||
echo -n "$bg%F{$complement}"
|
echo -n "${bg}${complement}"
|
||||||
if [[ $joined == false ]]; then
|
if [[ $joined == false ]]; then
|
||||||
echo -n "$(print_icon 'LEFT_SUBSEGMENT_SEPARATOR')$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS"
|
echo -n "$(print_icon 'LEFT_SUBSEGMENT_SEPARATOR')$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS"
|
||||||
fi
|
fi
|
||||||
|
@ -218,8 +218,8 @@ right_prompt_segment() {
|
||||||
[[ -n $FG_COLOR_MODIFIER ]] && 4="$FG_COLOR_MODIFIER"
|
[[ -n $FG_COLOR_MODIFIER ]] && 4="$FG_COLOR_MODIFIER"
|
||||||
|
|
||||||
local bg fg
|
local bg fg
|
||||||
[[ -n "$3" ]] && bg="%K{$3}" || bg="%k"
|
[[ -n "$3" ]] && bg="$(backgroundColor $3)" || bg="$(backgroundColor)"
|
||||||
[[ -n "$4" ]] && fg="%F{$4}" || fg="%f"
|
[[ -n "$4" ]] && fg="$(foregroundColor $4)" || fg="$(foregroundColor)"
|
||||||
|
|
||||||
# If CURRENT_RIGHT_BG is "NONE", we are the first right segment.
|
# If CURRENT_RIGHT_BG is "NONE", we are the first right segment.
|
||||||
if [[ $joined == false ]] || [[ "$CURRENT_RIGHT_BG" == "NONE" ]]; then
|
if [[ $joined == false ]] || [[ "$CURRENT_RIGHT_BG" == "NONE" ]]; then
|
||||||
|
@ -229,10 +229,11 @@ right_prompt_segment() {
|
||||||
# subsegment (or the default color). This should have
|
# subsegment (or the default color). This should have
|
||||||
# enough contrast.
|
# enough contrast.
|
||||||
local complement
|
local complement
|
||||||
[[ -n "$4" ]] && complement="$4" || complement=$DEFAULT_COLOR
|
[[ -n "$4" ]] && complement="$fg" || complement="$(foregroundColor $DEFAULT_COLOR)"
|
||||||
echo -n "%F{$complement}$(print_icon 'RIGHT_SUBSEGMENT_SEPARATOR')%f"
|
echo -n "$complement$(print_icon 'RIGHT_SUBSEGMENT_SEPARATOR')%f"
|
||||||
else
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -272,6 +273,7 @@ right_prompt_segment() {
|
||||||
# right-left but reads the opposite, this isn't necessary for the other side.
|
# right-left but reads the opposite, this isn't necessary for the other side.
|
||||||
CURRENT_BG='NONE'
|
CURRENT_BG='NONE'
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Anaconda Environment
|
# Anaconda Environment
|
||||||
prompt_anaconda() {
|
prompt_anaconda() {
|
||||||
# Depending on the conda version, either might be set. This
|
# Depending on the conda version, either might be set. This
|
||||||
|
@ -285,6 +287,7 @@ prompt_anaconda() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# AWS Profile
|
# AWS Profile
|
||||||
prompt_aws() {
|
prompt_aws() {
|
||||||
local aws_profile="${AWS_PROFILE:-$AWS_DEFAULT_PROFILE}"
|
local aws_profile="${AWS_PROFILE:-$AWS_DEFAULT_PROFILE}"
|
||||||
|
@ -294,6 +297,7 @@ prompt_aws() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Current Elastic Beanstalk environment
|
# Current Elastic Beanstalk environment
|
||||||
prompt_aws_eb_env() {
|
prompt_aws_eb_env() {
|
||||||
local eb_env=$(grep environment .elasticbeanstalk/config.yml 2> /dev/null | awk '{print $2}')
|
local eb_env=$(grep environment .elasticbeanstalk/config.yml 2> /dev/null | awk '{print $2}')
|
||||||
|
@ -303,8 +307,10 @@ prompt_aws_eb_env() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Segment to indicate background jobs with an icon.
|
# Segment to indicate background jobs with an icon.
|
||||||
set_default POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE true
|
set_default POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE true
|
||||||
|
set_default POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE_ALWAYS false
|
||||||
prompt_background_jobs() {
|
prompt_background_jobs() {
|
||||||
local background_jobs_number=${$(jobs -l | wc -l)// /}
|
local background_jobs_number=${$(jobs -l | wc -l)// /}
|
||||||
local wrong_lines=`jobs -l | awk '/pwd now/{ count++ } END {print count}'`
|
local wrong_lines=`jobs -l | awk '/pwd now/{ count++ } END {print count}'`
|
||||||
|
@ -313,13 +319,14 @@ prompt_background_jobs() {
|
||||||
fi
|
fi
|
||||||
if [[ background_jobs_number -gt 0 ]]; then
|
if [[ background_jobs_number -gt 0 ]]; then
|
||||||
local background_jobs_number_print=""
|
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"
|
background_jobs_number_print="$background_jobs_number"
|
||||||
fi
|
fi
|
||||||
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR" "cyan" "$background_jobs_number_print" 'BACKGROUND_JOBS_ICON'
|
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR" "cyan" "$background_jobs_number_print" 'BACKGROUND_JOBS_ICON'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# A newline in your prompt, so you can segments on multiple lines.
|
# A newline in your prompt, so you can segments on multiple lines.
|
||||||
prompt_newline() {
|
prompt_newline() {
|
||||||
local lws newline
|
local lws newline
|
||||||
|
@ -337,6 +344,7 @@ prompt_newline() {
|
||||||
POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS=$lws
|
POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS=$lws
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Segment that indicates usage level of current partition.
|
# Segment that indicates usage level of current partition.
|
||||||
set_default POWERLEVEL9K_DISK_USAGE_ONLY_WARNING false
|
set_default POWERLEVEL9K_DISK_USAGE_ONLY_WARNING false
|
||||||
set_default POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL 90
|
set_default POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL 90
|
||||||
|
@ -379,6 +387,8 @@ prompt_disk_usage() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment that displays the battery status in levels and colors
|
||||||
prompt_battery() {
|
prompt_battery() {
|
||||||
# The battery can have four different states - default to 'unknown'.
|
# The battery can have four different states - default to 'unknown'.
|
||||||
local current_state='unknown'
|
local current_state='unknown'
|
||||||
|
@ -489,6 +499,7 @@ prompt_battery() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Public IP segment
|
# Public IP segment
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# * $1 Alignment: string - left|right
|
# * $1 Alignment: string - left|right
|
||||||
|
@ -555,10 +566,20 @@ prompt_public_ip() {
|
||||||
|
|
||||||
# Draw the prompt segment
|
# Draw the prompt segment
|
||||||
if [[ -n $public_ip ]]; then
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Context: user@hostname (who am I and where am I)
|
# Context: user@hostname (who am I and where am I)
|
||||||
# Note that if $DEFAULT_USER is not set, this prompt segment will always print
|
# Note that if $DEFAULT_USER is not set, this prompt segment will always print
|
||||||
set_default POWERLEVEL9K_ALWAYS_SHOW_CONTEXT false
|
set_default POWERLEVEL9K_ALWAYS_SHOW_CONTEXT false
|
||||||
|
@ -569,25 +590,26 @@ prompt_context() {
|
||||||
typeset -AH context_states
|
typeset -AH context_states
|
||||||
context_states=(
|
context_states=(
|
||||||
"ROOT" "yellow"
|
"ROOT" "yellow"
|
||||||
"DEFAULT" "011"
|
"DEFAULT" "yellow"
|
||||||
|
"REMOTE" "yellow"
|
||||||
)
|
)
|
||||||
|
|
||||||
local content=""
|
local content=""
|
||||||
|
|
||||||
if [[ "$POWERLEVEL9K_ALWAYS_SHOW_CONTEXT" == true ]] || [[ "$(whoami)" != "$DEFAULT_USER" ]] || [[ -n "$SSH_CLIENT" || -n "$SSH_TTY" ]]; then
|
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}"
|
content="${POWERLEVEL9K_CONTEXT_TEMPLATE}"
|
||||||
|
|
||||||
elif [[ "$POWERLEVEL9K_ALWAYS_SHOW_USER" == true ]]; then
|
elif [[ "$POWERLEVEL9K_ALWAYS_SHOW_USER" == true ]]; then
|
||||||
content="$(whoami)"
|
content="$(whoami)"
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
fi
|
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}"
|
"$1_prompt_segment" "${0}_${current_state}" "$2" "$DEFAULT_COLOR" "${context_states[$current_state]}" "${content}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -612,7 +634,7 @@ prompt_user() {
|
||||||
"STATE" "DEFAULT"
|
"STATE" "DEFAULT"
|
||||||
"CONTENT" "$(whoami)"
|
"CONTENT" "$(whoami)"
|
||||||
"BACKGROUND_COLOR" "${DEFAULT_COLOR}"
|
"BACKGROUND_COLOR" "${DEFAULT_COLOR}"
|
||||||
"FOREGROUND_COLOR" "011"
|
"FOREGROUND_COLOR" "yellow"
|
||||||
"VISUAL_IDENTIFIER" "USER_ICON"
|
"VISUAL_IDENTIFIER" "USER_ICON"
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
|
@ -639,13 +661,14 @@ prompt_host() {
|
||||||
"STATE" "LOCAL"
|
"STATE" "LOCAL"
|
||||||
"CONTENT" "${POWERLEVEL9K_HOST_TEMPLATE}"
|
"CONTENT" "${POWERLEVEL9K_HOST_TEMPLATE}"
|
||||||
"BACKGROUND_COLOR" "${DEFAULT_COLOR}"
|
"BACKGROUND_COLOR" "${DEFAULT_COLOR}"
|
||||||
"FOREGROUND_COLOR" "011"
|
"FOREGROUND_COLOR" "yellow"
|
||||||
"VISUAL_IDENTIFIER" "HOST_ICON"
|
"VISUAL_IDENTIFIER" "HOST_ICON"
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
"$1_prompt_segment" "$0_${host_state[STATE]}" "$2" "${host_state[BACKGROUND_COLOR]}" "${host_state[FOREGROUND_COLOR]}" "${host_state[CONTENT]}" "${host_state[VISUAL_IDENTIFIER]}"
|
"$1_prompt_segment" "$0_${host_state[STATE]}" "$2" "${host_state[BACKGROUND_COLOR]}" "${host_state[FOREGROUND_COLOR]}" "${host_state[CONTENT]}" "${host_state[VISUAL_IDENTIFIER]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# The 'custom` prompt provides a way for users to invoke commands and display
|
# The 'custom` prompt provides a way for users to invoke commands and display
|
||||||
# the output in a segment.
|
# the output in a segment.
|
||||||
prompt_custom() {
|
prompt_custom() {
|
||||||
|
@ -657,6 +680,7 @@ prompt_custom() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Display the duration the command needed to run.
|
# Display the duration the command needed to run.
|
||||||
prompt_command_execution_time() {
|
prompt_command_execution_time() {
|
||||||
set_default POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD 3
|
set_default POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD 3
|
||||||
|
@ -686,10 +710,11 @@ prompt_command_execution_time() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( _P9K_COMMAND_DURATION >= POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD )); then
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Dir: current working directory
|
# Dir: current working directory
|
||||||
set_default POWERLEVEL9K_DIR_PATH_SEPARATOR "/"
|
set_default POWERLEVEL9K_DIR_PATH_SEPARATOR "/"
|
||||||
set_default POWERLEVEL9K_HOME_FOLDER_ABBREVIATION "~"
|
set_default POWERLEVEL9K_HOME_FOLDER_ABBREVIATION "~"
|
||||||
|
@ -704,10 +729,10 @@ prompt_dir() {
|
||||||
|
|
||||||
case "$POWERLEVEL9K_SHORTEN_STRATEGY" in
|
case "$POWERLEVEL9K_SHORTEN_STRATEGY" in
|
||||||
truncate_middle)
|
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)
|
truncate_from_right)
|
||||||
current_path=$(truncatePathFromRight "$(pwd | sed -e "s,^$HOME,~,")" )
|
current_path=$(truncatePathFromRight "$current_path" )
|
||||||
;;
|
;;
|
||||||
truncate_with_package_name)
|
truncate_with_package_name)
|
||||||
local name repo_path package_path current_dir zero
|
local name repo_path package_path current_dir zero
|
||||||
|
@ -757,8 +782,12 @@ prompt_dir() {
|
||||||
# Instead of printing out the full path, print out the name of the package
|
# Instead of printing out the full path, print out the name of the package
|
||||||
# from the package.json and append the current subdirectory
|
# from the package.json and append the current subdirectory
|
||||||
current_path="`echo $packageName | tr -d '"'`$subdirectory_path"
|
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
|
else
|
||||||
current_path=$(truncatePathFromRight "$(pwd | sed -e "s,^$HOME,~,")" )
|
current_path=$(truncatePathFromRight "$current_path" )
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
truncate_with_folder_marker)
|
truncate_with_folder_marker)
|
||||||
|
@ -844,6 +873,7 @@ prompt_dir() {
|
||||||
"$1_prompt_segment" "$0_${current_state}" "$2" "blue" "$DEFAULT_COLOR" "${current_path}" "${dir_states[$current_state]}"
|
"$1_prompt_segment" "$0_${current_state}" "$2" "blue" "$DEFAULT_COLOR" "${current_path}" "${dir_states[$current_state]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Docker machine
|
# Docker machine
|
||||||
prompt_docker_machine() {
|
prompt_docker_machine() {
|
||||||
local docker_machine="$DOCKER_MACHINE_NAME"
|
local docker_machine="$DOCKER_MACHINE_NAME"
|
||||||
|
@ -853,6 +883,7 @@ prompt_docker_machine() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# GO prompt
|
# GO prompt
|
||||||
prompt_go_version() {
|
prompt_go_version() {
|
||||||
local go_version
|
local go_version
|
||||||
|
@ -861,15 +892,17 @@ prompt_go_version() {
|
||||||
go_path=$(go env GOPATH 2>/dev/null)
|
go_path=$(go env GOPATH 2>/dev/null)
|
||||||
|
|
||||||
if [[ -n "$go_version" && "${PWD##$go_path}" != "$PWD" ]]; then
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Command number (in local history)
|
# Command number (in local history)
|
||||||
prompt_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)
|
# Detection for virtualization (systemd based systems only)
|
||||||
prompt_detect_virt() {
|
prompt_detect_virt() {
|
||||||
if ! command -v systemd-detect-virt > /dev/null; then
|
if ! command -v systemd-detect-virt > /dev/null; then
|
||||||
|
@ -888,7 +921,8 @@ prompt_detect_virt() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Test icons
|
||||||
prompt_icons_test() {
|
prompt_icons_test() {
|
||||||
for key in ${(@k)icons}; do
|
for key in ${(@k)icons}; do
|
||||||
# The lower color spectrum in ZSH makes big steps. Choosing
|
# The lower color spectrum in ZSH makes big steps. Choosing
|
||||||
|
@ -899,6 +933,8 @@ prompt_icons_test() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display the current IP address
|
||||||
prompt_ip() {
|
prompt_ip() {
|
||||||
if [[ "$OS" == "OSX" ]]; then
|
if [[ "$OS" == "OSX" ]]; then
|
||||||
if defined POWERLEVEL9K_IP_INTERFACE; then
|
if defined POWERLEVEL9K_IP_INTERFACE; then
|
||||||
|
@ -929,6 +965,8 @@ prompt_ip() {
|
||||||
"$1_prompt_segment" "$0" "$2" "cyan" "$DEFAULT_COLOR" "$ip" 'NETWORK_ICON'
|
"$1_prompt_segment" "$0" "$2" "cyan" "$DEFAULT_COLOR" "$ip" 'NETWORK_ICON'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display if VPN is active
|
||||||
set_default POWERLEVEL9K_VPN_IP_INTERFACE "tun"
|
set_default POWERLEVEL9K_VPN_IP_INTERFACE "tun"
|
||||||
# prompt if vpn active
|
# prompt if vpn active
|
||||||
prompt_vpn_ip() {
|
prompt_vpn_ip() {
|
||||||
|
@ -939,6 +977,8 @@ prompt_vpn_ip() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display load
|
||||||
set_default POWERLEVEL9K_LOAD_WHICH 5
|
set_default POWERLEVEL9K_LOAD_WHICH 5
|
||||||
prompt_load() {
|
prompt_load() {
|
||||||
# The load segment can have three different states
|
# The load segment can have three different states
|
||||||
|
@ -994,8 +1034,8 @@ prompt_load() {
|
||||||
"$1_prompt_segment" "${0}_${current_state}" "$2" "${load_states[$current_state]}" "$DEFAULT_COLOR" "$load_avg" 'LOAD_ICON'
|
"$1_prompt_segment" "${0}_${current_state}" "$2" "${load_states[$current_state]}" "$DEFAULT_COLOR" "$load_avg" 'LOAD_ICON'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Node version
|
# Segment to diplay Node version
|
||||||
prompt_node_version() {
|
prompt_node_version() {
|
||||||
local node_version=$(node -v 2>/dev/null)
|
local node_version=$(node -v 2>/dev/null)
|
||||||
[[ -z "${node_version}" ]] && return
|
[[ -z "${node_version}" ]] && return
|
||||||
|
@ -1003,7 +1043,8 @@ prompt_node_version() {
|
||||||
"$1_prompt_segment" "$0" "$2" "green" "white" "${node_version:1}" 'NODE_ICON'
|
"$1_prompt_segment" "$0" "$2" "green" "white" "${node_version:1}" 'NODE_ICON'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Node version from NVM
|
################################################################
|
||||||
|
# Segment to display Node version from NVM
|
||||||
# Only prints the segment if different than the default value
|
# Only prints the segment if different than the default value
|
||||||
prompt_nvm() {
|
prompt_nvm() {
|
||||||
local node_version nvm_default
|
local node_version nvm_default
|
||||||
|
@ -1018,7 +1059,8 @@ prompt_nvm() {
|
||||||
$1_prompt_segment "$0" "$2" "magenta" "black" "${node_version:1}" 'NODE_ICON'
|
$1_prompt_segment "$0" "$2" "magenta" "black" "${node_version:1}" 'NODE_ICON'
|
||||||
}
|
}
|
||||||
|
|
||||||
# NodeEnv Prompt
|
################################################################
|
||||||
|
# Segment to display NodeEnv
|
||||||
prompt_nodeenv() {
|
prompt_nodeenv() {
|
||||||
local nodeenv_path="$NODE_VIRTUAL_ENV"
|
local nodeenv_path="$NODE_VIRTUAL_ENV"
|
||||||
if [[ -n "$nodeenv_path" && "$NODE_VIRTUAL_ENV_DISABLE_PROMPT" != true ]]; then
|
if [[ -n "$nodeenv_path" && "$NODE_VIRTUAL_ENV_DISABLE_PROMPT" != true ]]; then
|
||||||
|
@ -1027,22 +1069,25 @@ prompt_nodeenv() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# print a little OS icon
|
################################################################
|
||||||
|
# Segment to print a little OS icon
|
||||||
prompt_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
|
################################################################
|
||||||
|
# Segment to display PHP version number
|
||||||
prompt_php_version() {
|
prompt_php_version() {
|
||||||
local php_version
|
local php_version
|
||||||
php_version=$(php -v 2>&1 | grep -oe "^PHP\s*[0-9.]*")
|
php_version=$(php -v 2>&1 | grep -oe "^PHP\s*[0-9.]*")
|
||||||
|
|
||||||
if [[ -n "$php_version" ]]; then
|
if [[ -n "$php_version" ]]; then
|
||||||
"$1_prompt_segment" "$0" "$2" "013" "255" "$php_version"
|
"$1_prompt_segment" "$0" "$2" "fuchsia" "grey93" "$php_version"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Show free RAM and used Swap
|
################################################################
|
||||||
|
# Segment to display free RAM and used Swap
|
||||||
prompt_ram() {
|
prompt_ram() {
|
||||||
local base=''
|
local base=''
|
||||||
local ramfree=0
|
local ramfree=0
|
||||||
|
@ -1065,22 +1110,24 @@ prompt_ram() {
|
||||||
"$1_prompt_segment" "$0" "$2" "yellow" "$DEFAULT_COLOR" "$(printSizeHumanReadable "$ramfree" $base)" 'RAM_ICON'
|
"$1_prompt_segment" "$0" "$2" "yellow" "$DEFAULT_COLOR" "$(printSizeHumanReadable "$ramfree" $base)" 'RAM_ICON'
|
||||||
}
|
}
|
||||||
|
|
||||||
# rbenv information
|
################################################################
|
||||||
|
# Segment to display rbenv information
|
||||||
|
set_default POWERLEVEL9K_RBENV_ALWAYS false
|
||||||
prompt_rbenv() {
|
prompt_rbenv() {
|
||||||
if which rbenv 2>/dev/null >&2; then
|
if which rbenv 2>/dev/null >&2; then
|
||||||
local rbenv_version_name="$(rbenv version-name)"
|
local rbenv_version_name="$(rbenv version-name)"
|
||||||
local rbenv_global="$(rbenv global)"
|
local rbenv_global="$(rbenv global)"
|
||||||
|
|
||||||
# Don't show anything if the current Ruby is the same as the global Ruby.
|
# Don't show anything if the current Ruby is the same as the global Ruby
|
||||||
if [[ $rbenv_version_name == $rbenv_global ]]; then
|
# unless `POWERLEVEL9K_RBENV_ALWAYS` is set.
|
||||||
return
|
if [[ $POWERLEVEL9K_RBENV_ALWAYS == true || $rbenv_version_name != $rbenv_global ]];then
|
||||||
fi
|
|
||||||
|
|
||||||
"$1_prompt_segment" "$0" "$2" "red" "$DEFAULT_COLOR" "$rbenv_version_name" 'RUBY_ICON'
|
"$1_prompt_segment" "$0" "$2" "red" "$DEFAULT_COLOR" "$rbenv_version_name" 'RUBY_ICON'
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# chruby information
|
################################################################
|
||||||
|
# Segment to display chruby information
|
||||||
# see https://github.com/postmodern/chruby/issues/245 for chruby_auto issue with ZSH
|
# see https://github.com/postmodern/chruby/issues/245 for chruby_auto issue with ZSH
|
||||||
prompt_chruby() {
|
prompt_chruby() {
|
||||||
local chruby_env
|
local chruby_env
|
||||||
|
@ -1091,23 +1138,27 @@ prompt_chruby() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Print an icon if user is root.
|
################################################################
|
||||||
|
# Segment to print an icon if user is root.
|
||||||
prompt_root_indicator() {
|
prompt_root_indicator() {
|
||||||
if [[ "$UID" -eq 0 ]]; then
|
if [[ "$UID" -eq 0 ]]; then
|
||||||
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR" "yellow" "" 'ROOT_ICON'
|
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR" "yellow" "" 'ROOT_ICON'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Print Rust version number
|
################################################################
|
||||||
|
# Segment to display Rust version number
|
||||||
prompt_rust_version() {
|
prompt_rust_version() {
|
||||||
local rust_version
|
local rust_version
|
||||||
rust_version=$(rustc --version 2>&1 | grep -oe "^rustc\s*[^ ]*" | grep -o '[0-9.a-z\\\-]*$')
|
rust_version=$(rustc --version 2>&1 | grep -oe "^rustc\s*[^ ]*" | grep -o '[0-9.a-z\\\-]*$')
|
||||||
|
|
||||||
if [[ -n "$rust_version" ]]; then
|
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
|
fi
|
||||||
}
|
}
|
||||||
# RSpec test ratio
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display RSpec test ratio
|
||||||
prompt_rspec_stats() {
|
prompt_rspec_stats() {
|
||||||
if [[ (-d app && -d spec) ]]; then
|
if [[ (-d app && -d spec) ]]; then
|
||||||
local code_amount tests_amount
|
local code_amount tests_amount
|
||||||
|
@ -1118,21 +1169,25 @@ prompt_rspec_stats() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Ruby Version Manager information
|
################################################################
|
||||||
|
# Segment to display Ruby Version Manager information
|
||||||
prompt_rvm() {
|
prompt_rvm() {
|
||||||
local version_and_gemset=${rvm_env_string/ruby-}
|
local version_and_gemset=${rvm_env_string/ruby-}
|
||||||
|
|
||||||
if [[ -n "$version_and_gemset" ]]; then
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display SSH icon when connected
|
||||||
prompt_ssh() {
|
prompt_ssh() {
|
||||||
if [[ -n "$SSH_CLIENT" ]] || [[ -n "$SSH_TTY" ]]; then
|
if [[ -n "$SSH_CLIENT" ]] || [[ -n "$SSH_TTY" ]]; then
|
||||||
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR" "yellow" "" 'SSH_ICON'
|
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR" "yellow" "" 'SSH_ICON'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Status: When an error occur, return the error code, or a cross icon if option is set
|
# Status: When an error occur, return the error code, or a cross icon if option is set
|
||||||
# Display an ok icon when no error occur, or hide the segment if option is set to false
|
# Display an ok icon when no error occur, or hide the segment if option is set to false
|
||||||
#
|
#
|
||||||
|
@ -1153,7 +1208,7 @@ exit_code_or_status() {
|
||||||
else
|
else
|
||||||
local sig=$(( ec - 128 ))
|
local sig=$(( ec - 128 ))
|
||||||
local idx=$(( sig + 1 ))
|
local idx=$(( sig + 1 ))
|
||||||
echo "${signals[$idx]}(-${sig})"
|
echo "SIG${signals[$idx]}(${sig})"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1179,7 +1234,7 @@ prompt_status() {
|
||||||
|
|
||||||
if (( ec_sum > 0 )); then
|
if (( ec_sum > 0 )); then
|
||||||
if [[ "$POWERLEVEL9K_STATUS_CROSS" == false && "$POWERLEVEL9K_STATUS_VERBOSE" == true ]]; 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
|
else
|
||||||
"$1_prompt_segment" "$0_ERROR" "$2" "$DEFAULT_COLOR" "red" "" 'FAIL_ICON'
|
"$1_prompt_segment" "$0_ERROR" "$2" "$DEFAULT_COLOR" "red" "" 'FAIL_ICON'
|
||||||
fi
|
fi
|
||||||
|
@ -1188,6 +1243,8 @@ prompt_status() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display Swap information
|
||||||
prompt_swap() {
|
prompt_swap() {
|
||||||
local swap_used=0
|
local swap_used=0
|
||||||
local base=''
|
local base=''
|
||||||
|
@ -1212,6 +1269,7 @@ prompt_swap() {
|
||||||
"$1_prompt_segment" "$0" "$2" "yellow" "$DEFAULT_COLOR" "$(printSizeHumanReadable "$swap_used" $base)" 'SWAP_ICON'
|
"$1_prompt_segment" "$0" "$2" "yellow" "$DEFAULT_COLOR" "$(printSizeHumanReadable "$swap_used" $base)" 'SWAP_ICON'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Symfony2-PHPUnit test ratio
|
# Symfony2-PHPUnit test ratio
|
||||||
prompt_symfony2_tests() {
|
prompt_symfony2_tests() {
|
||||||
if [[ (-d src && -d app && -f app/AppKernel.php) ]]; then
|
if [[ (-d src && -d app && -f app/AppKernel.php) ]]; then
|
||||||
|
@ -1223,15 +1281,17 @@ prompt_symfony2_tests() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Symfony2-Version
|
################################################################
|
||||||
|
# Segment to display Symfony2-Version
|
||||||
prompt_symfony2_version() {
|
prompt_symfony2_version() {
|
||||||
if [[ -f app/bootstrap.php.cache ]]; then
|
if [[ -f app/bootstrap.php.cache ]]; then
|
||||||
local symfony2_version
|
local symfony2_version
|
||||||
symfony2_version=$(grep " VERSION " app/bootstrap.php.cache | sed -e 's/[^.0-9]*//g')
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Show a ratio of tests vs code
|
# Show a ratio of tests vs code
|
||||||
build_test_stats() {
|
build_test_stats() {
|
||||||
local code_amount="$4"
|
local code_amount="$4"
|
||||||
|
@ -1247,26 +1307,34 @@ build_test_stats() {
|
||||||
(( ratio < 50 )) && "$1_prompt_segment" "$2_BAD" "$3" "red" "$DEFAULT_COLOR" "$headline: $ratio%%" "$6"
|
(( ratio < 50 )) && "$1_prompt_segment" "$2_BAD" "$3" "red" "$DEFAULT_COLOR" "$headline: $ratio%%" "$6"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# System time
|
# System time
|
||||||
prompt_time() {
|
prompt_time() {
|
||||||
local time_format="%D{%H:%M:%S}"
|
set_default POWERLEVEL9K_TIME_FORMAT "%D{%H:%M:%S}"
|
||||||
if [[ -n "$POWERLEVEL9K_TIME_FORMAT" ]]; then
|
|
||||||
time_format="$POWERLEVEL9K_TIME_FORMAT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR_INVERTED" "$DEFAULT_COLOR" "$time_format"
|
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR_INVERTED" "$DEFAULT_COLOR" "$POWERLEVEL9K_TIME_FORMAT" "TIME_ICON"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# System date
|
||||||
|
prompt_date() {
|
||||||
|
set_default POWERLEVEL9K_DATE_FORMAT "%D{%d.%m.%y}"
|
||||||
|
|
||||||
|
"$1_prompt_segment" "$0" "$2" "$DEFAULT_COLOR_INVERTED" "$DEFAULT_COLOR" "$POWERLEVEL9K_DATE_FORMAT" "DATE_ICON"
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# todo.sh: shows the number of tasks in your todo.sh file
|
# todo.sh: shows the number of tasks in your todo.sh file
|
||||||
prompt_todo() {
|
prompt_todo() {
|
||||||
if $(hash todo.sh 2>&-); then
|
if $(hash todo.sh 2>&-); then
|
||||||
count=$(todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }')
|
count=$(todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }')
|
||||||
if [[ "$count" = <-> ]]; then
|
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
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# VCS segment: shows the state of your repository, if you are in a folder under
|
# VCS segment: shows the state of your repository, if you are in a folder under
|
||||||
# version control
|
# version control
|
||||||
set_default POWERLEVEL9K_VCS_ACTIONFORMAT_FOREGROUND "red"
|
set_default POWERLEVEL9K_VCS_ACTIONFORMAT_FOREGROUND "red"
|
||||||
|
@ -1332,6 +1400,8 @@ powerlevel9k_vcs_init() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to show VCS information
|
||||||
prompt_vcs() {
|
prompt_vcs() {
|
||||||
VCS_WORKDIR_DIRTY=false
|
VCS_WORKDIR_DIRTY=false
|
||||||
VCS_WORKDIR_HALF_DIRTY=false
|
VCS_WORKDIR_HALF_DIRTY=false
|
||||||
|
@ -1357,6 +1427,7 @@ prompt_vcs() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Vi Mode: show editing mode (NORMAL|INSERT)
|
# Vi Mode: show editing mode (NORMAL|INSERT)
|
||||||
set_default POWERLEVEL9K_VI_INSERT_MODE_STRING "INSERT"
|
set_default POWERLEVEL9K_VI_INSERT_MODE_STRING "INSERT"
|
||||||
set_default POWERLEVEL9K_VI_COMMAND_MODE_STRING "NORMAL"
|
set_default POWERLEVEL9K_VI_COMMAND_MODE_STRING "NORMAL"
|
||||||
|
@ -1372,6 +1443,7 @@ prompt_vi_mode() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# Virtualenv: current working virtualenv
|
# Virtualenv: current working virtualenv
|
||||||
# More information on virtualenv (Python):
|
# More information on virtualenv (Python):
|
||||||
# https://virtualenv.pypa.io/en/latest/
|
# https://virtualenv.pypa.io/en/latest/
|
||||||
|
@ -1382,6 +1454,7 @@ prompt_virtualenv() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# pyenv: current active python version (with restrictions)
|
# pyenv: current active python version (with restrictions)
|
||||||
# https://github.com/pyenv/pyenv#choosing-the-python-version
|
# https://github.com/pyenv/pyenv#choosing-the-python-version
|
||||||
prompt_pyenv() {
|
prompt_pyenv() {
|
||||||
|
@ -1390,7 +1463,20 @@ prompt_pyenv() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Swift version
|
################################################################
|
||||||
|
# Display openfoam information
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# Segment to display Swift version
|
||||||
prompt_swift_version() {
|
prompt_swift_version() {
|
||||||
# Get the first number as this is probably the "main" version number..
|
# Get the first number as this is probably the "main" version number..
|
||||||
local swift_version=$(swift --version 2>/dev/null | grep -o -E "[0-9.]+" | head -n 1)
|
local swift_version=$(swift --version 2>/dev/null | grep -o -E "[0-9.]+" | head -n 1)
|
||||||
|
@ -1399,41 +1485,58 @@ prompt_swift_version() {
|
||||||
"$1_prompt_segment" "$0" "$2" "magenta" "white" "${swift_version}" 'SWIFT_ICON'
|
"$1_prompt_segment" "$0" "$2" "magenta" "white" "${swift_version}" 'SWIFT_ICON'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################
|
||||||
# dir_writable: Display information about the user's permission to write in the current directory
|
# dir_writable: Display information about the user's permission to write in the current directory
|
||||||
prompt_dir_writable() {
|
prompt_dir_writable() {
|
||||||
if [[ ! -w "$PWD" ]]; then
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Kubernetes Current Context
|
################################################################
|
||||||
|
# Kubernetes Current Context/Namespace
|
||||||
prompt_kubecontext() {
|
prompt_kubecontext() {
|
||||||
local kubectl_version="$(kubectl version --client 2>/dev/null)"
|
local kubectl_version="$(kubectl version --client 2>/dev/null)"
|
||||||
|
|
||||||
if [[ -n "$kubectl_version" ]]; then
|
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
|
# Get the current Kuberenetes context
|
||||||
local k8s_context=$(kubectl config current-context)
|
local cur_ctx=$(kubectl config view -o=jsonpath='{.current-context}')
|
||||||
|
cur_namespace="$(kubectl config view -o=jsonpath="{.contexts[?(@.name==\"${cur_ctx}\")].context.namespace}")"
|
||||||
if [[ -z "$k8s_namespace" ]]; then
|
# If the namespace comes back empty set it default.
|
||||||
k8s_namespace="default"
|
if [[ -z "${cur_namespace}" ]]; then
|
||||||
|
cur_namespace="default"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local k8s_final_text=""
|
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
|
# No reason to print out the same identificator twice
|
||||||
k8s_final_text="$k8s_context"
|
k8s_final_text="$cur_ctx"
|
||||||
else
|
else
|
||||||
k8s_final_text="$k8s_context/$k8s_namespace"
|
k8s_final_text="$cur_ctx/$cur_namespace"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
"$1_prompt_segment" "$0" "$2" "magenta" "white" "$k8s_final_text" "KUBERNETES_ICON"
|
"$1_prompt_segment" "$0" "$2" "magenta" "white" "$k8s_final_text" "KUBERNETES_ICON"
|
||||||
fi
|
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
|
# Prompt processing and drawing
|
||||||
|
@ -1523,11 +1626,15 @@ NEWLINE='
|
||||||
[[ $POWERLEVEL9K_PROMPT_ADD_NEWLINE == true ]] && PROMPT="$NEWLINE$PROMPT"
|
[[ $POWERLEVEL9K_PROMPT_ADD_NEWLINE == true ]] && PROMPT="$NEWLINE$PROMPT"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
zle-keymap-select () {
|
zle-keymap-select () {
|
||||||
zle reset-prompt
|
zle reset-prompt
|
||||||
zle -R
|
zle -R
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_default POWERLEVEL9K_IGNORE_TERM_COLORS false
|
||||||
|
set_default POWERLEVEL9K_IGNORE_TERM_LANG false
|
||||||
|
|
||||||
prompt_powerlevel9k_setup() {
|
prompt_powerlevel9k_setup() {
|
||||||
# The value below was set to better support 32-bit CPUs.
|
# The value below was set to better support 32-bit CPUs.
|
||||||
# It's the maximum _signed_ integer value on 32-bit CPUs.
|
# It's the maximum _signed_ integer value on 32-bit CPUs.
|
||||||
|
@ -1547,16 +1654,10 @@ prompt_powerlevel9k_setup() {
|
||||||
setopt noprompt{bang,cr,percent,sp,subst} "prompt${^prompt_opts[@]}"
|
setopt noprompt{bang,cr,percent,sp,subst} "prompt${^prompt_opts[@]}"
|
||||||
|
|
||||||
# Display a warning if the terminal does not support 256 colors
|
# Display a warning if the terminal does not support 256 colors
|
||||||
local term_colors
|
termColors
|
||||||
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
|
|
||||||
|
|
||||||
# If the terminal `LANG` is set to `C`, this theme will not work at all.
|
# If the terminal `LANG` is set to `C`, this theme will not work at all.
|
||||||
|
if [[ $POWERLEVEL9K_IGNORE_TERM_LANG == false ]]; then
|
||||||
local term_lang
|
local term_lang
|
||||||
term_lang=$(echo $LANG)
|
term_lang=$(echo $LANG)
|
||||||
if [[ $term_lang == 'C' ]]; then
|
if [[ $term_lang == 'C' ]]; then
|
||||||
|
@ -1565,6 +1666,7 @@ prompt_powerlevel9k_setup() {
|
||||||
print -P "\t%F{red}WARNING!%f _before_ loading this theme in your \~\.zshrc. Putting"
|
print -P "\t%F{red}WARNING!%f _before_ loading this theme in your \~\.zshrc. Putting"
|
||||||
print -P "\t%F{red}WARNING!%f %F{blue}export LANG=\"en_US.UTF-8\"%f at the top of your \~\/.zshrc is sufficient."
|
print -P "\t%F{red}WARNING!%f %F{blue}export LANG=\"en_US.UTF-8\"%f at the top of your \~\/.zshrc is sufficient."
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
defined POWERLEVEL9K_LEFT_PROMPT_ELEMENTS || POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir rbenv vcs)
|
defined POWERLEVEL9K_LEFT_PROMPT_ELEMENTS || POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir rbenv vcs)
|
||||||
defined POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS || POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)
|
defined POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS || POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)
|
||||||
|
|
|
@ -28,7 +28,7 @@ function testCommandExecutionTimeThresholdCouldBeChanged() {
|
||||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=1
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=1
|
||||||
_P9K_COMMAND_DURATION=2.03
|
_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 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||||
unset _P9K_COMMAND_DURATION
|
unset _P9K_COMMAND_DURATION
|
||||||
|
@ -40,7 +40,7 @@ function testCommandExecutionTimeThresholdCouldBeSetToZero() {
|
||||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0
|
||||||
_P9K_COMMAND_DURATION=0.03
|
_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 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||||
unset _P9K_COMMAND_DURATION
|
unset _P9K_COMMAND_DURATION
|
||||||
|
@ -53,7 +53,7 @@ function testCommandExecutionTimePrecisionCouldBeChanged() {
|
||||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=4
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=4
|
||||||
_P9K_COMMAND_DURATION=0.0001
|
_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 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||||
unset _P9K_COMMAND_DURATION
|
unset _P9K_COMMAND_DURATION
|
||||||
|
@ -66,7 +66,7 @@ function testCommandExecutionTimePrecisionCouldBeSetToZero() {
|
||||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
|
||||||
_P9K_COMMAND_DURATION=23.5001
|
_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 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||||
unset _P9K_COMMAND_DURATION
|
unset _P9K_COMMAND_DURATION
|
||||||
|
@ -77,7 +77,7 @@ function testCommandExecutionTimeIsFormattedHumandReadbleForMinuteLongCommand()
|
||||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time)
|
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time)
|
||||||
_P9K_COMMAND_DURATION=180
|
_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 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||||
unset _P9K_COMMAND_DURATION
|
unset _P9K_COMMAND_DURATION
|
||||||
|
@ -87,7 +87,7 @@ function testCommandExecutionTimeIsFormattedHumandReadbleForHourLongCommand() {
|
||||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time)
|
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(command_execution_time)
|
||||||
_P9K_COMMAND_DURATION=7200
|
_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 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||||
unset _P9K_COMMAND_DURATION
|
unset _P9K_COMMAND_DURATION
|
||||||
|
|
|
@ -40,7 +40,7 @@ function testGo() {
|
||||||
|
|
||||||
PWD="$HOME/go/src/github.com/bhilburn/powerlevel9k"
|
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 POWERLEVEL9K_GO_ICON
|
||||||
unset PWD
|
unset PWD
|
||||||
|
|
|
@ -18,11 +18,19 @@ function mockKubectl() {
|
||||||
;;
|
;;
|
||||||
'config')
|
'config')
|
||||||
case "$2" in
|
case "$2" in
|
||||||
'current-context')
|
'view')
|
||||||
|
case "$3" in
|
||||||
|
'-o=jsonpath={.current-context}')
|
||||||
echo 'minikube'
|
echo 'minikube'
|
||||||
;;
|
;;
|
||||||
'get-contexts')
|
'-o=jsonpath={.contexts'*)
|
||||||
echo '* minikube minikube minikube '
|
echo ''
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Mock value missed"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
@ -36,11 +44,21 @@ function mockKubectlOtherNamespace() {
|
||||||
;;
|
;;
|
||||||
'config')
|
'config')
|
||||||
case "$2" in
|
case "$2" in
|
||||||
'current-context')
|
'view')
|
||||||
|
case "$3" in
|
||||||
|
# Get Current Context
|
||||||
|
'-o=jsonpath={.current-context}')
|
||||||
echo 'minikube'
|
echo 'minikube'
|
||||||
;;
|
;;
|
||||||
'get-contexts')
|
# Get current namespace
|
||||||
echo '* minikube minikube minikube kube-system'
|
'-o=jsonpath={.contexts'*)
|
||||||
|
echo 'kube-system'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Mock value missed"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -19,7 +19,7 @@ function testRust() {
|
||||||
alias rustc=mockRust
|
alias rustc=mockRust
|
||||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(rust_version)
|
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
|
unset POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
|
||||||
unalias rustc
|
unalias rustc
|
||||||
|
|
Loading…
Reference in a new issue