1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
--
-- Layouts for Notion
--
--
-- Helper routines and structures
--
-- Tiled frame template for the layouts below.
local a_frame = {
type="WSplitRegion",
regparams = {
type = "WFrame",
frame_style = "frame-tiled"
}
}
-- Helper function for generating splits for layouts.
local function mksplit(dir, tl, br, float)
return {
type = (float and "WSplitFloat" or "WSplitSplit"),
dir = dir,
tls = 1,
brs = 1,
tl = tl,
br = br,
}
end
local function mktiling(split_tree)
return {
managed = {
{
type = "WTiling",
bottom = true, -- Make it the bottom of the group.
split_tree = split_tree,
}
}
}
end
--
-- Layouts
--
-- Tiling with single 1:1 horizontal split.
local tmp=mktiling(mksplit("horizontal", a_frame, a_frame))
ioncore.deflayout("hsplit", tmp)
ioncore.deflayout("default", tmp)
-- Tiling with single 1:1 vertical split.
ioncore.deflayout("vsplit",
mktiling(mksplit("vertical", a_frame, a_frame))
)
-- Tiling with single 1:1 floating horizontal split.
ioncore.deflayout("hfloat",
mktiling(mksplit("horizontal", a_frame, a_frame, true))
)
-- Tiling with single 1:1 floating vertical split.
ioncore.deflayout("vfloat",
mktiling(mksplit("vertical", a_frame, a_frame, true))
)
-- Tiling with horizontal and then vertical splits.
ioncore.deflayout("2x2",
mktiling(mksplit("horizontal",
mksplit("vertical", a_frame, a_frame),
mksplit("vertical", a_frame, a_frame))
)
)
-- Tiling with single full screen frame.
ioncore.deflayout("full", mktiling(a_frame))
|