summaryrefslogtreecommitdiff
path: root/awesome/lib/awful/layout/suit/corner.lua
diff options
context:
space:
mode:
Diffstat (limited to 'awesome/lib/awful/layout/suit/corner.lua')
-rw-r--r--awesome/lib/awful/layout/suit/corner.lua204
1 files changed, 0 insertions, 204 deletions
diff --git a/awesome/lib/awful/layout/suit/corner.lua b/awesome/lib/awful/layout/suit/corner.lua
deleted file mode 100644
index 4b746c9..0000000
--- a/awesome/lib/awful/layout/suit/corner.lua
+++ /dev/null
@@ -1,204 +0,0 @@
----------------------------------------------------------------------------
--- Corner layout.
--- Display master client in a corner of the screen, and slaves in one
--- column and one row around the master.
--- See Pull Request for example : https://github.com/awesomeWM/awesome/pull/251
--- @module awful.layout
--- @author Alexis Brenon <brenon.alexis+awesomewm@gmail.com>
--- @copyright 2015 Alexis Brenon
-
--- Grab environment we need
-local ipairs = ipairs
-local math = math
-local capi = {screen = screen}
-
---- The cornernw layout layoutbox icon.
--- @beautiful beautiful.layout_cornernw
--- @param surface
--- @see gears.surface
-
---- The cornerne layout layoutbox icon.
--- @beautiful beautiful.layout_cornerne
--- @param surface
--- @see gears.surface
-
---- The cornersw layout layoutbox icon.
--- @beautiful beautiful.layout_cornersw
--- @param surface
--- @see gears.surface
-
---- The cornerse layout layoutbox icon.
--- @beautiful beautiful.layout_cornerse
--- @param surface
--- @see gears.surface
-
--- Actually arrange clients of p.clients for corner layout
--- @param p Mandatory table containing required informations for layouts
--- (clients to arrange, workarea geometry, etc.)
--- @param orientation String indicating in which corner is the master window.
--- Available values are : NE, NW, SW, SE
-local function do_corner(p, orientation)
- local t = p.tag or capi.screen[p.screen].selected_tag
- local wa = p.workarea
- local cls = p.clients
-
- if #cls == 0 then return end
-
- local master = {}
- local column = {}
- local row = {}
- -- Use the nmaster field of the tag in a cheaty way
- local row_privileged = ((cls[1].screen.selected_tag.master_count % 2) == 0)
-
- local master_factor = cls[1].screen.selected_tag.master_width_factor
- master.width = master_factor * wa.width
- master.height = master_factor * wa.height
-
- local number_privileged_win = math.ceil((#cls - 1)/2)
- local number_unprivileged_win = (#cls - 1) - number_privileged_win
-
- -- Define some obvious parameters
- column.width = wa.width - master.width
- column.x_increment = 0
- row.height = wa.height - master.height
- row.y_increment = 0
-
- -- Place master at the right place and move row and column accordingly
- column.y = wa.y
- row.x = wa.x
- if orientation:match('N.') then
- master.y = wa.y
- row.y = master.y + master.height
- elseif orientation:match('S.') then
- master.y = wa.y + wa.height - master.height
- row.y = wa.y
- end
- if orientation:match('.W') then
- master.x = wa.x
- column.x = master.x + master.width
- elseif orientation:match('.E') then
- master.x = wa.x + wa.width - master.width
- column.x = wa.x
- end
- -- At this point, master is in a corner
- -- but row and column are overlayed in the opposite corner...
-
- -- Reduce the unprivileged slaves to remove overlay
- -- and define actual width and height
- if row_privileged then
- row.width = wa.width
- row.number_win = number_privileged_win
- column.y = master.y
- column.height = master.height
- column.number_win = number_unprivileged_win
- else
- column.height = wa.height
- column.number_win = number_privileged_win
- row.x = master.x
- row.width = master.width
- row.number_win = number_unprivileged_win
- end
-
- column.win_height = column.height/column.number_win
- column.win_width = column.width
- column.y_increment = column.win_height
- column.win_idx = 0
-
- row.win_width = row.width/row.number_win
- row.win_height = row.height
- row.x_increment = row.win_width
- row.win_idx = 0
-
- -- Extend master if there is only a few windows and "expand" policy is set
- if #cls < 3 then
- if row_privileged then
- master.x = wa.x
- master.width = wa.width
- else
- master.y = wa.y
- master.height = wa.height
- end
- if #cls < 2 then
- if t.master_fill_policy == "expand" then
- master = wa
- else
- master.x = master.x + (wa.width - master.width)/2
- master.y = master.y + (wa.height - master.height)/2
- end
- end
- end
-
- for i, c in ipairs(cls) do
- local g
- -- Handle master window
- if i == 1 then
- g = {
- x = master.x,
- y = master.y,
- width = master.width,
- height = master.height
- }
- -- handle column windows
- elseif i % 2 == 0 then
- g = {
- x = column.x + column.win_idx * column.x_increment,
- y = column.y + column.win_idx * column.y_increment,
- width = column.win_width,
- height = column.win_height
- }
- column.win_idx = column.win_idx + 1
- else
- g = {
- x = row.x + row.win_idx * row.x_increment,
- y = row.y + row.win_idx * row.y_increment,
- width = row.win_width,
- height = row.win_height
- }
- row.win_idx = row.win_idx + 1
- end
- p.geometries[c] = g
- end
-end
-
-local corner = {}
-corner.row_privileged = false
-
---- Corner layout.
--- Display master client in a corner of the screen, and slaves in one
--- column and one row around the master.
--- @clientlayout awful.layout.suit.corner.nw
-corner.nw = {
- name = "cornernw",
- arrange = function (p) return do_corner(p, "NW") end
- }
-
---- Corner layout.
--- Display master client in a corner of the screen, and slaves in one
--- column and one row around the master.
--- @clientlayout awful.layout.suit.corner.ne
-corner.ne = {
- name = "cornerne",
- arrange = function (p) return do_corner(p, "NE") end
- }
-
---- Corner layout.
--- Display master client in a corner of the screen, and slaves in one
--- column and one row around the master.
--- @clientlayout awful.layout.suit.corner.sw
-corner.sw = {
- name = "cornersw",
- arrange = function (p) return do_corner(p, "SW") end
- }
-
---- Corner layout.
--- Display master client in a corner of the screen, and slaves in one
--- column and one row around the master.
--- @clientlayout awful.layout.suit.corner.se
-corner.se = {
- name = "cornerse",
- arrange = function (p) return do_corner(p, "SE") end
- }
-
-return corner
-
--- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80