Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
7290a08b
Commit
7290a08b
authored
Feb 25, 2020
by
Marc Cornellà
Browse files
battery: fix floating point output in macOS
Fixes #8676
parent
0e571427
Changes
1
Show whitespace changes
Inline
Side-by-side
plugins/battery/battery.plugin.zsh
View file @
7290a08b
...
@@ -21,7 +21,8 @@ if [[ "$OSTYPE" = darwin* ]]; then
...
@@ -21,7 +21,8 @@ if [[ "$OSTYPE" = darwin* ]]; then
local
smart_battery_status
=
"
$(
ioreg
-rc
AppleSmartBattery
)
"
local
smart_battery_status
=
"
$(
ioreg
-rc
AppleSmartBattery
)
"
local
-F
maxcapacity
=
$(
command grep
'^.*"MaxCapacity"\ =\ '
<<<
$smart_battery_status
|
sed
-e
's/^.*"MaxCapacity"\ =\ //'
)
local
-F
maxcapacity
=
$(
command grep
'^.*"MaxCapacity"\ =\ '
<<<
$smart_battery_status
|
sed
-e
's/^.*"MaxCapacity"\ =\ //'
)
local
-F
currentcapacity
=
$(
command grep
'^.*"CurrentCapacity"\ =\ '
<<<
$smart_battery_status
|
sed
-e
's/^.*CurrentCapacity"\ =\ //'
)
local
-F
currentcapacity
=
$(
command grep
'^.*"CurrentCapacity"\ =\ '
<<<
$smart_battery_status
|
sed
-e
's/^.*CurrentCapacity"\ =\ //'
)
echo
$((
(
currentcapacity/maxcapacity
)
*
100
))
local
-i
pct
=
$((
(
currentcapacity/maxcapacity
)
*
100
))
echo
$pct
}
}
function
battery_pct_remaining
()
{
function
battery_pct_remaining
()
{
...
@@ -47,16 +48,17 @@ if [[ "$OSTYPE" = darwin* ]]; then
...
@@ -47,16 +48,17 @@ if [[ "$OSTYPE" = darwin* ]]; then
}
}
function
battery_pct_prompt
()
{
function
battery_pct_prompt
()
{
local
battery_pct color
if
ioreg
-rc
AppleSmartBattery |
command grep
-q
'^.*"ExternalConnected"\ =\ No'
;
then
if
ioreg
-rc
AppleSmartBattery |
command grep
-q
'^.*"ExternalConnected"\ =\ No'
;
then
b
=
$(
battery_pct_remaining
)
b
attery_pct
=
$(
battery_pct_remaining
)
if
[[
$b
-gt
50
]]
;
then
if
[[
$b
attery_pct
-gt
50
]]
;
then
color
=
'green'
color
=
'green'
elif
[[
$b
-gt
20
]]
;
then
elif
[[
$b
attery_pct
-gt
20
]]
;
then
color
=
'yellow'
color
=
'yellow'
else
else
color
=
'red'
color
=
'red'
fi
fi
echo
"%{
$fg
[
$color
]%}[
$
(
battery_pct
_remaining
)
%%]%{
$reset_color
%}"
echo
"%{
$fg
[
$color
]%}[
$
{
battery_pct
}
%%]%{
$reset_color
%}"
else
else
echo
"∞"
echo
"∞"
fi
fi
...
@@ -93,19 +95,19 @@ elif [[ "$OSTYPE" = freebsd* ]]; then
...
@@ -93,19 +95,19 @@ elif [[ "$OSTYPE" = freebsd* ]]; then
}
}
function
battery_pct_prompt
()
{
function
battery_pct_prompt
()
{
local
b color
local
b
attery_pct
color
b
=
$(
battery_pct_remaining
)
b
attery_pct
=
$(
battery_pct_remaining
)
if
battery_is_charging
;
then
if
battery_is_charging
;
then
echo
"∞"
echo
"∞"
else
else
if
[[
$b
-gt
50
]]
;
then
if
[[
$b
attery_pct
-gt
50
]]
;
then
color
=
'green'
color
=
'green'
elif
[[
$b
-gt
20
]]
;
then
elif
[[
$b
attery_pct
-gt
20
]]
;
then
color
=
'yellow'
color
=
'yellow'
else
else
color
=
'red'
color
=
'red'
fi
fi
echo
"%{
$fg
[
$color
]%}
$
(
battery_pct
_remaining
)
%%%{
$reset_color
%}"
echo
"%{
$fg
[
$color
]%}
$
{
battery_pct
}
%%%{
$reset_color
%}"
fi
fi
}
}
...
@@ -136,19 +138,19 @@ elif [[ "$OSTYPE" = linux* ]]; then
...
@@ -136,19 +138,19 @@ elif [[ "$OSTYPE" = linux* ]]; then
}
}
function
battery_pct_prompt
()
{
function
battery_pct_prompt
()
{
local
b color
local
b
attery_pct
color
b
=
$(
battery_pct_remaining
)
b
attery_pct
=
$(
battery_pct_remaining
)
if
battery_is_charging
;
then
if
battery_is_charging
;
then
echo
"∞"
echo
"∞"
else
else
if
[[
$b
-gt
50
]]
;
then
if
[[
$b
attery_pct
-gt
50
]]
;
then
color
=
'green'
color
=
'green'
elif
[[
$b
-gt
20
]]
;
then
elif
[[
$b
attery_pct
-gt
20
]]
;
then
color
=
'yellow'
color
=
'yellow'
else
else
color
=
'red'
color
=
'red'
fi
fi
echo
"%{
$fg
[
$color
]%}
$
(
battery_pct
_remaining
)
%%%{
$reset_color
%}"
echo
"%{
$fg
[
$color
]%}
$
{
battery_pct
}
%%%{
$reset_color
%}"
fi
fi
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment