nix/darwin/sketchybar/config/items/battery.lua
2025-04-07 02:23:57 -05:00

45 lines
1 KiB
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)