X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/92e72dcce4eb61b5bd945c197db88bcad4e15ad7..806182a0e80095c096ce1f59f6f6fa9c68e95448:/util/quake.lua

diff --git a/util/quake.lua b/util/quake.lua
index ab412ac..771741e 100644
--- a/util/quake.lua
+++ b/util/quake.lua
@@ -31,7 +31,7 @@ function quake:display()
    local i = 0
    for c in awful.client.iterate(function (c)
        -- c.name may be changed!
-			 return c.instance == self.name
+       return c.instance == self.name
    end, nil, self.screen)
    do
        i = i + 1
@@ -51,17 +51,22 @@ function quake:display()
    if not client and not self.visible then return end
 
    if not client then
-      -- The client does not exist, we spawn it
-      awful.util.spawn(self.app .. " " .. string.format(self.argname, self.name),
-      false, self.screen)
-      return
+       -- The client does not exist, we spawn it
+       awful.util.spawn(string.format("%s %s %s", self.app,
+                        string.format(self.argname, self.name), self.extra),
+                        false, self.screen)
+       self.notexist = true
+       return
    end
 
    -- Resize
    awful.client.floating.set(client, true)
-   client.border_width = 0
+   client.border_width = self.border
    client.size_hints_honor = false
-   client:geometry(self.geometry)
+   if self.notexist then
+       client:geometry(self.geometry)
+       self.notexist = false
+   end
 
    -- Not sticky and on top
    client.ontop = true
@@ -91,17 +96,19 @@ end
 function quake:new(config)
    local conf = config or {}
 
-   conf.app     = conf.app     or "xterm"    -- application to spawn
-   conf.name    = conf.name    or "QuakeDD"  -- window name
-   conf.argname = conf.argname or "-name %s" -- how to specify window name
-   conf.visible = conf.visible or false      -- initially not visible
-   conf.screen  = conf.screen  or capi.mouse.screen
+   conf.app      = conf.app      or "xterm"    -- application to spawn
+   conf.name     = conf.name     or "QuakeDD"  -- window name
+   conf.argname  = conf.argname  or "-name %s" -- how to specify window name
+   conf.extra    = conf.extra    or ""         -- extra arguments
+   conf.visible  = conf.visible  or false      -- initially not visible
+   conf.screen   = conf.screen   or capi.mouse.screen
+   conf.border   = conf.border   or 1
 
    -- If width or height <= 1 this is a proportion of the workspace
    wibox_height = conf.wibox_height or 18       -- statusbar weight
-   height       = conf.height       or 0.25	    -- height
-   width        = conf.width        or 1	      -- width
-   vert         = conf.vert         or "top"	  -- top, bottom or center
+   height       = conf.height       or 0.25     -- height
+   width        = conf.width        or 1        -- width
+   vert         = conf.vert         or "top"    -- top, bottom or center
    horiz        = conf.horiz        or "center" -- left, right or center
 
    -- Compute size
@@ -121,19 +128,19 @@ function quake:new(config)
    capi.client.connect_signal("manage", function(c)
        if c.instance == console.name and c.screen == console.screen then
            console:display()
-			 end
+       end
    end)
    capi.client.connect_signal("unmanage", function(c)
        if c.instance == console.name and c.screen == console.screen then
            console.visible = false
-		   end
-		end)
+       end
+    end)
 
    -- "Reattach" currently running quake application. This is in case awesome is restarted.
    local reattach = capi.timer { timeout = 0 }
    reattach:connect_signal("timeout", function()
        reattach:stop()
-			 console:display()
+       console:display()
    end)
    reattach:start()