X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/5de6ca283bffbc041eeb094c8b82dfd8d680f04f..6c40d0ffc7b154e12ce60a0ff52c5b84d142e805:/layout/uselesspiral.lua diff --git a/layout/uselesspiral.lua b/layout/uselesspiral.lua index 3164c75..c388961 100644 --- a/layout/uselesspiral.lua +++ b/layout/uselesspiral.lua @@ -2,15 +2,17 @@ --[[ Licensed under GNU General Public License v2 - * (c) 2013, Luke Bonham - * (c) 2009 Uli Schlachter - * (c) 2008 Julien Danjolu + * (c) 2014, projektile + * (c) 2013, Luke Bonham + * (c) 2009, Uli Schlachter + * (c) 2008, Julien Danjolu --]] local beautiful = require("beautiful") local ipairs = ipairs local tonumber = tonumber +local math = require("math") local uselesspiral = {} @@ -18,19 +20,32 @@ local function spiral(p, spiral) -- A useless gap (like the dwm patch) can be defined with -- beautiful.useless_gap_width. local useless_gap = tonumber(beautiful.useless_gap_width) or 0 + if useless_gap < 0 then useless_gap = 0 end + -- A global border can be defined with + -- beautiful.global_border_width + local global_border = tonumber(beautiful.global_border_width) or 0 + if global_border < 0 then global_border = 0 end + + -- Themes border width requires an offset + local bw = tonumber(beautiful.border_width) or 0 + + -- get our orientation right local wa = p.workarea local cls = p.clients - local n = #cls + local n = #cls -- number of windows total; k = which window number + + wa.height = wa.height - ((global_border * 2) + (bw * 2)) + wa.width = wa.width - ((global_border * 2) + (bw * 2)) local static_wa = wa for k, c in ipairs(cls) do if k < n then if k % 2 == 0 then - wa.height = wa.height / 2 + wa.height = (wa.height / 2) else - wa.width = wa.width / 2 + wa.width = (wa.width / 2) end end @@ -49,10 +64,10 @@ local function spiral(p, spiral) end local wa2 = {} - wa2.x = wa.x - wa2.y = wa.y - wa2.height = wa.height - wa2.width = wa.width + wa2.x = wa.x + (useless_gap / 2) + global_border + wa2.y = wa.y + (useless_gap / 2) + global_border + wa2.height = wa.height - (useless_gap / 2) + wa2.width = wa.width - (useless_gap / 2) -- Useless gap. if useless_gap > 0 @@ -64,8 +79,6 @@ local function spiral(p, spiral) top = false left = false - gap_factor = (useless_gap / 100) * 2 - if wa2.y == static_wa.y then top = true end @@ -75,17 +88,17 @@ local function spiral(p, spiral) end if top then - wa2.height = wa2.height - (2 + gap_factor) * useless_gap - wa2.y = wa2.y + useless_gap + wa2.height = wa2.height - useless_gap + wa2.y = wa2.y - (useless_gap / 2) else - wa2.height = wa2.height - (1 + gap_factor) * useless_gap + wa2.height = wa2.height - (useless_gap / 2) end if left then - wa2.width = wa2.width - (2 + gap_factor) * useless_gap - wa2.x = wa2.x + useless_gap + wa2.width = wa2.width - useless_gap + wa2.x = wa2.x - (useless_gap / 2) else - wa2.width = wa2.width - (1 + gap_factor) * useless_gap + wa2.width = wa2.width - (useless_gap / 2) end end -- End of useless gap.