diff options
author | ache <ache@ache.one> | 2021-09-21 15:51:23 +0200 |
---|---|---|
committer | ache <ache@ache.one> | 2021-09-21 15:51:23 +0200 |
commit | 187940e002302dfcaa83b01fc0b63a84a74f6792 (patch) | |
tree | 77090131e079ecb7e0b5c28926f1d4bcb31689a1 /lain/layout/uselessfairnogap.lua | |
parent | Use loginctl to lock screen (diff) |
Lain should not be here
Diffstat (limited to 'lain/layout/uselessfairnogap.lua')
-rw-r--r-- | lain/layout/uselessfairnogap.lua | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/lain/layout/uselessfairnogap.lua b/lain/layout/uselessfairnogap.lua deleted file mode 100644 index 6599a89..0000000 --- a/lain/layout/uselessfairnogap.lua +++ /dev/null @@ -1,108 +0,0 @@ - ---[[ - - Licensed under GNU General Public License v2 - * (c) 2014, projektile, worron - * (c) 2013, Luke Bonham - * (c) 2012, Josh Komoroske - * (c) 2010-2012, Peter Hofmann - ---]] - -local beautiful = require("beautiful") -local ipairs = ipairs -local math = { ceil = math.ceil, sqrt = math.sqrt, floor = math.floor, max = math.max } -local tonumber = tonumber - -local uselessfair = {} - --- Transformation functions -local function swap(geometry) - return { x = geometry.y, y = geometry.x, width = geometry.height, height = geometry.width } -end - --- Client geometry correction depending on useless gap and window border -local function size_correction(c, geometry, useless_gap) - geometry.width = math.max(geometry.width - 2 * c.border_width - useless_gap, 1) - geometry.height = math.max(geometry.height - 2 * c.border_width - useless_gap, 1) - geometry.x = geometry.x + useless_gap / 2 - geometry.y = geometry.y + useless_gap / 2 -end - --- Main tiling function -local function fair(p, orientation) - - -- Theme vars - local useless_gap = 0 - local global_border = 1 - - -- Aliases - local wa = p.workarea - local cls = p.clients - - -- Nothing to tile here - if #cls == 0 then return end - - -- Workarea size correction depending on useless gap and global border - wa.height = wa.height - 2 * global_border - useless_gap - wa.width = wa.width - 2 * global_border - useless_gap - wa.x = wa.x + useless_gap / 2 + global_border - wa.y = wa.y + useless_gap / 2 + global_border - - -- Geometry calculation - local row, col = 0, 0 - - local rows = math.ceil(math.sqrt(#cls)) - local cols = math.ceil(#cls / rows) - - for i, c in ipairs(cls) do - local g = {} - - -- find tile orientation for current client and swap geometry if need - local need_swap = (orientation == "east" and #cls <= 2) or (orientation == "south" and #cls > 2) - local area = need_swap and swap(wa) or wa - - -- calculate geometry - if #cls < (cols * rows) and row == cols - 1 then - g.width = area.width / (rows - ((cols * rows) - #cls)) - else - g.width = area.width / rows - end - - g.height = area.height / cols - g.x = area.x + col * g.width - g.y = area.y + row * g.height - - -- turn back to real if geometry was swapped - if need_swap then g = swap(g) end - - -- window size correction depending on useless gap and window border - size_correction(c, g, useless_gap) - - -- set geometry - c:geometry(g) - - -- update tile grid coordinates - col = i % rows - row = math.floor(i / rows) - end -end - --- Layout constructor -local function construct_layout(name, direction) - return { - name = name, - -- @p screen The screen number to tile - arrange = function(p) return fair(p, direction) end - } -end - --- Build layouts with different tile direction -uselessfair.vertical = construct_layout("uselessfair", "south") -uselessfair.horizontal = construct_layout("uselessfairh", "east") - --- Module aliase -uselessfair.arrange = uselessfair.vertical.arrange -uselessfair.name = uselessfair.vertical.name - -return uselessfair |