aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/flashy/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/ui/flashy/init.lua')
-rw-r--r--.config/awesome/ui/flashy/init.lua74
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