quake: allow to pass extra arguments

This commit is contained in:
Sudo Nice 2016-08-10 21:23:45 +03:00
parent a3ad60919f
commit 4eec21ad8e

View file

@ -31,7 +31,7 @@ function quake:display()
local i = 0 local i = 0
for c in awful.client.iterate(function (c) for c in awful.client.iterate(function (c)
-- c.name may be changed! -- c.name may be changed!
return c.instance == self.name return c.instance == self.name
end, nil, self.screen) end, nil, self.screen)
do do
i = i + 1 i = i + 1
@ -52,8 +52,8 @@ function quake:display()
if not client then if not client then
-- The client does not exist, we spawn it -- The client does not exist, we spawn it
awful.util.spawn(self.app .. " " .. string.format(self.argname, self.name), awful.util.spawn(self.app .. " " .. string.format(self.argname, self.name) ..
false, self.screen) " " .. self.extra, false, self.screen)
self.notexist = true self.notexist = true
return return
end end
@ -95,17 +95,18 @@ end
function quake:new(config) function quake:new(config)
local conf = config or {} local conf = config or {}
conf.app = conf.app or "xterm" -- application to spawn conf.app = conf.app or "xterm" -- application to spawn
conf.name = conf.name or "QuakeDD" -- window name conf.name = conf.name or "QuakeDD" -- window name
conf.argname = conf.argname or "-name %s" -- how to specify window name conf.argname = conf.argname or "-name %s" -- how to specify window name
conf.visible = conf.visible or false -- initially not visible conf.extra = conf.extra or "" -- extra arguments
conf.screen = conf.screen or capi.mouse.screen conf.visible = conf.visible or false -- initially not visible
conf.screen = conf.screen or capi.mouse.screen
-- If width or height <= 1 this is a proportion of the workspace -- If width or height <= 1 this is a proportion of the workspace
wibox_height = conf.wibox_height or 18 -- statusbar weight wibox_height = conf.wibox_height or 18 -- statusbar weight
height = conf.height or 0.25 -- height height = conf.height or 0.25 -- height
width = conf.width or 1 -- width width = conf.width or 1 -- width
vert = conf.vert or "top" -- top, bottom or center vert = conf.vert or "top" -- top, bottom or center
horiz = conf.horiz or "center" -- left, right or center horiz = conf.horiz or "center" -- left, right or center
-- Compute size -- Compute size
@ -125,19 +126,19 @@ function quake:new(config)
capi.client.connect_signal("manage", function(c) capi.client.connect_signal("manage", function(c)
if c.instance == console.name and c.screen == console.screen then if c.instance == console.name and c.screen == console.screen then
console:display() console:display()
end end
end) end)
capi.client.connect_signal("unmanage", function(c) capi.client.connect_signal("unmanage", function(c)
if c.instance == console.name and c.screen == console.screen then if c.instance == console.name and c.screen == console.screen then
console.visible = false console.visible = false
end end
end) end)
-- "Reattach" currently running quake application. This is in case awesome is restarted. -- "Reattach" currently running quake application. This is in case awesome is restarted.
local reattach = capi.timer { timeout = 0 } local reattach = capi.timer { timeout = 0 }
reattach:connect_signal("timeout", function() reattach:connect_signal("timeout", function()
reattach:stop() reattach:stop()
console:display() console:display()
end) end)
reattach:start() reattach:start()