aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/wicked/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/ui/wicked/init.lua')
-rw-r--r--.config/awesome/ui/wicked/init.lua80
1 files changed, 43 insertions, 37 deletions
diff --git a/.config/awesome/ui/wicked/init.lua b/.config/awesome/ui/wicked/init.lua
index ddbf912..dea28d5 100644
--- a/.config/awesome/ui/wicked/init.lua
+++ b/.config/awesome/ui/wicked/init.lua
@@ -2,19 +2,22 @@ local awful = require "awful"
local beautiful = require "beautiful"
local gshape = require "gears.shape"
local naughty = require "naughty"
+local qanim = require "quarrel.animation"
local qui = require "quarrel.ui"
local qvars = require "quarrel.vars"
local wibox = require "wibox"
local rtimed = require("lib.rubato").timed
local easing = require("lib.rubato").easing
local gtimer = require "gears.timer"
+local qcolor = require "quarrel.color"
local qmarkup = require "quarrel.markup"
-return function(n)
- local intertext_margin = (n.title ~= "" or n.message ~= "") and qvars.padding or 0
- local title_height = n.title ~= "" and qvars.char_height or 0
- local message_height = n.message ~= "" and qvars.char_height or 0
- -- local app_name_height = n.app_name ~= "" and
+local M = require "ui.wicked.consts"
+
+function M.new(n)
+ local intertext_margin = (n.title ~= "" or n.message ~= "") and qui.PADDING or 0
+ local title_height = n.title ~= "" and qui.CHAR_HEIGHT or 0
+ local message_height = n.message ~= "" and qui.CHAR_HEIGHT or 0
local app_name
if n.app_name == "" then
app_name = n._private._foreign and "Unknown" or "Awesome"
@@ -29,22 +32,19 @@ return function(n)
margins = beautiful.useless_gap * 2,
})
end,
- bg = qvars.colors.transparent,
+ bg = qcolor.palette.transparent,
border_width = 0,
shape = gshape.rectangle,
widget_template = {
widget = wibox.container.constraint,
- height = qvars.big_padding * 2
- + qvars.char_height
- + qvars.border_width
- + qvars.big_padding * 2
+ height = qui.BIG_PADDING * 2
+ + qui.CHAR_HEIGHT
+ + qui.BORDER_WIDTH
+ + qui.BIG_PADDING * 2
-- + title_height
-- + message_height
-- + intertext_margin,
- + (
- n.icon and qvars.char_height * 2 + qvars.padding
- or (title_height + message_height + intertext_margin)
- ),
+ + (n.icon and qui.CHAR_HEIGHT * 2 + qui.PADDING or (title_height + message_height + intertext_margin)),
strategy = "exact",
{
@@ -59,7 +59,7 @@ return function(n)
{
{
widget = wibox.container.margin,
- margins = qvars.big_padding,
+ margins = qui.BIG_PADDING,
{
{
widget = wibox.widget.textbox,
@@ -69,12 +69,12 @@ return function(n)
{
widget = wibox.container.radialprogressbar,
- max_value = qvars.notif_timeout,
- border_color = qvars.colors.black,
- color = qvars.colors.yellow,
- border_width = qvars.border_width,
- forced_height = qvars.char_height,
- forced_width = qvars.char_height,
+ max_value = M.NOTIF_TIMEOUT,
+ border_color = qcolor.palette.bg.lowest,
+ color = qcolor.palette.yellow(),
+ border_width = qui.BORDER_WIDTH,
+ forced_height = qui.CHAR_HEIGHT,
+ forced_width = qui.CHAR_HEIGHT,
id = "progress",
},
layout = wibox.layout.align.horizontal,
@@ -82,20 +82,20 @@ return function(n)
},
{
widget = wibox.container.constraint,
- height = qvars.border_width,
+ height = qui.BORDER_WIDTH,
width = beautiful.notification_max_width,
strategy = "exact",
{
widget = wibox.container.background,
- bg = qvars.colors.bright.black,
+ bg = qcolor.palette.border(),
},
},
{
widget = wibox.container.margin,
- margins = qvars.big_padding,
+ margins = qui.BIG_PADDING,
{
widget = wibox.container.constraint,
- height = n.icon and qvars.char_height * 2 + qvars.padding
+ height = n.icon and qui.CHAR_HEIGHT * 2 + qui.PADDING
or (title_height + message_height + intertext_margin),
strategy = "exact",
{
@@ -103,7 +103,7 @@ return function(n)
widget = wibox.container.background,
{
widget = naughty.widget.icon,
- shape = qvars.shape,
+ shape = qui.shape,
notification = n,
},
},
@@ -130,7 +130,7 @@ return function(n)
layout = wibox.layout.fixed.vertical,
},
fill_space = true,
- spacing = n.icon and qvars.big_padding or nil,
+ spacing = n.icon and qui.BIG_PADDING or nil,
layout = wibox.layout.fixed.horizontal,
},
},
@@ -158,12 +158,10 @@ return function(n)
end,
}
- local position = rtimed {
- duration = qvars.anim_duration * 2,
- intro = qvars.anim_intro * 2,
+ local position = qanim:new {
+ duration = qvars.anim_duration,
pos = 0,
- easing = easing.quadratic,
- clamp_position = true,
+ easing = qvars.easing,
subscribed = function(pos)
gtimer.delayed_call(function()
notif.widget.widget:move(1, function(geo, args)
@@ -179,8 +177,8 @@ return function(n)
end,
}
local opacity = rtimed {
- duration = qvars.anim_duration * 2,
- intro = qvars.anim_intro * 2,
+ duration = qvars.anim_duration,
+ intro = qvars.anim_intro,
easing = easing.quadratic,
pos = 0,
clamp_position = true,
@@ -192,12 +190,20 @@ return function(n)
n:disconnect_signal("destroyed", notif._private.destroy_callback)
function notif._private.destroy_callback()
opacity.target = 0
- position.target = 0
+ position:set(0)
hiding = true
end
n:weak_connect_signal("destroyed", notif._private.destroy_callback)
+ --- for some reason when urgency is critical, it somehow makes it not disappear
+ --- why? dunno, FIXME
opacity.target = 1
- position.target = qvars.char_width * 48
- progress.target = qvars.notif_timeout
+ position:set(beautiful.notification_max_width)
+ progress.target = M.NOTIF_TIMEOUT
end
+
+return setmetatable(M, {
+ __call = function(_, ...)
+ return M.new(...)
+ end,
+})