1
0
Fork 0

now it is possible to use the hotkey used to switch to specific tag to go back to previous one à la weechat + finally fixed floating window management

This commit is contained in:
Von Random 2015-03-21 01:09:34 +03:00
parent 75c97eac8b
commit 6fc4556eed

27
rc.lua
View file

@ -140,7 +140,7 @@ tags = {}
saved_layouts = {} saved_layouts = {}
for s = 1, screen.count() do for s = 1, screen.count() do
tags[s] = { name = {}, layout = {} } tags[s] = { name = {}, layout = {} }
saved_layouts[s] = { tiled = {}, float = {} } saved_layouts[s] = { tiled = {} }
end end
-- screen 1 -- screen 1
--tags[1].name = { --tags[1].name = {
@ -494,7 +494,11 @@ for i = 1, 9 do
local screen = mouse.screen local screen = mouse.screen
local tag = awful.tag.gettags(screen)[i] local tag = awful.tag.gettags(screen)[i]
if tag then if tag then
awful.tag.viewonly(tag) if awful.tag.selected(screen) == tag and awful.tag.selectedlist(screen)[2] == nil then
awful.tag.history.restore()
else
awful.tag.viewonly(tag)
end
end end
end), end),
awful.key({ modkey, 'Control' }, '#' .. i + 9, awful.key({ modkey, 'Control' }, '#' .. i + 9,
@ -706,7 +710,7 @@ tag.connect_signal(
function(t) function(t)
for k, c in ipairs(t:clients()) do for k, c in ipairs(t:clients()) do
if awful.layout.get(mouse.screen) == awful.layout.suit.floating then if awful.layout.get(mouse.screen) == awful.layout.suit.floating then
c:geometry(saved_layouts[c.screen].float[c.window]) c:geometry(awful.client.property.get(c, 'floating_geometry'))
end end
end end
end end
@ -716,27 +720,16 @@ client.connect_signal(
'manage', 'manage',
function(c) function(c)
if awful.layout.get(mouse.screen) == awful.layout.suit.floating then if awful.layout.get(mouse.screen) == awful.layout.suit.floating then
saved_layouts[c.screen].float[c.window] = c:geometry() awful.client.property.set(c, 'floating_geometry', c:geometry())
end end
end end
) )
client.connect_signal('unmanage', function(c) saved_layouts[c.screen].float[c.window] = nil end)
client.connect_signal( client.connect_signal(
'property::geometry', 'property::geometry',
function(c) function(c)
if awful.layout.get(mouse.screen) == awful.layout.suit.floating and awful.client.floating.get(c) == false then if awful.layout.get(mouse.screen) == awful.layout.suit.floating then
saved_layouts[c.screen].float[c.window] = c:geometry() awful.client.property.set(c, 'floating_geometry', c:geometry())
end
end
)
client.connect_signal(
'property::floating',
function(c)
if awful.client.floating.get(c) == false and saved_layouts[c.screen].float[c.window] ~= nil then
c:geometry(saved_layouts[c.screen].float[c.window])
end end
end end
) )