~.configawesomelayouts
13 itemsDownload ./*


..
browse.lua
cascade.lua
cascadebrowse.lua
centerwork.lua
gimp.lua
init.lua
source.txt
termfair.lua
termfair2.lua
tile.lua
twily.lua
uselessfair.lua
uselesstile.lua


layoutscascade.lua
6 years agoDownloadRawClose


-- Grab environment.
local awful = awful

module("layouts.cascade")

cascade_offset_x = 32
cascade_offset_y = 8

name = "cascade"
function arrange(p)

    -- Cascade windows, just like the cascade layout for gimp.

    -- Screen.
    local wa = p.workarea
    local cls = p.clients

    -- Opening a new window will usually force all existing windows to
    -- get resized. This wastes a lot of CPU time. So let's set a lower
    -- bound to "how_many": This wastes a little screen space but you'll
    -- get a much better user experience.
    local t = awful.tag.selected(p.screen)
    local num_c = awful.tag.getnmaster(t)
    local how_many = #cls
    if how_many < num_c
    then
        how_many = num_c
    end

    local current_cascade_offset_x = cascade_offset_x * (how_many - 1)
    local current_cascade_offset_y = cascade_offset_y * (how_many - 1)

    -- Iterate.
    for i = 1,#cls,1
    do
        local c = cls[i]
        local g = {}

        g.x = wa.x + (how_many - i) * cascade_offset_x
        g.y = wa.y + (i - 1) * cascade_offset_y
        g.width = wa.width - current_cascade_offset_x
        g.height = wa.height - current_cascade_offset_y

        c:geometry(g)
    end
end

-- vim: set et :

Top
twily at twily dot info
©twily.info 2013 - 2019



1 335 277 visits
... ^ v