quake: let use role if we cannot set name

Some terminals do not allow to set name (like xfce4-terminal). In this
case, use the role.
This commit is contained in:
Vincent Bernat 2014-09-17 20:31:48 +02:00
parent 4134170f6c
commit a92e68eb4d
2 changed files with 4 additions and 3 deletions

View file

@ -46,7 +46,7 @@ function QuakeConsole:display()
local i = 0 local i = 0
for c in awful.client.cycle(function (c) for c in awful.client.cycle(function (c)
-- c.name may be changed! -- c.name may be changed!
return c.instance == self.name return (c.instance == self.name or c.role == self.name)
end, end,
nil, self.screen) do nil, self.screen) do
i = i + 1 i = i + 1
@ -137,13 +137,13 @@ function QuakeConsole:new(config)
local console = setmetatable(config, { __index = QuakeConsole }) local console = setmetatable(config, { __index = QuakeConsole })
capi.client.add_signal("manage", capi.client.add_signal("manage",
function(c) function(c)
if c.instance == console.name and c.screen == console.screen then if (c.instance == console.name or c.role == console.name) and c.screen == console.screen then
console:display() console:display()
end end
end) end)
capi.client.add_signal("unmanage", capi.client.add_signal("unmanage",
function(c) function(c)
if c.instance == console.name and c.screen == console.screen then if (c.instance == console.name or c.role == console.name) and c.screen == console.screen then
console.visible = false console.visible = false
end end
end) end)

View file

@ -3,6 +3,7 @@ local quake = loadrc("quake", "vbe/quake")
local quakeconsole = {} local quakeconsole = {}
for s = 1, screen.count() do for s = 1, screen.count() do
quakeconsole[s] = quake({ terminal = config.terminal, quakeconsole[s] = quake({ terminal = config.terminal,
argname = "--role %s",
height = 0.3, height = 0.3,
screen = s }) screen = s })
end end