local gears = require("gears") local awful = require("awful") local wibox = require("wibox") local beautiful = require("beautiful") local tasklist_buttons = gears.table.join( awful.button( {}, 1, function(c) if c == client.focus then c.minimized = true else c:emit_signal("request::activate", "tasklist", {raise = true}) end end ) ) function tasklist(s) return awful.widget.tasklist { screen = s, filter = awful.widget.tasklist.filter.currenttags, buttons = tasklist_buttons, style = { --disable_task_name = true }, layout = { spacing = 5, spacing_widget = { valign = 'center', halign = 'center', widget = wibox.container.place, }, layout = wibox.layout.fixed.horizontal }, widget_template = { { { { { id = 'icon_role', widget = wibox.widget.imagebox, }, top = 2, bottom = 2, right = 3, widget = wibox.container.margin, }, { id = 'text_role', widget = wibox.widget.textbox, }, layout = wibox.layout.fixed.horizontal, }, left = 8, right = 10, widget = wibox.container.margin }, id = 'background_role', widget = wibox.container.background, create_callback = function(self, c3, index, objects) self:connect_signal('mouse::enter', function() if self.bg ~= beautiful.tasklist_bg_focus then self.backup = self.bg self.has_backup = true end self.bg = beautiful.tasklist_bg_focus -- Raise client c3:emit_signal( "request::activate", "tasklist", { raise = true } ) end) self:connect_signal('mouse::leave', function() if self.has_backup then self.bg = self.backup end end) end, }, } end