local wibox = require('wibox') function build(widget, label) local container = wibox.widget { -- widget, wibox.widget { text = label, widget = wibox.widget.textbox, }, widget = wibox.container.background } local old_cursor, old_wibox container:connect_signal('mouse::enter', function() container.bg = '#ffffff11' -- Hm, no idea how to get the wibox from this signal's arguments... local w = _G.mouse.current_wibox if w then old_cursor, old_wibox = w.cursor, w w.cursor = 'hand1' end end) container:connect_signal('mouse::leave', function() container.bg = '#ffffff00' if old_wibox then old_wibox.cursor = old_cursor old_wibox = nil end end) container:connect_signal('button::press', function() container.bg = '#ffffff22' end) container:connect_signal('button::release', function() container.bg = '#ffffff11' end) return container end return build