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
41d97172
Commit
41d97172
authored
Feb 03, 2014
by
Robby Russell
Browse files
Merge pull request #2402 from bric3/battery_level_gauge
Adds a method that print a battery gauge
parents
df0305ab
cc8b0936
Changes
1
Show whitespace changes
Inline
Side-by-side
plugins/battery/battery.plugin.zsh
View file @
41d97172
...
...
@@ -11,8 +11,9 @@
if
[[
$(
uname
)
==
"Darwin"
]]
;
then
function
battery_pct
()
{
typeset
-F
maxcapacity
=
$(
ioreg
-rc
"AppleSmartBattery"
|
grep
'^.*"MaxCapacity"\ =\ '
|
sed
-e
's/^.*"MaxCapacity"\ =\ //'
)
typeset
-F
currentcapacity
=
$(
ioreg
-rc
"AppleSmartBattery"
|
grep
'^.*"CurrentCapacity"\ =\ '
|
sed
-e
's/^.*CurrentCapacity"\ =\ //'
)
local
smart_battery_status
=
"
$(
ioreg
-rc
"AppleSmartBattery"
)
"
typeset
-F
maxcapacity
=
$(
echo
$smart_battery_status
|
grep
'^.*"MaxCapacity"\ =\ '
|
sed
-e
's/^.*"MaxCapacity"\ =\ //'
)
typeset
-F
currentcapacity
=
$(
echo
$smart_battery_status
|
grep
'^.*"CurrentCapacity"\ =\ '
|
sed
-e
's/^.*CurrentCapacity"\ =\ //'
)
integer
i
=
$((
(
currentcapacity/maxcapacity
)
*
100
))
echo
$i
}
...
...
@@ -26,8 +27,9 @@ if [[ $(uname) == "Darwin" ]] ; then
}
function
battery_time_remaining
()
{
if
[[
$(
ioreg
-rc
AppleSmartBattery |
grep
-c
'^.*"ExternalConnected"\ =\ No'
)
-eq
1
]]
;
then
timeremaining
=
$(
ioreg
-rc
"AppleSmartBattery"
|
grep
'^.*"AvgTimeToEmpty"\ =\ '
|
sed
-e
's/^.*"AvgTimeToEmpty"\ =\ //'
)
local
smart_battery_status
=
"
$(
ioreg
-rc
"AppleSmartBattery"
)
"
if
[[
$(
echo
$smart_battery_status
|
grep
-c
'^.*"ExternalConnected"\ =\ No'
)
-eq
1
]]
;
then
timeremaining
=
$(
echo
$smart_battery_status
|
grep
'^.*"AvgTimeToEmpty"\ =\ '
|
sed
-e
's/^.*"AvgTimeToEmpty"\ =\ //'
)
echo
"~
$((
timeremaining
/
60
))
:
$((
timeremaining
%
60
))
"
else
echo
"∞"
...
...
@@ -50,6 +52,10 @@ if [[ $(uname) == "Darwin" ]] ; then
fi
}
function
battery_is_charging
()
{
[[
$(
ioreg
-rc
"AppleSmartBattery"
|
grep
'^.*"IsCharging"\ =\ '
|
sed
-e
's/^.*"IsCharging"\ =\ //'
)
==
"Yes"
]]
}
elif
[[
$(
uname
)
==
"Linux"
]]
;
then
function
battery_pct_remaining
()
{
...
...
@@ -79,6 +85,16 @@ elif [[ $(uname) == "Linux" ]] ; then
echo
"∞"
fi
}
function
battery_pct
()
{
# todo for on linux
}
function
battery_is_charging
()
{
# todo on linux
false
}
else
# Empty functions so we don't cause errors in prompts
function
battery_pct_remaining
()
{
...
...
@@ -90,3 +106,45 @@ else
function
battery_pct_prompt
()
{
}
fi
function
battery_level_gauge
()
{
local
gauge_slots
=
${
BATTERY_GAUGE_SLOTS
:-
10
}
;
local
green_threshold
=
${
BATTERY_GREEN_THRESHOLD
:-
6
}
;
local
yellow_threshold
=
${
BATTERY_YELLOW_THRESHOLD
:-
4
}
;
local
color_green
=
${
BATTERY_COLOR_GREEN
:-
%F{green
}
}
;
local
color_yellow
=
${
BATTERY_COLOR_YELLOW
:-
%F{yellow
}
}
;
local
color_red
=
${
BATTERY_COLOR_RED
:-
%F{red
}
}
;
local
color_reset
=
${
BATTERY_COLOR_RESET
:-
%{%f%k%b%
}
}
;
local
battery_prefix
=
${
BATTERY_GAUGE_PREFIX
:-
'['
}
;
local
battery_suffix
=
${
BATTERY_GAUGE_SUFFIX
:-
']'
}
;
local
filled_symbol
=
${
BATTERY_GAUGE_FILLED_SYMBOL
:-
'▶'
}
;
local
empty_symbol
=
${
BATTERY_GAUGE_EMPTY_SYMBOL
:-
'▷'
}
;
local
charging_color
=
${
BATTERY_CHARGING_COLOR
:-
$color_yellow
}
;
local
charging_symbol
=
${
BATTERY_CHARGING_SYMBOL
:-
'⚡'
}
;
local
battery_remaining_percentage
=
$(
battery_pct
)
;
if
[[
$battery_remaining_percentage
=
~
[
0-9]+
]]
;
then
local
filled
=
$((
((
$battery_remaining_percentage
+
$gauge_slots
-
1
)
/
$gauge_slots
))
)
;
local
empty
=
$((
$gauge_slots
-
$filled
))
;
if
[[
$filled
-gt
$green_threshold
]]
;
then
local
gauge_color
=
$color_green
;
elif
[[
$filled
-gt
$yellow_threshold
]]
;
then
local
gauge_color
=
$color_yellow
;
else
local
gauge_color
=
$color_red
;
fi
else
local
filled
=
$gauge_slots
;
local
empty
=
0
;
filled_symbol
=
${
BATTERY_UNKNOWN_SYMBOL
:-
'.'
}
;
fi
local
charging
=
' '
&&
battery_is_charging
&&
charging
=
$charging_symbol
;
printf
${
charging_color
//\%/\%\%
}
$charging
${
color_reset
//\%/\%\%
}${
battery_prefix
//\%/\%\%
}${
gauge_color
//\%/\%\%
}
printf
${
filled_symbol
//\%/\%\%
}
'%.0s'
{
1..
$filled
}
[[
$filled
-lt
$gauge_slots
]]
&&
printf
${
empty_symbol
//\%/\%\%
}
'%.0s'
{
1..
$empty
}
printf
${
color_reset
//\%/\%\%
}${
battery_suffix
//\%/\%\%
}${
color_reset
//\%/\%\%
}
}
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