diff options
Diffstat (limited to '.config/awesome/ui/wicked/init.lua')
-rw-r--r-- | .config/awesome/ui/wicked/init.lua | 80 |
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, +}) |