Compare commits
10 Commits
e0c11c528d
...
d1d73c57b1
| Author | SHA1 | Date |
|---|---|---|
|
|
d1d73c57b1 | |
|
|
a0c9dbe80b | |
|
|
31982e202d | |
|
|
2cd77de6a0 | |
|
|
4ab4a1353f | |
|
|
20fc7b8a26 | |
|
|
71d628cc8a | |
|
|
bc0f9341da | |
|
|
39e1c51ae3 | |
|
|
14a038bbda |
|
|
@ -1344,6 +1344,16 @@ _p9k_prompt_battery_init() {
|
|||
_p9k__async_segments_compute+='_p9k_worker_invoke battery _p9k_prompt_battery_compute'
|
||||
return
|
||||
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) ||
|
||||
-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]"='${:-}'
|
||||
|
|
@ -1456,6 +1466,54 @@ _p9k_prompt_battery_set_args() {
|
|||
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
|
||||
;;
|
||||
|
|
@ -8399,14 +8457,16 @@ _p9k_init_prompt() {
|
|||
if (( _POWERLEVEL9K_TERM_SHELL_INTEGRATION )); then
|
||||
_p9k_prompt_prefix_left+=$'%{\e]133;A\a%}'
|
||||
_p9k_prompt_suffix_left+=$'%{\e]133;B\a%}'
|
||||
if [[ $TERM_PROGRAM == WarpTerminal ]]; then
|
||||
if [[ $TERM_PROGRAM == WarpTerminal ||
|
||||
( $TERM_PROGRAM == iTerm.app && $TERM_PROGRAM_VERSION == (3.<7->*|<4->.*) ) ]]; then
|
||||
_p9k_prompt_prefix_right=$'%{\e]133;P;k=r\a%}'$_p9k_prompt_prefix_right
|
||||
_p9k_prompt_suffix_right+=$'%{\e]133;B\a%}'
|
||||
fi
|
||||
if (( $+_z4h_iterm_cmd && _z4h_can_save_restore_screen == 1 )); then
|
||||
_p9k_prompt_prefix_left+=$'%{\ePtmux;\e\e]133;A\a\e\\%}'
|
||||
_p9k_prompt_suffix_left+=$'%{\ePtmux;\e\e]133;B\a\e\\%}'
|
||||
if [[ $TERM_PROGRAM == WarpTerminal ]]; then
|
||||
if [[ $TERM_PROGRAM == WarpTerminal ||
|
||||
( $TERM_PROGRAM == iTerm.app && $TERM_PROGRAM_VERSION == (3.<7->*|<4->.*) ) ]]; then
|
||||
_p9k_prompt_prefix_right=$'%{\ePtmux;\e\e]133;P;k=r\a\e\\%}'$_p9k_prompt_prefix_right
|
||||
_p9k_prompt_suffix_right+=$'%{\ePtmux;\e\e]133;B\a\e\\%}'
|
||||
fi
|
||||
|
|
@ -8965,6 +9025,11 @@ _p9k_init() {
|
|||
function iterm2_decorate_prompt() {
|
||||
typeset -g ITERM2_PRECMD_PS1=$PROMPT
|
||||
typeset -g ITERM2_SHOULD_DECORATE_PROMPT=
|
||||
if [[ -n $PS2 && $PS2 != *$'\e]133;A;k=s\a'* && -z ${ITERM2_SQUELCH_PS2_MARK-} &&
|
||||
$TERM_PROGRAM_VERSION == (3.<7->*|<4->.*) ]]; then
|
||||
typeset -g ITERM2_PRECMD_PS2=$PS2
|
||||
PS2=$'%{\e]133;A;k=s\a%}'$PS2$'%{\e]133;B\a%}'
|
||||
fi
|
||||
}
|
||||
fi
|
||||
if (( $+functions[iterm2_precmd] )); then
|
||||
|
|
@ -9512,7 +9577,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
|
||||
fi
|
||||
|
||||
typeset -g P9K_VERSION=1.20.15
|
||||
typeset -g P9K_VERSION=1.20.16
|
||||
|
||||
if [[ ${VSCODE_SHELL_INTEGRATION-} == <1-> && ${+__p9k_force_term_shell_integration} == 0 ]]; then
|
||||
typeset -gri __p9k_force_term_shell_integration=1
|
||||
|
|
|
|||
Loading…
Reference in New Issue