dots/.config/awesome/ui/statusbar/widgets/battery.lua

38 lines
1.2 KiB
Lua

local qvars = require "quarrel.vars"
local wibox = require "wibox"
local qmath = require "quarrel.math"
local gcolor = require "gears.color"
local phosphor = require "assets.phosphor"
local battery = wibox.widget {
widget = wibox.container.place,
valign = "center",
halign = "center",
{
widget = wibox.widget.imagebox,
image = gcolor.recolor_image(phosphor.battery_warning_vertical_fill, qvars.colors.red),
forced_width = qvars.icon_size,
forced_height = qvars.icon_size
}
}
awesome.connect_signal("services::battery", function(capacity, status)
if status == "Charging" then
battery.widget.image = gcolor.recolor_image(phosphor.battery_charging_vertical_fill, qvars.colors.green)
return
end
local icon_data = qmath.step_value(capacity, {
{ 0, { "empty", "red" } },
{ 20, { "low", "red" } },
{ 40, { "medium", "yellow" } },
{ 60, { "high", "green" } },
{ 80, { "full", "green" } },
{ 100 }
})
battery.widget.image = gcolor.recolor_image(phosphor["battery_vertical_" .. icon_data[1] .. "_fill"], qvars.colors[icon_data[2]])
end)
return battery