local wibox = require('wibox') local awful = require('awful') local gears = require('gears') local beautiful = require('beautiful') local dpi = require("beautiful.xresources").apply_dpi local function tabobj_support(self, c, index, clients) -- Self is the background widget in this context if not c.bling_tabbed then return end local group = c.bling_tabbed -- Single item tabbed group's dont get special rendering if #group.clients > 1 then local wrapper = wibox.widget({ { -- This is so dumb... but it works so meh { id = "row1", layout = wibox.layout.flex.horizontal, }, { id = "row2", layout = wibox.layout.flex.horizontal, }, spacing = dpi(2), layout = wibox.layout.fixed.vertical, }, id = 'click_role', widget = wibox.container.margin, margins = dpi(5) }) for idx, c in ipairs(group.clients) do if c and c.icon then -- TODO: Don't do this in a -1iq way if idx <= 2 then wrapper:get_children_by_id("row1")[1]:add(awful.widget.clienticon(c)) else wrapper:get_children_by_id("row2")[1]:add(awful.widget.clienticon(c)) end end end self.widget = wrapper end end return tabobj_support