dots/.config/awesome/ui/flashy/init.lua

75 lines
2.1 KiB
Lua

local awful = require "awful"
local gtable = require "gears.table"
local gdebug = require "gears.debug"
local gcolor = require "gears.color"
local qui = require "quarrel.ui"
local qvars = require "quarrel.vars"
local wibox = require "wibox"
local phosphor = require "assets.phosphor"
local beautiful = require "beautiful"
local rubato = require "lib.rubato"
local flashy = {}
flashy._timeout_timer = {}
flashy._widget = qui.popup {
placement = awful.placement.centered,
ontop = true,
minimum_width = qvars.button_size * 15,
maximum_width = qvars.button_size * 15,
minimum_height = qvars.button_size * 15,
maximum_height = qvars.button_size * 15,
visible = false,
widget = {
{
widget = wibox.container.place,
valign = "center",
haligh = "center",
-- widget = wibox.container.margin,
-- margins = qvars.big_padding * 8,
{
widget = wibox.widget.imagebox,
image = gcolor.recolor_image(phosphor.battery_warning, qvars.colors.fg),
-- image = phosphor["battery_warning"],
forced_width = qvars.button_size * 15 - (qvars.border_width * 2 + qvars.big_padding * 2),
forced_height = qvars.button_size * 14 - (qvars.border_width * 2 + qvars.big_padding * 2)
}
},
{
widget = wibox.widget.progressbar,
max_value = 100,
value = 50,
forced_height = qvars.button_size;
shape = qvars.shape,
color = qvars.colors.yellow,
background_color = qvars.colors.black
},
layout = wibox.layout.fixed.vertical
}
}
flashy._timed = rubato.timed {
duration = qvars.anim_duration,
intro = qvars.anim_intro,
pos = 0,
subscribed = function(pos)
flashy._widget.opacity = pos
if pos == 0 then
flashy._widget.visible = false
else
flashy._widget.visible = true
end
end
}
function flashy:show()
self._timed.target = 1
end
function flashy:hide()
self._timed.target = 0
end
return flashy