nix/darwin/sketchybar/config/items/battery.lua
2025-04-08 23:41:12 -05:00

44 lines
944 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)