madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged.
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
--[[
Licensed under GNU General Public License v2
--[[
Licensed under GNU General Public License v2
* (c) 2013, Luke Bonham
* (c) 2010-2012, Peter Hofmann
* (c) 2013, Luke Bonham
* (c) 2010-2012, Peter Hofmann
local centerwork =
{
name = "centerwork",
local centerwork =
{
name = "centerwork",
- top_left = 0,
- top_right = 1,
+ top_right = 0,
+ bottom_right = 1,
}
function centerwork.arrange(p)
}
function centerwork.arrange(p)
-- beautiful.useless_gap_width .
local useless_gap = tonumber(beautiful.useless_gap_width) or 0
-- beautiful.useless_gap_width .
local useless_gap = tonumber(beautiful.useless_gap_width) or 0
+ -- 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
+
-- Screen.
local wa = p.workarea
local cls = p.clients
-- Screen.
local wa = p.workarea
local cls = p.clients
+ -- Borders are factored in.
+ wa.height = wa.height - (global_border * 2)
+ wa.width = wa.width - (global_border * 2)
+ wa.x = wa.x + global_border
+ wa.y = wa.y + global_border
+
-- Width of main column?
local t = awful.tag.selected(p.screen)
local mwfact = awful.tag.getmwfact(t)
-- Width of main column?
local t = awful.tag.selected(p.screen)
local mwfact = awful.tag.getmwfact(t)
if #cls > 0
then
-- Main column, fixed width and height.
if #cls > 0
then
-- Main column, fixed width and height.
local g = {}
local mainwid = math.floor(wa.width * mwfact)
local slavewid = wa.width - mainwid
local g = {}
local mainwid = math.floor(wa.width * mwfact)
local slavewid = wa.width - mainwid
local slaveRwid = slavewid - slaveLwid
local slaveThei = math.floor(wa.height / 2)
local slaveBhei = wa.height - slaveThei
local slaveRwid = slavewid - slaveLwid
local slaveThei = math.floor(wa.height / 2)
local slaveBhei = wa.height - slaveThei
+ local Thalfgap = math.floor(useless_gap / 2)
+ local Bhalfgap = useless_gap - Thalfgap
- g.height = wa.height - 2 * useless_gap
- g.width = mainwid
+ g.height = wa.height - 2*useless_gap - 2*c.border_width
+ g.width = mainwid - 2*c.border_width
g.x = wa.x + slaveLwid
g.y = wa.y + useless_gap
g.x = wa.x + slaveLwid
g.y = wa.y + useless_gap
+ if g.width < 1 then g.width = 1 end
+ if g.height < 1 then g.height = 1 end
c:geometry(g)
-- Auxiliary windows.
if #cls > 1
then
local at = 0
c:geometry(g)
-- Auxiliary windows.
if #cls > 1
then
local at = 0
- for i = (#cls - 1),1,-1
do
-- It's all fixed. If there are more than 5 clients,
-- those additional clients will float. This is
do
-- It's all fixed. If there are more than 5 clients,
-- those additional clients will float. This is
- if at == centerwork.top_left
+ if i - 2 == centerwork.top_left
then
-- top left
g.x = wa.x + useless_gap
g.y = wa.y + useless_gap
then
-- top left
g.x = wa.x + useless_gap
g.y = wa.y + useless_gap
- g.width = slaveLwid - 2 * useless_gap
- g.height = slaveThei - useless_gap
- elseif at == centerwork.top_right
+ g.width = slaveLwid - 2*useless_gap - 2*c.border_width
+ g.height = slaveThei - useless_gap - Thalfgap - 2*c.border_width
+ elseif i - 2 == centerwork.top_right
then
-- top right
g.x = wa.x + slaveLwid + mainwid + useless_gap
g.y = wa.y + useless_gap
then
-- top right
g.x = wa.x + slaveLwid + mainwid + useless_gap
g.y = wa.y + useless_gap
- g.width = slaveRwid - 2 * useless_gap
- g.height = slaveThei - useless_gap
- elseif at == centerwork.bottom_left
+ g.width = slaveRwid - 2*useless_gap - 2*c.border_width
+ g.height = slaveThei - useless_gap - Thalfgap - 2*c.border_width
+ elseif i - 2 == centerwork.bottom_left
then
-- bottom left
g.x = wa.x + useless_gap
then
-- bottom left
g.x = wa.x + useless_gap
- g.y = wa.y + slaveThei + useless_gap
- g.width = slaveLwid - 2 * useless_gap
- g.height = slaveBhei - 2 * useless_gap
- elseif at == centerwork.bottom_right
+ g.y = wa.y + slaveThei + Bhalfgap
+ g.width = slaveLwid - 2*useless_gap - 2*c.border_width
+ g.height = slaveBhei - useless_gap - Bhalfgap - 2*c.border_width
+ elseif i - 2 == centerwork.bottom_right
then
-- bottom right
g.x = wa.x + slaveLwid + mainwid + useless_gap
then
-- bottom right
g.x = wa.x + slaveLwid + mainwid + useless_gap
- g.y = wa.y + slaveThei + useless_gap
- g.width = slaveRwid - 2 * useless_gap
- g.height = slaveBhei - 2 * useless_gap
+ g.y = wa.y + slaveThei + Bhalfgap
+ g.width = slaveRwid - 2*useless_gap - 2*c.border_width
+ g.height = slaveBhei - useless_gap - Bhalfgap - 2*c.border_width
+ if g.width < 1 then g.width = 1 end
+ if g.height < 1 then g.height = 1 end
c:geometry(g)
at = at + 1
c:geometry(g)
at = at + 1