aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Miyake <keith.miyake@gmail.com>2017-01-22 00:40:51 +0300
committerKeith Miyake <keith.miyake@gmail.com>2017-01-22 00:40:51 +0300
commitf9d2f3a3a5b54b6a6128b2b96d187bd3560a5146 (patch)
tree35bd5be1ea093251e2c292907998cc7e0dedb686
parent82aa37d230cfb48bc6172ce72413077ca78996d0 (diff)
parent9ead1c15480249b082bf93c59540f4a09fa44c8d (diff)
Merge remote-tracking branch 'upstream/next' into nerdfont
* upstream/next: (41 commits) vcs icons: fixing branch spacing and remote icon in fontawesome same deal for the "FAIL_ICON"! fixing the "OK_ICON" in 'awesome-fontconfig' which somehow got broken Change powerlevel9k_init to prompt_powerlevel_setup Fix MacOS specific battery segment logic. Minor fix-up to the README. Adding license note about the new logo. more typos Adding the new logo to the README! fixed typo fixed issue with POWERLEVEL9K_PUBLIC_IP_NONE being empty .. i hope fixed typo reverted testing value to default value added link to segemnt documenation in README fixed issue with POWERLEVEL9K_PUBLIC_IP_NONE being empty for real fixed issue with POWERLEVEL9K_PUBLIC_IP_NONE being empty added README section for public_ip segment added the ability to specify and only attempt a particular method Add Changelog for v0.5.0 added configurable string when there is no IP updated some comments changed some offline behavior ...
-rw-r--r--CHANGELOG.md21
-rw-r--r--README.md42
-rw-r--r--functions/icons.zsh35
-rw-r--r--functions/vcs.zsh13
-rwxr-xr-xpowerlevel9k.zsh-theme169
5 files changed, 226 insertions, 54 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 91a897ee..8060e0fa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,22 @@ Added an option to configure the path separator. If you want something
else than an ordinary slash, you could set
`POWERLEVEL9K_DIR_PATH_SEPARATOR` to whatever you want.
+## v0.5.0
+
+### `load` and `ram` changes
+
+These two segments now support BSD.
+
+### `vcs` changes
+
+- We implemented a huge speed improvement for this segment.
+- Now this segment supports Subversion repositories.
+- Add ability to hide tags by setting `POWERLEVEL9K_VCS_HIDE_TAGS` to true.
+
+## `anaconda` changes
+
+Speed improvements for `anaconda` segment.
+
## v0.4.0
### Development changes
@@ -85,6 +101,11 @@ Added new `docker_machine` segment that will show your Docker machine.
A new segment `anaconda` was added that shows the current used
anaconda environment.
+## New segment `pyenv` added
+
+This segment shows your active python version as reported by `pyenv`.
+
+
## v0.3.2
### `vcs` changes
diff --git a/README.md b/README.md
index 73dcb7df..f6b8c54c 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-## powerlevel9k Theme for ZSH
-
+![](https://raw.githubusercontent.com/bhilburn/powerlevel9k-logo/master/logo-banner.png)
+---
[![Build Status](https://travis-ci.org/bhilburn/powerlevel9k.svg?branch=next)](https://travis-ci.org/bhilburn/powerlevel9k)
[![Join the chat at https://gitter.im/bhilburn/powerlevel9k](https://badges.gitter.im/bhilburn/powerlevel9k.svg)](https://gitter.im/bhilburn/powerlevel9k?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
@@ -90,6 +90,7 @@ The segments that are currently available are:
* [`dir`](#dir) - Your current working directory.
* `history` - The command number for the current line.
* [`ip`](#ip) - Shows the current IP address.
+* [`public_ip`](#public_ip) - Shows your public IP address.
* `load` - Your machine's load averages.
* `os_icon` - Display a nice little icon, depending on your operating system.
* `ram` - Show free RAM.
@@ -136,6 +137,7 @@ The segments that are currently available are:
* [`custom_command`](#custom_command) - Create a custom segment to display the
output of an arbitrary command.
* [`todo`](http://todotxt.com/) - Shows the number of tasks in your todo.txt tasks file.
+* `detect-virt` - Virtualization detection with systemd
---------------------------------------------------------------------------------
@@ -239,9 +241,17 @@ it, but only display it if you are not your normal user or on a remote host
To use this feature, make sure the `context` segment is enabled in your prompt
elements (it is by default), and define a `DEFAULT_USER` in your `~/.zshrc`:
+You can set the `POWERLEVEL9K_CONTEXT_HOST_DEPTH` variable to change how the
+hostname is displayed. See (ZSH Manual)[http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Login-information]
+for details. Default is set to %m which will show the hostname up to the first ‘.’
+You can set it to %{N}m where N is an integer to show that many segments of system
+hostname. Setting N to a negative integer will show that many segments from the
+end of the hostname.
+
| Variable | Default Value | Description |
|----------|---------------|-------------|
|`DEFAULT_USER`|None|Username to consider a "default context" (you can also use `$USER`)|
+|`POWERLEVEL9K_CONTEXT_HOST_DEPTH`|%m|Customizable host depth on prompt|
##### dir
@@ -306,6 +316,29 @@ specify the correct network interface by setting:
|----------|---------------|-------------|
|`POWERLEVEL9K_IP_INTERFACE`|None|The NIC for which you wish to display the IP address. Example: `eth0`.|
+##### public_ip
+
+This segment will display your public IP address. There are several methods of obtaining this
+information and by default it will try all of them starting with the most efficient. You can
+also specify which method you would like it to use. The methods available are dig using opendns,
+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.
+
+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.
+Until an IP is successfully pulled the value of $POWERLEVEL9K_PUBLIC_IP_NONE will be displayed for
+this segment. If this value is empty(the default)and $POWERLEVEL9K_PUBLIC_IP_FILE is empty the
+segment will not be displayed.
+
+| Variable | Default Value | Description |
+|----------|---------------|-------------|
+|`POWERLEVEL9K_PUBLIC_IP_FILE`|'/tmp/p8k_public_ip'|This is the file your public IP is cached in.|
+|`POWERLEVEL9K_PUBLIC_IP_HOST`|'http://ident.me'|This is the default host to get your public IP.|
+|`POWERLEVEL9K_PUBLIC_IP_TIMEOUT`|300|The amount of time in seconds between refreshing your cached IP.|
+|`POWERLEVEL9K_PUBLIC_IP_METHOD`|None|You can set this to any of 'dig', 'curl', or 'wget' to only use that method to refresh your IP.|
+|`POWERLEVEL9K_PUBLIC_IP_NONE`|None|The string displayed when an IP was not obtained|
+
##### rbenv
This segment shows the version of Ruby being used when using `rbenv` to change your current Ruby stack.
@@ -421,4 +454,7 @@ portion of the wiki to get going.
information!](https://github.com/bhilburn/powerlevel9k/wiki)
### License
-MIT
+
+Project: MIT
+
+Logo: CC-BY-SA. Source repository: https://github.com/bhilburn/powerlevel9k-logo
diff --git a/functions/icons.zsh b/functions/icons.zsh
index adb6e93e..c02e84e8 100644
--- a/functions/icons.zsh
+++ b/functions/icons.zsh
@@ -65,14 +65,18 @@ case $POWERLEVEL9K_MODE in
VCS_TAG_ICON $'\uE817 ' # 
VCS_BOOKMARK_ICON $'\uE87B' # 
VCS_COMMIT_ICON $'\uE821 ' # 
- VCS_BRANCH_ICON $'\uE220' # 
- VCS_REMOTE_BRANCH_ICON ' '$'\uE804 ' # 
+ VCS_BRANCH_ICON $'\uE220 ' # 
+ VCS_REMOTE_BRANCH_ICON $'\u2192' # →
VCS_GIT_ICON $'\uE20E ' # 
+ VCS_GIT_GITHUB_ICON $'\uE20E ' #
+ VCS_GIT_BITBUCKET_ICON $'\uE20E ' #
+ VCS_GIT_GITLAB_ICON $'\uE20E ' #
VCS_HG_ICON $'\uE1C3 ' # 
VCS_SVN_ICON '(svn) '
RUST_ICON ''
PYTHON_ICON $'\U1F40D' # 🐍
SWIFT_ICON ''
+ PUBLIC_IP_ICON ''
)
;;
'awesome-fontconfig')
@@ -93,8 +97,8 @@ case $POWERLEVEL9K_MODE in
TEST_ICON $'\uF291' # 
TODO_ICON $'\u2611' # ☑
BATTERY_ICON $'\U1F50B' # 🔋
- OK_ICON $'\uF23A' # 
- FAIL_ICON $'\uF281' # 
+ OK_ICON $'\u2713' # ✓
+ FAIL_ICON $'\u2718' # ✘
SYMFONY_ICON 'SF'
NODE_ICON $'\u2B22' # ⬢
MULTILINE_FIRST_PROMPT_PREFIX $'\u256D'$'\U2500' # ╭─
@@ -120,14 +124,18 @@ case $POWERLEVEL9K_MODE in
VCS_TAG_ICON $'\uF217 ' # 
VCS_BOOKMARK_ICON $'\uF27B' # 
VCS_COMMIT_ICON $'\uF221 ' # 
- VCS_BRANCH_ICON $'\uF126' # 
- VCS_REMOTE_BRANCH_ICON ' '$'\uF204 ' # 
- VCS_GIT_ICON $'\uF113 ' # 
+ VCS_BRANCH_ICON $'\uF126 ' # 
+ VCS_REMOTE_BRANCH_ICON $'\u2192' # →
+ VCS_GIT_ICON $'\uF1D3 ' # 
+ VCS_GIT_GITHUB_ICON $'\uF113 ' # 
+ VCS_GIT_BITBUCKET_ICON $'\uF171 ' # 
+ VCS_GIT_GITLAB_ICON $'\uF296 ' # 
VCS_HG_ICON $'\uF0C3 ' # 
VCS_SVN_ICON '(svn) '
RUST_ICON $'\uE6A8' # 
PYTHON_ICON $'\U1F40D' # 🐍
SWIFT_ICON ''
+ PUBLIC_IP_ICON ''
)
;;
'nerd-patched-complete')
@@ -147,7 +155,7 @@ case $POWERLEVEL9K_MODE in
BACKGROUND_JOBS_ICON $'\uF013 ' # 
TEST_ICON $'\uF188' # 
TODO_ICON $'\u2611' # ☑
- BATTERY_ICON $'\U1F50B' # 🔋
+ BATTERY_ICON $'\uF241' # 
OK_ICON $'\u2713' # ✓
FAIL_ICON $'\u2718' # ✘
SYMFONY_ICON $'\uE757' # 
@@ -181,8 +189,9 @@ case $POWERLEVEL9K_MODE in
VCS_HG_ICON $'\uF0C3 ' # 
VCS_SVN_ICON '(svn) '
RUST_ICON $'\uE7A8' # 
- PYTHON_ICON $'\U1F40D' # 🐍
+ PYTHON_ICON $'\uE73C' # 
SWIFT_ICON $'\uE755' # 
+ PUBLIC_IP_ICON ''
)
;;
*)
@@ -233,11 +242,15 @@ case $POWERLEVEL9K_MODE in
VCS_BRANCH_ICON $'\uE0A0 ' # 
VCS_REMOTE_BRANCH_ICON $'\u2192' # →
VCS_GIT_ICON ''
+ VCS_GIT_GITHUB_ICON ''
+ VCS_GIT_BITBUCKET_ICON ''
+ VCS_GIT_GITLAB_ICON ''
VCS_HG_ICON ''
VCS_SVN_ICON ''
- RUST_ICON ''
+ RUST_ICON ''
PYTHON_ICON ''
- SWIFT_ICON ''
+ SWIFT_ICON 'Swift'
+ PUBLIC_IP_ICON ''
)
;;
esac
diff --git a/functions/vcs.zsh b/functions/vcs.zsh
index 93925f15..5defa9bc 100644
--- a/functions/vcs.zsh
+++ b/functions/vcs.zsh
@@ -110,7 +110,18 @@ function +vi-hg-bookmarks() {
function +vi-vcs-detect-changes() {
if [[ "${hook_com[vcs]}" == "git" ]]; then
- vcs_visual_identifier='VCS_GIT_ICON'
+
+ local remote=`git ls-remote --get-url`
+ if [[ "$remote" =~ "github" ]] then
+ vcs_visual_identifier='VCS_GIT_GITHUB_ICON'
+ elif [[ "$remote" =~ "bitbucket" ]] then
+ vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON'
+ elif [[ "$remote" =~ "gitlab" ]] then
+ vcs_visual_identifier='VCS_GIT_GITLAB_ICON'
+ else
+ vcs_visual_identifier='VCS_GIT_ICON'
+ fi
+
elif [[ "${hook_com[vcs]}" == "hg" ]]; then
vcs_visual_identifier='VCS_HG_ICON'
elif [[ "${hook_com[vcs]}" == "svn" ]]; then
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index d574e3b5..c3f2be74 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -339,7 +339,7 @@ prompt_background_jobs() {
prompt_battery() {
# The battery can have four different states - default to 'unknown'.
- local current_state="unknown"
+ local current_state='unknown'
typeset -AH battery_states
battery_states=(
'low' 'red'
@@ -350,43 +350,37 @@ prompt_battery() {
# Set default values if the user did not configure them
set_default POWERLEVEL9K_BATTERY_LOW_THRESHOLD 10
- if [[ $OS =~ OSX && -f /usr/sbin/ioreg && -x /usr/sbin/ioreg ]]; then
- # Pre-Grep as much information as possible to save some memory and
- # avoid pollution of the xtrace output.
- local raw_data="$(ioreg -n AppleSmartBattery | grep -E "MaxCapacity|TimeRemaining|CurrentCapacity|ExternalConnected|IsCharging")"
+ if [[ $OS =~ OSX && -f /usr/bin/pmset && -x /usr/bin/pmset ]]; then
+ # obtain battery information from system
+ local raw_data="$(pmset -g batt | awk 'FNR==2{print}')"
# return if there is no battery on system
- [[ -z $(echo $raw_data | grep MaxCapacity) ]] && return
-
- # Convert time remaining from minutes to hours:minutes date string
- local time_remaining=$(echo $raw_data | grep TimeRemaining | awk '{ print $5 }')
- if [[ -n $time_remaining ]]; then
- # this value is set to a very high number when the system is calculating
- [[ $time_remaining -gt 10000 ]] && local tstring="..." || local tstring=${(f)$(/bin/date -u -r $(($time_remaining * 60)) +%k:%M)}
- fi
+ [[ -z $(echo $raw_data | grep "InternalBattery") ]] && return
- # Get charge values
- local max_capacity=$(echo $raw_data | grep MaxCapacity | awk '{ print $5 }')
- local current_capacity=$(echo $raw_data | grep CurrentCapacity | awk '{ print $5 }')
+ # Time remaining on battery operation (charging/discharging)
+ local tstring=$(echo $raw_data | awk -F ';' '{print $3}' | awk '{print $1}')
+ # If time has not been calculated by system yet
+ [[ $tstring =~ '(\(no|not)' ]] && tstring="..."
- if [[ -n "$max_capacity" && -n "$current_capacity" ]]; then
- typeset -i 10 bat_percent
- bat_percent=$(( (current_capacity * 100) / max_capacity ))
- fi
+ # percent of battery charged
+ typeset -i 10 bat_percent
+ bat_percent=$(echo $raw_data | grep -o '[0-9]*%' | sed 's/%//')
local remain=""
# Logic for string output
- if [[ $(echo $raw_data | grep ExternalConnected | awk '{ print $5 }') =~ "Yes" ]]; then
- # Battery is charging
- if [[ $(echo $raw_data | grep IsCharging | awk '{ print $5 }') =~ "Yes" ]]; then
+ case $(echo $raw_data | awk -F ';' '{print $2}' | awk '{$1=$1};1') in
+ # for a short time after attaching power, status will be 'AC attached;'
+ 'charging'|'finishing charge'|'AC attached')
current_state="charging"
remain=" ($tstring)"
- else
+ ;;
+ 'discharging')
+ [[ $bat_percent -lt $POWERLEVEL9K_BATTERY_LOW_THRESHOLD ]] && current_state="low" || current_state="disconnected"
+ remain=" ($tstring)"
+ ;;
+ *)
current_state="charged"
- fi
- else
- [[ $bat_percent -lt $POWERLEVEL9K_BATTERY_LOW_THRESHOLD ]] && current_state="low" || current_state="disconnected"
- remain=" ($tstring)"
- fi
+ ;;
+ esac
fi
if [[ $OS =~ Linux ]]; then
@@ -397,20 +391,22 @@ prompt_battery() {
# Return if no battery found
[[ -z $bat ]] && return
-
- [[ $(cat $bat/capacity) -gt 100 ]] && local bat_percent=100 || local bat_percent=$(cat $bat/capacity)
- [[ $(cat $bat/status) =~ Charging ]] && local connected=true
- [[ $(cat $bat/status) =~ Charging && $bat_percent =~ 100 ]] && current_state="charged"
- [[ $(cat $bat/status) =~ Charging && $bat_percent -lt 100 ]] && current_state="charging"
+ local capacity=$(cat $bat/capacity)
+ local battery_status=$(cat $bat/status)
+ [[ $capacity -gt 100 ]] && local bat_percent=100 || local bat_percent=$capacity
+ [[ $battery_status =~ Charging || $battery_status =~ Full ]] && local connected=true
if [[ -z $connected ]]; then
[[ $bat_percent -lt $POWERLEVEL9K_BATTERY_LOW_THRESHOLD ]] && current_state="low" || current_state="disconnected"
+ else
+ [[ $bat_percent =~ 100 ]] && current_state="charged"
+ [[ $bat_percent -lt 100 ]] && current_state="charging"
fi
if [[ -f /usr/bin/acpi ]]; then
local time_remaining=$(acpi | awk '{ print $5 }')
if [[ $time_remaining =~ rate ]]; then
local tstring="..."
elif [[ $time_remaining =~ "[[:digit:]]+" ]]; then
- local tstring=${(f)$(date -u -d "$(echo $time_remaining)" +%k:%M)}
+ local tstring=${(f)$(date -u -d "$(echo $time_remaining)" +%k:%M 2> /dev/null)}
fi
fi
[[ -n $tstring ]] && local remain=" ($tstring)"
@@ -431,15 +427,89 @@ prompt_battery() {
fi
}
+prompt_public_ip() {
+ # set default values for segment
+ set_default POWERLEVEL9K_PUBLIC_IP_TIMEOUT "300"
+ set_default POWERLEVEL9K_PUBLIC_IP_NONE ""
+ set_default POWERLEVEL9K_PUBLIC_IP_FILE "/tmp/p9k_public_ip"
+ set_default POWERLEVEL9K_PUBLIC_IP_HOST "http://ident.me"
+
+ # Do we need a fresh IP?
+ local refresh_ip=false
+ if [[ -f $POWERLEVEL9K_PUBLIC_IP_FILE ]]; then
+ typeset -i timediff
+ # if saved IP is more than
+ timediff=$(($(date +%s) - $(date -r $POWERLEVEL9K_PUBLIC_IP_FILE +%s)))
+ [[ $timediff -gt $POWERLEVEL9K_PUBLIC_IP_TIMEOUT ]] && refresh_ip=true
+ # If tmp file is empty get a fresh IP
+ [[ -z $(cat $POWERLEVEL9K_PUBLIC_IP_FILE) ]] && refresh_ip=true
+ [[ -n $POWERLEVEL9K_PUBLIC_IP_NONE ]] && [[ $(cat $POWERLEVEL9K_PUBLIC_IP_FILE) =~ "$POWERLEVEL9K_PUBLIC_IP_NONE" ]] && refresh_ip=true
+ else
+ touch $POWERLEVEL9K_PUBLIC_IP_FILE && refresh_ip=true
+ fi
+
+ # grab a fresh IP if needed
+ if [[ $refresh_ip =~ true && -w $POWERLEVEL9K_PUBLIC_IP_FILE ]]; then
+ # if method specified, don't use fallback methods
+ if [[ -n $POWERLEVEL9K_PUBLIC_IP_METHOD ]] && [[ $POWERLEVEL9K_PUBLIC_IP_METHOD =~ 'wget|curl|dig' ]]; then
+ local method=$POWERLEVEL9K_PUBLIC_IP_METHOD
+ fi
+ if [[ -n $method ]]; then
+ case $method in
+ 'dig')
+ if type -p dig >/dev/null; then
+ fresh_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com 2> /dev/null)"
+ [[ "$fresh_ip" =~ ^\; ]] && unset fresh_ip
+ fi
+ ;;
+ 'curl')
+ if [[ -z "$fresh_ip" ]] && type -p curl >/dev/null; then
+ fresh_ip="$(curl --max-time 10 -w '\n' "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
+ fi
+ ;;
+ 'wget')
+ if [[ -z "$fresh_ip" ]] && type -p wget >/dev/null; then
+ fresh_ip="$(wget -T 10 -qO- "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
+ fi
+ ;;
+ esac
+ else
+ if type -p dig >/dev/null; then
+ fresh_ip="$(dig +time=1 +tries=1 +short myip.opendns.com @resolver1.opendns.com 2> /dev/null)"
+ [[ "$fresh_ip" =~ ^\; ]] && unset fresh_ip
+ fi
+
+ if [[ -z "$fresh_ip" ]] && type -p curl >/dev/null; then
+ fresh_ip="$(curl --max-time 10 -w '\n' "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
+ fi
+
+ if [[ -z "$fresh_ip" ]] && type -p wget >/dev/null; then
+ fresh_ip="$(wget -T 10 -qO- "$POWERLEVEL9K_PUBLIC_IP_HOST" 2> /dev/null)"
+ fi
+ fi
+
+ # write IP to tmp file or clear tmp file if an IP was not retrieved
+ [[ -n $fresh_ip ]] && echo $fresh_ip > $POWERLEVEL9K_PUBLIC_IP_FILE || echo $POWERLEVEL9K_PUBLIC_IP_NONE > $POWERLEVEL9K_PUBLIC_IP_FILE
+ fi
+
+ # read public IP saved to tmp file
+ local public_ip=$(cat $POWERLEVEL9K_PUBLIC_IP_FILE)
+
+ if [[ -n $public_ip ]]; then
+ $1_prompt_segment "$0" "$2" "$DEFAULT_COLOR" "$DEFAULT_COLOR_INVERTED" "${public_ip}" 'PUBLIC_IP_ICON'
+ fi
+}
+
# Context: user@hostname (who am I and where am I)
# Note that if $DEFAULT_USER is not set, this prompt segment will always print
prompt_context() {
+ set_default POWERLEVEL9K_CONTEXT_HOST_DEPTH "%m"
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
if [[ $(print -P "%#") == '#' ]]; then
# Shell runs as root
- "$1_prompt_segment" "$0_ROOT" "$2" "$DEFAULT_COLOR" "yellow" "$USER@%m"
+ "$1_prompt_segment" "$0_ROOT" "$2" "$DEFAULT_COLOR" "yellow" "$USER@$POWERLEVEL9K_CONTEXT_HOST_DEPTH"
else
- "$1_prompt_segment" "$0_DEFAULT" "$2" "$DEFAULT_COLOR" "011" "$USER@%m"
+ "$1_prompt_segment" "$0_DEFAULT" "$2" "$DEFAULT_COLOR" "011" "$USER@$POWERLEVEL9K_CONTEXT_HOST_DEPTH"
fi
fi
}
@@ -547,6 +617,26 @@ prompt_history() {
"$1_prompt_segment" "$0" "$2" "244" "$DEFAULT_COLOR" '%h'
}
+# Detection for virtualization (systemd based systems only)
+prompt_detect_virt() {
+ if ! command -v systemd-detect-virt;then
+ return
+ fi
+ local virt=$(systemd-detect-virt)
+ local color="yellow"
+ if [[ "$virt" == "none" ]]; then
+ if [[ "$(ls -di / | grep -o 2)" != "2" ]]; then
+ virt="chroot"
+ "$1_prompt_segment" "$0" "$2" "$color" "$DEFAULT_COLOR" "$virt"
+ else
+ ;
+ fi
+ else
+ "$1_prompt_segment" "$0" "$2" "$color" "$DEFAULT_COLOR" "$virt"
+ fi
+}
+
+
prompt_icons_test() {
for key in ${(@k)icons}; do
# The lower color spectrum in ZSH makes big steps. Choosing
@@ -1057,7 +1147,7 @@ $(print_icon 'MULTILINE_SECOND_PROMPT_PREFIX')"
fi
}
-powerlevel9k_init() {
+prompt_powerlevel9k_setup() {
# Display a warning if the terminal does not support 256 colors
local term_colors
term_colors=$(echotc Co)
@@ -1109,4 +1199,5 @@ powerlevel9k_init() {
add-zsh-hook precmd powerlevel9k_prepare_prompts
}
-powerlevel9k_init "$@"
+prompt_powerlevel9k_setup "$@"
+