2022-04-24 09:42:45 -07:00
|
|
|
local P = {}
|
2022-04-24 12:27:54 -07:00
|
|
|
P.__index = P
|
2022-04-24 09:42:45 -07:00
|
|
|
|
|
|
|
function P:set_value(value)
|
|
|
|
-- Set widget value. (0 - 100)
|
|
|
|
self.arc.value = value
|
|
|
|
|
|
|
|
--[[
|
|
|
|
if batpec > 60 then
|
|
|
|
self.progressbar.color = beautiful.color.battery.good
|
|
|
|
elseif batpec > 40 then
|
|
|
|
self.progressbar.color = beautiful.color.battery.low
|
|
|
|
elseif batpec <= 40 then
|
|
|
|
self.progressbar.color = beautiful.color.battery.danger
|
|
|
|
end
|
|
|
|
|
|
|
|
if (self.state == "discharging") then
|
|
|
|
self.rotator.direction = "east"
|
|
|
|
else
|
|
|
|
self.rotator.direction = "west"
|
|
|
|
end
|
|
|
|
|
|
|
|
if (self.state == "charging") and (value > 90) then
|
|
|
|
self.progressbar.border_color = beautiful.color.battery.good
|
|
|
|
elseif (self.state == "discharging") and (value <= 25) then
|
|
|
|
self.progressbar.border_color = beautiful.color.battery.danger
|
|
|
|
else
|
|
|
|
self.rogressbar.border_color = beautiful.color.bar.active
|
|
|
|
end
|
|
|
|
--]]
|
|
|
|
|
|
|
|
-- Set current battery icon
|
|
|
|
if (self.state == "charging") then
|
|
|
|
if value > 80 then self.icon.image = beautiful.icons.battery.charging.full
|
|
|
|
elseif value > 60 then self.icon.image = beautiful.icons.battery.charging.good
|
|
|
|
elseif value > 40 then self.icon.image = beautiful.icons.battery.charging.low
|
|
|
|
elseif value > 20 then self.icon.image = beautiful.icons.battery.charging.caution
|
|
|
|
elseif value <= 20 then self.icon.image = beautiful.icons.battery.charging.empty end
|
|
|
|
elseif (self.state == "discharging") then
|
|
|
|
if value > 80 then self.icon.image = beautiful.icons.battery.full
|
|
|
|
elseif value > 60 then self.icon.image = beautiful.icons.battery.good
|
|
|
|
elseif value > 40 then self.icon.image = beautiful.icons.battery.low
|
|
|
|
elseif value > 20 then self.icon.image = beautiful.icons.battery.caution
|
|
|
|
elseif value <= 20 then self.icon.image = beautiful.icons.battery.empty end
|
|
|
|
else
|
|
|
|
self.icon.image = beautiful.icons.battery.missing
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function P:set_state(state)
|
|
|
|
if (state == "discharging") then
|
|
|
|
self.state = "discharging"
|
|
|
|
elseif (state == "charging") then
|
|
|
|
self.state = "charging"
|
|
|
|
elseif (state == "error") then
|
|
|
|
self.state = "error"
|
|
|
|
else
|
|
|
|
error("Invalid state " .. state)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function P:set_tooltip(text)
|
|
|
|
-- Set widget value. (0 - 100)
|
|
|
|
self.tooltip.text = text
|
|
|
|
end
|
|
|
|
|
|
|
|
function P:new()
|
2022-04-24 10:12:00 -07:00
|
|
|
local widget = {
|
2022-04-24 09:42:45 -07:00
|
|
|
state = "error"
|
|
|
|
}
|
|
|
|
setmetatable(widget, self)
|
|
|
|
|
|
|
|
widget.icon = wibox.widget {
|
|
|
|
image = beautiful.icons.battery.missing,
|
|
|
|
resize = true,
|
|
|
|
widget = wibox.widget.imagebox,
|
|
|
|
}
|
|
|
|
|
|
|
|
--[[
|
|
|
|
widget.progressbar = wibox.widget {
|
|
|
|
max_value = 100,
|
|
|
|
widget = wibox.widget.progressbar,
|
|
|
|
paddings = beautiful.dpi(2),
|
|
|
|
color = beautiful.color.bar.active,
|
|
|
|
background_color = beautiful.color.transparent,
|
|
|
|
border_color = beautiful.color.bar.active,
|
|
|
|
border_width = beautiful.dpi(1),
|
|
|
|
margins = beautiful.dpi(3)
|
|
|
|
}
|
|
|
|
|
|
|
|
widget.rotator = wibox.widget {
|
|
|
|
widget.progressbar,
|
|
|
|
forced_width = beautiful.dpi(15),
|
|
|
|
direction = "east",
|
|
|
|
layout = wibox.container.rotate,
|
|
|
|
}
|
|
|
|
--]]
|
|
|
|
|
|
|
|
widget.arc = wibox.widget {
|
|
|
|
{
|
|
|
|
widget.icon,
|
|
|
|
top = beautiful.dpi(1),
|
|
|
|
bottom = beautiful.dpi(1),
|
|
|
|
layout = wibox.container.margin,
|
|
|
|
},
|
|
|
|
max_value = 100,
|
|
|
|
thickness = beautiful.dpi(4),
|
|
|
|
start_angle = 4.71238898, -- 2pi*3/4
|
|
|
|
--forced_height = beautiful.dpi(16),
|
|
|
|
--forced_width = beautiful.dpi(16),
|
|
|
|
colors = {"#27D4CC", "#00446B"},
|
|
|
|
bg = "#FFFFFF30",
|
|
|
|
paddings = beautiful.dpi(2),
|
|
|
|
widget = wibox.container.arcchart
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
widget.widget = wibox.widget {
|
|
|
|
{
|
|
|
|
{ -- Right space
|
|
|
|
widget = wibox.widget.separator,
|
|
|
|
color = beautiful.color.transparent,
|
|
|
|
forced_width = beautiful.dpi(3)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
widget.arc,
|
|
|
|
top = beautiful.dpi(2),
|
|
|
|
bottom = beautiful.dpi(2),
|
|
|
|
layout = wibox.container.margin,
|
|
|
|
},
|
|
|
|
{ -- Left space
|
|
|
|
widget = wibox.widget.separator,
|
|
|
|
color = beautiful.color.transparent,
|
|
|
|
forced_width = beautiful.dpi(3)
|
|
|
|
},
|
|
|
|
|
|
|
|
layout = wibox.layout.align.horizontal,
|
|
|
|
},
|
|
|
|
layout = wibox.container.background,
|
|
|
|
}
|
|
|
|
|
|
|
|
widget.tooltip = awful.tooltip {
|
|
|
|
objects = { widget.widget },
|
|
|
|
text = ""
|
|
|
|
}
|
|
|
|
|
|
|
|
widget.widget:connect_signal("mouse::enter", function(result)
|
|
|
|
widget.widget.bg = beautiful.color.bar.hover_bg
|
|
|
|
end)
|
|
|
|
|
|
|
|
widget.widget:connect_signal("mouse::leave", function(result)
|
|
|
|
widget.widget.bg = beautiful.color.transparent
|
|
|
|
end)
|
|
|
|
|
|
|
|
return widget
|
|
|
|
end
|
|
|
|
|
|
|
|
return P
|