mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-13 17:30:08 +00:00
kube_ps1: customize colors and dynamically toggle prompt (#7269)
changes: - easily customize the colors via variables - command to switch on/off the custom prompt - Improved documentation with example on how to append on the prompt. Fixes #7261
This commit is contained in:
parent
0c3499ecd9
commit
d36c1b8d22
2 changed files with 45 additions and 11 deletions
|
@ -45,20 +45,37 @@ want to load.
|
||||||
vim $HOME/.zshrc
|
vim $HOME/.zshrc
|
||||||
```
|
```
|
||||||
|
|
||||||
Add kube-ps1 to the list of enabled plugins:
|
Add kube-ps1 to the list of enabled plugins and enable it on the prompt:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
plugins=(
|
plugins=(
|
||||||
git
|
git
|
||||||
kube-ps1
|
kube-ps1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
PROMPT=$PROMPT'$(kube_ps1) '
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: the `PROMPT` example above was tested with the theme `robbyrussell`
|
||||||
|
|
||||||
|
## Enabling / Disabling on the current shell
|
||||||
|
|
||||||
|
Sometimes the kubernetes information can be anoying, you can easily
|
||||||
|
switch it on and off with the following commands:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubeon
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubeoff
|
||||||
```
|
```
|
||||||
|
|
||||||
## Colors
|
## Colors
|
||||||
|
|
||||||
Blue was used as the prefix to match the Kubernetes color as closely as
|
Blue was used as the prefix to match the Kubernetes color as closely as
|
||||||
possible. Red was chosen as the cluster name to stand out, and cyan
|
possible. Red was chosen as the cluster name to stand out, and cyan
|
||||||
for the namespace. These can of course be changed.
|
for the namespace. Check the customization section for changing them.
|
||||||
|
|
||||||
## Customization
|
## Customization
|
||||||
|
|
||||||
|
@ -75,7 +92,12 @@ The default settings can be overridden in ~/.zshrc
|
||||||
| `KUBE_PS1_SEPERATOR` | `\|` | Separator between symbol and cluster name |
|
| `KUBE_PS1_SEPERATOR` | `\|` | Separator between symbol and cluster name |
|
||||||
| `KUBE_PS1_DIVIDER` | `:` | Separator between cluster and namespace |
|
| `KUBE_PS1_DIVIDER` | `:` | Separator between cluster and namespace |
|
||||||
| `KUBE_PS1_SUFFIX` | `)` | Prompt closing character |
|
| `KUBE_PS1_SUFFIX` | `)` | Prompt closing character |
|
||||||
|
| `KUBE_PS1_COLOR_SYMBOL` | `"%F{blue}"` | Custom color for the symbol |
|
||||||
|
| `KUBE_PS1_COLOR_CONTEXT` | `"%F{red}"` | Custom color for the context |
|
||||||
|
| `KUBE_PS1_COLOR_NS` | `"%F{cyan}"` | Custom color for the namespace |
|
||||||
|
| `KUBE_PS1_ENABLED` | `true` | Set to false to start disabled on any new shell, `kubeon`/`kubeoff` will flip this value on the current shell |
|
||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
|
|
||||||
Jared Yanovich
|
- Jared Yanovich
|
||||||
|
- Pedro Moranga
|
|
@ -39,6 +39,11 @@ KUBE_PS1_DIVIDER="${KUBE_PS1_DIVIDER-:}"
|
||||||
KUBE_PS1_PREFIX="${KUBE_PS1_PREFIX-(}"
|
KUBE_PS1_PREFIX="${KUBE_PS1_PREFIX-(}"
|
||||||
KUBE_PS1_SUFFIX="${KUBE_PS1_SUFFIX-)}"
|
KUBE_PS1_SUFFIX="${KUBE_PS1_SUFFIX-)}"
|
||||||
KUBE_PS1_LAST_TIME=0
|
KUBE_PS1_LAST_TIME=0
|
||||||
|
KUBE_PS1_ENABLED=true
|
||||||
|
|
||||||
|
KUBE_PS1_COLOR_SYMBOL="%F{blue}"
|
||||||
|
KUBE_PS1_COLOR_CONTEXT="%F{red}"
|
||||||
|
KUBE_PS1_COLOR_NS="%F{cyan}"
|
||||||
|
|
||||||
_kube_ps1_binary_check() {
|
_kube_ps1_binary_check() {
|
||||||
command -v "$1" >/dev/null
|
command -v "$1" >/dev/null
|
||||||
|
@ -127,21 +132,28 @@ _kube_ps1_get_context_ns() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# function to disable the prompt on the current shell
|
||||||
|
kubeon(){
|
||||||
|
KUBE_PS1_ENABLED=true
|
||||||
|
}
|
||||||
|
|
||||||
|
# function to disable the prompt on the current shell
|
||||||
|
kubeoff(){
|
||||||
|
KUBE_PS1_ENABLED=false
|
||||||
|
}
|
||||||
|
|
||||||
# Build our prompt
|
# Build our prompt
|
||||||
kube_ps1 () {
|
kube_ps1 () {
|
||||||
local reset_color="%f"
|
local reset_color="%{$reset_color%}"
|
||||||
local blue="%F{blue}"
|
[[ ${KUBE_PS1_ENABLED} != 'true' ]] && return
|
||||||
local red="%F{red}"
|
|
||||||
local cyan="%F{cyan}"
|
|
||||||
|
|
||||||
KUBE_PS1="${reset_color}$KUBE_PS1_PREFIX"
|
KUBE_PS1="${reset_color}$KUBE_PS1_PREFIX"
|
||||||
KUBE_PS1+="${blue}$(_kube_ps1_symbol)"
|
KUBE_PS1+="${KUBE_PS1_COLOR_SYMBOL}$(_kube_ps1_symbol)"
|
||||||
KUBE_PS1+="${reset_color}$KUBE_PS1_SEPERATOR"
|
KUBE_PS1+="${reset_color}$KUBE_PS1_SEPERATOR"
|
||||||
KUBE_PS1+="${red}$KUBE_PS1_CONTEXT${reset_color}"
|
KUBE_PS1+="${KUBE_PS1_COLOR_CONTEXT}$KUBE_PS1_CONTEXT${reset_color}"
|
||||||
KUBE_PS1+="$KUBE_PS1_DIVIDER"
|
KUBE_PS1+="$KUBE_PS1_DIVIDER"
|
||||||
KUBE_PS1+="${cyan}$KUBE_PS1_NAMESPACE${reset_color}"
|
KUBE_PS1+="${KUBE_PS1_COLOR_NS}$KUBE_PS1_NAMESPACE${reset_color}"
|
||||||
KUBE_PS1+="$KUBE_PS1_SUFFIX"
|
KUBE_PS1+="$KUBE_PS1_SUFFIX"
|
||||||
|
|
||||||
echo "${KUBE_PS1}"
|
echo "${KUBE_PS1}"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue