42 lines
1,008 B
Lua
42 lines
1,008 B
Lua
local icons = require 'icons'
|
|
|
|
local battery = sbar.add('item', {
|
|
position = 'right',
|
|
icon = {
|
|
font = {
|
|
style = 'Regular',
|
|
size = 19.0,
|
|
},
|
|
},
|
|
label = { drawing = false },
|
|
update_freq = 120,
|
|
})
|
|
|
|
local function battery_update()
|
|
sbar.exec('pmset -g batt', function(batt_info)
|
|
local icon = '!'
|
|
|
|
if string.find(batt_info, 'AC Power') then
|
|
icon = icons.battery.charging
|
|
else
|
|
local found, _, charge = batt_info:find '(%d+)%%'
|
|
if found then charge = tonumber(charge) end
|
|
|
|
if found and charge > 80 then
|
|
icon = icons.battery._100
|
|
elseif found and charge > 60 then
|
|
icon = icons.battery._75
|
|
elseif found and charge > 40 then
|
|
icon = icons.battery._50
|
|
elseif found and charge > 20 then
|
|
icon = icons.battery._25
|
|
else
|
|
icon = icons.battery._0
|
|
end
|
|
end
|
|
|
|
battery:set { icon = icon }
|
|
end)
|
|
end
|
|
|
|
battery:subscribe({ 'routine', 'power_source_change', 'system_woke' }, battery_update)
|