dots/.config/awesome/ui/statusbar/widgets/taglist.lua

83 lines
2.6 KiB
Lua

local awful = require "awful"
local qvars = require "quarrel.vars"
local wibox = require "wibox"
local gcolor = require "gears.color"
local phosphor = require "assets.phosphor"
local qbind = require "quarrel.bind"
return awful.widget.taglist {
screen = screen[1],
filter = awful.widget.taglist.filter.all,
layout = {
spacing = qvars.padding,
layout = wibox.layout.fixed.vertical
},
widget_template = {
widget = wibox.container.place,
valign = "center",
halign = "center",
{
widget = wibox.widget.imagebox,
image = gcolor.recolor_image(phosphor.circle_bold, qvars.colors.fg),
forced_width = qvars.icon_size,
forced_height = qvars.icon_size,
icon = phosphor.dot_fill
},
create_callback = function(self, tag)
-- self.widget.icon = phosphor[next(tag:clients()) and "circle_fill" or "circle_bold"]
self:connect_signal("mouse::enter", function()
if tag.selected then return end
self.widget.image = gcolor.recolor_image(self.widget.icon, qvars.colors.yellow)
end)
self:connect_signal("mouse::leave", function()
if tag.selected then return end
self.widget.image = gcolor.recolor_image(self.widget.icon, qvars.colors.fg)
end)
if tag.selected then
self.widget.image = gcolor.recolor_image(self.widget.icon, qvars.colors.yellow)
return
end
self.widget.image = gcolor.recolor_image(self.widget.icon, qvars.colors.fg)
end,
update_callback = function(self, tag)
-- self.widget.icon = phosphor[next(tag:clients()) and "circle_fill" or "circle_bold"]
if tag.selected then
self.widget.image = gcolor.recolor_image(self.widget.icon, qvars.colors.yellow)
else
self.widget.image = gcolor.recolor_image(self.widget.icon, qvars.colors.fg)
end
end
},
buttons = {
qbind:new {
triggers = qvars.btns.left,
press = function(t)
t:view_only()
end,
hidden = true
},
qbind:new {
mods = qvars.mods.M,
triggers = qvars.btns.left,
press = function(t)
if client.focus then
client.focus:move_to_tag(t)
end
end,
hidden = true
},
qbind:new {
triggers = qvars.btns.right,
press = awful.tag.viewtoggle,
hidden = true
},
}
}