Compare commits
11 Commits
4036697137
...
dcf0a48563
| Author | SHA1 | Date |
|---|---|---|
|
|
dcf0a48563 | |
|
|
3308262dfb | |
|
|
242ccfaef8 | |
|
|
58e13d16a5 | |
|
|
2cd77de6a0 | |
|
|
4ab4a1353f | |
|
|
20fc7b8a26 | |
|
|
71d628cc8a | |
|
|
bc0f9341da | |
|
|
39e1c51ae3 | |
|
|
14a038bbda |
|
|
@ -1126,7 +1126,7 @@
|
||||||
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
||||||
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
||||||
#
|
#
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}'
|
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${(V)P9K_PACKAGE_NAME//\%/%%}@${(V)P9K_PACKAGE_VERSION//\%/%%}'
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1101,7 +1101,7 @@
|
||||||
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
||||||
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
||||||
#
|
#
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}'
|
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${(V)P9K_PACKAGE_NAME//\%/%%}@${(V)P9K_PACKAGE_VERSION//\%/%%}'
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1101,7 +1101,7 @@
|
||||||
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
||||||
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
||||||
#
|
#
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}'
|
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${(V)P9K_PACKAGE_NAME//\%/%%}@${(V)P9K_PACKAGE_VERSION//\%/%%}'
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1203,7 +1203,7 @@
|
||||||
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
# - P9K_PACKAGE_NAME The value of `name` field in package.json.
|
||||||
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
# - P9K_PACKAGE_VERSION The value of `version` field in package.json.
|
||||||
#
|
#
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}'
|
# typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${(V)P9K_PACKAGE_NAME//\%/%%}@${(V)P9K_PACKAGE_VERSION//\%/%%}'
|
||||||
|
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
# typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,9 @@
|
||||||
setopt no_unset extended_glob pipe_fail prompt_percent typeset_silent \
|
setopt no_unset extended_glob pipe_fail prompt_percent typeset_silent \
|
||||||
no_prompt_subst no_prompt_bang pushd_silent warn_create_global
|
no_prompt_subst no_prompt_bang pushd_silent warn_create_global
|
||||||
|
|
||||||
if [[ $ZSH_VERSION != (5.<1->*|<6->.*) || $ZSH_VERSION == 5.4(|.*) ]]; then
|
autoload -Uz is-at-least
|
||||||
|
|
||||||
|
if ! is-at-least 5.1 || [[ $ZSH_VERSION == 5.4.* ]]; then
|
||||||
print -ru2 -- "[error] unsupported zsh version: $ZSH_VERSION"
|
print -ru2 -- "[error] unsupported zsh version: $ZSH_VERSION"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "check.h"
|
||||||
#include "string_view.h"
|
#include "string_view.h"
|
||||||
|
|
||||||
namespace gitstatus {
|
namespace gitstatus {
|
||||||
|
|
@ -94,6 +95,7 @@ class Arena {
|
||||||
template <class T>
|
template <class T>
|
||||||
inline T* Allocate(size_t n) {
|
inline T* Allocate(size_t n) {
|
||||||
static_assert(!std::is_reference<T>(), "");
|
static_assert(!std::is_reference<T>(), "");
|
||||||
|
CHECK(n <= SIZE_MAX / sizeof(T)) << n;
|
||||||
return static_cast<T*>(Allocate(n * sizeof(T), alignof(T)));
|
return static_cast<T*>(Allocate(n * sizeof(T), alignof(T)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1352,6 +1352,16 @@ _p9k_prompt_battery_init() {
|
||||||
_p9k__async_segments_compute+='_p9k_worker_invoke battery _p9k_prompt_battery_compute'
|
_p9k__async_segments_compute+='_p9k_worker_invoke battery _p9k_prompt_battery_compute'
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $_p9k_os == Windows ]]; then
|
||||||
|
if command -v wmic > /dev/null 2>&1; then # Test "wimc" command
|
||||||
|
_p9k__async_segments_compute+='_p9k_worker_invoke battery _p9k_prompt_battery_compute'
|
||||||
|
return
|
||||||
|
else
|
||||||
|
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${:-}'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $_p9k_os != (Linux|Android) ||
|
if [[ $_p9k_os != (Linux|Android) ||
|
||||||
-z /sys/class/power_supply/(CMB*|BAT*|*battery)/(energy_full|charge_full|charge_counter)(#qN) ]]; then
|
-z /sys/class/power_supply/(CMB*|BAT*|*battery)/(energy_full|charge_full|charge_counter)(#qN) ]]; then
|
||||||
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${:-}'
|
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${:-}'
|
||||||
|
|
@ -1464,6 +1474,54 @@ _p9k_prompt_battery_set_args() {
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
Windows)
|
||||||
|
local raw_data
|
||||||
|
local -a info_values
|
||||||
|
# See definitions to Win32_Battery class members at https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-battery
|
||||||
|
{
|
||||||
|
read -r 2>/dev/null
|
||||||
|
read -r raw_data
|
||||||
|
} <<< "$(wmic path Win32_Battery get BatteryStatus,EstimatedChargeRemaining,EstimatedRunTime)"
|
||||||
|
|
||||||
|
# info_values[1]: BatteryStatus
|
||||||
|
# info_values[2]: EstimatedChargeRemaining
|
||||||
|
# info_values[3]: EstimatedRunTime
|
||||||
|
info_values=(${(s: :)raw_data})
|
||||||
|
|
||||||
|
(( ${#info_values[@]} == 4 )) || return # Missing info_values (index [4] is for the following CRCR)
|
||||||
|
|
||||||
|
bat_percent=${info_values[2]}
|
||||||
|
local -i bat_remain_minutes=${info_values[3]}
|
||||||
|
|
||||||
|
case ${info_values[1]} in
|
||||||
|
'1'|'4'|'5')
|
||||||
|
# When the battery is charging or full, system will show that bat_remain_minutes (EstimatedRunTime) is 71582788 (min)
|
||||||
|
(( bat_remain_minutes < 71582788 )) && remain=$((bat_remain_minutes/60)):${(l#2##0#)$((bat_remain_minutes%60))} || remain=''
|
||||||
|
if (( bat_percent < _POWERLEVEL9K_BATTERY_LOW_THRESHOLD )); then
|
||||||
|
state=LOW
|
||||||
|
else
|
||||||
|
state=DISCONNECTED
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
'2'|'6'|'7'|'8'|'9'|'11') # In this case, the battery is likely to be charged and disconnected, or still been charging.
|
||||||
|
remain=''
|
||||||
|
if (( bat_percent == 100 )); then
|
||||||
|
state=CHARGED
|
||||||
|
else
|
||||||
|
state=CHARGING
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
'3')
|
||||||
|
(( bat_remain_minutes < 71582788 )) && remain=$((bat_remain_minutes/60)):${(l#2##0#)$((bat_remain_minutes%60))} || remain=''
|
||||||
|
state=CHARGED
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
state=CHARGED
|
||||||
|
remain=''
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
|
|
@ -2265,7 +2323,7 @@ prompt_package() {
|
||||||
|
|
||||||
P9K_PACKAGE_NAME=$_p9k__cache_val[2]
|
P9K_PACKAGE_NAME=$_p9k__cache_val[2]
|
||||||
P9K_PACKAGE_VERSION=$_p9k__cache_val[3]
|
P9K_PACKAGE_VERSION=$_p9k__cache_val[3]
|
||||||
_p9k_prompt_segment "$0" "cyan" "$_p9k_color1" PACKAGE_ICON 0 '' ${P9K_PACKAGE_VERSION//\%/%%}
|
_p9k_prompt_segment "$0" "cyan" "$_p9k_color1" PACKAGE_ICON 0 '' ${(V)P9K_PACKAGE_VERSION//\%/%%}
|
||||||
}
|
}
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
|
|
@ -9527,7 +9585,7 @@ if [[ $__p9k_dump_file != $__p9k_instant_prompt_dump_file && -n $__p9k_instant_p
|
||||||
zf_rm -f -- $__p9k_instant_prompt_dump_file{,.zwc} 2>/dev/null
|
zf_rm -f -- $__p9k_instant_prompt_dump_file{,.zwc} 2>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
typeset -g P9K_VERSION=1.20.17
|
typeset -g P9K_VERSION=1.20.18
|
||||||
|
|
||||||
if [[ ${VSCODE_SHELL_INTEGRATION-} == <1-> && ${+__p9k_force_term_shell_integration} == 0 ]]; then
|
if [[ ${VSCODE_SHELL_INTEGRATION-} == <1-> && ${+__p9k_force_term_shell_integration} == 0 ]]; then
|
||||||
typeset -gri __p9k_force_term_shell_integration=1
|
typeset -gri __p9k_force_term_shell_integration=1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue