aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md13
-rwxr-xr-xpowerlevel9k.zsh-theme23
2 files changed, 29 insertions, 7 deletions
diff --git a/README.md b/README.md
index 9c17c2c5..9c0c3ab5 100644
--- a/README.md
+++ b/README.md
@@ -96,7 +96,7 @@ The segments that are currently available are:
* [`ip`](#ip) - Shows the current IP address.
* [`vpn`](#vpn) - Shows the current VPN IP address.
* [`public_ip`](#public_ip) - Shows your public IP address.
-* `load` - Your machine's load averages.
+* [`load`](#load) - Your machine's load averages.
* `os_icon` - Display a nice little icon, depending on your operating system.
* `ram` - Show free RAM.
* `root_indicator` - An indicator if the user has superuser status.
@@ -482,6 +482,17 @@ segment will not be displayed.
|`POWERLEVEL9K_PUBLIC_IP_METHODS`|(dig curl wget)| These methods in that order are used to refresh your IP.|
|`POWERLEVEL9K_PUBLIC_IP_NONE`|None|The string displayed when an IP was not obtained|
+##### load
+
+Displays one of your load averages with appropriate state coloring. The thresholds are:
+- `0.7 * NUM_CORES <`: critical
+- `0.5 * NUM_CORES <`: warning
+- `less`: normal
+
+| Variable | Default Value | Description |
+|----------|---------------|-------------|
+|`POWERLEVEL9K_LOAD_WHICH`|5|Which average to show. Possible values: 1, 5 or 15|
+
##### newline
Puts a newline in your prompt so you can continue using segments on the next
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 3c34f0bb..b03a9374 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -937,6 +937,8 @@ prompt_load() {
local current_state="unknown"
local cores
+ set_default POWERLEVEL9K_LOAD_WHICH 5
+
typeset -AH load_states
load_states=(
'critical' 'red'
@@ -945,31 +947,40 @@ prompt_load() {
)
if [[ "$OS" == "OSX" ]] || [[ "$OS" == "BSD" ]]; then
- load_avg_1min=$(sysctl vm.loadavg | grep -o -E '[0-9]+(\.|,)[0-9]+' | head -n 1)
+
+ if [[ "$POWERLEVEL9K_LOAD_WHICH" -eq 1 ]]; then
+ load_avg=$(sysctl vm.loadavg | grep -o -E '[0-9]+(\.|,)[0-9]+' | head -n 3 | sed -n 1p)
+ elif [[ "$POWERLEVEL9K_LOAD_WHICH" -eq 5 ]]; then
+ load_avg=$(sysctl vm.loadavg | grep -o -E '[0-9]+(\.|,)[0-9]+' | head -n 3 | sed -n 2p)
+ else
+ load_avg=$(sysctl vm.loadavg | grep -o -E '[0-9]+(\.|,)[0-9]+' | head -n 3 | sed -n 3p)
+ fi
+
if [[ "$OS" == "OSX" ]]; then
cores=$(sysctl -n hw.logicalcpu)
else
cores=$(sysctl -n hw.ncpu)
fi
else
- load_avg_1min=$(grep -o "[0-9.]*" /proc/loadavg | head -n 1)
+ load_avg=$(grep -o "[0-9.]*" /proc/loadavg | head -n 1)
cores=$(nproc)
fi
# Replace comma
- load_avg_1min=${load_avg_1min//,/.}
+ load_avg=${load_avg//,/.}
- if [[ "$load_avg_1min" -gt $(bc -l <<< "${cores} * 0.7") ]]; then
+ if [[ "$load_avg" -gt $(bc -l <<< "${cores} * 0.7") ]]; then
current_state="critical"
- elif [[ "$load_avg_1min" -gt $(bc -l <<< "${cores} * 0.5") ]]; then
+elif [[ "$load_avg" -gt $(bc -l <<< "${cores} * 0.5") ]]; then
current_state="warning"
else
current_state="normal"
fi
- "$1_prompt_segment" "${0}_${current_state}" "$2" "${load_states[$current_state]}" "$DEFAULT_COLOR" "$load_avg_1min" 'LOAD_ICON'
+ "$1_prompt_segment" "${0}_${current_state}" "$2" "${load_states[$current_state]}" "$DEFAULT_COLOR" "$load_avg" 'LOAD_ICON'
}
+
# Node version
prompt_node_version() {
local node_version=$(node -v 2>/dev/null)