111 lines
3.3 KiB
Lua
111 lines
3.3 KiB
Lua
local awful = require("awful")
|
|
local gears = require("gears")
|
|
local wibox = require("wibox")
|
|
local menu = require("widgets.polymenu")
|
|
local move_screentags = {}
|
|
local toggle_screentags = {}
|
|
awful.screen.connect_for_each_screen(function(s)
|
|
local move_tags = {}
|
|
local toggle_tags = {}
|
|
for _,tag in pairs(s.tags) do
|
|
table.insert(move_tags,{
|
|
tag.name,
|
|
function()
|
|
if client.focus then
|
|
client.focus:tags({tag})
|
|
end
|
|
end
|
|
})
|
|
table.insert(toggle_tags,{
|
|
tag.name,
|
|
function()
|
|
if client.focus then
|
|
local tags = client.focus:tags()
|
|
for k,v in pairs(tags) do
|
|
if v == tag then
|
|
table.remove(tags,k)
|
|
client.focus:tags(tags)
|
|
return
|
|
end
|
|
end
|
|
table.insert(tags,tag)
|
|
client.focus:tags(tags)
|
|
end
|
|
end
|
|
})
|
|
end
|
|
table.insert(move_screentags,{
|
|
"Screen "..tostring(s.index),
|
|
move_tags
|
|
})
|
|
table.insert(toggle_screentags,{
|
|
"Screen "..tostring(s.index),
|
|
toggle_tags
|
|
})
|
|
end)
|
|
return function(c)
|
|
local buttons = gears.table.join(
|
|
awful.button({ }, 1, function()
|
|
c:emit_signal("request::activate", "titlebar", {raise = true})
|
|
awful.mouse.client.move(c)
|
|
end),
|
|
awful.button({ }, 3, function()
|
|
c:emit_signal("request::activate", "titlebar", {raise = true})
|
|
awful.mouse.client.resize(c)
|
|
end)
|
|
)
|
|
c.menu = menu({
|
|
before = {
|
|
{
|
|
awful.titlebar.widget.floatingbutton (c),
|
|
awful.titlebar.widget.stickybutton (c),
|
|
awful.titlebar.widget.ontopbutton (c),
|
|
forced_width = 72,
|
|
forced_height = 24,
|
|
layout = wibox.layout.fixed.horizontal,
|
|
}
|
|
},
|
|
items = {
|
|
{ "Move to tag" ,
|
|
move_screentags
|
|
},
|
|
{ "Toggle on tag",
|
|
toggle_screentags
|
|
}
|
|
},
|
|
vertical = true
|
|
})
|
|
c.menu_button = awful.titlebar.widget.iconwidget(c)
|
|
c.menu_button:connect_signal("button::press", function()
|
|
c.menu.toggle()
|
|
c:emit_signal("request::activate", "titlebar", {raise = true})
|
|
end)
|
|
c:connect_signal("unfocus",function()
|
|
if c.menu.visible then
|
|
c.menu.toggle(0,0)
|
|
end
|
|
end)
|
|
return awful.titlebar(c) : setup {
|
|
{ -- Left
|
|
c.menu_button,
|
|
spacing = 10,
|
|
layout = wibox.layout.fixed.horizontal
|
|
},
|
|
{ -- Middle
|
|
{
|
|
widget = awful.titlebar.widget.titlewidget(c),
|
|
align = "center"
|
|
},
|
|
buttons = buttons,
|
|
layout = wibox.layout.flex.horizontal
|
|
},
|
|
{ -- Right
|
|
awful.titlebar.widget.maximizedbutton(c),
|
|
awful.titlebar.widget.minimizebutton (c),
|
|
awful.titlebar.widget.closebutton (c),
|
|
layout = wibox.layout.fixed.horizontal(),
|
|
},
|
|
layout = wibox.layout.align.horizontal,
|
|
}
|
|
end
|