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