2023-03-04 15:04:55 -06:00
|
|
|
local awful = require "awful"
|
2023-04-04 08:43:40 -05:00
|
|
|
local qvars = require "quarrel.vars"
|
2023-03-04 15:04:55 -06:00
|
|
|
local gears = require "gears"
|
|
|
|
local wibox = require "wibox"
|
|
|
|
local rubato = require "lib.rubato"
|
|
|
|
local cfg = require "misc.cfg"
|
|
|
|
|
|
|
|
local function button(color, color_focus, callback)
|
|
|
|
local widget = wibox.widget {
|
|
|
|
widget = wibox.container.background,
|
2023-04-04 08:43:40 -05:00
|
|
|
forced_height = qvars.button_size,
|
|
|
|
forced_width = qvars.button_size,
|
2023-03-04 15:04:55 -06:00
|
|
|
bg = color,
|
2023-04-04 08:43:40 -05:00
|
|
|
shape = qvars.shape,
|
2023-03-04 15:04:55 -06:00
|
|
|
buttons = { callback }
|
|
|
|
}
|
|
|
|
|
|
|
|
widget:connect_signal("mouse::enter", function()
|
|
|
|
local timed = rubato.timed {
|
|
|
|
duration = 0.1,
|
|
|
|
intro = 0.05,
|
2023-04-04 08:43:40 -05:00
|
|
|
pos = qvars.button_size,
|
2023-03-04 15:04:55 -06:00
|
|
|
subscribed = function(pos)
|
|
|
|
widget.forced_width = pos
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|
2023-04-04 08:43:40 -05:00
|
|
|
timed.target = qvars.button_size * 2
|
2023-03-04 15:04:55 -06:00
|
|
|
widget.bg = color_focus
|
|
|
|
end)
|
|
|
|
|
|
|
|
widget:connect_signal("mouse::leave", function()
|
|
|
|
local timed = rubato.timed {
|
|
|
|
duration = 0.1,
|
|
|
|
intro = 0.05,
|
2023-04-04 08:43:40 -05:00
|
|
|
pos = qvars.button_size * 2,
|
2023-03-04 15:04:55 -06:00
|
|
|
subscribed = function(pos)
|
|
|
|
widget.forced_width = pos
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|
2023-04-04 08:43:40 -05:00
|
|
|
timed.target = qvars.button_size
|
2023-03-04 15:04:55 -06:00
|
|
|
widget.bg = color
|
|
|
|
end)
|
|
|
|
|
|
|
|
return widget
|
|
|
|
end
|
|
|
|
|
|
|
|
client.connect_signal("request::titlebars", function(c)
|
|
|
|
if not cfg.draw_titlebar then return end
|
|
|
|
|
|
|
|
local titlebar = awful.titlebar(c, {
|
|
|
|
position = "top",
|
2023-04-04 08:43:40 -05:00
|
|
|
size = qvars.button_size + qvars.padding * 2
|
2023-03-04 15:04:55 -06:00
|
|
|
})
|
|
|
|
|
|
|
|
awful.titlebar.enable_tooltip = false
|
|
|
|
|
|
|
|
titlebar.widget = {
|
|
|
|
widget = wibox.container.margin,
|
2023-04-04 08:43:40 -05:00
|
|
|
margins = qvars.padding,
|
2023-03-04 15:04:55 -06:00
|
|
|
{
|
|
|
|
nil,
|
|
|
|
nil,
|
|
|
|
{
|
2023-04-04 08:43:40 -05:00
|
|
|
button(qvars.colors.green, qvars.colors.bright.green, awful.button({}, 1, function()
|
2023-03-04 15:04:55 -06:00
|
|
|
c.maximized = not c.maximized
|
|
|
|
end)),
|
2023-04-04 08:43:40 -05:00
|
|
|
button(qvars.colors.yellow, qvars.colors.bright.yellow, awful.button({}, 1, function()
|
2023-03-04 15:04:55 -06:00
|
|
|
gears.timer.delayed_call(function()
|
|
|
|
c.minimized = true
|
|
|
|
end)
|
|
|
|
end)),
|
2023-04-04 08:43:40 -05:00
|
|
|
button(qvars.colors.red, qvars.colors.bright.red, awful.button({}, 1, function()
|
2023-03-04 15:04:55 -06:00
|
|
|
c:kill()
|
|
|
|
end)),
|
|
|
|
|
2023-04-04 08:43:40 -05:00
|
|
|
spacing = qvars.padding,
|
2023-03-04 15:04:55 -06:00
|
|
|
layout = wibox.layout.fixed.horizontal
|
|
|
|
},
|
|
|
|
layout = wibox.layout.align.horizontal
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end)
|