diff options
Diffstat (limited to '.config/awesome/ui/flashy/init.lua')
-rw-r--r-- | .config/awesome/ui/flashy/init.lua | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/.config/awesome/ui/flashy/init.lua b/.config/awesome/ui/flashy/init.lua new file mode 100644 index 0000000..65f7518 --- /dev/null +++ b/.config/awesome/ui/flashy/init.lua @@ -0,0 +1,74 @@ +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 |